forked from KolibriOS/kolibrios
[KERNEL] Sysfn 15, 25, 39 (working with background graphics) moved from kernel.asm to gui/background.inc file
git-svn-id: svn://kolibrios.org@9486 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
8be74c2de6
commit
c8ddc27015
@ -2692,506 +2692,7 @@ sys_cachetodiskette:
|
|||||||
mov [esp + 32], dword 1
|
mov [esp + 32], dword 1
|
||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
uglobal
|
|
||||||
; bgrchanged dd 0x0
|
|
||||||
align 4
|
|
||||||
bgrlockpid dd 0
|
|
||||||
bgrlock db 0
|
|
||||||
endg
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
sys_background:
|
|
||||||
cmp ebx, 1 ; BACKGROUND SIZE
|
|
||||||
jnz nosb1
|
|
||||||
test ecx, ecx
|
|
||||||
jz sbgrr
|
|
||||||
|
|
||||||
test edx, edx
|
|
||||||
jz sbgrr
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
;;Maxis use atomic bts for mutexes 4.4.2009
|
|
||||||
bts dword [bgrlock], 0
|
|
||||||
jnc @f
|
|
||||||
call change_task
|
|
||||||
jmp @b
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov [BgrDataWidth], ecx
|
|
||||||
mov [BgrDataHeight], edx
|
|
||||||
; mov [bgrchanged],1
|
|
||||||
|
|
||||||
pushad
|
|
||||||
; return memory for old background
|
|
||||||
mov eax, [img_background]
|
|
||||||
cmp eax, static_background_data
|
|
||||||
jz @f
|
|
||||||
stdcall kernel_free, eax
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
; calculate RAW size
|
|
||||||
xor eax, eax
|
|
||||||
inc eax
|
|
||||||
cmp [BgrDataWidth], eax
|
|
||||||
jae @f
|
|
||||||
mov [BgrDataWidth], eax
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
cmp [BgrDataHeight], eax
|
|
||||||
jae @f
|
|
||||||
mov [BgrDataHeight], eax
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov eax, [BgrDataWidth]
|
|
||||||
imul eax, [BgrDataHeight]
|
|
||||||
lea eax, [eax*3]
|
|
||||||
; it is reserved with aligned to the boundary of 4 KB pages,
|
|
||||||
; otherwise there may be exceptions a page fault for vesa20_drawbackground_tiled
|
|
||||||
; because the 32 bit read is used for high performance: "mov eax,[esi]"
|
|
||||||
shr eax, 12
|
|
||||||
inc eax
|
|
||||||
shl eax, 12
|
|
||||||
mov [mem_BACKGROUND], eax
|
|
||||||
; get memory for new background
|
|
||||||
stdcall kernel_alloc, eax
|
|
||||||
test eax, eax
|
|
||||||
jz .memfailed
|
|
||||||
mov [img_background], eax
|
|
||||||
jmp .exit
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.memfailed:
|
|
||||||
; revert to static monotone data
|
|
||||||
mov [img_background], static_background_data
|
|
||||||
xor eax, eax
|
|
||||||
inc eax
|
|
||||||
mov [BgrDataWidth], eax
|
|
||||||
mov [BgrDataHeight], eax
|
|
||||||
mov [mem_BACKGROUND], 4
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.exit:
|
|
||||||
popad
|
|
||||||
mov [bgrlock], 0
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
sbgrr:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb1:
|
|
||||||
cmp ebx, 2 ; SET PIXEL
|
|
||||||
jnz nosb2
|
|
||||||
|
|
||||||
mov eax, [img_background]
|
|
||||||
test ecx, ecx
|
|
||||||
jz @f
|
|
||||||
cmp eax, static_background_data
|
|
||||||
jz .ret
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov ebx, [mem_BACKGROUND]
|
|
||||||
add ebx, 4095
|
|
||||||
and ebx, -4096
|
|
||||||
sub ebx, 4
|
|
||||||
cmp ecx, ebx
|
|
||||||
ja .ret
|
|
||||||
|
|
||||||
mov ebx, [eax+ecx]
|
|
||||||
and ebx, 0xFF000000;255*256*256*256
|
|
||||||
and edx, 0x00FFFFFF;255*256*256+255*256+255
|
|
||||||
add edx, ebx
|
|
||||||
mov [eax+ecx], edx
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.ret:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb2:
|
|
||||||
cmp ebx, 3 ; DRAW BACKGROUND
|
|
||||||
jnz nosb3
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
draw_background_temp:
|
|
||||||
mov [background_defined], 1
|
|
||||||
call force_redraw_background
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb31:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb3:
|
|
||||||
cmp ebx, 4 ; TILED / STRETCHED
|
|
||||||
jnz nosb4
|
|
||||||
cmp ecx, [BgrDrawMode]
|
|
||||||
je nosb41
|
|
||||||
mov [BgrDrawMode], ecx
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb41:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb4:
|
|
||||||
cmp ebx, 5 ; BLOCK MOVE TO BGR
|
|
||||||
jnz nosb5
|
|
||||||
|
|
||||||
; add check pointer
|
|
||||||
stdcall is_region_userspace, ecx, esi
|
|
||||||
jnz .fin
|
|
||||||
|
|
||||||
cmp [img_background], static_background_data
|
|
||||||
jnz @f
|
|
||||||
test edx, edx
|
|
||||||
jnz .fin
|
|
||||||
cmp esi, 4
|
|
||||||
ja .fin
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
; bughere
|
|
||||||
mov eax, ecx
|
|
||||||
mov ebx, edx
|
|
||||||
add ebx, [img_background];IMG_BACKGROUND
|
|
||||||
mov ecx, esi
|
|
||||||
call memmove
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.fin:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb5:
|
|
||||||
cmp ebx, 6
|
|
||||||
jnz nosb6
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
;;Maxis use atomic bts for mutex 4.4.2009
|
|
||||||
@@:
|
|
||||||
bts dword [bgrlock], 0
|
|
||||||
jnc @f
|
|
||||||
call change_task
|
|
||||||
jmp @b
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov eax, [current_slot_idx]
|
|
||||||
mov [bgrlockpid], eax
|
|
||||||
cmp [img_background], static_background_data
|
|
||||||
jz .nomem
|
|
||||||
stdcall user_alloc, [mem_BACKGROUND]
|
|
||||||
mov [esp+32], eax
|
|
||||||
test eax, eax
|
|
||||||
jz .nomem
|
|
||||||
mov ebx, eax
|
|
||||||
shr ebx, 12
|
|
||||||
or dword [page_tabs+(ebx-1)*4], MEM_BLOCK_DONT_FREE
|
|
||||||
mov esi, [img_background]
|
|
||||||
shr esi, 12
|
|
||||||
mov ecx, [mem_BACKGROUND]
|
|
||||||
add ecx, 0xFFF
|
|
||||||
shr ecx, 12
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.z:
|
|
||||||
mov eax, [page_tabs+ebx*4]
|
|
||||||
test al, 1
|
|
||||||
jz @f
|
|
||||||
call free_page
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov eax, [page_tabs+esi*4]
|
|
||||||
or al, PG_UWR
|
|
||||||
mov [page_tabs+ebx*4], eax
|
|
||||||
mov eax, ebx
|
|
||||||
shl eax, 12
|
|
||||||
invlpg [eax]
|
|
||||||
inc ebx
|
|
||||||
inc esi
|
|
||||||
loop .z
|
|
||||||
ret
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.nomem:
|
|
||||||
and [bgrlockpid], 0
|
|
||||||
mov [bgrlock], 0
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb6:
|
|
||||||
cmp ebx, 7
|
|
||||||
jnz nosb7
|
|
||||||
cmp [bgrlock], 0
|
|
||||||
jz .err
|
|
||||||
mov eax, [current_slot_idx]
|
|
||||||
cmp [bgrlockpid], eax
|
|
||||||
jnz .err
|
|
||||||
mov eax, ecx
|
|
||||||
mov ebx, ecx
|
|
||||||
shr eax, 12
|
|
||||||
mov ecx, [page_tabs+(eax-1)*4]
|
|
||||||
test cl, MEM_BLOCK_USED or MEM_BLOCK_DONT_FREE
|
|
||||||
jz .err
|
|
||||||
jnp .err
|
|
||||||
push eax
|
|
||||||
shr ecx, 12
|
|
||||||
dec ecx
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
and dword [page_tabs+eax*4], 0
|
|
||||||
mov edx, eax
|
|
||||||
shl edx, 12
|
|
||||||
push eax
|
|
||||||
invlpg [edx]
|
|
||||||
pop eax
|
|
||||||
inc eax
|
|
||||||
loop @b
|
|
||||||
pop eax
|
|
||||||
and dword [page_tabs+(eax-1)*4], not MEM_BLOCK_DONT_FREE
|
|
||||||
stdcall user_free, ebx
|
|
||||||
mov [esp+32], eax
|
|
||||||
and [bgrlockpid], 0
|
|
||||||
mov [bgrlock], 0
|
|
||||||
ret
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.err:
|
|
||||||
and dword [esp+32], 0
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb7:
|
|
||||||
cmp ebx, 8
|
|
||||||
jnz nosb8
|
|
||||||
|
|
||||||
mov ecx, [current_slot]
|
|
||||||
xor eax, eax
|
|
||||||
xchg eax, [ecx+APPDATA.draw_bgr_x]
|
|
||||||
mov [esp + 32], eax ; eax = [left]*65536 + [right]
|
|
||||||
xor eax, eax
|
|
||||||
xchg eax, [ecx+APPDATA.draw_bgr_y]
|
|
||||||
mov [esp + 20], eax ; ebx = [top]*65536 + [bottom]
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb8:
|
|
||||||
cmp ebx, 9
|
|
||||||
jnz nosb9
|
|
||||||
; ecx = [left]*65536 + [right]
|
|
||||||
; edx = [top]*65536 + [bottom]
|
|
||||||
mov eax, [_display.width]
|
|
||||||
mov ebx, [_display.height]
|
|
||||||
; check [right]
|
|
||||||
cmp cx, ax
|
|
||||||
jae .exit
|
|
||||||
; check [left]
|
|
||||||
ror ecx, 16
|
|
||||||
cmp cx, ax
|
|
||||||
jae .exit
|
|
||||||
; check [bottom]
|
|
||||||
cmp dx, bx
|
|
||||||
jae .exit
|
|
||||||
; check [top]
|
|
||||||
ror edx, 16
|
|
||||||
cmp dx, bx
|
|
||||||
jae .exit
|
|
||||||
|
|
||||||
movzx eax, cx ; [left]
|
|
||||||
movzx ebx, dx ; [top]
|
|
||||||
|
|
||||||
shr ecx, 16 ; [right]
|
|
||||||
shr edx, 16 ; [bottom]
|
|
||||||
|
|
||||||
mov [background_defined], 1
|
|
||||||
|
|
||||||
mov [draw_data+32 + RECT.left], eax
|
|
||||||
mov [draw_data+32 + RECT.top], ebx
|
|
||||||
|
|
||||||
mov [draw_data+32 + RECT.right], ecx
|
|
||||||
mov [draw_data+32 + RECT.bottom], edx
|
|
||||||
|
|
||||||
inc [REDRAW_BACKGROUND]
|
|
||||||
call wakeup_osloop
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.exit:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
nosb9:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
uglobal
|
|
||||||
BG_Rect_X_left_right dd 0x0
|
|
||||||
BG_Rect_Y_top_bottom dd 0x0
|
|
||||||
endg
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
force_redraw_background:
|
|
||||||
and [draw_data+32 + RECT.left], 0
|
|
||||||
and [draw_data+32 + RECT.top], 0
|
|
||||||
push eax ebx
|
|
||||||
mov eax, [_display.width]
|
|
||||||
mov ebx, [_display.height]
|
|
||||||
dec eax
|
|
||||||
dec ebx
|
|
||||||
mov [draw_data+32 + RECT.right], eax
|
|
||||||
mov [draw_data+32 + RECT.bottom], ebx
|
|
||||||
pop ebx eax
|
|
||||||
inc [REDRAW_BACKGROUND]
|
|
||||||
call wakeup_osloop
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
sys_getbackground: ; sysfn 39
|
|
||||||
dec ebx
|
|
||||||
jnz .nogb1
|
|
||||||
; sysfn 39.1:
|
|
||||||
mov eax, [BgrDataWidth]
|
|
||||||
shl eax, 16
|
|
||||||
mov ax, word [BgrDataHeight]
|
|
||||||
mov [esp+32], eax
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
.nogb1:
|
|
||||||
dec ebx
|
|
||||||
jnz .nogb2
|
|
||||||
; sysfn 39.2:
|
|
||||||
mov eax, [img_background]
|
|
||||||
test ecx, ecx
|
|
||||||
jz @f
|
|
||||||
cmp eax, static_background_data
|
|
||||||
jz .ret
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
mov ebx, [mem_BACKGROUND]
|
|
||||||
add ebx, 4095
|
|
||||||
and ebx, -4096
|
|
||||||
sub ebx, 4
|
|
||||||
cmp ecx, ebx
|
|
||||||
ja .ret
|
|
||||||
|
|
||||||
mov eax, [ecx+eax]
|
|
||||||
|
|
||||||
and eax, 0xFFFFFF
|
|
||||||
mov [esp+32], eax
|
|
||||||
align 4
|
|
||||||
.ret:
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
.x dd ?
|
|
||||||
.y dd ?
|
|
||||||
.w dd ?
|
|
||||||
.h dd ?
|
|
||||||
.subrect_startptr dd ?
|
|
||||||
.subrect_bytes dd ?
|
|
||||||
align 4
|
|
||||||
.nogb2:
|
|
||||||
dec ebx
|
|
||||||
jnz .nogb3
|
|
||||||
; sysfn 39.3 read background subrect to buffer
|
|
||||||
; ecx - <x, y>
|
|
||||||
; edx - <w, h>
|
|
||||||
; esi - buffer of 0x00RRGGBB
|
|
||||||
mov eax, [img_background]
|
|
||||||
cmp eax, static_background_data
|
|
||||||
jz .ret_39_3
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
movzx eax, cx ; store y in eax
|
|
||||||
mov [.y], eax
|
|
||||||
|
|
||||||
shr ecx, 16 ; ecx = x
|
|
||||||
mov [.x], ecx
|
|
||||||
|
|
||||||
imul eax, [BgrDataWidth]
|
|
||||||
add eax, ecx
|
|
||||||
imul eax, 3
|
|
||||||
mov [.subrect_startptr], eax
|
|
||||||
|
|
||||||
movzx eax, dx ; store h in eax
|
|
||||||
mov [.h], eax
|
|
||||||
|
|
||||||
shr edx, 16 ; edx = w
|
|
||||||
mov [.w], edx
|
|
||||||
|
|
||||||
imul eax, edx
|
|
||||||
mov [.subrect_bytes], eax
|
|
||||||
|
|
||||||
; check bounds
|
|
||||||
mov ebx, [mem_BACKGROUND]
|
|
||||||
add ebx, 4095
|
|
||||||
and ebx, -4096
|
|
||||||
sub ebx, 4
|
|
||||||
add eax, [.subrect_startptr]
|
|
||||||
cmp eax, ebx
|
|
||||||
ja .fail_39_3
|
|
||||||
|
|
||||||
; copy contents
|
|
||||||
mov edi, [img_background]
|
|
||||||
xor ecx, ecx ; ecx - row index
|
|
||||||
.copy_rect:
|
|
||||||
cmp ecx, [.h]
|
|
||||||
jae .end_copy_rect
|
|
||||||
|
|
||||||
xor edx, edx ; edx - column index
|
|
||||||
.copy_row:
|
|
||||||
cmp edx, [.w]
|
|
||||||
jae .end_copy_row
|
|
||||||
|
|
||||||
mov ebx, ecx
|
|
||||||
imul ebx, [BgrDataWidth]
|
|
||||||
add ebx, edx
|
|
||||||
imul ebx, 3
|
|
||||||
add ebx, [.subrect_startptr]
|
|
||||||
mov eax, [edi + ebx]
|
|
||||||
mov ebx, ecx
|
|
||||||
imul ebx, [.w]
|
|
||||||
add ebx, edx
|
|
||||||
and eax, 0xFFFFFF
|
|
||||||
mov [esi + ebx*4], eax
|
|
||||||
|
|
||||||
inc edx
|
|
||||||
jmp .copy_row
|
|
||||||
.end_copy_row:
|
|
||||||
|
|
||||||
inc ecx
|
|
||||||
jmp .copy_rect
|
|
||||||
.end_copy_rect:
|
|
||||||
xor eax, eax
|
|
||||||
mov [esp+32], eax
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.fail_39_3:
|
|
||||||
mov eax, -1
|
|
||||||
align 4
|
|
||||||
.ret_39_3:
|
|
||||||
ret
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.nogb3:
|
|
||||||
dec ebx
|
|
||||||
jnz .nogb4
|
|
||||||
; sysfn 39.4:
|
|
||||||
mov eax, [BgrDrawMode]
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.nogb4:
|
|
||||||
mov [esp+32], eax
|
|
||||||
ret
|
|
||||||
;------------------------------------------------------------------------------
|
|
||||||
align 4
|
align 4
|
||||||
sys_getkey:
|
sys_getkey:
|
||||||
mov [esp + 32], dword 1
|
mov [esp + 32], dword 1
|
||||||
@ -5465,96 +4966,6 @@ align 4
|
|||||||
dec edx
|
dec edx
|
||||||
jnz .start_y
|
jnz .start_y
|
||||||
|
|
||||||
.exit:
|
|
||||||
popad
|
|
||||||
ret
|
|
||||||
;-----------------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
syscall_putarea_backgr:
|
|
||||||
;eax = 25
|
|
||||||
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
|
||||||
;ecx = [size x]*65536 + [size y]
|
|
||||||
;edx = [start x]*65536 + [start y]
|
|
||||||
pushad
|
|
||||||
mov edi, ebx
|
|
||||||
mov eax, edx
|
|
||||||
shr eax, 16
|
|
||||||
mov ebx, edx
|
|
||||||
and ebx, 0xffff
|
|
||||||
dec eax
|
|
||||||
dec ebx
|
|
||||||
; eax - x, ebx - y
|
|
||||||
mov edx, ecx
|
|
||||||
shr ecx, 16
|
|
||||||
and edx, 0xffff
|
|
||||||
mov esi, ecx
|
|
||||||
; ecx - size x, edx - size y
|
|
||||||
mov ebp, edx
|
|
||||||
|
|
||||||
lea ebp, [ebp*4]
|
|
||||||
imul ebp, esi
|
|
||||||
stdcall is_region_userspace, edi, ebp
|
|
||||||
jnz .exit
|
|
||||||
|
|
||||||
mov ebp, edx
|
|
||||||
|
|
||||||
dec ebp
|
|
||||||
shl ebp, 2
|
|
||||||
|
|
||||||
imul ebp, esi
|
|
||||||
|
|
||||||
mov esi, ecx
|
|
||||||
dec esi
|
|
||||||
shl esi, 2
|
|
||||||
|
|
||||||
add ebp, esi
|
|
||||||
add ebp, edi
|
|
||||||
|
|
||||||
add ebx, edx
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.start_y:
|
|
||||||
push ecx edx
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.start_x:
|
|
||||||
push eax ecx
|
|
||||||
add eax, ecx
|
|
||||||
|
|
||||||
mov ecx, [ebp]
|
|
||||||
rol ecx, 8
|
|
||||||
test cl, cl ; transparensy = 0
|
|
||||||
jz .no_put
|
|
||||||
|
|
||||||
xor cl, cl
|
|
||||||
ror ecx, 8
|
|
||||||
|
|
||||||
pushad
|
|
||||||
mov edx, [d_width_calc_area + ebx*4]
|
|
||||||
add edx, [_display.win_map]
|
|
||||||
movzx edx, byte [eax+edx]
|
|
||||||
cmp dl, byte 1
|
|
||||||
jne @f
|
|
||||||
|
|
||||||
call dword [PUTPIXEL]; eax - x, ebx - y
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
@@:
|
|
||||||
popad
|
|
||||||
;--------------------------------------
|
|
||||||
align 4
|
|
||||||
.no_put:
|
|
||||||
pop ecx eax
|
|
||||||
|
|
||||||
sub ebp, 4
|
|
||||||
dec ecx
|
|
||||||
jnz .start_x
|
|
||||||
|
|
||||||
pop edx ecx
|
|
||||||
dec ebx
|
|
||||||
dec edx
|
|
||||||
jnz .start_y
|
|
||||||
|
|
||||||
.exit:
|
.exit:
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
@ -47,6 +47,7 @@ include "gui/font.inc"
|
|||||||
include "gui/button.inc"
|
include "gui/button.inc"
|
||||||
include "gui/mouse.inc" ; cursor
|
include "gui/mouse.inc" ; cursor
|
||||||
include "gui/skincode.inc" ; windows' skin
|
include "gui/skincode.inc" ; windows' skin
|
||||||
|
include "gui/background.inc"
|
||||||
|
|
||||||
include "hid/keyboard.inc"
|
include "hid/keyboard.inc"
|
||||||
include "hid/mousedrv.inc"
|
include "hid/mousedrv.inc"
|
||||||
|
Loading…
Reference in New Issue
Block a user