56,19 → 56,19 |
mov edi,eax |
pop eax |
|
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 |
89,10 → 89,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: sub edx,ebx |
push edx edi ebx eax |
mov edi,ebx |
101,7 → 101,7 |
add edi,ebx |
shr eax,3 |
add edi,eax |
add edi,0x000A0000 |
add edi,VGABasePtr |
pop eax ebx |
|
mov ebx,eax |
274,7 → 274,7 |
|
test edi,1 |
jnz .forced |
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
298,10 → 298,10 |
.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 |
mov byte[MOUSE_VISIBLE],0 |
.put: push ebx eax |
mov ebp,ebx |
shl ebp,6 |
309,7 → 309,7 |
add ebp,ebx |
shr eax,3 |
add ebp,eax |
add ebp,0x000A0000 |
add ebp,VGABasePtr |
pop eax ebx |
@@: mov ch,[ebp] |
mov [ebp],cl |
349,7 → 349,7 |
mov ecx,[esp+4*8] |
test edi,1 |
jnz .forced |
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
373,10 → 373,10 |
.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 |
mov byte[MOUSE_VISIBLE],0 |
.put: push edi ebx eax |
mov edi,eax |
shl edi,6 |
384,7 → 384,7 |
add edi,eax |
shr ebx,3 |
add edi,ebx |
add edi,0x000A0000 |
add edi,VGABasePtr |
pop eax ebx |
|
push eax ebx edx esi ecx |
464,10 → 464,10 |
.D_End: |
pop ecx esi edx ebx eax edi |
|
; mov ebp,[bytes_per_scanline] |
; mov ebp,[BytesPerScanLine] |
; imul ebp,eax |
; lea ebp,[ebp+ebx*4] |
; add ebp,[lfb_address] |
; add ebp,[LFBAddress] |
; @@: test ecx,0x01000000 |
; jz .dr |
; mov ecx,[ebp] |
518,10 → 518,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] |
528,7 → 528,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 |
541,10 → 541,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:;mov [edx],ecx |
; mov ax,SegA000 {Calculate Offset} |
; mov es,ax |
564,7 → 564,7 |
shr ah,cl |
mov dx,0x03CE |
out dx,ax |
add edi,0x000A0000 |
add edi,VGABasePtr |
|
call color_24_to_4_bits |
mov ah,[edi] ; dummy read |
603,7 → 603,7 |
shr ah,cl |
mov dx,0x03CE |
out dx,ax |
add edi,0x000A0000 |
add edi,VGABasePtr |
|
pop eax |
call color_24_to_4_bits |
639,7 → 639,7 |
mov cl,al |
shr eax,3 ; /8 |
add edi,eax ; 80*y + (x/8) |
add edi,0x000A0000 |
add edi,VGABasePtr |
|
and ecx,7 |
neg ecx |
704,19 → 704,19 |
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] |
|
mov esi,[0x00003000] |
mov esi,[CURRENT_TASK] |
mov esi,[CLIP_RECTS+esi*4] |
mov edi,[esi] |
or edi,edi |
738,10 → 738,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] |
756,7 → 756,7 |
shl edi,6 ; 80*y |
shl ebp,4 |
add edi,ebp |
add edi,0x000A0000 |
add edi,VGABasePtr |
.xxx: push eax edx esi edi ebx eax |
or ebp,-1 |
mov edx,0x03CE |
856,10 → 856,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: sub edx,ebx |
push edx edi ebx eax |
mov edi,ebx |
868,7 → 868,7 |
add edi,ebx |
shr eax,3 |
add edi,eax |
add edi,0x000A0000 |
add edi,VGABasePtr |
pop eax ebx |
|
mov ebx,eax |
992,7 → 992,7 |
retn |
|
.tiled: |
mov eax,bg_address |
mov eax,IMG_BACKGROUND |
mov ebx,[bg_width-2] |
mov bx,word[bg_height] |
xor ecx,ecx |
1001,7 → 1001,7 |
call vm_mike_put_image.04.direct |
pop eax |
add edx,[bg_width] |
cmp edx,[screen_width] |
cmp edx,[ScreenWidth] |
jae @f |
shl edx,16 |
add ecx,edx |
1010,7 → 1010,7 |
@@: and ecx,0x0000FFFF |
xor edx,edx |
add ecx,[bg_height] |
cmp ecx,[screen_height] |
cmp ecx,[ScreenHeight] |
jb .lp1 |
popad |
retn |