366,11 → 366,12 |
.00: |
|
; redraw display |
xor eax,eax |
inc ebx |
cmp [windowtypechanged],dword ebx ;ebx=1 |
test ecx, ecx |
jnz .01 |
inc ecx |
cmp [windowtypechanged],dword ecx ;ebx=1 |
jne .fail |
mov [windowtypechanged],dword eax ;eax=0 |
mov [windowtypechanged],dword ebx ;eax=0 |
.redraw_screen_direct: |
xor eax,eax |
mov [dlx],dword eax |
380,6 → 381,8 |
mov eax,[Screen_Max_Y] |
mov [dlye],eax |
mov eax,window_data |
;maybe use jmp? |
; call redrawscreen |
jmp redrawscreen |
.fail: |
ret |
397,6 → 400,9 |
; set common window colours |
dec ebx |
mov [windowtypechanged],dword ebx ;eax=1 |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ecx,[esi] |
mov esi,ecx |
and edx,127 |
mov edi,common_colours |
407,6 → 413,9 |
|
.03: |
; get common window colours |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ecx,[esi] |
mov edi,ecx |
and edx,127 |
mov esi,common_colours |
433,15 → 442,15 |
|
.06: |
; set screen workarea |
mov edi,dword[Screen_Max_X] |
movsx eax,word[esp+28+2] ;ecx in the stack |
movsx ebx,word[esp+28] |
; pushad |
movsx eax,word[esp+16+2+12] ;ecx in the stack |
movsx ebx,word[esp+16+12] |
cmp eax,ebx |
jge .lp1 |
or eax,eax;[Screen_Max_X] |
jl @f |
mov [screen_workarea.left],eax |
@@: cmp ebx,edi ;[Screen_Max_X] |
@@: cmp ebx,[Screen_Max_X] |
jg .lp1 |
mov [screen_workarea.right],ebx |
.lp1: movsx eax,word[esp+24+2] ;edx in the stack |
451,7 → 460,7 |
or eax,eax;[0xFE04] |
jl @f |
mov [screen_workarea.top],eax |
@@: cmp ebx,edi ;[Screen_Max_Y] |
@@: cmp ebx,[Screen_Max_Y] |
jg .lp2 |
mov [screen_workarea.bottom],ebx |
.lp2: call repos_windows |
459,7 → 468,12 |
xor ebx, ebx |
mov ecx, [Screen_Max_X] |
mov edx, [Screen_Max_Y] |
; call calculatescreen |
jmp calculatescreen |
; jmp redraw_screen_direct |
; .exit: |
; popad |
; ret |
|
.07: |
; get skin margins |