forked from KolibriOS/kolibrios
854 lines
15 KiB
Plaintext
854 lines
15 KiB
Plaintext
|
;-------------------------------------------------------------------------------
|
|||
|
;=========== Constans ==========================================================
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
MEV_LDOWN = 1
|
|||
|
MEV_LUP = 2
|
|||
|
MEV_RDOWN = 3
|
|||
|
MEV_RUP = 4
|
|||
|
MEV_WHEEL = 5
|
|||
|
MEV_MOVE = 6
|
|||
|
|
|||
|
;//Mouse buttons state
|
|||
|
MBS_LEFT = 1
|
|||
|
MBS_RIGHT = 2
|
|||
|
MBS_CENTER = 4
|
|||
|
MBS_4 = 8
|
|||
|
MBS_5 = 16
|
|||
|
|
|||
|
;// KEY MODIFIERS
|
|||
|
|
|||
|
KM_SHIFT = 0x00010000
|
|||
|
KM_CTRL = 0x00020000
|
|||
|
KM_ALT = 0x00040000
|
|||
|
|
|||
|
KM_CTRLSHIFT = 0x00030000
|
|||
|
KM_ALTSHIFT = 0x00050000
|
|||
|
KM_CTRLALT = 0x00060000
|
|||
|
|
|||
|
KM_CTRLALTSHIFT = 0x00070000
|
|||
|
|
|||
|
;// KEY CODES
|
|||
|
|
|||
|
KEY_ESCAPE = 0x00000001
|
|||
|
KEY_SNAPSHOT = 0x00000137
|
|||
|
KEY_PAUSE = 0x0000021D
|
|||
|
|
|||
|
KEY_F1 = 0x0000003B
|
|||
|
KEY_F2 = 0x0000003C
|
|||
|
KEY_F3 = 0x0000003D
|
|||
|
KEY_F4 = 0x0000003E
|
|||
|
KEY_F5 = 0x0000003F
|
|||
|
KEY_F6 = 0x00000040
|
|||
|
KEY_F7 = 0x00000041
|
|||
|
KEY_F8 = 0x00000042
|
|||
|
KEY_F9 = 0x00000043
|
|||
|
KEY_F10 = 0x00000044
|
|||
|
KEY_F11 = 0x00000057
|
|||
|
KEY_F12 = 0x00000058
|
|||
|
|
|||
|
KEY_TILDE = 0x00000029
|
|||
|
KEY_MINUS = 0x0000000C
|
|||
|
KEY_EQUAL = 0x0000000D
|
|||
|
KEY_BACKSPACE = 0x0000000E
|
|||
|
KEY_TAB = 0x0000000F
|
|||
|
KEY_SQBRACE1 = 0x0000001A
|
|||
|
KEY_SQBRACE2 = 0x0000001B
|
|||
|
KEY_SLASH1 = 0x00000035
|
|||
|
KEY_SLASH2 = 0x0000002B
|
|||
|
KEY_SEMICOLON = 0x00000027
|
|||
|
KEY_QUOTE = 0x00000028
|
|||
|
KEY_COMMA = 0x00000033
|
|||
|
KEY_DOT = 0x00000034
|
|||
|
KEY_SPACE = 0x00000039
|
|||
|
|
|||
|
KEY_1 = 0x00000002
|
|||
|
KEY_2 = 0x00000003
|
|||
|
KEY_3 = 0x00000004
|
|||
|
KEY_4 = 0x00000005
|
|||
|
KEY_5 = 0x00000006
|
|||
|
KEY_6 = 0x00000007
|
|||
|
KEY_7 = 0x00000008
|
|||
|
KEY_8 = 0x00000009
|
|||
|
KEY_9 = 0x0000000A
|
|||
|
KEY_0 = 0x0000000B
|
|||
|
|
|||
|
KEY_A = 0x0000001E
|
|||
|
KEY_B = 0x00000030
|
|||
|
KEY_C = 0x0000002E
|
|||
|
KEY_D = 0x00000020
|
|||
|
KEY_E = 0x00000012
|
|||
|
KEY_F = 0x00000021
|
|||
|
KEY_G = 0x00000022
|
|||
|
KEY_H = 0x00000023
|
|||
|
KEY_I = 0x00000017
|
|||
|
KEY_J = 0x00000024
|
|||
|
KEY_K = 0x00000025
|
|||
|
KEY_L = 0x00000026
|
|||
|
KEY_M = 0x00000032
|
|||
|
KEY_N = 0x00000031
|
|||
|
KEY_O = 0x00000018
|
|||
|
KEY_P = 0x00000019
|
|||
|
KEY_Q = 0x00000010
|
|||
|
KEY_R = 0x00000013
|
|||
|
KEY_S = 0x0000001F
|
|||
|
KEY_T = 0x00000014
|
|||
|
KEY_U = 0x00000016
|
|||
|
KEY_V = 0x0000002F
|
|||
|
KEY_W = 0x00000011
|
|||
|
KEY_X = 0x0000002D
|
|||
|
KEY_Y = 0x00000015
|
|||
|
KEY_Z = 0x0000002C
|
|||
|
|
|||
|
KEY_CAPSLK = 0x0000003A
|
|||
|
KEY_SCRLK = 0x00000046
|
|||
|
KEY_NUMLK = 0x00000069
|
|||
|
|
|||
|
KEY_RETURN = 0x0000001C
|
|||
|
KEY_NUMRETURN = 0x0000011C
|
|||
|
|
|||
|
KEY_LCONTROL = 0x0000001D
|
|||
|
KEY_RCONTROL = 0x0000011D
|
|||
|
KEY_LSHIFT = 0x0000002A
|
|||
|
KEY_RSHIFT = 0x00000036
|
|||
|
KEY_LALT = 0x00000038
|
|||
|
KEY_RALT = 0x00000138
|
|||
|
|
|||
|
KEY_LWIN = 0x0000015B
|
|||
|
KEY_RWIN = 0x0000015C
|
|||
|
KEY_APPS = 0x0000015D
|
|||
|
|
|||
|
KEY_INSERT = 0x00000152
|
|||
|
KEY_DELETE = 0x00000153
|
|||
|
KEY_HOME = 0x00000147
|
|||
|
KEY_END = 0x0000014F
|
|||
|
KEY_PAGEUP = 0x00000149
|
|||
|
KEY_PAGEDOWN = 0x00000151
|
|||
|
KEY_UP = 0x00000148
|
|||
|
KEY_LEFT = 0x0000014B
|
|||
|
KEY_RIGHT = 0x0000014D
|
|||
|
KEY_DOWN = 0x00000150
|
|||
|
|
|||
|
KEY_DIVIDE = 0x00000135
|
|||
|
KEY_MULTIPLY = 0x00000037
|
|||
|
KEY_SUBTRACT = 0x0000004A
|
|||
|
KEY_ADD = 0x0000004E
|
|||
|
KEY_SEPARATOR = 0x00000053
|
|||
|
|
|||
|
KEY_NUM1 = 0x0000004F
|
|||
|
KEY_NUM2 = 0x00000050
|
|||
|
KEY_NUM3 = 0x00000051
|
|||
|
KEY_NUM4 = 0x0000004B
|
|||
|
KEY_NUM5 = 0x0000004C
|
|||
|
KEY_NUM6 = 0x0000004D
|
|||
|
KEY_NUM7 = 0x00000047
|
|||
|
KEY_NUM8 = 0x00000048
|
|||
|
KEY_NUM9 = 0x00000049
|
|||
|
KEY_NUM0 = 0x00000052
|
|||
|
|
|||
|
;// EXTENDED KEY CODES (MULTIMEDIA KEYBOARDS)
|
|||
|
|
|||
|
KEY_MYDOCUMENTS = 0x0000014C
|
|||
|
KEY_MYPICTURES = 0x00000164
|
|||
|
KEY_MYMUSIC = 0x0000013C
|
|||
|
KEY_MUTE = 0x00000120
|
|||
|
KEY_PLAYPAUSE = 0x00000122
|
|||
|
KEY_STOP = 0x00000124
|
|||
|
KEY_VOLUMEUP = 0x00000130
|
|||
|
KEY_VOLUMEDOWN = 0x0000013E
|
|||
|
KEY_PREVSONG = 0x00000110
|
|||
|
KEY_NEXTSONG = 0x00000119
|
|||
|
KEY_MEDIA = 0x0000016D
|
|||
|
KEY_MAIL = 0x0000016C
|
|||
|
KEY_WEBHOME = 0x00000132
|
|||
|
KEY_MESSENGER = 0x00000105
|
|||
|
|
|||
|
KEY_CALCULATOR = 0x00000121
|
|||
|
KEY_LOGOFF = 0x00000116
|
|||
|
KEY_SLEEP = 0x0000015F
|
|||
|
|
|||
|
;Keyboard modes (func 66,2)
|
|||
|
|
|||
|
KBM_ASCII = 0
|
|||
|
KBM_SCAN = 1
|
|||
|
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;Colors-------------------------------------------------------------------------
|
|||
|
|
|||
|
clWhite = 0FFFFFFh
|
|||
|
clBlack = 0
|
|||
|
clRed = 0FF0000h
|
|||
|
clBlue = 0FF00h
|
|||
|
clGreen = 0FFh
|
|||
|
clGrey = 0888888h
|
|||
|
|
|||
|
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;========== APIs macros ========================================================
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
;-------------------------------------------------------------------------------
|
|||
|
|
|||
|
macro DrawWindow x,y,w,h,nameW ;void
|
|||
|
{
|
|||
|
if ~(x eq bx)
|
|||
|
mov bx,x
|
|||
|
end if
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
if ~(y eq cx)
|
|||
|
mov cx,y
|
|||
|
end if
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov edx,0x33FFFFFF
|
|||
|
mov esi,0x80333333
|
|||
|
mov edi,nameW
|
|||
|
xor eax,eax
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawPanel x,y,w,h,color ;void ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>६<EFBFBD>頥<EFBFBD><E9A0A5><EFBFBD> <20><EFBFBD><E0AEA7>筮<EFBFBD>(<28><><EFBFBD> 梥<><E6A2A5> color) <20><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
xor eax,eax
|
|||
|
if ~(x eq bx)
|
|||
|
mov bx,x
|
|||
|
end if
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
if ~(y eq cx)
|
|||
|
mov cx,y
|
|||
|
end if
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov edx,21000000h
|
|||
|
; add edx,color
|
|||
|
mov esi,01000000h
|
|||
|
; mov edi,color
|
|||
|
int 40h
|
|||
|
|
|||
|
if ~(color eq)
|
|||
|
mov eax,13
|
|||
|
xor bx,bx
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
xor cx,cx
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov edx,color
|
|||
|
int 40h
|
|||
|
end if
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
;WinClass
|
|||
|
; .Caption (offset Name)
|
|||
|
; .Color (color dword)
|
|||
|
; .Transparent (0/1)
|
|||
|
; .WorkTransp (0/1)
|
|||
|
; .Fix (0/1)
|
|||
|
; .Skin (0/1)
|
|||
|
; .CaptionColor (color dword)
|
|||
|
; .FrameColor (color dword)
|
|||
|
|
|||
|
macro DrawWindowEx x,y,w,h,WinClass ;void <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if ~(x eq bx)
|
|||
|
mov bx,x
|
|||
|
end if
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
if ~(y eq cx)
|
|||
|
mov cx,y
|
|||
|
end if
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
|
|||
|
if WinClass#.WorkTransp==1
|
|||
|
WinClass#.WorkTransp=40000000h
|
|||
|
end if
|
|||
|
|
|||
|
mov edx,3000000h+WinClass#.WorkTransp+WinClass#.Color
|
|||
|
mov esi,0x80333333
|
|||
|
mov edi,WinClass#.Name
|
|||
|
xor eax,eax
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawPix x,y,color ;void
|
|||
|
{
|
|||
|
mov ebx,x
|
|||
|
mov ecx,y
|
|||
|
mov edx,color
|
|||
|
mov eax,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetKeyPressed ;eax=1-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> al=0, ah=<3D><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
{ ;al=2, ah=᪠<><E1AAA0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,HI eax=<3D><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov eax,2
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
macro OutText x,y,Text,colorFon ;void
|
|||
|
{
|
|||
|
if colorFon eq
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,y
|
|||
|
mov ecx,80000000h
|
|||
|
mov edx,Text
|
|||
|
mov eax,4
|
|||
|
int 40h
|
|||
|
else
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,y
|
|||
|
mov ecx,0C0000000h
|
|||
|
mov edx,Text
|
|||
|
mov edi,colorFon
|
|||
|
mov eax,4
|
|||
|
int 40h
|
|||
|
end if
|
|||
|
}
|
|||
|
|
|||
|
macro Sleep time ;void
|
|||
|
{
|
|||
|
mov ebx,time
|
|||
|
mov eax,5
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
macro DrawImage x,y,w,h,Image ;void
|
|||
|
{
|
|||
|
mov ebx,Image
|
|||
|
mov cx,w
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov dx,x
|
|||
|
rol edx,16
|
|||
|
mov dx,y
|
|||
|
mov eax,7
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawButton x,y,w,h,ID,color,Caption ;void
|
|||
|
{
|
|||
|
if ID<1000000h
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
mov cx,y
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov edx,ID
|
|||
|
mov esi,color
|
|||
|
mov eax,8
|
|||
|
int 40h
|
|||
|
|
|||
|
sub edx,80000000h
|
|||
|
else
|
|||
|
mov eax,-1
|
|||
|
end if
|
|||
|
|
|||
|
if ~(Caption eq)
|
|||
|
mov bx,x
|
|||
|
add bx,5
|
|||
|
rol ebx,16
|
|||
|
mov bx,y
|
|||
|
add bx,5
|
|||
|
mov ecx,80000000h
|
|||
|
mov edx,Caption
|
|||
|
mov eax,4
|
|||
|
int 40h
|
|||
|
end if
|
|||
|
}
|
|||
|
|
|||
|
macro DeleteButton ID ;void
|
|||
|
{
|
|||
|
if ID<1000000h
|
|||
|
mov eax,8
|
|||
|
mov edx,80000000h
|
|||
|
add edx,ID
|
|||
|
int 40h
|
|||
|
;else
|
|||
|
|
|||
|
end if
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
macro GetThreadInfo Buffer,N ;1KB eax=max <20><><EFBFBD><EFBFBD><EFBFBD> <><E1ABAE> <20><>⮪<EFBFBD>
|
|||
|
{
|
|||
|
mov ebx,Buffer
|
|||
|
if N eq
|
|||
|
mov ecx,-1
|
|||
|
else
|
|||
|
mov ecx,N
|
|||
|
end if
|
|||
|
mov eax,9
|
|||
|
int 40h
|
|||
|
}
|
|||
|
; +34 = X window
|
|||
|
; +38 = Y window
|
|||
|
; +42 = W window
|
|||
|
; +46 = H window
|
|||
|
|
|||
|
|
|||
|
macro WaitMessage ;eax=event(1=redraw,2=key,3=button,5=redrawBackgroud,
|
|||
|
{ ;6=mouse,7=IPC,8=ethernet,9=debug,16..31=IRQ0..IRQ15)
|
|||
|
mov eax,10
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro ReadMessage ;eax=0-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> WaitMessage
|
|||
|
{
|
|||
|
mov eax,11
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro RedrawWinBeg ;void
|
|||
|
{
|
|||
|
mov eax,12
|
|||
|
mov ebx,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro RedrawWinEnd ;void
|
|||
|
{
|
|||
|
mov eax,12
|
|||
|
mov ebx,2
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawRect x,y,w,h,color ;void
|
|||
|
{
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,w
|
|||
|
mov cx,y
|
|||
|
rol ecx,16
|
|||
|
mov cx,h
|
|||
|
mov edx,color
|
|||
|
mov eax,13
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawClearRect x,y,w,h,color ;(ࠬ<><E0A0AC>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠬ<><E0A0AC>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
{
|
|||
|
mov eax,38
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,x
|
|||
|
add bx,w
|
|||
|
mov cx,y
|
|||
|
rol ecx,16
|
|||
|
mov cx,y
|
|||
|
mov edx,color
|
|||
|
int 40h
|
|||
|
|
|||
|
mov eax,38
|
|||
|
mov bx,x
|
|||
|
add bx,w
|
|||
|
rol ebx,16
|
|||
|
mov bx,x
|
|||
|
add bx,w
|
|||
|
mov cx,y
|
|||
|
rol ecx,16
|
|||
|
mov cx,y
|
|||
|
add cx,h
|
|||
|
mov edx,color
|
|||
|
int 40h
|
|||
|
|
|||
|
mov eax,38
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,x
|
|||
|
add bx,w
|
|||
|
mov cx,y
|
|||
|
add cx,h
|
|||
|
rol ecx,16
|
|||
|
mov cx,y
|
|||
|
add cx,h
|
|||
|
mov edx,color
|
|||
|
int 40h
|
|||
|
|
|||
|
mov eax,38
|
|||
|
mov bx,x
|
|||
|
rol ebx,16
|
|||
|
mov bx,x
|
|||
|
mov cx,y
|
|||
|
rol ecx,16
|
|||
|
mov cx,y
|
|||
|
add cx,h
|
|||
|
mov edx,color
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
macro GetScreenSize ;eax=[xsize]*0x10000+[ysize]. <20><><EFBFBD>祭<EFBFBD><E7A5AD> 㦥 㢥<><E3A2A5>祭<EFBFBD> <20><> 1,<2C>.<2E>.
|
|||
|
{ ;xsize <20> ysize <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ࠢ<><E0A0A2> 1024 <20> 768 (<28><><EFBFBD>ਬ<EFBFBD><E0A8AC>)
|
|||
|
mov eax,14
|
|||
|
int 40h
|
|||
|
add eax,00010001h
|
|||
|
}
|
|||
|
|
|||
|
macro RedrawDesktop
|
|||
|
{
|
|||
|
mov eax,15
|
|||
|
mov ebx,3
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetButtonPressed ;eax=1(<28><><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD> al=0(LButton)<29><><EFBFBD> <20><><EFBFBD> <20><>㣮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,
|
|||
|
{ ; HI eax <20> ah ᮤ<>ঠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mov eax,17
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro Minimize ;void
|
|||
|
{
|
|||
|
mov eax,18
|
|||
|
mov ebx,10
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro SetMousePos x,y
|
|||
|
{
|
|||
|
mov ecx,4
|
|||
|
mov dx,x
|
|||
|
rol edx,16
|
|||
|
mov dx,y
|
|||
|
mov eax,18
|
|||
|
mov ebx,19
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro WaitMessageT time
|
|||
|
{
|
|||
|
mov ebx,time
|
|||
|
mov eax,23
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro SetDefaultFolder folder
|
|||
|
{
|
|||
|
mov ecx,folder
|
|||
|
mov eax,30
|
|||
|
mov ebx,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetDefaultFolder folderBuf,sizeBuf
|
|||
|
{
|
|||
|
mov ecx,folderBuf
|
|||
|
moc edx,sizeBuf
|
|||
|
mov eax,30
|
|||
|
mov ebx,2
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetMousePos
|
|||
|
{
|
|||
|
mov eax,37
|
|||
|
xor ebx,ebx
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetMouseWinPos
|
|||
|
{
|
|||
|
mov eax,37
|
|||
|
mov ebx,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
macro GetMouseKey
|
|||
|
{
|
|||
|
mov eax,37
|
|||
|
mov ebx,2
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro LoadCursorF path
|
|||
|
{
|
|||
|
mov ecx,path
|
|||
|
mov eax,37
|
|||
|
mov ebx,4
|
|||
|
mov dx,0
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro LoadCursorM cur
|
|||
|
{
|
|||
|
mov ecx,cur
|
|||
|
mov eax,37
|
|||
|
mov ebx,4
|
|||
|
mov dx,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro LoadCursorStruct cur,x,y
|
|||
|
{
|
|||
|
; mov edx,x*1000000h+y*10000h+0002
|
|||
|
mov edx,x
|
|||
|
shl edx,24
|
|||
|
xor ecx,ecx
|
|||
|
mov cx,y
|
|||
|
shl ecx,16
|
|||
|
add edx,ecx
|
|||
|
add edx,2
|
|||
|
mov ecx,path
|
|||
|
mov eax,37
|
|||
|
mov ebx,4
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro SetCursor Handle
|
|||
|
{
|
|||
|
mov ecx,Handle
|
|||
|
mov eax,37
|
|||
|
mov ebx,5
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
macro DrawLine x1,y1,x2,y2,color
|
|||
|
{
|
|||
|
mov bx,x1
|
|||
|
rol ebx,16
|
|||
|
mov bx,x2
|
|||
|
mov cx,y1
|
|||
|
rol ecx,16
|
|||
|
mov cx,y2
|
|||
|
mov edx,color
|
|||
|
mov eax,38
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro SetMaskMessage Mask
|
|||
|
{
|
|||
|
mov ebx,Mask
|
|||
|
mov eax,40
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro DrawInt Int,Leng,x,y,color
|
|||
|
{
|
|||
|
xor ecx,ecx
|
|||
|
mov cx,Leng
|
|||
|
shl ecx,16
|
|||
|
add ebx,ecx
|
|||
|
|
|||
|
mov ecx,Int
|
|||
|
mov dx,x
|
|||
|
rol edx,16
|
|||
|
mov dx,y
|
|||
|
mov esi,color
|
|||
|
mov eax,47
|
|||
|
mov ebx,080100000h ;+Leng*10000h+0000
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetSkinH
|
|||
|
{
|
|||
|
mov eax,48
|
|||
|
mov ebx,4
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro CreateThread start,stack
|
|||
|
{
|
|||
|
mov ecx,start
|
|||
|
mov edx,stack
|
|||
|
mov eax,51
|
|||
|
mov ebx,1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
macro SetKeyboardMode mode
|
|||
|
{
|
|||
|
mov ecx,mode
|
|||
|
mov eax,66
|
|||
|
mov ebx,2
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro ResizeWindow x,y,w,h
|
|||
|
{
|
|||
|
mov ebx,x
|
|||
|
mov ecx,y
|
|||
|
mov edx,w
|
|||
|
mov esi,h
|
|||
|
mov eax,67
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro InitMemory ;eax=0(<28><><EFBFBD>ᯥ<EFBFBD>) <20><><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
mov eax,68
|
|||
|
mov ebx,11
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetMemory size ;eax=Pointer
|
|||
|
{
|
|||
|
mov ecx,size
|
|||
|
mov ebx,12
|
|||
|
mov eax,68
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro FreeMemory pointer ;eax = 0/1 = false/true
|
|||
|
{
|
|||
|
mov ecx,pointer
|
|||
|
mov ebx,13
|
|||
|
mov eax,68
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro ReallocMemory pointer,newsize
|
|||
|
{
|
|||
|
mov edx,pointer
|
|||
|
mov ecx,newsize
|
|||
|
mov ebx,20
|
|||
|
mov eax,68h
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro ReadFile Struc,path,n,Buffer,posL;,posH
|
|||
|
{
|
|||
|
mov dword [Struc],0
|
|||
|
mov dword [Struc+4],posL
|
|||
|
mov dword [Struc+8],0;posH
|
|||
|
mov dword [Struc+12],n
|
|||
|
mov dword [Struc+16],Buffer
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
mov ebx,Struc
|
|||
|
mov eax,70
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro CreateFile Struc,path,n,Buffer
|
|||
|
{
|
|||
|
mov dword [Struc],2
|
|||
|
mov dword [Struc+4],0
|
|||
|
mov dword [Struc+8],0
|
|||
|
mov dword [Struc+12],n
|
|||
|
mov dword [Struc+16],Buffer
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
mov ebx,Struc
|
|||
|
mov eax,70
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro WriteFile Struc,path,n,Buffer,posL;,posH
|
|||
|
{
|
|||
|
mov dword [Struc],3
|
|||
|
mov dword [Struc+4],posL
|
|||
|
mov dword [Struc+8],0;posH
|
|||
|
mov dword [Struc+12],n
|
|||
|
mov dword [Struc+16],Buffer
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
mov ebx,Struc
|
|||
|
mov eax,70
|
|||
|
int 40h
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
macro SetFileSize Struc,path,sizeL;,sizeH
|
|||
|
{
|
|||
|
mov dword [Struc],4
|
|||
|
mov dword [Struc+4],sizeL
|
|||
|
mov dword [Struc+8],0;sizeH
|
|||
|
mov dword [Struc+12],0
|
|||
|
mov dword [Struc+16],0
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
mov ebx,Struc
|
|||
|
mov eax,70
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro GetFileInfo Struc,path,BufferInfo ;(40<34><30><EFBFBD><EFBFBD>)
|
|||
|
{
|
|||
|
mov dword [Struc],5
|
|||
|
mov dword [Struc+4],0
|
|||
|
mov dword [Struc+8],0
|
|||
|
mov dword [Struc+12],0
|
|||
|
mov dword [Struc+16],BufferInfo
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
mov ebx,Struc
|
|||
|
mov eax,70
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro RunProgram Struc,path,params
|
|||
|
{
|
|||
|
mov eax,70
|
|||
|
mov ebx,Struc
|
|||
|
mov dword [Struc],7
|
|||
|
mov dword [Struc+4],0
|
|||
|
mov dword [Struc+8],params
|
|||
|
mov dword [Struc+12],0
|
|||
|
mov dword [Struc+16],0
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro Remove Struc,path
|
|||
|
{
|
|||
|
mov eax,70
|
|||
|
mov ebx,Struc
|
|||
|
mov dword [Struc],8
|
|||
|
mov dword [Struc+4],0
|
|||
|
mov dword [Struc+8],0
|
|||
|
mov dword [Struc+12],0
|
|||
|
mov dword [Struc+16],0
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro CreateFolder Struc,path
|
|||
|
{
|
|||
|
mov eax,70
|
|||
|
mov ebx,Struc
|
|||
|
mov dword [Struc],9
|
|||
|
mov dword [Struc+4],0
|
|||
|
mov dword [Struc+8],0
|
|||
|
mov dword [Struc+12],0
|
|||
|
mov dword [Struc+16],0
|
|||
|
mov byte [Struc+20],0
|
|||
|
mov dword [Struc+21],path
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro SetWindowCaption caption
|
|||
|
{
|
|||
|
mov eax,71
|
|||
|
mov ebx,1
|
|||
|
mov ecx,name
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
macro ExitThread
|
|||
|
{
|
|||
|
mov eax,-1
|
|||
|
int 40h
|
|||
|
}
|
|||
|
|
|||
|
ExitProcess fix ExitThread
|