fix bug in sysfn 7

git-svn-id: svn://kolibrios.org@9949 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Doczom 2023-10-23 12:53:06 +00:00
parent 6643206b73
commit b9d43b416f
3 changed files with 24 additions and 23 deletions

View File

@ -387,7 +387,7 @@ get_event_queue:
;info: ;info:
; client testing function for get_event_ex ; client testing function for get_event_ex
;warning: ;warning:
; -don't use [TASK_BASE],[current_slot],[current_slot_idx] - it is not for your slot ; -don't use [current_slot],[current_slot_idx] - it is not for your slot
; -may be assumed, that interrupt are disabled ; -may be assumed, that interrupt are disabled
; -it is not restriction for scratched registers ; -it is not restriction for scratched registers
;param: ;param:
@ -408,7 +408,7 @@ get_event_alone:
;info: ;info:
; client testing function for wait_event ; client testing function for wait_event
;warning: ;warning:
; -don't use [TASK_BASE],[current_slot],[current_slot_idx] - it is not for your slot ; -don't use [current_slot],[current_slot_idx] - it is not for your slot
; -may be assumed, that interrupt are disabled ; -may be assumed, that interrupt are disabled
; -it is not restriction for scratched registers ; -it is not restriction for scratched registers
;param: ;param:
@ -500,7 +500,7 @@ get_event_for_app: ;; used from f10,f11,f23
;info: ;info:
; client testing function for applications (f10,f23) ; client testing function for applications (f10,f23)
;warning: ;warning:
; -don't use [TASK_BASE],[current_slot],[current_slot_idx] - it is not for your slot ; -don't use [current_slot],[current_slot_idx] - it is not for your slot
; -may be assumed, that interrupt are disabled ; -may be assumed, that interrupt are disabled
; -it is not restriction for scratched registers ; -it is not restriction for scratched registers
;param: ;param:

View File

@ -2131,14 +2131,15 @@ sysfn_zmodif:
mov eax, edx mov eax, edx
shl edx, BSF sizeof.WDATA shl edx, BSF sizeof.WDATA
add edx, window_data
test [window_data + edx + WDATA.fl_wstate], WSTATE_USED test [edx + WDATA.fl_wstate], WSTATE_USED
jz .fail jz .fail
cmp ecx, 1 cmp ecx, 1
jnz .set_zmod jnz .set_zmod
mov al, [window_data + edx + WDATA.z_modif] movzx eax, [edx + WDATA.z_modif]
jmp .exit jmp .exit
.set_zmod: .set_zmod:
@ -2151,12 +2152,12 @@ sysfn_zmodif:
cmp bl, ZPOS_ALWAYS_TOP cmp bl, ZPOS_ALWAYS_TOP
jg .fail jg .fail
mov [window_data + edx + WDATA.z_modif], bl mov [edx + WDATA.z_modif], bl
mov eax, [window_data + edx + WDATA.box.left] mov eax, [edx + WDATA.box.left]
mov ebx, [window_data + edx + WDATA.box.top] mov ebx, [edx + WDATA.box.top]
mov ecx, [window_data + edx + WDATA.box.width] mov ecx, [edx + WDATA.box.width]
mov edx, [window_data + edx + WDATA.box.height] mov edx, [edx + WDATA.box.height]
add ecx, eax add ecx, eax
add edx, ebx add edx, ebx
call window._.set_screen call window._.set_screen
@ -3541,7 +3542,7 @@ align 4
align 4 align 4
@@: @@:
mov edi, [current_slot] mov edi, [current_slot]
mov edi, APPDATA.window mov edi, [edi + APPDATA.window]
add dx, word[edi + WDATA.clientbox.top] add dx, word[edi + WDATA.clientbox.top]
rol edx, 16 rol edx, 16
add dx, word[edi + WDATA.clientbox.left] add dx, word[edi + WDATA.clientbox.left]
@ -3579,11 +3580,11 @@ sys_putimage_palette:
pop esi ecx pop esi ecx
jnz sys_putimage.exit jnz sys_putimage.exit
mov eax, [current_slot_idx] mov eax, [current_slot]
shl eax, BSF sizeof.WDATA mov eax, [eax + APPDATA.window]
add dx, word [window_data + eax + WDATA.clientbox.top] add dx, word [eax + WDATA.clientbox.top]
rol edx, 16 rol edx, 16
add dx, word [window_data + eax + WDATA.clientbox.left] add dx, word [eax + WDATA.clientbox.left]
rol edx, 16 rol edx, 16
;-------------------------------------- ;--------------------------------------
align 4 align 4
@ -3892,12 +3893,12 @@ putimage_get16bpp:
; edx y end ; edx y end
; edi color ; edi color
;__sys_drawbar: ;__sys_drawbar:
; mov esi, [current_slot_idx] ; mov esi, [current_slot]
; shl esi, BSF sizeof.WDATA ; mov esi, [esi + APPDATA.window]
; add eax, [window_data+esi+WDATA.clientbox.left] ; add eax, [esi + WDATA.clientbox.left]
; add ecx, [window_data+esi+WDATA.clientbox.left] ; add ecx, [esi + WDATA.clientbox.left]
; add ebx, [window_data+esi+WDATA.clientbox.top] ; add ebx, [esi + WDATA.clientbox.top]
; add edx, [window_data+esi+WDATA.clientbox.top] ; add edx, [esi + WDATA.clientbox.top]
;-------------------------------------- ;--------------------------------------
;align 4 ;align 4
;.forced: ;.forced:

View File

@ -256,8 +256,8 @@ vesa12_drawbackground:
mov ebx, 3 mov ebx, 3
mul ebx mul ebx
mov [imax], eax mov [imax], eax
mov eax, [draw_data+32+RECT.left] mov eax, [background_window + WDATA.draw_data.left]
mov ebx, [draw_data+32+RECT.top] mov ebx, [background_window + WDATA.draw_data.top]
xor edi, edi;no force xor edi, edi;no force
v12dp3: v12dp3: