مشاهده RSS Feed

دست نوشته های من

طراحی منو و گرافیک

به این مطلب امتیاز بدهید
توسط در تاریخ 24th July 2011 در ساعت 05:12 AM (1438 بازدیدها)
نقل قول نوشته اصلی توسط Master نمایش پست ها
سلام .
فایلی که ضمیمه کردم رو دنلود کنید . ماشین حساب نیست . اما پروژه ای هست که توش نحوه استفاده از ماوس و همینطور ساختن منوهای ابتدایی در اسمبلی رو بهتون نشون میده .
این بخشی از پروژه دسکتاپ به اسمبلی بود که ترم اول نوشتم - تا جایی که فرصت کردم سعی کردم اضافاتش رو کم کنم اما خب خیلی از بخشها هنوز مونده .
اما کارتون رو قطعا راه میندازه .


;IN THE NAME OF GOD
;APP TEST .ASM
;MACROS
;!!!!!!!!!!!!COLOR,CH,CL,DH,DL!!!!!!!!!!!!!!!
RECTANGLE MACRO COLOR,A,B,C,D
MOV AH,06H
MOV BH,COLOR
MOV CH,A
MOV CL,B
MOV DH,C
MOV DL,D
INT 10H
ENDM
;!!!!!!!!!!!!SAVES REGISTERS!!!!!!!!!!!!!!!!!!
PUSHREG MACRO
PUSH AX
PUSH BX
PUSH CX
PUSH DX
ENDM
;!!!!!!!!!!!!LOADS REGISTERS!!!!!!!!!!!!!!!!!!
POPREG MACRO
POP DX
POP CX
POP BX
POP AX
ENDM
;!!!!!!!CLEAR SCREEN!!!!!!!!!
CLS MACRO COLOR
MOV AX , 0600H
MOV BH , COLOR
MOV CX , 0000H
MOV DX , 204FH
INT 10H
ENDM
;!!!!!!!PUT CHARACTER!!!!!!!!
PUT MACRO CHAR,COLOR,NUMBER
MOV AH,09
MOV DH,00
MOV AL,CHAR
MOV BL,COLOR
MOV CX,NUMBER
;MOV BH,PAGE
INT 10H
ENDM

;////////////////////////////////////////////////////////////////////////
;!!!!!!!!!!!PUTS THE STRING IN GRAPHICAL MODE!!!!
PUTS MACRO STRING,LENGTH,A,B,COLOR
LOCAL NEXTCHAR
MOV SI, OFFSET STRING
MOV TOL,LENGTH
MOV ARZ,B
NEXTCHAR:
GOTOXY A,ARZ
PUT [SI],COLOR,1,1
INC SI
INC TOL
INC ARZ
CMP ARZ,LENGTH+B
JNE NEXTCHAR
ENDM
;///////////////////////////////////////
;\\\\\\\\\START,TASKBAR,SYSTEMTRAY\\\\\\

WINDOWS MACRO
;!!!!!!!!!STARTAREA!!!!!!!!!!!!
RECTANGLE 2,29,0,30,7
PUTS STARTTEXT,5,29,0,11111000B;11110111B
;!!!!!!!!!TASKBAR!!!!!!!!!!!!!!!
RECTANGLE 5,29,7,30,72
;!!!!!!!!!QUICKLUNCH ICONS!!!!
;GOTOXY 29,7
PUTS QUICKLAUNCH,4,29,7,11110100B
;!!!!!!!!!!SYSTEMTRAY!!!!!!!!!
RECTANGLE 1,29,73,30,79
ENDM

SETDESKTOP MACRO
;!!!!!!!!!!!!MY DOCUMENTS!!!!!!!!!!!!!!!!!!
RECTANGLE 6H,03H,2,4H,5
RECTANGLE 6H,02H,2,4H,3
;GOTOXY 5,1
PUTS MD,7,5,1,11111110B;PRINT MD
;!!!!!!!!!!!!MYCOMPUTER!!!!!!!!!!!!!!!!
RECTANGLE 1110B,7H,3,8H,5
RECTANGLE 8H,9H,1,9H,7
GOTOXY 9,2
PUT 46,11110111B,1
;GOTOXY 10,2
PUTS MC,5,10,2,11111110B;PRINT MC
;!!!!!!!!!RECYCLEBIN!!!!!!!!!!!!!
RECTANGLE 8H,12,3,14,5
GOTOXY 13,3
PRINT SAFHE
;GOTOXY 14,2
PUTS RB,5,15,2,11111110B;PRINT RB
;!!!!!!!!!!EMERGENCY EXIT!!!!!!
RECTANGLE 4,16,2,17,6
;GOTOXY 17,2
PUTS EMEXIT,6,18,1,11111110B;PRINT EMEXIT
ENDM
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

DELAY MACRO TIME
LOCAL LBLDELAY2
LOCAL LBLDELAY1
LOCAL LBLDELAY0

MOV BX,TIME
LBLDELAY2:
MOV DX,TIME
LBLDELAY1:
MOV CX,TIME
LBLDELAY0:
NOP
LOOP LBLDELAY0
DEC DX
JNZ LBLDELAY1
DEC BX
JNZ LBLDELAY2

ENDM
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

MOVECURSOR MACRO X,Y
MOV AX,04H
MOV CX,X
MOV DX,Y
INT 33H
ENDM
;--------------------------------------

;///////////////////////////////////////////////////////////////
HIDESTARTMENU MACRO
;RECTANGLE 9,19,0,28,25
;RECTANGLE 9H,23,0,28,20
RECTANGLE 9H,27,0,28,20;EXIT
RECTANGLE 9H,26,0,27,20;AUTHOR
RECTANGLE 9H,25,0,26,20;BOGIBOGI
RECTANGLE 9H,24,0,25,20;UNI
ENDM
;!!!!!!!!!!!!!!STARTMENU!!!!!!!!
STARTMENU MACRO
RECTANGLE 1,23,0,28,20
RECTANGLE 4,27,0,28,20;EXIT
RECTANGLE 1110B,26,0,27,20;AUTHOR
RECTANGLE 8,25,0,26,20;BOGIBOGI
RECTANGLE 1011B,24,0,25,20;UNI
;GOTOXY 27,5 ;AUTHOR
PUTS AUTHOR,6,27,5,11111001B;PRINT AUTHOR

;GOTOXY 28,5 ;SHUTDOWN
PUTS HALT,8,28,5,11111001B;PRINT HALT

;GOTOXY 26,5 ;BOGIBOGI
PUTS BOGIBOGI,8,26,5,11110001B;PRINT BOGIBOGI

;GOTOXY 25,5
PUTS UNI,5,25,5,11110001B;PRINT UNI
;GOTOXY 24,5
;PRINT INSTRUCTOR

ENDM
;!!!!!!!PRINT ON SCREEN!!!!!
PRINT MACRO STRING
MOV AH,09
MOV DX, OFFSET STRING
INT 21H
ENDM
;!!!!!!X ICON!!!!!!!!>>>>>>>>>>>>>>>>>>>>>
CLOSEICON MACRO COLOR,A,B,C,D COLORB
RECTANGLE COLOR,A,B,C,D
PUT X,COLORB,1,1
ENDM
;!!!!!!!!! GOTOXY(Y,X) !!!
GOTOXY MACRO ROW,COLUMN
MOV AH,2
MOV BH,0
MOV DH,ROW
MOV DL,COLUMN
INT 10H
ENDM
;!!!!!!!!!!!!!GETCH()!!!!!!!!!!!
GETCH MACRO
MOV AH,07
INT 21H
ENDM
;!!!!!!!!!!!EXIT APP!!!!!!!!!!!!
EXIT_APP MACRO
MOV AX,4C00H
INT 21H
ENDM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Segments;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

STACK SEGMENT STACK

DW 120 DUP(0)

STACK ENDS

DATA SEGMENT

MESSAGE1 DB 'IN THE NAME OF GOD',10,13,0;0B2H KHATE RAH RAHE TO POR
MESSAGE2 DB 'PRESS ANY KEY ...','$'
;INPUT DB 6,?,6 DUP(0)
STRT DB 'START','$'
STARTTEXT DB 'START',0
CASEBTN DB ' .. - ','$'
SAFHE DB 0CDH,0CDH,0CDH,'$'
QUICKLAUNCH DB 20H,010H,0EH,01,0 ;010H,00,0EH
MARK DB ':',0
O DB 0,0
M DB 0,0
I DB 0,0
U DB 0,0
SAAT DB 0,0
;O DB ,':',
DAGHIGHE DB 0 ,0
;M DB ,0;'$'
ME DB 'SEYYED HOSSEIN HASAN POUR MATIKOLAEE',0
HAFEZE DW 0,'$'
LEFTCLICK DB 0,'$'
RIGHTCLICK DB 0,'$'
XLOCATION DB 0,'$'
YLOCATION DB 0,'$'
RB DB 'TRASH','$'
MC DB 'MY PC','$'
MD DB 'MY DOCS','$'
APP DB 'YOU DONT HAVE ENOUGH RAM TO EXECUTE THIS APPLICATION',0
HALT DB 'SHUTDOWN',0
AUTHOR DB 'AUTHOR',0
BOGIBOGI DB 'Calculator',0
UNI DB 'Print',0
INSTRUCTOR DB 'INSTRUCTOR',0
BOGIBOG DB 1,0
EMEXIT DB 'E-EXIT',0
MUST DB 'MAZANDARAN UNIVERSITY OF SCIENCE AND TECHNOLOGY ',0
S DB 'S','$'
T DB 'T','$'
A DB 'A','$'
R DB 'R','$'
TEMP DB '0'
X DB 2,'$';BEJAYE X
TOL DB 0
ARZ DB 0
XPOINT DB 0
YPOINT DB 0
RIGHTCLICKTEXT DB 'RIGHT CLICKED ','$'
RIGHTCLICKTEXTO DB ' ','$'
TIMEHOLDER DW 0
ASCVAL DW ?,'$';MOUSE DECODED COLUMN
BSCVAL DW ?,'$';MOUSE DECODED ROW
FLG DB 1
SPC DB ' ',0
DOCISEMPTY DB 'MYDOCUMENT IS EMPTY',0
HA DB '!',0
XLOC DW 0,'$'
YLOC DW 0,'$'
XBINARY DW 0
YBINARY DW 0
MYX DB 2 DUP(0)
MYY DB 2 DUP(0)
FLGRC DB 0 ;FLAG RIGHT CLICK
FLGE DB 0 ;FLAG ERROR
FLGA DB 0;FLAG AUTHOR
FLGU DB 0;FLAG UNI
FLGB DB 0;FLAG BOGIBOGI
FLGD DB 0;FLAG DOCS

GETNUMMSG db 'Number: ',0
NUMBER Dw 0
NUM DB 8 DUP('0'),0
num1 dw 0
num2 dw 0
ten db 10
make_minus DB ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

;============================================================================================

;========================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PUTC ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PUTC:
push AX
Push BX
MOV AH, 0EH
MOV BL, 07H
MOV BH, 00H
INT 10H
Pop BX
Pop AX
RET
;========================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PUTS ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;LEA SI, YOURTEXT
PUTS2:
push AX
Push BX
PutL: LODSB
OR AL, AL
JZ EXIT
CALL PUTC
JMP PutL
EXIT:
Pop BX
Pop AX
RET
;========================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GETNUM ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GETNUM:
Push SI
Push DX
Push AX
;CALL PRINT_MENU

LEA SI, GETNUMMSG
CALL PUTS2
MOV DX,8
LEA DI, NUM
RD: MOV AH,00
INT 16H
CALL PUTC
MOV BYTE PTR[DI],AL
INC DI
DEC DX
CMP AL,13
JE GetOut
CMP DX,0
JNZ RD
GetOut:

Pop AX
Pop DX
Pop SI
RET
;========================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GETINPUT ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GETINPUT:
; MOV DH,6
; MOV DL,54
; CALL GOTOXY
READAGAIN:
MOV AH, 0 ;READ KEY OPCODE
INT 16H
CALL PUTC
CMP AL, 0 ;SPECIAL FUNCTION?
JZ READAGAIN ;IF SO, DON'T ECHO THIS KEYSTROKE
RET
;=======================================
calculator:
GOTOXY 13,32
call getnum
RET
;=============================================================================================
START:

MOV AX,SEG DATA
MOV DS,AX

;========================CURRENT GRAPHIC MODE==========================

MOV AH , 0FH
INT 10H
MOV AH , 0
PUSH AX

;=======================CHANGE TO GRAPHIC MODE==========================

MOV AH ,00H ;00
MOV AL , 12H ;12H
INT 10H
;===========================CLEAR THE SCREEN=============================
REFRESH: CLS 9H

;!!!!!!!!!!!IN THE NAME OF GOD!!!!!!!!!
;GOTOXY 0,30

PUTS MESSAGE1,18,0,30,11110001B;PRINT MESSAGE1

SETDESKTOP
;CLS 07
WINDOWS



;=========================Show Mouse Cursor============================

MOV AX,01
INT 33H
JMP MOUSE

TOAUTHERO:
MOV FLGA,0
JMP AUTHERO

TOUNI:
JMP PrintNumber

TODOCVIEW:
JMP DOCVIEW

TOBOGI:
JMP BOGI

TOEXITO:
JMP EXITO

TOSTARTMENU:
JMP STARTM

TOERROR:
JMP ERRORO

TOHIDE:
JMP HIDEIT

TORIGHTCLICKL:
JMP RIGHTCLICKL

TOREFRESH:
JMP REFRESH

TONEXTTESTA:
JMP NEXTTESTA

TOINCO:
INC FLGA
;JMP MOUSE

MOUSE: MOV AX , 03H
INT 33H
;RAST CLICK
;DELAY
PUSHREG
DELAY 500
POPREG

CMP BX,0002H
JE TORIGHTCLICKL

