Subversion Repositories Kolibri OS

Rev

Rev 1768 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #code32 TRUE
  2.  
  3. char   os_name[8]   = {'M','E','N','U','E','T','0','1'};
  4. dword  os_version   = 0x00000001;
  5. dword  start_addr   = #main;
  6. dword  final_addr   = #stop+32;
  7. dword  alloc_mem    = 0x00004096;
  8. dword  x86esp_reg   = 0x00004096;
  9. dword  I_Param      = 0x0;
  10. dword  I_Icon       = 0x0;
  11.  
  12. #define evButton  3
  13. #define evKey     2
  14. #define evReDraw  1
  15.  
  16. #define BT_DEL          0x80000000
  17. #define BT_HIDE 0x40000000
  18. #define BT_NOFRAME      0x20000000
  19.  
  20.  
  21. struct proc_info{
  22.         dword   use_cpu;
  23.         word    pos_in_stack,num_slot,rezerv1;
  24.         char    name[11];
  25.         char    rezerv2;
  26.         dword   adress,use_memory,ID,left,top,width,height;
  27.         word    status_slot,rezerv3;
  28.         dword   work_left,work_top,work_width,work_height;
  29.         char    status_window;
  30.         void    GetInfo(dword ECX);
  31.         byte    reserved[1024-71];
  32. #define SelfInfo -1
  33. };
  34.  
  35. void proc_info::GetInfo(dword ECX)
  36. {
  37.         EAX = 9;
  38.         EBX = #use_cpu;
  39.         $int  0x40
  40. }
  41.  
  42. struct system_colors{
  43.         dword frame,grab,grab_button,grab_button_text,grab_text,work,work_button,work_button_text,work_text,work_graph;
  44.         void get();
  45. };
  46. void system_colors::get()
  47. {
  48.         EAX = 48;
  49.         EBX = 3;
  50.         ECX = #frame;
  51.         EDX = 40;
  52.         $int    0x40
  53. }
  54.  
  55. inline fastcall dword WaitEvent(){
  56.  EAX = 10;              // wait here for event
  57.  $int 0x40
  58. }
  59.  
  60.  
  61. inline fastcall void ExitProcess(){
  62.  EAX = -1;              // close this program
  63.  $int 0x40
  64. }
  65.  
  66. inline fastcall byte GetKey(){
  67.  EAX = 2;              // just read it key from buffer
  68.  $int  0x40
  69.  EAX = EAX >> 8;
  70. }
  71.  
  72. inline fastcall byte GetButtonID(){
  73.  EAX = 17;            // Get ID
  74.  $int  0x40
  75.  EAX = EAX >> 8;
  76. }
  77.  
  78. inline fastcall dword GetSkinWidth()
  79. {
  80.         EAX = 48;
  81.         EBX = 4;
  82.         $int 0x40
  83. }
  84.  
  85.  
  86. void DefineButton(dword x,y,w,h,EDX,ESI)
  87. {
  88.         EAX = 8;
  89.         EBX = x<<16+w;
  90.         ECX = y<<16+h;
  91.         $int 0x40
  92. }
  93.  
  94. inline fastcall void DeleteButton(dword EDX)
  95. {
  96.         EAX = 8;
  97.         EDX += BT_DEL;
  98.         $int 0x40;
  99. }
  100.  
  101.  
  102.  
  103. inline fastcall void WindowRedrawStatus(dword EBX){
  104.         EAX = 12;
  105.         $int 0x40
  106. }
  107.  
  108.  
  109. void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI)
  110. {
  111.         WindowRedrawStatus(1);
  112.         EAX = 0;
  113.         EBX = x << 16 + sizeX;
  114.         ECX = y << 16 + sizeY;
  115.         EDX = mainAreaType << 24 | mainAreaColour;
  116.         ESI = headerType << 24 | headerColour;
  117.         $int 0x40
  118.         WindowRedrawStatus(2);
  119. }
  120.  
  121.  
  122. void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
  123. {
  124.         EAX = 4;
  125.         EBX = x<<16+y;
  126.         ECX = fontType<<24+color;
  127.         $int 0x40;
  128. }
  129.  
  130.  
  131. void DrawBar(dword x,y,w,h,EDX)
  132. {
  133.         EAX = 13;
  134.         EBX = x<<16+w;
  135.         ECX = y<<16+h;
  136.         $int 0x40
  137. }
  138.  
  139.  
  140. void PutImage(dword EBX,w,h,x,y)
  141. {
  142.         EAX = 7;
  143.         ECX = w<<16+h;
  144.         EDX = x<<16+y;
  145.         $int 0x40
  146. }
  147.  
  148.  
  149. void copystr(dword s,d)
  150. {
  151.         $mov esi,s
  152.         $mov edi,d
  153.         $cld
  154. l1:
  155.         $lodsb
  156.         $stosb
  157.         $test al,al
  158.         $jnz l1
  159. }
  160.  
  161. void WriteNumber(dword x,y,byte fontType, ESI, ECX)
  162. {
  163.         EAX = 47;
  164.         EBX = 2<<16;
  165.         EDX = x<<16+y;
  166.         ESI = fontType<<24+ESI;
  167.         $int 0x40;
  168. }  
  169.