*** empty log message ***

This commit is contained in:
stainless
2001-11-15 23:21:30 +00:00
parent 1e2ed3b259
commit 8017267e82

View File

@@ -19,6 +19,50 @@
SECTION .text SECTION .text
%macro FilterTest 1
cmp byte[GUIOn],1
jne %%nogui
cmp byte[FilteredGUI],1
jne %%nofilter
%%nogui
cmp byte[antienab],1
je near %1
%%nofilter
%endmacro
%macro SSInterpLine 0
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
%%loopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne %%loopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp %%loopb3
%%loopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
%%loopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz %%loopb
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
%endmacro
%macro FlipCheck 0 %macro FlipCheck 0
cmp byte[FlipWait],0 cmp byte[FlipWait],0
je %%noflip je %%noflip
@@ -310,54 +354,54 @@ ScreenShow:
.startcopy .startcopy
jmp copymodeq256 jmp copymodeq256
NEWSYM dosvidpastecopyscr ;NEWSYM dosvidpastecopyscr
cmp byte[curblank],40h ; cmp byte[curblank],40h
je .nocopy ; je .nocopy
call GUITripleBuffer ; call GUITripleBuffer
.nocopy ;.nocopy
call ScreenShowGUI ; call ScreenShowGUI
ret ; ret
ScreenShowGUI: ;ScreenShowGUI:
cmp byte[cvidmode],0 ; cmp byte[cvidmode],0
je near copymodeq224 ; je near copymodeq224
cmp byte[cvidmode],1 ; cmp byte[cvidmode],1
je near copymodeq240 ; je near copymodeq240
cmp byte[cvidmode],2 ; cmp byte[cvidmode],2
je near copymodeq256 ; je near copymodeq256
cmp byte[cvidmode],3 ; cmp byte[cvidmode],3
je near copymodex224 ; je near copymodex224
cmp byte[cvidmode],4 ; cmp byte[cvidmode],4
je near copymodex240 ; je near copymodex240
cmp byte[cvidmode],5 ; cmp byte[cvidmode],5
je near copymodex256 ; je near copymodex256
cmp byte[cvidmode],6 ; cmp byte[cvidmode],6
je near copyvesa12640x480x16bgui ; je near copyvesa12640x480x16bgui
cmp byte[cvidmode],7 ; cmp byte[cvidmode],7
je near copyvesa2320x240x8b ; je near copyvesa2320x240x8b
cmp byte[cvidmode],8 ; cmp byte[cvidmode],8
je near copyvesa2320x240x16bgui ; je near copyvesa2320x240x16bgui
cmp byte[cvidmode],9 ; cmp byte[cvidmode],9
je near copyvesa2320x480x8bgui ; je near copyvesa2320x480x8bgui
cmp byte[cvidmode],10 ; cmp byte[cvidmode],10
je near copyvesa2320x480x16bgui ; je near copyvesa2320x480x16bgui
cmp byte[cvidmode],11 ; cmp byte[cvidmode],11
je near copyvesa2512x384x8b ; je near copyvesa2512x384x8b
cmp byte[cvidmode],12 ; cmp byte[cvidmode],12
je near copyvesa2512x384x16bgui ; je near copyvesa2512x384x16bgui
cmp byte[cvidmode],13 ; cmp byte[cvidmode],13
je near copyvesa2640x400x8b ; je near copyvesa2640x400x8b
cmp byte[cvidmode],14 ; cmp byte[cvidmode],14
je near copyvesa2640x400x16b ; je near copyvesa2640x400x16b
cmp byte[cvidmode],15 ; cmp byte[cvidmode],15
je near copyvesa2640x480x8bgui ; je near copyvesa2640x480x8bgui
cmp byte[cvidmode],16 ; cmp byte[cvidmode],16
je near copyvesa2640x480x16bgui ; je near copyvesa2640x480x16bgui
cmp byte[cvidmode],17 ; cmp byte[cvidmode],17
je near copyvesa2800x600x8b ; je near copyvesa2800x600x8b
cmp byte[cvidmode],18 ; cmp byte[cvidmode],18
je near copyvesa2800x600x16b ; je near copyvesa2800x600x16b
jmp copymodeq256 ; jmp copymodeq256
%endif %endif
@@ -717,7 +761,8 @@ NEWSYM copyvesa2320x240x8b
add esi,16+256+16+16 add esi,16+256+16+16
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je .fullscreen je .fullscreen
@@ -746,11 +791,6 @@ NEWSYM copyvesa2320x240x8b
.fsloopa .fsloopa
mov ecx,256/4 mov ecx,256/4
jmp .fsloopb jmp .fsloopb
.fsloopa2
add esi,16+16
dec dl
jnz .fsloopa
jmp .done
.fsloopb .fsloopb
mov eax,[esi] mov eax,[esi]
mov [es:edi],al mov [es:edi],al
@@ -759,7 +799,9 @@ NEWSYM copyvesa2320x240x8b
add edi,byte 5 add edi,byte 5
dec ecx dec ecx
jnz .fsloopb jnz .fsloopb
jmp .fsloopa2 add esi,16+16
dec dl
jnz .fsloopa
.done .done
pop es pop es
@@ -770,8 +812,8 @@ NEWSYM copyvesa2320x240x8b
; Copy VESA2 320x480x8b Copies buffer to 320x480x8bVBE2 ; Copy VESA2 320x480x8b Copies buffer to 320x480x8bVBE2
;******************************************************* ;*******************************************************
NEWSYM copyvesa2320x480x8bgui ;NEWSYM copyvesa2320x480x8bgui
jmp copyvesa2320x480x8b ; jmp copyvesa2320x480x8b
; mov byte[CurrentGUIOn],1 ; mov byte[CurrentGUIOn],1
; jmp copyvesa2320x480x8b.nogui ; jmp copyvesa2320x480x8b.nogui
@@ -796,7 +838,8 @@ NEWSYM copyvesa2320x480x8b
add esi,16+256+16+16 add esi,16+256+16+16
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[scanlines],1 cmp byte[scanlines],1
@@ -1012,7 +1055,8 @@ NEWSYM copyvesa2800x600x8b
add esi,16+256+16+16 add esi,16+256+16+16
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
@@ -1151,7 +1195,8 @@ NEWSYM copyvesa2800x600x16b
add esi,16*2+256*2+16*2+16*2 add esi,16*2+256*2+16*2+16*2
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
@@ -1294,7 +1339,8 @@ NEWSYM copyvesa2640x400x8b
add esi,16+256+16+16 add esi,16+256+16+16
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
@@ -1313,14 +1359,15 @@ NEWSYM copyvesa2640x400x8b
call .loopa2 call .loopa2
add esi,16+16 add esi,16+16
add edi,64+64 add edi,64+64
sub dl,2 dec dl
dec dl
jnz .loopa jnz .loopa
jmp .done jmp .done
.loopa2 .loopa2
mov al,[esi] mov al,[esi]
mov [es:edi],al mov [es:edi],al
inc esi
mov [es:edi+1],al mov [es:edi+1],al
inc esi
add edi,byte 2 add edi,byte 2
dec ecx dec ecx
jnz .loopa2 jnz .loopa2
@@ -1360,7 +1407,8 @@ NEWSYM copyvesa2640x400x8b
mov ecx,256/4 mov ecx,256/4
call .fsloopb call .fsloopb
add esi,16+16 add esi,16+16
sub dl,2 dec dl
dec dl
jnz .fsloopa jnz .fsloopa
jmp .done jmp .done
.fsloopb .fsloopb
@@ -1406,7 +1454,8 @@ NEWSYM copyvesa2640x400x16b
add esi,16*2+256*2+16*2+16*2 add esi,16*2+256*2+16*2+16*2
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
@@ -1425,7 +1474,8 @@ NEWSYM copyvesa2640x400x16b
call .loopa2 call .loopa2
add esi,16*2+16*2 add esi,16*2+16*2
add edi,64*2+64*2 add edi,64*2+64*2
sub dl,2 dec dl
dec dl
jnz .loopa jnz .loopa
jmp .done jmp .done
.loopa2 .loopa2
@@ -1472,7 +1522,8 @@ NEWSYM copyvesa2640x400x16b
mov ecx,256/4 mov ecx,256/4
call .fsloopb call .fsloopb
add esi,16*2+16*2 add esi,16*2+16*2
sub dl,2 dec dl
dec dl
jnz .fsloopa jnz .fsloopa
jmp .done jmp .done
.fsloopb .fsloopb
@@ -1538,14 +1589,9 @@ NEWSYM copyvesa2640x480x8b
je near smallscreen640x480x8b je near smallscreen640x480x8b
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near smallscreen640x480x8b.fullscreen je near smallscreen640x480x8b.fullscreen
cmp byte[GUIOn],1
jne .nogui FilterTest proceagle
cmp byte[FilteredGUI],1
jne .noeagle
.nogui
cmp byte[antienab],1
je near proceagle
.noeagle
cmp byte[scanlines],1 cmp byte[scanlines],1
je near copyvesa2640x480x8bs je near copyvesa2640x480x8bs
mov byte[res640],1 mov byte[res640],1
@@ -1575,7 +1621,8 @@ NEWSYM copyvesa2640x480x8b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
.loopa .loopa
cmp byte[Triplebufen],1 cmp byte[Triplebufen],1
je .ignorehr je .ignorehr
@@ -1663,7 +1710,8 @@ NEWSYM copyvesa2640x480x8ng
xor eax,eax xor eax,eax
mov ebx,1 mov ebx,1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
.loopa .loopa
mov ecx,256 mov ecx,256
cmp dword[ignor512],0 cmp dword[ignor512],0
@@ -1896,7 +1944,8 @@ NEWSYM smallscreen640x480x8b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
.loopa .loopa
mov ecx,64 mov ecx,64
rep movsd rep movsd
@@ -1927,7 +1976,8 @@ NEWSYM smallscreen640x480x8b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[scanlines],1 cmp byte[scanlines],1
je near .scanlines je near .scanlines
.loopa3 .loopa3
@@ -2000,7 +2050,8 @@ NEWSYM copyvesa2640x480x8bs
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[CurrentGUIOn],1 cmp byte[CurrentGUIOn],1
je .loopa je .loopa
cmp byte[ForceNewGfxOff],0 cmp byte[ForceNewGfxOff],0
@@ -2350,7 +2401,8 @@ NEWSYM copyvesa2512x384x8b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
xor dh,dh xor dh,dh
.loopa .loopa
mov al,[ebx] mov al,[ebx]
@@ -2436,7 +2488,8 @@ NEWSYM copyvesa2512x384x8b
.ssres239 .ssres239
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
je .ssloopb je .ssloopb
.ssloopa .ssloopa
@@ -2481,7 +2534,8 @@ NEWSYM copyvesa2512x384x8ng
xor eax,eax xor eax,eax
mov ebx,1 mov ebx,1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
xor dh,dh xor dh,dh
.loopa .loopa
cmp dword[ignor512],0 cmp dword[ignor512],0
@@ -2549,8 +2603,7 @@ SECTION .text
;******************************************************* ;*******************************************************
copyvesa2320x240x16bgui: ;copyvesa2320x240x16bgui:
jmp copyvesa2320x240x16b
; cmp byte[curblank],40h ; cmp byte[curblank],40h
; jne .startcopy ; jne .startcopy
; ret ; ret
@@ -2654,17 +2707,12 @@ NEWSYM copyvesa2320x240x16b
add esi,16*2+256*2+16*2+16*2 add esi,16*2+256*2+16*2+16*2
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[GUIOn],1
jne .nogui FilterTest .interpolate
cmp byte[FilteredGUI],1
jne .nointerp
.nogui
cmp byte[antienab],1
je near .interpolate
.nointerp
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
je near .loopb je near .loopb
@@ -2690,12 +2738,6 @@ NEWSYM copyvesa2320x240x16b
sub edi,32*2 sub edi,32*2
.fsloopa .fsloopa
mov ecx,256/4 mov ecx,256/4
jmp .fsloopb
.fsloopa2
add esi,16*2+16*2
dec dl
jnz .fsloopa
jmp .done
.fsloopb .fsloopb
mov eax,[esi] mov eax,[esi]
mov [es:edi],ax mov [es:edi],ax
@@ -2705,69 +2747,37 @@ NEWSYM copyvesa2320x240x16b
movsd movsd
dec ecx dec ecx
jnz .fsloopb jnz .fsloopb
jmp .fsloopa2 add esi,16*2+16*2
dec dl
jnz .fsloopa
jmp .done
.interpolate .interpolate
;cmp byte[ScreenScale],1 SSInterpLine
;je .infsloopa add esi,16*2+16*2
.inloopa add edi,32*2+32*2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
jmp .inloopb
.inloopa2
mov ax,[esi]
mov [es:edi],ax
add esi,32*2+2
add edi,64*2+2
dec dl dec dl
jnz .inloopa jnz .interpolate
jmp .done
.inloopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne .inloopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp .inloopb3
.inloopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
jmp .inloopb3
.inloopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz .inloopb
jmp .inloopa2
.done .done
pop es pop es
ret ret
SECTION .bss ;SECTION .bss
NEWSYM palresvalng, resd 2 ;NEWSYM palresvalng, resd 2
NEWSYM palresvalngb, resd 2 ;NEWSYM palresvalngb, resd 2
SECTION .text ;SECTION .text
%macro copya320x240 0 ;%macro copya320x240 0
mov [es:edi],dx ; mov [es:edi],dx
%endmacro ;%endmacro
%macro copyb320x240 0 ;%macro copyb320x240 0
mov [es:edi+2],dx ; mov [es:edi+2],dx
%endmacro ;%endmacro
%endif %endif
SECTION .bss ALIGN = 32 SECTION .bss ;ALIGN = 32
NEWSYM rescompareng, resd 1 NEWSYM rescompareng, resd 1
NEWSYM nextdrawallng, resd 1 NEWSYM nextdrawallng, resd 1
NEWSYM prevcol0ng, resd 1 NEWSYM prevcol0ng, resd 1
@@ -2782,8 +2792,7 @@ SECTION .text
; Copy VESA2 320x480x16b Copies buffer to 320x480x16bVB2 ; Copy VESA2 320x480x16b Copies buffer to 320x480x16bVB2
;******************************************************* ;*******************************************************
NEWSYM copyvesa2320x480x16bgui ;NEWSYM copyvesa2320x480x16bgui
jmp copyvesa2320x480x16b
; cmp byte[curblank],40h ; cmp byte[curblank],40h
; jne .startcopy ; jne .startcopy
; ret ; ret
@@ -2951,7 +2960,8 @@ NEWSYM ConvertToAFormat
mov esi,[vidbuffer] mov esi,[vidbuffer]
add esi,16*2+256*2+32*2 add esi,16*2+256*2+32*2
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
je near .mmxconv je near .mmxconv
.crgbloop .crgbloop
@@ -2998,7 +3008,8 @@ NEWSYM UnConvertToAFormat
mov esi,[vidbuffer] mov esi,[vidbuffer]
add esi,16*2+256*2+32*2 add esi,16*2+256*2+32*2
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
.crgbloop .crgbloop
mov ecx,128 mov ecx,128
.crgbloop2 .crgbloop2
@@ -3022,6 +3033,7 @@ NEWSYM copyvesa2320x480x16b
cmp byte[curblank],40h cmp byte[curblank],40h
jne .startcopy jne .startcopy
ret ret
.startcopy .startcopy
; mov eax,[vesa2_clbitng2] ; mov eax,[vesa2_clbitng2]
; mov [vesavaland],eax ; mov [vesavaland],eax
@@ -3043,17 +3055,13 @@ NEWSYM copyvesa2320x480x16b
add esi,16*2+256*2+16*2+16*2 add esi,16*2+256*2+16*2+16*2
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[ScreenScale],1 cmp byte[ScreenScale],1
je near .fullscreen je near .fullscreen
cmp byte[GUIOn],1
jne .nogui FilterTest .interpolate
cmp byte[FilteredGUI],1
jne .nointerp
.nogui
cmp byte[antienab],1
je near .interpolate
.nointerp
cmp byte[scanlines],1 cmp byte[scanlines],1
je near .scanlines je near .scanlines
cmp byte[scanlines],3 cmp byte[scanlines],3
@@ -3111,47 +3119,32 @@ NEWSYM copyvesa2320x480x16b
jmp .done jmp .done
.halfscanlines .halfscanlines
;cmp byte[MMXSupport],1 ;cmp byte[MMXSupport]
;je .hsloopb ;je near .hsloopb
.hsloopa .hsloopa
mov ecx,256/4*2 mov ecx,256/4*2
rep movsd rep movsd
sub esi,256*2 sub esi,256*2
add edi,32*2+32*2 add edi,32*2+32*2
mov ecx,256/4 mov ecx,256/2
jmp .hsloopa3
.hsloopa2 .hsloopa2
mov ax,[esi]
mov bx,[esi+2]
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
dec ecx
jnz .hsloopa2
add esi,16*2+16*2 add esi,16*2+16*2
add edi,32*2+32*2 add edi,32*2+32*2
dec dl dec dl
jnz .hsloopa jnz .hsloopa
jmp .done jmp .done
.hsloopa3
push ecx
push edx
mov ax,[esi]
mov bx,[esi+2]
mov cx,[esi+4]
mov dx,[esi+6]
shr ax,byte 1
shr bx,byte 1
shr cx,byte 1
shr dx,byte 1
and ax,7befh
and bx,7befh
and cx,7befh
and dx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
mov [es:edi+4],cx
mov [es:edi+6],dx
pop edx
pop ecx
add esi,byte 8
add edi,byte 8
dec ecx
jnz .hsloopa3
jmp .hsloopa2
.quartscanlines .quartscanlines
;cmp byte[MMXSupport],1 ;cmp byte[MMXSupport],1
@@ -3162,14 +3155,7 @@ NEWSYM copyvesa2320x480x16b
sub esi,256*2 sub esi,256*2
add edi,32*2+32*2 add edi,32*2+32*2
mov ecx,256/2 mov ecx,256/2
jmp .qsloopa3
.qsloopa2 .qsloopa2
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .qsloopa
jmp .done
.qsloopa3
push ecx push ecx
push edx push edx
mov ax,[esi] mov ax,[esi]
@@ -3189,8 +3175,12 @@ NEWSYM copyvesa2320x480x16b
add esi,byte 4 add esi,byte 4
add edi,byte 4 add edi,byte 4
dec ecx dec ecx
jnz .qsloopa3 jnz .qsloopa2
jmp .qsloopa2 add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .qsloopa
jmp .done
.fullscreen .fullscreen
sub edi,32*2 sub edi,32*2
@@ -3249,29 +3239,27 @@ NEWSYM copyvesa2320x480x16b
jnz .fsloopb jnz .fsloopb
ret ret
.fsloopb2 .fsloopb2
push ecx
push edx
mov ax,[esi] mov ax,[esi]
mov bx,[esi+2] mov bx,[esi+2]
mov cx,[esi+4]
mov dx,[esi+6]
shr ax,byte 1 shr ax,byte 1
shr bx,byte 1 shr bx,byte 1
shr cx,byte 1
shr dx,byte 1
and ax,7befh and ax,7befh
and bx,7befh and bx,7befh
and cx,7befh
and dx,7befh
mov [es:edi],ax mov [es:edi],ax
mov [es:edi+2],ax mov [es:edi+2],ax
mov [es:edi+4],bx mov [es:edi+4],bx
mov [es:edi+6],cx add esi,byte 4
mov [es:edi+8],dx add edi,byte 6
pop edx mov ax,[esi]
pop ecx mov bx,[esi+2]
add esi,byte 8 shr ax,byte 1
add edi,byte 8+2 shr bx,byte 1
and ax,7befh
and bx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
dec ecx dec ecx
jnz .fsloopb2 jnz .fsloopb2
ret ret
@@ -3291,8 +3279,10 @@ NEWSYM copyvesa2320x480x16b
mov [es:edi],ax mov [es:edi],ax
mov [es:edi+2],ax mov [es:edi+2],ax
mov [es:edi+4],bx mov [es:edi+4],bx
mov ax,[esi+4] add esi,byte 4
mov bx,[esi+6] add edi,byte 6
mov ax,[esi]
mov bx,[esi+2]
mov cx,ax mov cx,ax
mov dx,bx mov dx,bx
shr cx,byte 2 shr cx,byte 2
@@ -3301,77 +3291,35 @@ NEWSYM copyvesa2320x480x16b
and dx,39e7h and dx,39e7h
sub ax,cx sub ax,cx
sub bx,dx sub bx,dx
mov [es:edi+6],ax mov [es:edi],ax
mov [es:edi+8],bx mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
pop edx pop edx
pop ecx pop ecx
add esi,byte 8
add edi,byte 8+2
dec ecx dec ecx
jnz .fsloopb3 jnz .fsloopb3
ret ret
.interpolate .interpolate
cmp byte[scanlines],1 cmp byte[scanlines],1
je .inloopa2 je near .inloopa2
.inloopa .inloopa
mov ax,[esi] SSInterpLine
mov [es:edi],ax sub esi,256*2
add esi,byte 2 add edi,32*2+32*2
add edi,byte 2 SSInterpLine
mov ecx,254 add esi,16*2+16*2
call .inloopb add edi,32*2+32*2
mov ax,[esi]
mov [es:edi],ax
sub esi,256*2-2
add edi,64*2+2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
call .inloopb
add esi,32*2+2
add edi,64*2+2
dec dl dec dl
jnz .inloopa jnz near .inloopa
jmp .done jmp .done
.inloopa2 .inloopa2
mov ax,[esi] SSInterpLine
mov [es:edi],ax add esi,16*2+16*2
add esi,byte 2 add edi,32*2+320*2+32*2
add edi,byte 2
mov ecx,254
call .inloopb
mov ax,[esi]
mov [es:edi],ax
add esi,16*2+16*2+2
add edi,32*2+320*2+32*2+2
dec dl dec dl
jnz .inloopa2 jnz .inloopa2
jmp .done
.inloopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne .inloopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp .inloopb3
.inloopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
.inloopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz .inloopb
ret
.done .done
pop es pop es
@@ -3431,8 +3379,7 @@ NEWSYM copyvesa2320x480x16b
%%nobankswitch %%nobankswitch
%endmacro %endmacro
NEWSYM copyvesa12640x480x16bgui ;NEWSYM copyvesa12640x480x16bgui
jmp copyvesa12640x480x16b
; cmp byte[curblank],40h ; cmp byte[curblank],40h
; jne .startcopy ; jne .startcopy
; ret ; ret
@@ -3553,8 +3500,7 @@ VESA12Bankswitch:
sub edi,65536 sub edi,65536
ret ret
NEWSYM copyvesa2640x480x16bgui ;NEWSYM copyvesa2640x480x16bgui
jmp copyvesa2640x480x16b
; je near smallscreen640x480x16bgui.fullscreen ; je near smallscreen640x480x16bgui.fullscreen
; cmp byte[curblank],40h ; cmp byte[curblank],40h
; jne .startcopy ; jne .startcopy
@@ -3878,7 +3824,8 @@ NEWSYM copyvesa2640x480x16b
je near interpolate640x480x16b je near interpolate640x480x16b
.nointerp .nointerp
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[scanlines],1 cmp byte[scanlines],1
je near .scanlines je near .scanlines
cmp byte[scanlines],3 cmp byte[scanlines],3
@@ -4610,7 +4557,8 @@ Process2xSaI:
; add edi,[VESAAddr] ; add edi,[VESAAddr]
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 ; Compensate for top/bottom line + 2 lines in 2xSaI dec dl
dec dl ; Compensate for top/bottom line + 2 lines in 2xSaI
mov byte[lineleft],dl mov byte[lineleft],dl
mov dword[esi+512],0 mov dword[esi+512],0
mov dword[esi+512+576*2],0 mov dword[esi+512+576*2],0
@@ -4763,7 +4711,8 @@ NEWSYM smallscreen640x480x16b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
.loopa .loopa
mov ecx,128 mov ecx,128
rep movsd rep movsd
@@ -4800,7 +4749,8 @@ NEWSYM smallscreen640x480x16b
add esi,16*2+256*2+32*2 add esi,16*2+256*2+32*2
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[scanlines],1 cmp byte[scanlines],1
je near .scanlines je near .scanlines
.loopa2 .loopa2
@@ -5713,8 +5663,7 @@ SECTION .text
; Copy VESA2 512x384x16b Copies buffer to 512x384x16bV2 ; Copy VESA2 512x384x16b Copies buffer to 512x384x16bV2
;******************************************************* ;*******************************************************
NEWSYM copyvesa2512x384x16bgui ;NEWSYM copyvesa2512x384x16bgui
jmp copyvesa2512x384x16b
; cmp byte[curblank],40h ; cmp byte[curblank],40h
; jne .startcopy ; jne .startcopy
; ret ; ret
@@ -5797,7 +5746,8 @@ NEWSYM copyvesa2512x384x16b
xor eax,eax xor eax,eax
mov ebx,hirestiledat+1 mov ebx,hirestiledat+1
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
xor dh,dh xor dh,dh
.loopa .loopa
mov al,[ebx] mov al,[ebx]
@@ -5881,7 +5831,8 @@ NEWSYM copyvesa2512x384x16b
.ssres239 .ssres239
xor eax,eax xor eax,eax
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
je .ssloopb je .ssloopb
.ssloopa .ssloopa
@@ -6202,7 +6153,8 @@ NEWSYM copyvesa12640x480x16b
; Check if interpolation mode ; Check if interpolation mode
.nommx .nommx
mov dl,[resolutn] mov dl,[resolutn]
sub dl,2 dec dl
dec dl
mov [lineleft],dl mov [lineleft],dl
mov edx,65536 mov edx,65536
sub edx,edi sub edx,edi