CMP BX , 0001H
JNE MOUSE
;PUSHREG
;MOV AX,05H;BARAYE DARYAFTE TEDADE CLICK
;MOV BX,0 ;CHECK KARDANE TEDD DAFAATE LEFTCLICK SHODAN
;INT 33H


;read pixel or read mouse xy coordinates

;====== Read Pixel under cursor
DEC CX

MOV AH,0DH
MOV BH,0
INT 10H

INC CX

CMP AL,4H
JE TOEXITO

;CMP AL,11110101B
;JE TOEXITO
;BEKHATERE ESTEFADE AZ RANG BARAYE TASHKHIS , RANGE SIAHO SEFID MOSHKEL SAZAN! BARAYE HAMIN GHEYRE FAAL BEHTARE
;CMP AL,0000B ;RANGE SIAH BAESE REFRESHE SAFHE SHE
;JE TOREFRESH

CMP AL,1110B
;JE TONEXTTESTA
NEXTTESTA:;CMP FLGA,2
JE TOAUTHERO
;CMP FLGA,2
;JNE TOINCO

CMP AL,6H
JE TODOCVIEW


CMP AL,08H
JE TOBOGI

CMP AL,0111B ;RANGE SEFID BAESE REFRESHE SAFHE SHE
JE TOREFRESH

CMP AL,1011B
JE TOUNI
;JMP PP
;TOREFRESHO:JMP TOREFRESH
;PP:
CMP AL,1
JE TOERROR

CMP AL,5H ;RO SORATY VA TASKBAR CLICK SHOD HICHI NASHE
JE TOHIDE

CMP AL,9H ; RO DESKTOP YA RANGE ABIE KAMRANG CLICK SHOD HICHI NASHE
JE TOHIDE;MOUSE

CMP AL,2H
CMP FLG,0
JE TOSTARTMENU
MOV FLG,0
;JNE MOUSE



JMP TOHIDE;REFRESH

STARTM:

STARTMENU
MOV FLG,1
JMP MOUSE

DOCVIEW:
HIDESTARTMENU
PUTS DOCISEMPTY,19,9,15,11010001B;
GOTOXY 8,16
PUT X,11110110B,1,1
GOTOXY 8,22
PUT HA,11110110B,1,1
DELAY 100;AGE GIR DAD BOKONESH 200
JMP MOUSE

AUTHERO:
HIDESTARTMENU
;GOTOXY 10,15
PUTS ME,36,10,15,11010001B;PRINT ME
GOTOXY 9,16
PUT X,11110110B,1,1
JMP MOUSE

BOGI:
HIDESTARTMENU
;GOTOXY 15,40
PUTS BOGIBOG,8,15,40,11110001B;PRINT BOGIBOG
GOTOXY 14,41
call calculator
;PUT X,11110110B,1,1

JMP MOUSE

PrintNumber:
HIDESTARTMENU
;GOTOXY 11,15
;PUTS MUST,48,11,15,11010001B;PRINT MUST
GOTOXY 10,36
LEA SI, NUM
call PUTS2
;PUT X,11110110B,1,1
JMP MOUSE

HIDEIT:

HIDESTARTMENU
MOV FLG,0
PUTS SPC,1,20,20,11111001B
JMP MOUSE
;JMP OO

;OO:
ERRORO:
HIDESTARTMENU
;GOTOXY 10,15
PUTS APP,52,10,15,11111001B;PRINT APP
JMP MOUSE

TTREFRESH : ;MOV BX,1
JMP TOREFRESH

RIGHTCLICKL:
PUSHREG
MOV AX,05H
MOV BX,1
INT 33H
MOV CL,2
MOV AX,BX
DIV CL
AND AH,00000001
CMP BX,1
JE TTREFRESH
POPREG

SUB MYX,12
SUB MYY,12

SHOW:
; GOTOXY MYY, MYX
; PRINT RIGHTCLICKTEXT
;MOV AX , 0600H
;MOV BH , 7
;MOV CX ,
;MOV DX ,
;INT 10H

JMP MOUSE
;EXITO:
;MOVECURSOR 200,200
;RECTANGLE 4,15,15,16,18
;PUT
;JMP MOUSE
GETCH
EXITO:
POP AX
MOV AH , 0
INT 10H
MOV AX,4C00H
INT 21H
CODE ENDS
END START

Submit "طراحی منو و گرافیک" to Facebook Submit "طراحی منو و گرافیک" to Digg Submit "طراحی منو و گرافیک" to del.icio.us Submit "طراحی منو و گرافیک" to StumbleUpon Submit "طراحی منو و گرافیک" to Google

برچسب ها: هیچ یک ویرایش برچسب ها
دسته بندی ها
دسته بندی نشده

نظرات



Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 03:52 PM بر حسب GMT +4 می باشد.