Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ;-------------------------------------------------------------------------------
  2. ;=========== Constans ==========================================================
  3. ;-------------------------------------------------------------------------------
  4. ;-------------------------------------------------------------------------------
  5. ;-------------------------------------------------------------------------------
  6. MEV_LDOWN = 1
  7. MEV_LUP   = 2
  8. MEV_RDOWN = 3
  9. MEV_RUP   = 4
  10. MEV_WHEEL = 5
  11. MEV_MOVE  = 6
  12.  
  13. ;//Mouse buttons state
  14. MBS_LEFT   = 1
  15. MBS_RIGHT  = 2
  16. MBS_CENTER = 4
  17. MBS_4      = 8
  18. MBS_5      = 16
  19.  
  20. ;// KEY MODIFIERS
  21.  
  22. KM_SHIFT        = 0x00010000
  23. KM_CTRL         = 0x00020000
  24. KM_ALT          = 0x00040000
  25.  
  26. KM_CTRLSHIFT    = 0x00030000
  27. KM_ALTSHIFT     = 0x00050000
  28. KM_CTRLALT      = 0x00060000
  29.  
  30. KM_CTRLALTSHIFT = 0x00070000
  31.  
  32. ;// KEY CODES
  33.  
  34. KEY_ESCAPE      = 0x00000001
  35. KEY_SNAPSHOT    = 0x00000137
  36. KEY_PAUSE       = 0x0000021D
  37.  
  38. KEY_F1          = 0x0000003B
  39. KEY_F2          = 0x0000003C
  40. KEY_F3          = 0x0000003D
  41. KEY_F4          = 0x0000003E
  42. KEY_F5          = 0x0000003F
  43. KEY_F6          = 0x00000040
  44. KEY_F7          = 0x00000041
  45. KEY_F8          = 0x00000042
  46. KEY_F9          = 0x00000043
  47. KEY_F10         = 0x00000044
  48. KEY_F11         = 0x00000057
  49. KEY_F12         = 0x00000058
  50.  
  51. KEY_TILDE       = 0x00000029
  52. KEY_MINUS       = 0x0000000C
  53. KEY_EQUAL       = 0x0000000D
  54. KEY_BACKSPACE   = 0x0000000E
  55. KEY_TAB         = 0x0000000F
  56. KEY_SQBRACE1    = 0x0000001A
  57. KEY_SQBRACE2    = 0x0000001B
  58. KEY_SLASH1      = 0x00000035
  59. KEY_SLASH2      = 0x0000002B
  60. KEY_SEMICOLON   = 0x00000027
  61. KEY_QUOTE       = 0x00000028
  62. KEY_COMMA       = 0x00000033
  63. KEY_DOT         = 0x00000034
  64. KEY_SPACE       = 0x00000039
  65.  
  66. KEY_1           = 0x00000002
  67. KEY_2           = 0x00000003
  68. KEY_3           = 0x00000004
  69. KEY_4           = 0x00000005
  70. KEY_5           = 0x00000006
  71. KEY_6           = 0x00000007
  72. KEY_7           = 0x00000008
  73. KEY_8           = 0x00000009
  74. KEY_9           = 0x0000000A
  75. KEY_0           = 0x0000000B
  76.  
  77. KEY_A           = 0x0000001E
  78. KEY_B           = 0x00000030
  79. KEY_C           = 0x0000002E
  80. KEY_D           = 0x00000020
  81. KEY_E           = 0x00000012
  82. KEY_F           = 0x00000021
  83. KEY_G           = 0x00000022
  84. KEY_H           = 0x00000023
  85. KEY_I           = 0x00000017
  86. KEY_J           = 0x00000024
  87. KEY_K           = 0x00000025
  88. KEY_L           = 0x00000026
  89. KEY_M           = 0x00000032
  90. KEY_N           = 0x00000031
  91. KEY_O           = 0x00000018
  92. KEY_P           = 0x00000019
  93. KEY_Q           = 0x00000010
  94. KEY_R           = 0x00000013
  95. KEY_S           = 0x0000001F
  96. KEY_T           = 0x00000014
  97. KEY_U           = 0x00000016
  98. KEY_V           = 0x0000002F
  99. KEY_W           = 0x00000011
  100. KEY_X           = 0x0000002D
  101. KEY_Y           = 0x00000015
  102. KEY_Z           = 0x0000002C
  103.  
  104. KEY_CAPSLK      = 0x0000003A
  105. KEY_SCRLK       = 0x00000046
  106. KEY_NUMLK       = 0x00000069
  107.  
  108. KEY_RETURN      = 0x0000001C
  109. KEY_NUMRETURN   = 0x0000011C
  110.  
  111. KEY_LCONTROL    = 0x0000001D
  112. KEY_RCONTROL    = 0x0000011D
  113. KEY_LSHIFT      = 0x0000002A
  114. KEY_RSHIFT      = 0x00000036
  115. KEY_LALT        = 0x00000038
  116. KEY_RALT        = 0x00000138
  117.  
  118. KEY_LWIN        = 0x0000015B
  119. KEY_RWIN        = 0x0000015C
  120. KEY_APPS        = 0x0000015D
  121.  
  122. KEY_INSERT      = 0x00000152
  123. KEY_DELETE      = 0x00000153
  124. KEY_HOME        = 0x00000147
  125. KEY_END         = 0x0000014F
  126. KEY_PAGEUP      = 0x00000149
  127. KEY_PAGEDOWN    = 0x00000151
  128. KEY_UP          = 0x00000148
  129. KEY_LEFT        = 0x0000014B
  130. KEY_RIGHT       = 0x0000014D
  131. KEY_DOWN        = 0x00000150
  132.  
  133. KEY_DIVIDE      = 0x00000135
  134. KEY_MULTIPLY    = 0x00000037
  135. KEY_SUBTRACT    = 0x0000004A
  136. KEY_ADD         = 0x0000004E
  137. KEY_SEPARATOR   = 0x00000053
  138.  
  139. KEY_NUM1        = 0x0000004F
  140. KEY_NUM2        = 0x00000050
  141. KEY_NUM3        = 0x00000051
  142. KEY_NUM4        = 0x0000004B
  143. KEY_NUM5        = 0x0000004C
  144. KEY_NUM6        = 0x0000004D
  145. KEY_NUM7        = 0x00000047
  146. KEY_NUM8        = 0x00000048
  147. KEY_NUM9        = 0x00000049
  148. KEY_NUM0        = 0x00000052
  149.  
  150. ;// EXTENDED KEY CODES (MULTIMEDIA KEYBOARDS)
  151.  
  152. KEY_MYDOCUMENTS = 0x0000014C
  153. KEY_MYPICTURES  = 0x00000164
  154. KEY_MYMUSIC     = 0x0000013C
  155. KEY_MUTE        = 0x00000120
  156. KEY_PLAYPAUSE   = 0x00000122
  157. KEY_STOP        = 0x00000124
  158. KEY_VOLUMEUP    = 0x00000130
  159. KEY_VOLUMEDOWN  = 0x0000013E
  160. KEY_PREVSONG    = 0x00000110
  161. KEY_NEXTSONG    = 0x00000119
  162. KEY_MEDIA       = 0x0000016D
  163. KEY_MAIL        = 0x0000016C
  164. KEY_WEBHOME     = 0x00000132
  165. KEY_MESSENGER   = 0x00000105
  166.  
  167. KEY_CALCULATOR  = 0x00000121
  168. KEY_LOGOFF      = 0x00000116
  169. KEY_SLEEP       = 0x0000015F
  170.  
  171. ;Keyboard modes (func 66,2)
  172.  
  173. KBM_ASCII = 0
  174. KBM_SCAN  = 1
  175.  
  176. ;-------------------------------------------------------------------------------
  177. ;Colors-------------------------------------------------------------------------
  178.  
  179. clWhite = 0FFFFFFh
  180. clBlack = 0
  181. clRed   = 0FF0000h
  182. clBlue  = 0FF00h
  183. clGreen = 0FFh
  184. clGrey  = 0888888h
  185.  
  186.  
  187. ;-------------------------------------------------------------------------------
  188. ;-------------------------------------------------------------------------------
  189. ;-------------------------------------------------------------------------------
  190. ;========== APIs macros ========================================================
  191. ;-------------------------------------------------------------------------------
  192. ;-------------------------------------------------------------------------------
  193. ;-------------------------------------------------------------------------------
  194. ;-------------------------------------------------------------------------------
  195.  
  196. macro DrawWindow x,y,w,h,nameW   ;void
  197. {
  198.     if ~(x eq bx)
  199.        mov bx,x
  200.     end if
  201.     rol ebx,16
  202.     mov bx,w
  203.     if ~(y eq cx)
  204.        mov cx,y
  205.     end if
  206.     rol ecx,16
  207.     mov cx,h
  208.     mov edx,0x33FFFFFF
  209.     mov esi,0x80333333
  210.     mov edi,nameW
  211.     xor eax,eax
  212.     int 40h
  213. }
  214.  
  215. macro DrawPanel x,y,w,h,color    ;void    ;à¨áã¥â ­¥¯¥à¥¬¥é ¥¬®¥ ¯à®§à ç­®¥(¨«¨ æ¢¥â  color) ®ª­®
  216. {
  217.     xor eax,eax
  218.     if ~(x eq bx)
  219.        mov bx,x
  220.     end if
  221.     rol ebx,16
  222.     mov bx,w
  223.     if ~(y eq cx)
  224.        mov cx,y
  225.     end if
  226.     rol ecx,16
  227.     mov cx,h
  228.     mov edx,21000000h
  229.    ; add edx,color
  230.     mov esi,01000000h
  231.    ; mov edi,color
  232.     int 40h
  233.  
  234.     if ~(color eq)
  235.        mov eax,13
  236.        xor bx,bx
  237.        rol ebx,16
  238.        mov bx,w
  239.        xor cx,cx
  240.        rol ecx,16
  241.        mov cx,h
  242.        mov edx,color
  243.        int 40h
  244.     end if
  245. }
  246.  
  247.  
  248. ;WinClass
  249. ;       .Caption  (offset Name)
  250. ;       .Color (color dword)
  251. ;       .Transparent (0/1)
  252. ;       .WorkTransp  (0/1)
  253. ;       .Fix         (0/1)
  254. ;       .Skin        (0/1)
  255. ;       .CaptionColor (color dword)
  256. ;       .FrameColor   (color dword)
  257.  
  258. macro DrawWindowEx x,y,w,h,WinClass   ;void ¬®¦¥â à¨á®¢ âì «î¡®¥ ®ª­®
  259. {
  260.     if ~(x eq bx)
  261.        mov bx,x
  262.     end if
  263.     rol ebx,16
  264.     mov bx,w
  265.     if ~(y eq cx)
  266.        mov cx,y
  267.     end if
  268.     rol ecx,16
  269.     mov cx,h
  270.  
  271.     if WinClass#.WorkTransp==1
  272.       WinClass#.WorkTransp=40000000h
  273.     end if
  274.  
  275.     mov edx,3000000h+WinClass#.WorkTransp+WinClass#.Color
  276.     mov esi,0x80333333
  277.     mov edi,WinClass#.Name
  278.     xor eax,eax
  279.     int 40h
  280. }
  281.  
  282. macro DrawPix x,y,color     ;void
  283. {
  284.     mov ebx,x
  285.     mov ecx,y
  286.     mov edx,color
  287.     mov eax,1
  288.     int 40h
  289. }
  290.  
  291. macro GetKeyPressed   ;eax=1-¯ãáâ® «¨¡® al=0, ah=ª®¤ ­ ¦ â®© ª« ¢¨è¨ «¨¡®
  292. {                     ;al=2, ah=᪠­ª®¤ ­ ¦ â®© ƒŽŸ—…‰ ª« ¢¨è¨,HI eax=á®áâ ã¯à ª« ¢¨è
  293.     mov eax,2
  294.     int 40h
  295. }
  296.  
  297.  
  298. macro OutText x,y,Text,colorFon    ;void
  299. {
  300.   if colorFon eq
  301.     mov bx,x
  302.     rol ebx,16
  303.     mov bx,y
  304.     mov ecx,80000000h
  305.     mov edx,Text
  306.     mov eax,4
  307.     int 40h
  308.   else
  309.     mov bx,x
  310.     rol ebx,16
  311.     mov bx,y
  312.     mov ecx,0C0000000h
  313.     mov edx,Text
  314.     mov edi,colorFon
  315.     mov eax,4
  316.     int 40h
  317.   end if
  318. }
  319.  
  320. macro Sleep time      ;void
  321. {
  322.     mov ebx,time
  323.     mov eax,5
  324.     int 40h
  325. }
  326.  
  327.  
  328. macro DrawImage x,y,w,h,Image       ;void
  329. {
  330.     mov ebx,Image
  331.     mov cx,w
  332.     rol ecx,16
  333.     mov cx,h
  334.     mov dx,x
  335.     rol edx,16
  336.     mov dx,y
  337.     mov eax,7
  338.     int 40h
  339. }
  340.  
  341. macro DrawButton x,y,w,h,ID,color,Caption     ;void
  342. {
  343.     if ID<1000000h
  344.         mov bx,x
  345.         rol ebx,16
  346.         mov bx,w
  347.         mov cx,y
  348.         rol ecx,16
  349.         mov cx,h
  350.         mov edx,ID
  351.         mov esi,color
  352.         mov eax,8
  353.         int 40h
  354.  
  355.         sub edx,80000000h
  356.     else
  357.         mov eax,-1
  358.     end if
  359.  
  360.     if ~(Caption eq)
  361.         mov bx,x
  362.         add bx,5
  363.         rol ebx,16
  364.         mov bx,y
  365.         add bx,5
  366.         mov ecx,80000000h
  367.         mov edx,Caption
  368.         mov eax,4
  369.         int 40h
  370.     end if
  371. }
  372.  
  373. macro DeleteButton ID        ;void
  374. {
  375.     if ID<1000000h
  376.         mov eax,8
  377.         mov edx,80000000h
  378.         add edx,ID
  379.         int 40h
  380.     ;else
  381.  
  382.     end if
  383.  
  384. }
  385.  
  386. macro GetThreadInfo Buffer,N ;1KB  eax=max ­®¬¥à á«®â  ¯®â®ª 
  387. {
  388.     mov ebx,Buffer
  389.     if N eq
  390.       mov ecx,-1
  391.     else
  392.       mov ecx,N
  393.     end if
  394.     mov eax,9
  395.     int 40h
  396. }
  397. ; +34 = X window
  398. ; +38 = Y window
  399. ; +42 = W window
  400. ; +46 = H window
  401.  
  402.  
  403. macro WaitMessage        ;eax=event(1=redraw,2=key,3=button,5=redrawBackgroud,
  404. {                        ;6=mouse,7=IPC,8=ethernet,9=debug,16..31=IRQ0..IRQ15)
  405.     mov eax,10
  406.     int 40h
  407. }
  408.  
  409. macro ReadMessage      ;eax=0-¯ãáâ® ¨­ ç¥ ᬠWaitMessage
  410. {
  411.    mov eax,11
  412.    int 40h
  413. }
  414.  
  415. macro RedrawWinBeg    ;void
  416. {
  417.     mov eax,12
  418.     mov ebx,1
  419.     int 40h
  420. }
  421.  
  422. macro RedrawWinEnd      ;void
  423. {
  424.     mov eax,12
  425.     mov ebx,2
  426.     int 40h
  427. }
  428.  
  429. macro DrawRect x,y,w,h,color      ;void
  430. {
  431.    mov bx,x
  432.    rol ebx,16
  433.    mov bx,w
  434.    mov cx,y
  435.    rol ecx,16
  436.    mov cx,h
  437.    mov edx,color
  438.    mov eax,13
  439.    int 40h
  440. }
  441.  
  442. macro DrawClearRect x,y,w,h,color ;(à ¬ª¨. ¨áã¥â ¯à®áâ® à ¬ªã. ¥§ § ªà è¨¢ ­¨ï ¢­ãâà¨)
  443. {
  444.     mov eax,38
  445.     mov bx,x
  446.     rol ebx,16
  447.     mov bx,x
  448.     add bx,w
  449.     mov cx,y
  450.     rol ecx,16
  451.     mov cx,y
  452.     mov edx,color
  453.     int 40h
  454.  
  455.     mov eax,38
  456.     mov bx,x
  457.     add bx,w
  458.     rol ebx,16
  459.     mov bx,x
  460.     add bx,w
  461.     mov cx,y
  462.     rol ecx,16
  463.     mov cx,y
  464.     add cx,h
  465.     mov edx,color
  466.     int 40h
  467.  
  468.     mov eax,38
  469.     mov bx,x
  470.     rol ebx,16
  471.     mov bx,x
  472.     add bx,w
  473.     mov cx,y
  474.     add cx,h
  475.     rol ecx,16
  476.     mov cx,y
  477.     add cx,h
  478.     mov edx,color
  479.     int 40h
  480.  
  481.     mov eax,38
  482.     mov bx,x
  483.     rol ebx,16
  484.     mov bx,x
  485.     mov cx,y
  486.     rol ecx,16
  487.     mov cx,y
  488.     add cx,h
  489.     mov edx,color
  490.     int 40h
  491. }
  492.  
  493.  
  494.  
  495. macro GetScreenSize          ;eax=[xsize]*0x10000+[ysize]. ‡­ ç¥­¨ï 㦥 㢥«¨ç¥­ë ­  1,â.¥.
  496. {                            ;xsize ¨ ysize ¬®£ãâ ¡ëâì à ¢­ë 1024 ¨ 768 (­ ¯à¨¬¥à)
  497.     mov eax,14
  498.     int 40h
  499.     add eax,00010001h
  500. }
  501.  
  502. macro RedrawDesktop
  503. {
  504.     mov eax,15
  505.     mov ebx,3
  506.     int 40h
  507. }
  508.  
  509. macro GetButtonPressed     ;eax=1(¯ãáâ®) ¨­ ç¥ al=0(LButton)¨«¨ ª®¤ ¤à㣮© ª­®¯ª¨ ¬ëè¨,
  510. {                          ; HI eax ¨ ah ᮤ¥à¦ â ­®¬¥à ª­®¯ª¨
  511.    mov eax,17
  512.    int 40h
  513. }
  514.  
  515. macro Minimize            ;void
  516. {
  517.     mov eax,18
  518.     mov ebx,10
  519.     int 40h
  520. }
  521.  
  522. macro SetMousePos x,y
  523. {
  524.      mov ecx,4
  525.      mov dx,x
  526.      rol edx,16
  527.      mov dx,y
  528.      mov eax,18
  529.      mov ebx,19
  530.      int 40h
  531. }
  532.  
  533. macro WaitMessageT time
  534. {
  535.      mov ebx,time
  536.      mov eax,23
  537.      int 40h
  538. }
  539.  
  540. macro SetDefaultFolder folder
  541. {
  542.     mov ecx,folder
  543.     mov eax,30
  544.     mov ebx,1
  545.     int 40h
  546. }
  547.  
  548. macro GetDefaultFolder folderBuf,sizeBuf
  549. {
  550.     mov ecx,folderBuf
  551.     moc edx,sizeBuf
  552.     mov eax,30
  553.     mov ebx,2
  554.     int 40h
  555. }
  556.  
  557. macro GetMousePos
  558. {
  559.      mov eax,37
  560.      xor ebx,ebx
  561.      int 40h
  562. }
  563.  
  564. macro GetMouseWinPos
  565. {
  566.      mov eax,37
  567.      mov ebx,1
  568.      int 40h
  569. }
  570.  
  571.  
  572. macro GetMouseKey
  573. {
  574.     mov eax,37
  575.     mov ebx,2
  576.     int 40h
  577. }
  578.  
  579. macro LoadCursorF path
  580. {
  581.     mov ecx,path
  582.     mov eax,37
  583.     mov ebx,4
  584.     mov dx,0
  585.     int 40h
  586. }
  587.  
  588. macro LoadCursorM cur
  589. {
  590.     mov ecx,cur
  591.     mov eax,37
  592.     mov ebx,4
  593.     mov dx,1
  594.     int 40h
  595. }
  596.  
  597. macro LoadCursorStruct cur,x,y
  598. {
  599.  ;   mov edx,x*1000000h+y*10000h+0002
  600.     mov edx,x
  601.     shl edx,24
  602.     xor ecx,ecx
  603.     mov cx,y
  604.     shl ecx,16
  605.     add edx,ecx
  606.     add edx,2
  607.     mov ecx,path
  608.     mov eax,37
  609.     mov ebx,4
  610.     int 40h
  611. }
  612.  
  613. macro SetCursor Handle
  614. {
  615.     mov ecx,Handle
  616.     mov eax,37
  617.     mov ebx,5
  618.     int 40h
  619. }
  620.  
  621.  
  622. macro DrawLine x1,y1,x2,y2,color
  623. {
  624.     mov bx,x1
  625.     rol ebx,16
  626.     mov bx,x2
  627.     mov cx,y1
  628.     rol ecx,16
  629.     mov cx,y2
  630.     mov edx,color
  631.     mov eax,38
  632.     int 40h
  633. }
  634.  
  635. macro SetMaskMessage Mask
  636. {
  637.     mov ebx,Mask
  638.     mov eax,40
  639.     int 40h
  640. }
  641.  
  642. macro DrawInt Int,Leng,x,y,color
  643. {
  644.     xor ecx,ecx
  645.     mov cx,Leng
  646.     shl ecx,16
  647.     add ebx,ecx
  648.  
  649.     mov ecx,Int
  650.     mov dx,x
  651.     rol edx,16
  652.     mov dx,y
  653.     mov esi,color
  654.     mov eax,47
  655.     mov ebx,080100000h   ;+Leng*10000h+0000
  656.     int 40h
  657. }
  658.  
  659. macro GetSkinH
  660. {
  661.     mov eax,48
  662.     mov ebx,4
  663.     int 40h
  664. }
  665.  
  666. macro CreateThread start,stack
  667. {
  668.    mov ecx,start
  669.    mov edx,stack
  670.    mov eax,51
  671.    mov ebx,1
  672.    int 40h
  673. }
  674.  
  675.  
  676.  
  677. macro SetKeyboardMode mode
  678. {
  679.    mov ecx,mode
  680.    mov eax,66
  681.    mov ebx,2
  682.    int 40h
  683. }
  684.  
  685. macro ResizeWindow x,y,w,h
  686. {
  687.    mov ebx,x
  688.    mov ecx,y
  689.    mov edx,w
  690.    mov esi,h
  691.    mov eax,67
  692.    int 40h
  693. }
  694.  
  695. macro InitMemory        ;eax=0(­¥ãᯥå) ¨«¨ à §¬¥à ªãç¨
  696. {
  697.     mov eax,68
  698.     mov ebx,11
  699.     int 40h
  700. }
  701.  
  702. macro GetMemory size  ;eax=Pointer
  703. {
  704.     mov ecx,size
  705.     mov ebx,12
  706.     mov eax,68
  707.     int 40h
  708. }
  709.  
  710. macro FreeMemory pointer   ;eax = 0/1 = false/true
  711. {
  712.     mov ecx,pointer
  713.     mov ebx,13
  714.     mov eax,68
  715.     int 40h
  716. }
  717.  
  718. macro ReallocMemory pointer,newsize
  719. {
  720.     mov edx,pointer
  721.     mov ecx,newsize
  722.     mov ebx,20
  723.     mov eax,68h
  724.     int 40h
  725. }
  726.  
  727. macro ReadFile Struc,path,n,Buffer,posL;,posH
  728. {
  729.     mov dword [Struc],0
  730.     mov dword [Struc+4],posL
  731.     mov dword [Struc+8],0;posH
  732.     mov dword [Struc+12],n
  733.     mov dword [Struc+16],Buffer
  734.     mov byte [Struc+20],0
  735.     mov dword [Struc+21],path
  736.     mov ebx,Struc
  737.     mov eax,70
  738.     int 40h
  739. }
  740.  
  741. macro CreateFile Struc,path,n,Buffer
  742. {
  743.     mov dword [Struc],2
  744.     mov dword [Struc+4],0
  745.     mov dword [Struc+8],0
  746.     mov dword [Struc+12],n
  747.     mov dword [Struc+16],Buffer
  748.     mov byte [Struc+20],0
  749.     mov dword [Struc+21],path
  750.     mov ebx,Struc
  751.     mov eax,70
  752.     int 40h
  753. }
  754.  
  755. macro WriteFile Struc,path,n,Buffer,posL;,posH
  756. {
  757.     mov dword [Struc],3
  758.     mov dword [Struc+4],posL
  759.     mov dword [Struc+8],0;posH
  760.     mov dword [Struc+12],n
  761.     mov dword [Struc+16],Buffer
  762.     mov byte [Struc+20],0
  763.     mov dword [Struc+21],path
  764.     mov ebx,Struc
  765.     mov eax,70
  766.     int 40h
  767.  
  768. }
  769.  
  770. macro SetFileSize Struc,path,sizeL;,sizeH
  771. {
  772.     mov dword [Struc],4
  773.     mov dword [Struc+4],sizeL
  774.     mov dword [Struc+8],0;sizeH
  775.     mov dword [Struc+12],0
  776.     mov dword [Struc+16],0
  777.     mov byte [Struc+20],0
  778.     mov dword [Struc+21],path
  779.     mov ebx,Struc
  780.     mov eax,70
  781.     int 40h
  782. }
  783.  
  784. macro GetFileInfo Struc,path,BufferInfo ;(40¡ ©â)
  785. {
  786.     mov dword [Struc],5
  787.     mov dword [Struc+4],0
  788.     mov dword [Struc+8],0
  789.     mov dword [Struc+12],0
  790.     mov dword [Struc+16],BufferInfo
  791.     mov byte [Struc+20],0
  792.     mov dword [Struc+21],path
  793.     mov ebx,Struc
  794.     mov eax,70
  795.     int 40h
  796. }
  797.  
  798. macro RunProgram Struc,path,params
  799. {
  800.     mov eax,70
  801.     mov ebx,Struc
  802.     mov dword [Struc],7
  803.     mov dword [Struc+4],0
  804.     mov dword [Struc+8],params
  805.     mov dword [Struc+12],0
  806.     mov dword [Struc+16],0
  807.     mov byte [Struc+20],0
  808.     mov dword [Struc+21],path
  809.     int 40h
  810. }
  811.  
  812. macro Remove Struc,path
  813. {
  814.     mov eax,70
  815.     mov ebx,Struc
  816.     mov dword [Struc],8
  817.     mov dword [Struc+4],0
  818.     mov dword [Struc+8],0
  819.     mov dword [Struc+12],0
  820.     mov dword [Struc+16],0
  821.     mov byte [Struc+20],0
  822.     mov dword [Struc+21],path
  823.     int 40h
  824. }
  825.  
  826. macro CreateFolder Struc,path
  827. {
  828.     mov eax,70
  829.     mov ebx,Struc
  830.     mov dword [Struc],9
  831.     mov dword [Struc+4],0
  832.     mov dword [Struc+8],0
  833.     mov dword [Struc+12],0
  834.     mov dword [Struc+16],0
  835.     mov byte [Struc+20],0
  836.     mov dword [Struc+21],path
  837.     int 40h
  838. }
  839.  
  840. macro SetWindowCaption caption
  841. {
  842.     mov eax,71
  843.     mov ebx,1
  844.     mov ecx,name
  845.     int 40h
  846. }
  847.  
  848. macro ExitThread
  849. {
  850.     mov eax,-1
  851.     int 40h
  852. }
  853.  
  854. ExitProcess fix ExitThread