Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. SRV_GETVERSION   equ 0
  3. SOLID_FILL       equ 1
  4. LINE2P           equ 2
  5.  
  6. io.handle        equ esp
  7. io.code          equ esp+4
  8. io.input         equ esp+8
  9. io.inp_size      equ esp+12
  10. io.output        equ esp+16
  11. io.out_size      equ esp+20
  12.  
  13. IOSIZE           equ 24
  14.  
  15. ; retval
  16. ;  ebx= service version
  17. ;  eax= error code
  18. ;    0= no error
  19. ;   -1= common error
  20.  
  21. align 4
  22.  
  23. init_HDraw:
  24.            mov eax, 68
  25.            mov ebx, 16
  26.            mov ecx, szHDraw
  27.            int 0x40
  28.  
  29.            mov [HDraw], eax
  30.            test eax, eax
  31.            jz .fail
  32.  
  33.            push 0              ;storage for version
  34.            mov eax, esp
  35.            xor ebx, ebx
  36.  
  37.            push 4              ;.out_size
  38.            push eax            ;.output
  39.            push ebx            ;.inp_size
  40.            push ebx            ;.input
  41.            push SRV_GETVERSION ;.code
  42.            push [HDraw]        ;.handle
  43.  
  44.            mov eax, 68
  45.            mov ebx, 17
  46.            mov ecx, esp
  47.            int 0x40
  48.            add esp, IOSIZE
  49.            pop ebx             ;version
  50.            ret
  51. .fail:
  52.            or eax, -1
  53.            ret
  54.  
  55. ; param
  56. ;  eax= color
  57. ;  ebx= x
  58. ;  ecx= y
  59. ;  edx= w
  60. ;  esi= h
  61.  
  62. ; retval
  63. ;  eax= error code
  64.  
  65. align 4
  66. solid_fill:
  67.  
  68.            push esi
  69.            push edx
  70.            push ecx
  71.            push ebx
  72.            push eax
  73.  
  74.            xor eax, eax
  75.            mov ebx, esp        ;FILL
  76.  
  77.            push eax            ;.out_size
  78.            push eax            ;.output
  79.            push 5              ;.inp_size
  80.            push ebx            ;.input
  81.            push SOLID_FILL     ;.code
  82.            push [HDraw]        ;.handle
  83.  
  84.            mov eax, 68
  85.            mov ebx, 17
  86.            mov ecx, esp
  87.            int 0x40
  88.            add esp, (IOSIZE+5*4) ;io_control+FILL
  89.            ret
  90.  
  91. align 4
  92. line2p:
  93.            push esi            ;y2
  94.            push edx            ;x2
  95.            push ecx            ;y1
  96.            push ebx            ;x1
  97.            push eax            ;color
  98.  
  99.            xor eax, eax
  100.            mov ebx, esp        ;LINE2P
  101.  
  102.            push eax            ;.out_size
  103.            push eax            ;.output
  104.            push 5              ;.inp_size
  105.            push ebx            ;.input
  106.            push LINE2P         ;.code
  107.            push [HDraw]        ;.handle
  108.  
  109.            mov eax, 68
  110.            mov ebx, 17
  111.            mov ecx, esp
  112.            int 0x40
  113.            add esp, (IOSIZE+5*4) ;io_control+LINE2P
  114.            ret
  115.  
  116.  
  117. align 4
  118. HDraw      rd 1
  119.  
  120. szHDraw    db 'HDRAW',0
  121.  
  122.  
  123.