*** empty log message ***
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user