Fix for video code again
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
;along with this program; if not, write to the Free Software
|
;along with this program; if not, write to the Free Software
|
||||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
ALIGN32
|
ALIGN 32
|
||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@ EXTSYM HalfTransB,HalfTransC
|
|||||||
|
|
||||||
NEWSYM CopyVWinAsmStart
|
NEWSYM CopyVWinAsmStart
|
||||||
|
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
||||||
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
||||||
@@ -41,12 +42,16 @@ NEWSYM copy640x480x16bwin
|
|||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
push es
|
pushad
|
||||||
mov ax,ds
|
|
||||||
mov es,ax
|
|
||||||
mov esi,[vidbuffer]
|
mov esi,[vidbuffer]
|
||||||
mov edi,[WinVidMemStart]
|
mov edi,[WinVidMemStart]
|
||||||
add esi,16*2+256*2+32*2
|
add esi,16*2+256*2+32*2
|
||||||
|
cmp byte[GUIOn],1
|
||||||
|
je .not239
|
||||||
|
cmp byte[resolutn],239
|
||||||
|
jne .not239
|
||||||
|
add esi,8*288*2
|
||||||
|
.not239
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
; Check if interpolation mode
|
; Check if interpolation mode
|
||||||
cmp byte[FilteredGUI],0
|
cmp byte[FilteredGUI],0
|
||||||
@@ -57,19 +62,20 @@ NEWSYM copy640x480x16bwin
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
jne .nommx
|
jne .nommx
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne Process2xSaIwin
|
jne near Process2xSaIwin
|
||||||
.nommx
|
.nommx
|
||||||
cmp byte[antienab],1
|
cmp byte[antienab],1
|
||||||
je interpolate640x480x16bwin
|
je near interpolate640x480x16bwin
|
||||||
.nointerp
|
.nointerp
|
||||||
mov dl,[resolutn]
|
mov dl,224
|
||||||
sub dl,2
|
dec dl
|
||||||
|
dec dl
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlines
|
je near .halfscanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlines
|
je near .quartscanlines
|
||||||
|
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
@@ -78,14 +84,14 @@ NEWSYM copy640x480x16bwin
|
|||||||
.loopa
|
.loopa
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshires
|
je near .yeshires
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
je .ignorehr
|
je .ignorehr
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
ja .yeshiresng
|
ja near .yeshiresng
|
||||||
.ignorehr
|
.ignorehr
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx
|
je near .mmx
|
||||||
.a
|
.a
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -112,8 +118,8 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopa
|
jnz near .loopa
|
||||||
pop es
|
popad
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
@@ -223,14 +229,14 @@ NEWSYM copy640x480x16bwin
|
|||||||
.loopab
|
.loopab
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshiresb
|
je near .yeshiresb
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrb
|
jbe .ignorehrb
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
.ignorehrb
|
.ignorehrb
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxsl
|
je near .mmxsl
|
||||||
.ab
|
.ab
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -253,12 +259,11 @@ NEWSYM copy640x480x16bwin
|
|||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopab
|
jnz .loopab
|
||||||
pop es
|
popad
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -310,7 +315,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
.ignorehrbh
|
.ignorehrbh
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh
|
je near .mmxslh
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
.abh
|
.abh
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -340,10 +345,10 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopabh
|
jnz near .loopabh
|
||||||
pop es
|
popad
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
.mmxslh
|
.mmxslh
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -406,7 +411,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
.ignorehrbh2
|
.ignorehrbh2
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh2
|
je near .mmxslh2
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
.abh2
|
.abh2
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -440,10 +445,10 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopabh2
|
jnz near .loopabh2
|
||||||
pop es
|
popad
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
.mmxslh2
|
.mmxslh2
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -494,9 +499,9 @@ NEWSYM copy640x480x16bwin
|
|||||||
HighResProc:
|
HighResProc:
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],3
|
cmp byte[ebx],3
|
||||||
je .hiresmode7
|
je near .hiresmode7
|
||||||
cmp byte[ebx],7
|
cmp byte[ebx],7
|
||||||
je .hiresmode7
|
je near .hiresmode7
|
||||||
test byte[ebx],4
|
test byte[ebx],4
|
||||||
jz .nofield
|
jz .nofield
|
||||||
cmp byte[scanlines],0
|
cmp byte[scanlines],0
|
||||||
@@ -506,7 +511,7 @@ HighResProc:
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.nofield
|
.nofield
|
||||||
test byte[ebx],3
|
test byte[ebx],3
|
||||||
jnz .hires
|
jnz near .hires
|
||||||
.a
|
.a
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -584,7 +589,7 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.hires
|
.hires
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmx
|
je near .yeshiresngmmx
|
||||||
.bng
|
.bng
|
||||||
mov eax,[esi+75036*4-2]
|
mov eax,[esi+75036*4-2]
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -604,11 +609,11 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.nofieldb
|
.nofieldb
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlines
|
je near .halfscanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlines
|
je near .quartscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
@@ -653,17 +658,17 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.nofieldc
|
.nofieldc
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlinesmmx
|
je near .halfscanlinesmmx
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlinesmmx
|
je near .quartscanlinesmmx
|
||||||
test byte[ebx+1],3
|
test byte[ebx+1],3
|
||||||
jz .noaa
|
jz .noaa
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .antialias
|
jne near .antialias
|
||||||
cmp byte[antienab],0
|
cmp byte[antienab],0
|
||||||
jne .antialias
|
jne near .antialias
|
||||||
.noaa
|
.noaa
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -806,6 +811,7 @@ HighResProc:
|
|||||||
add edi,16
|
add edi,16
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Process2xSaIwin:
|
Process2xSaIwin:
|
||||||
@@ -819,7 +825,7 @@ Process2xSaIwin:
|
|||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
; add edi,[VESAAddr]
|
; add edi,[VESAAddr]
|
||||||
mov dl,[resolutn]
|
mov dl,224
|
||||||
sub dl,2 ; Compensate for top/bottom line + 2 lines in 2xSaI
|
sub dl,2 ; 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
|
||||||
@@ -889,7 +895,7 @@ Process2xSaIwin:
|
|||||||
add ebx,576
|
add ebx,576
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
dec dword[lineleft]
|
dec dword[lineleft]
|
||||||
jnz .next
|
jnz near .next
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
sub edi,[NumBytesPerLine]
|
sub edi,[NumBytesPerLine]
|
||||||
.loop
|
.loop
|
||||||
@@ -897,8 +903,8 @@ Process2xSaIwin:
|
|||||||
add edi,4
|
add edi,4
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .loop
|
jnz .loop
|
||||||
pop es
|
|
||||||
emms
|
emms
|
||||||
|
popad
|
||||||
ret
|
ret
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
@@ -906,9 +912,9 @@ Process2xSaIwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add ebx,576
|
add ebx,576
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .next
|
jnz near .next
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
MMXInterpolwin:
|
MMXInterpolwin:
|
||||||
@@ -920,15 +926,17 @@ MMXInterpolwin:
|
|||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
.loopab
|
.loopab
|
||||||
|
|
||||||
mov dl,[resolutn]
|
mov dl,224
|
||||||
sub dl,3
|
dec dl
|
||||||
|
dec dl
|
||||||
|
dec dl
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .scanlinesquart
|
je near .scanlinesquart
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .scanlineshalf
|
je near .scanlineshalf
|
||||||
inc ebx
|
inc ebx
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
; do scanlines
|
; do scanlines
|
||||||
@@ -942,7 +950,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
por mm3,mm1
|
pand mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -983,7 +991,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
por mm3,mm1
|
pand mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -999,8 +1007,8 @@ MMXInterpolwin:
|
|||||||
punpckhwd mm5,mm0
|
punpckhwd mm5,mm0
|
||||||
movq [edx],mm4
|
movq [edx],mm4
|
||||||
movq [edx+8],mm5
|
movq [edx+8],mm5
|
||||||
|
pand mm0,mm4
|
||||||
movq mm0,mm6
|
movq mm0,mm6
|
||||||
por mm0,mm4
|
|
||||||
pand mm4,mm2
|
pand mm4,mm2
|
||||||
pand mm6,mm2
|
pand mm6,mm2
|
||||||
psrlw mm4,1
|
psrlw mm4,1
|
||||||
@@ -1009,7 +1017,7 @@ MMXInterpolwin:
|
|||||||
paddd mm4,mm6
|
paddd mm4,mm6
|
||||||
paddw mm4,mm0
|
paddw mm4,mm0
|
||||||
movq mm0,mm5
|
movq mm0,mm5
|
||||||
por mm0,mm7
|
pand mm0,mm7
|
||||||
pand mm5,mm2
|
pand mm5,mm2
|
||||||
pand mm7,mm2
|
pand mm7,mm2
|
||||||
psrlw mm5,1
|
psrlw mm5,1
|
||||||
@@ -1023,7 +1031,7 @@ MMXInterpolwin:
|
|||||||
add edi,16
|
add edi,16
|
||||||
add edx,16
|
add edx,16
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .a3
|
jnz near .a3
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
add edx,512
|
add edx,512
|
||||||
@@ -1042,9 +1050,9 @@ MMXInterpolwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .a5
|
jnz near .a5
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlines
|
.scanlines
|
||||||
@@ -1080,8 +1088,8 @@ MMXInterpolwin:
|
|||||||
add edi,16
|
add edi,16
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .a
|
jnz .a
|
||||||
; mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
; mov [esi+512],eax
|
mov [esi+512],eax
|
||||||
.returninterps
|
.returninterps
|
||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
@@ -1095,9 +1103,9 @@ MMXInterpolwin:
|
|||||||
inc ebx
|
inc ebx
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .asl
|
jnz near .asl
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
@@ -1159,9 +1167,9 @@ MMXInterpolwin:
|
|||||||
add esi,64
|
add esi,64
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .ahb
|
jnz near .ahb
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
@@ -1185,7 +1193,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
por mm3,mm1
|
pand mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -1210,7 +1218,6 @@ MMXInterpolwin:
|
|||||||
sub edx,16*64
|
sub edx,16*64
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
movq mm3,mm2
|
movq mm3,mm2
|
||||||
|
|
||||||
.ahc2
|
.ahc2
|
||||||
movq mm0,[edx]
|
movq mm0,[edx]
|
||||||
movq mm1,[edx+8]
|
movq mm1,[edx+8]
|
||||||
@@ -1237,14 +1244,14 @@ MMXInterpolwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .ahb2
|
jnz near .ahb2
|
||||||
emms
|
emms
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM interpolate640x480x16bwin
|
NEWSYM interpolate640x480x16bwin
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je MMXInterpolwin
|
je near MMXInterpolwin
|
||||||
|
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -1255,14 +1262,16 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
.loopabi
|
.loopabi
|
||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
mov dl,[resolutn]
|
mov dl,224
|
||||||
sub dl,3
|
dec dl
|
||||||
|
dec dl
|
||||||
|
dec dl
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .scanlinesquart
|
je near .scanlinesquart
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .scanlineshalf
|
je near .scanlineshalf
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
; do first line
|
; do first line
|
||||||
@@ -1332,16 +1341,16 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add edi,4
|
add edi,4
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopb
|
jnz near .loopb
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopb
|
jnz near .loopb
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlines
|
.scanlines
|
||||||
@@ -1361,7 +1370,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
jmp .returninterps
|
jmp .returninterps
|
||||||
.ignorehrs
|
.ignorehrs
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshiresb
|
je near .yeshiresb
|
||||||
.ignorehrb
|
.ignorehrb
|
||||||
push ebx
|
push ebx
|
||||||
.ab
|
.ab
|
||||||
@@ -1392,8 +1401,8 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopab
|
jnz .loopab
|
||||||
pop es
|
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
|
popad
|
||||||
ret
|
ret
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
@@ -1421,7 +1430,6 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
|
|
||||||
.fslloop2
|
.fslloop2
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1429,8 +1437,8 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
jnz .fslloop2
|
jnz .fslloop2
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab
|
jnz near .loopab
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
@@ -1480,22 +1488,21 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab2
|
jnz near .loopab2
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
.returninterphs
|
.returninterphs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab2
|
jnz near .loopab2
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
|
|
||||||
.loopab3
|
.loopab3
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -1544,22 +1551,21 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab3
|
jnz near .loopab3
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
.returninterpqs
|
.returninterpqs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab3
|
jnz near .loopab3
|
||||||
pop es
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
|
;ALIGN32
|
||||||
InterPtr resd 1
|
InterPtr resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
NEWSYM CopyVWinAsmEnd
|
NEWSYM CopyVWinAsmEnd
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
;along with this program; if not, write to the Free Software
|
;along with this program; if not, write to the Free Software
|
||||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
ALIGN32
|
|
||||||
|
|
||||||
%include "macros.mac"
|
%include "macros.mac"
|
||||||
|
|
||||||
EXTSYM vesa2selec,vidbuffer,GUIOn,MMXSupport,resolutn,En2xSaI,antienab,scanlines
|
EXTSYM vesa2selec,vidbuffer,GUIOn,MMXSupport,resolutn,En2xSaI,antienab,scanlines
|
||||||
@@ -59,19 +57,19 @@ NEWSYM copy640x480x16bwin
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
jne .nommx
|
jne .nommx
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne Process2xSaIwin
|
jne near Process2xSaIwin
|
||||||
.nommx
|
.nommx
|
||||||
cmp byte[antienab],1
|
cmp byte[antienab],1
|
||||||
je interpolate640x480x16bwin
|
je near interpolate640x480x16bwin
|
||||||
.nointerp
|
.nointerp
|
||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
sub dl,2
|
sub dl,2
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlines
|
je near .halfscanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlines
|
je near .quartscanlines
|
||||||
|
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
@@ -80,14 +78,14 @@ NEWSYM copy640x480x16bwin
|
|||||||
.loopa
|
.loopa
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshires
|
je near .yeshires
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
je .ignorehr
|
je .ignorehr
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
ja .yeshiresng
|
ja near .yeshiresng
|
||||||
.ignorehr
|
.ignorehr
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx
|
je near .mmx
|
||||||
.a
|
.a
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -114,7 +112,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopa
|
jnz near .loopa
|
||||||
pop es
|
pop es
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
@@ -232,7 +230,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
jmp .returnb
|
jmp .returnb
|
||||||
.ignorehrb
|
.ignorehrb
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxsl
|
je near .mmxsl
|
||||||
.ab
|
.ab
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -258,9 +256,8 @@ NEWSYM copy640x480x16bwin
|
|||||||
pop es
|
pop es
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -312,7 +309,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
.ignorehrbh
|
.ignorehrbh
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh
|
je near .mmxslh
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
.abh
|
.abh
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -342,10 +339,10 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec dl
|
dec dl
|
||||||
jnz .loopabh
|
jnz near .loopabh
|
||||||
pop es
|
pop es
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
.mmxslh
|
.mmxslh
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -408,7 +405,7 @@ NEWSYM copy640x480x16bwin
|
|||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
.ignorehrbh2
|
.ignorehrbh2
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh2
|
je near .mmxslh2
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
.abh2
|
.abh2
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -442,10 +439,10 @@ NEWSYM copy640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopabh2
|
jnz near .loopabh2
|
||||||
pop es
|
pop es
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je near .mmx2
|
||||||
ret
|
ret
|
||||||
.mmxslh2
|
.mmxslh2
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -496,9 +493,9 @@ NEWSYM copy640x480x16bwin
|
|||||||
HighResProc:
|
HighResProc:
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],3
|
cmp byte[ebx],3
|
||||||
je .hiresmode7
|
je near .hiresmode7
|
||||||
cmp byte[ebx],7
|
cmp byte[ebx],7
|
||||||
je .hiresmode7
|
je near .hiresmode7
|
||||||
test byte[ebx],4
|
test byte[ebx],4
|
||||||
jz .nofield
|
jz .nofield
|
||||||
cmp byte[scanlines],0
|
cmp byte[scanlines],0
|
||||||
@@ -508,7 +505,7 @@ HighResProc:
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.nofield
|
.nofield
|
||||||
test byte[ebx],3
|
test byte[ebx],3
|
||||||
jnz .hires
|
jnz near .hires
|
||||||
.a
|
.a
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
@@ -586,7 +583,7 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.hires
|
.hires
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmx
|
je near .yeshiresngmmx
|
||||||
.bng
|
.bng
|
||||||
mov eax,[esi+75036*4-2]
|
mov eax,[esi+75036*4-2]
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -606,11 +603,11 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.nofieldb
|
.nofieldb
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlines
|
je near .halfscanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlines
|
je near .quartscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
@@ -655,17 +652,17 @@ HighResProc:
|
|||||||
ret
|
ret
|
||||||
.nofieldc
|
.nofieldc
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .halfscanlinesmmx
|
je near .halfscanlinesmmx
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .quartscanlinesmmx
|
je near .quartscanlinesmmx
|
||||||
test byte[ebx+1],3
|
test byte[ebx+1],3
|
||||||
jz .noaa
|
jz .noaa
|
||||||
cmp byte[En2xSaI],0
|
cmp byte[En2xSaI],0
|
||||||
jne .antialias
|
jne near .antialias
|
||||||
cmp byte[antienab],0
|
cmp byte[antienab],0
|
||||||
jne .antialias
|
jne near .antialias
|
||||||
.noaa
|
.noaa
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -891,7 +888,7 @@ Process2xSaIwin:
|
|||||||
add ebx,576
|
add ebx,576
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
dec dword[lineleft]
|
dec dword[lineleft]
|
||||||
jnz .next
|
jnz near .next
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
sub edi,[NumBytesPerLine]
|
sub edi,[NumBytesPerLine]
|
||||||
.loop
|
.loop
|
||||||
@@ -908,7 +905,7 @@ Process2xSaIwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add ebx,576
|
add ebx,576
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .next
|
jnz near .next
|
||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
@@ -926,11 +923,11 @@ MMXInterpolwin:
|
|||||||
sub dl,3
|
sub dl,3
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .scanlinesquart
|
je near .scanlinesquart
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .scanlineshalf
|
je near .scanlineshalf
|
||||||
inc ebx
|
inc ebx
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
; do scanlines
|
; do scanlines
|
||||||
@@ -1025,7 +1022,7 @@ MMXInterpolwin:
|
|||||||
add edi,16
|
add edi,16
|
||||||
add edx,16
|
add edx,16
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .a3
|
jnz near .a3
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
add edx,512
|
add edx,512
|
||||||
@@ -1044,7 +1041,7 @@ MMXInterpolwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .a5
|
jnz near .a5
|
||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
@@ -1082,8 +1079,8 @@ MMXInterpolwin:
|
|||||||
add edi,16
|
add edi,16
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .a
|
jnz .a
|
||||||
; mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
; mov [esi+512],eax
|
mov [esi+512],eax
|
||||||
.returninterps
|
.returninterps
|
||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
@@ -1097,7 +1094,7 @@ MMXInterpolwin:
|
|||||||
inc ebx
|
inc ebx
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .asl
|
jnz near .asl
|
||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
@@ -1161,7 +1158,7 @@ MMXInterpolwin:
|
|||||||
add esi,64
|
add esi,64
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .ahb
|
jnz near .ahb
|
||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
@@ -1212,7 +1209,6 @@ MMXInterpolwin:
|
|||||||
sub edx,16*64
|
sub edx,16*64
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
movq mm3,mm2
|
movq mm3,mm2
|
||||||
|
|
||||||
.ahc2
|
.ahc2
|
||||||
movq mm0,[edx]
|
movq mm0,[edx]
|
||||||
movq mm1,[edx+8]
|
movq mm1,[edx+8]
|
||||||
@@ -1239,14 +1235,14 @@ MMXInterpolwin:
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
inc ebx
|
inc ebx
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .ahb2
|
jnz near .ahb2
|
||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM interpolate640x480x16bwin
|
NEWSYM interpolate640x480x16bwin
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je MMXInterpolwin
|
je near MMXInterpolwin
|
||||||
|
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -1260,11 +1256,11 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
sub dl,3
|
sub dl,3
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je near .scanlines
|
||||||
cmp byte[scanlines],2
|
cmp byte[scanlines],2
|
||||||
je .scanlinesquart
|
je near .scanlinesquart
|
||||||
cmp byte[scanlines],3
|
cmp byte[scanlines],3
|
||||||
je .scanlineshalf
|
je near .scanlineshalf
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
; do first line
|
; do first line
|
||||||
@@ -1334,7 +1330,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add edi,4
|
add edi,4
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopb
|
jnz near .loopb
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
.returninterp
|
.returninterp
|
||||||
@@ -1342,7 +1338,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopb
|
jnz near .loopb
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1423,7 +1419,6 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
|
|
||||||
.fslloop2
|
.fslloop2
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1431,7 +1426,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
jnz .fslloop2
|
jnz .fslloop2
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab
|
jnz near .loopab
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1482,7 +1477,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab2
|
jnz near .loopab2
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
.returninterphs
|
.returninterphs
|
||||||
@@ -1490,14 +1485,13 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab2
|
jnz near .loopab2
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
|
|
||||||
.loopab3
|
.loopab3
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -1546,7 +1540,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab3
|
jnz near .loopab3
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
.returninterpqs
|
.returninterpqs
|
||||||
@@ -1554,7 +1548,7 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
dec byte[lineleft]
|
dec byte[lineleft]
|
||||||
jnz .loopab3
|
jnz near .loopab3
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1562,6 +1556,8 @@ SECTION .bss
|
|||||||
InterPtr resd 1
|
InterPtr resd 1
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM CopyVWinAsmEnd
|
NEWSYM CopyVWinAsmEnd
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user