19,19 → 19,19 |
|
call get_cursor_rect |
|
mov ebp,[0x3010] |
movsx esi,word[ebp-0x3000+0] |
mov ebp,[TASK_BASE] |
movsx esi,word[ebp-CURRENT_TASK+0] |
add eax,esi |
add ecx,esi |
movsx esi,word[ebp-0x3000+4] |
movsx esi,word[ebp-CURRENT_TASK+4] |
add ebx,esi |
add edx,esi |
; add eax,[ebp-0x3000+0] |
; add ebx,[ebp-0x3000+4] |
; add ecx,[ebp-0x3000+0] |
; add edx,[ebp-0x3000+4] |
; add eax,[ebp-CURRENT_TASK+0] |
; add ebx,[ebp-CURRENT_TASK+4] |
; add ecx,[ebp-CURRENT_TASK+0] |
; add edx,[ebp-CURRENT_TASK+4] |
|
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov ebp,[esi] |
or ebp,ebp |
52,14 → 52,14 |
mov edx,[rr.bottom] |
@@: call is_intersect_rc |
jc .put |
cmp [mouse_invisible],0 |
jne .put |
cmp byte[MOUSE_VISIBLE],0 |
je .put |
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
.put: mov ebp,[bytes_per_scanline] |
mov byte[MOUSE_VISIBLE],0 |
.put: mov ebp,[BytesPerScanLine] |
imul ebp,ebx |
lea ebp,[ebp+eax*4] |
add ebp,[lfb_address] |
add ebp,[LFBAddress] |
.xxx: push eax ebp |
@@: push ebp |
call [set_bank] |
71,7 → 71,7 |
cmp eax,ecx |
jl @b |
pop ebp eax |
add ebp,[bytes_per_scanline] |
add ebp,[BytesPerScanLine] |
inc ebx |
cmp ebx,edx |
jl .xxx |
115,7 → 115,7 |
dl.32.vert_line: |
test edi,1 |
jnz .forced |
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
139,14 → 139,14 |
.draw: |
@@: call is_intersect_vln |
jc .put |
cmp [mouse_invisible],0 |
jne .put |
cmp byte[MOUSE_VISIBLE],0 |
je .put |
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
.put: mov ebp,[bytes_per_scanline] |
mov byte[MOUSE_VISIBLE],0 |
.put: mov ebp,[BytesPerScanLine] |
imul ebp,ebx |
lea ebp,[ebp+eax*4] |
add ebp,[lfb_address] |
add ebp,[LFBAddress] |
@@: push ebp |
call [set_bank] |
test ecx,0x01000000 |
162,7 → 162,7 |
; not ecx |
; or ecx,0x01000000 |
; .dr: mov [ebp],ecx |
add ebp,[bytes_per_scanline] |
add ebp,[BytesPerScanLine] |
inc ebx |
cmp ebx,edx |
jle @b |
195,7 → 195,7 |
dl.32.horz_line: |
test edi,1 |
jnz .forced |
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
219,14 → 219,14 |
.draw: |
@@: call is_intersect_hln |
jc .put |
cmp [mouse_invisible],0 |
jne .put |
cmp byte[MOUSE_VISIBLE],0 |
je .put |
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
.put: mov ebp,[bytes_per_scanline] |
mov byte[MOUSE_VISIBLE],0 |
.put: mov ebp,[BytesPerScanLine] |
imul ebp,eax |
lea ebp,[ebp+ebx*4] |
add ebp,[lfb_address] |
add ebp,[LFBAddress] |
@@: push ebp |
call [set_bank] |
test ecx,0x01000000 |
285,10 → 285,10 |
begin |
pushad |
cli |
mov edx,[bytes_per_scanline] |
mov edx,[BytesPerScanLine] |
imul edx,ebx |
lea edx,[edx+eax*4] |
add edx,[lfb_address] |
add edx,[LFBAddress] |
; test ecx,0x01000000 |
; jz @f |
; mov ecx,[edx] |
295,7 → 295,7 |
; not ecx |
@@: test edi,1 |
jnz .forced |
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
308,10 → 308,10 |
call get_cursor_rect |
call is_intersect_pt |
jc .put |
cmp [mouse_invisible],0 |
jne .put |
cmp byte[MOUSE_VISIBLE],0 |
je .put |
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
mov byte[MOUSE_VISIBLE],0 |
.put: push edx |
call [set_bank] |
pop edx |
354,10 → 354,10 |
begin |
pushad |
cli |
imul ebx,[bytes_per_scanline] |
imul ebx,[BytesPerScanLine] |
shl eax,2 |
add eax,ebx |
add eax,[lfb_address] |
add eax,[LFBAddress] |
push eax |
call [set_bank] |
pop eax |
400,17 → 400,17 |
push edi |
add ecx,eax |
add edx,ebx |
mov edi,[0x00003010] |
movsx esi,word[edi-0x3000+0] |
mov edi,[TASK_BASE] |
movsx esi,word[edi-CURRENT_TASK+0] |
add eax,esi |
add ecx,esi |
movsx esi,word[edi-0x3000+4] |
movsx esi,word[edi-CURRENT_TASK+4] |
add ebx,esi |
add edx,esi |
; add eax,[esi-0x3000+0] |
; add ebx,[esi-0x3000+4] |
; add ecx,[esi-0x3000+0] |
; add edx,[esi-0x3000+4] |
; add eax,[esi-CURRENT_TASK+0] |
; add ebx,[esi-CURRENT_TASK+4] |
; add ecx,[esi-CURRENT_TASK+0] |
; add edx,[esi-CURRENT_TASK+4] |
|
; cmp eax,640 |
; jb @f |
417,7 → 417,7 |
; SHFLOW '%x %x %x %x',eax,ebx,ecx,edx |
; @@: |
|
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
439,10 → 439,10 |
mov edx,[rr.bottom] |
@@: call is_intersect_rc |
jc .put |
cmp [mouse_invisible],0 |
jne .put |
cmp byte[MOUSE_VISIBLE],0 |
je .put |
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
mov byte[MOUSE_VISIBLE],0 |
.put: mov esi,ebx |
sub esi,[esp+4*4] |
imul esi,[esp+4*8] |
451,10 → 451,10 |
lea edi,[edi*3] |
add esi,edi |
add esi,ebp |
mov edi,[bytes_per_scanline] |
mov edi,[BytesPerScanLine] |
imul edi,ebx |
lea edi,[edi+eax*4] |
add edi,[lfb_address] |
add edi,[LFBAddress] |
.xxx: push eax esi edi eax |
@@: lodsd |
|
470,7 → 470,7 |
jl @b |
pop eax edi esi eax |
add esi,[esp+4*8] |
add edi,[bytes_per_scanline] |
add edi,[BytesPerScanLine] |
inc ebx |
cmp ebx,edx |
jl .xxx |
498,14 → 498,14 |
je .tiled |
|
mov eax,[bg_width] |
cmp eax,[screen_width] |
cmp eax,[ScreenWidth] |
jne @f |
mov eax,[bg_height] |
cmp eax,[screen_height] |
cmp eax,[ScreenHeight] |
je .tiled |
@@: |
imul eax,[bg_width],3 |
mov [bg_bytes_per_scanline],eax |
mov [bg_BytesPerScanLine],eax |
|
mov eax,[viewport.left] |
mov ebx,[viewport.top] |
520,7 → 520,7 |
cli |
|
call [SF.draw_mouse_under] |
mov [mouse_invisible],1 |
mov byte[MOUSE_VISIBLE],0 |
|
mov esi,[CLIP_RECTS+4] |
mov ebp,[esi] |
546,23 → 546,23 |
;jne .put |
;call [SF.draw_mouse_under] |
;mov [mouse_invisible],1 |
.put: mov ebp,[bytes_per_scanline] |
.put: mov ebp,[BytesPerScanLine] |
imul ebp,ebx |
lea ebp,[ebp+eax*4] |
add ebp,[lfb_address] |
add ebp,[LFBAddress] |
.xxx: push eax ebp |
@@: push ebp |
call [set_bank] |
push eax edx |
mul [bg_width] |
div [screen_width] |
div dword[ScreenWidth] |
lea edi,[eax*3] |
mov eax,ebx |
mul [bg_height] |
div [screen_height] |
mul [bg_bytes_per_scanline] |
div dword[ScreenHeight] |
mul [bg_BytesPerScanLine] |
add edi,eax |
add edi,bg_address |
add edi,IMG_BACKGROUND |
mov eax,[edi] |
mov [ebp],eax |
pop edx eax |
572,7 → 572,7 |
cmp eax,ecx |
jl @b |
pop ebp eax |
add ebp,[bytes_per_scanline] |
add ebp,[BytesPerScanLine] |
inc ebx |
cmp ebx,edx |
jl .xxx |
588,7 → 588,7 |
retn |
|
.tiled: |
mov eax,bg_address |
mov eax,IMG_BACKGROUND |
mov ebx,[bg_width-2] |
mov bx,word[bg_height] |
xor ecx,ecx |
597,19 → 597,19 |
pop eax |
rol ecx,16 |
add cx,word[bg_width] |
cmp cx,word[screen_width] |
cmp cx,word[ScreenWidth] |
jae @f |
rol ecx,16 |
jmp .lp1 |
@@: shr ecx,16 |
add ecx,[bg_height] |
cmp ecx,[screen_height] |
cmp ecx,[ScreenHeight] |
jb .lp1 |
popad |
retn |
|
.color: |
mov edi,[bg_address] |
mov edi,[IMG_BACKGROUND] |
and edi,0x00FFFFFF |
call vm_mike_draw_rect.32 |
popad |