Updated video code again to fix compile problems
This commit is contained in:
@@ -15,6 +15,8 @@
|
|||||||
;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
|
||||||
@@ -38,7 +40,6 @@ NEWSYM copy640x480x16bwin
|
|||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.startcopy
|
.startcopy
|
||||||
push es
|
push es
|
||||||
mov ax,ds
|
mov ax,ds
|
||||||
@@ -74,7 +75,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopa
|
je .loopa
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopa
|
.loopa
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -118,11 +118,9 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmx2
|
.mmx2
|
||||||
emms
|
emms
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshires
|
.yeshires
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -140,7 +138,6 @@ ALIGN4
|
|||||||
pop ebx
|
pop ebx
|
||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.rightside
|
.rightside
|
||||||
push ebx
|
push ebx
|
||||||
mov ebx,[NumBytesPerLine]
|
mov ebx,[NumBytesPerLine]
|
||||||
@@ -155,7 +152,6 @@ ALIGN4
|
|||||||
pop ebx
|
pop ebx
|
||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.mmx
|
.mmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -192,12 +188,10 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2
|
jnz .mmxr2
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.yeshiresng
|
.yeshiresng
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .return
|
jmp .return
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.bng
|
.bng
|
||||||
mov eax,[esi+75036*4-2]
|
mov eax,[esi+75036*4-2]
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -219,7 +213,6 @@ ALIGN4
|
|||||||
jnz .bngb
|
jnz .bngb
|
||||||
jmp .return
|
jmp .return
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -227,7 +220,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopab
|
je .loopab
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopab
|
.loopab
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -236,7 +228,6 @@ ALIGN4
|
|||||||
jbe .ignorehrb
|
jbe .ignorehrb
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.ignorehrb
|
.ignorehrb
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxsl
|
je .mmxsl
|
||||||
@@ -253,7 +244,6 @@ ALIGN4
|
|||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -268,7 +258,7 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -281,7 +271,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bb
|
jnz .bb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.rightsideb
|
.rightsideb
|
||||||
.cb
|
.cb
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -291,7 +280,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .cb
|
jnz .cb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.mmxsl
|
.mmxsl
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
.mmxrsl
|
.mmxrsl
|
||||||
@@ -308,7 +296,6 @@ ALIGN4
|
|||||||
jnz .mmxrsl
|
jnz .mmxrsl
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.halfscanlines
|
.halfscanlines
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -316,13 +303,11 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabh
|
je .loopabh
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabh
|
.loopabh
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrbh
|
jbe .ignorehrbh
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
ALIGN4
|
|
||||||
.ignorehrbh
|
.ignorehrbh
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh
|
je .mmxslh
|
||||||
@@ -360,7 +345,6 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmxslh
|
.mmxslh
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -407,7 +391,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h
|
jnz .mmxr2h
|
||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.quartscanlines
|
.quartscanlines
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
@@ -416,13 +399,11 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabh2
|
je .loopabh2
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabh2
|
.loopabh2
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrbh2
|
jbe .ignorehrbh2
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
ALIGN4
|
|
||||||
.ignorehrbh2
|
.ignorehrbh2
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh2
|
je .mmxslh2
|
||||||
@@ -464,7 +445,6 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmxslh2
|
.mmxslh2
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -511,7 +491,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
HighResProc:
|
HighResProc:
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],3
|
cmp byte[ebx],3
|
||||||
@@ -544,7 +523,6 @@ HighResProc:
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.nofielde
|
.nofielde
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.hiresmode7
|
.hiresmode7
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmxmode7
|
je .yeshiresngmmxmode7
|
||||||
@@ -572,7 +550,6 @@ ALIGN4
|
|||||||
jnz .a2b
|
jnz .a2b
|
||||||
sub esi,75036*4
|
sub esi,75036*4
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresngmmxmode7
|
.yeshiresngmmxmode7
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
.mmxr
|
.mmxr
|
||||||
@@ -605,7 +582,6 @@ ALIGN4
|
|||||||
jnz .mmxrb
|
jnz .mmxrb
|
||||||
sub esi,75036*4
|
sub esi,75036*4
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.hires
|
.hires
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmx
|
je .yeshiresngmmx
|
||||||
@@ -626,7 +602,6 @@ ALIGN4
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.lowerfield
|
.lowerfield
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.nofieldb
|
.nofieldb
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je .scanlines
|
||||||
@@ -646,10 +621,8 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bngb
|
jnz .bngb
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresngmmx
|
.yeshiresngmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -678,7 +651,6 @@ ALIGN4
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.lowerfieldb
|
.lowerfieldb
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.nofieldc
|
.nofieldc
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je .scanlines
|
||||||
@@ -711,7 +683,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2
|
jnz .mmxr2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.antialias
|
.antialias
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -745,7 +716,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2aa
|
jnz .mmxr2aa
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.halfscanlines
|
.halfscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
@@ -762,7 +732,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .abhs
|
jnz .abhs
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.quartscanlines
|
.quartscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
@@ -782,7 +751,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .abhs2
|
jnz .abhs2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.halfscanlinesmmx
|
.halfscanlinesmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,32
|
mov ecx,32
|
||||||
@@ -811,7 +779,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2h
|
jnz .mmxr2h
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.quartscanlinesmmx
|
.quartscanlinesmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -841,7 +808,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
Process2xSaIwin:
|
Process2xSaIwin:
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -849,7 +815,6 @@ Process2xSaIwin:
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabi
|
je .loopabi
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabi
|
.loopabi
|
||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
@@ -881,7 +846,6 @@ ALIGN4
|
|||||||
jnz .nextb
|
jnz .nextb
|
||||||
pop ebx
|
pop ebx
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
|
|
||||||
;srcPtr equ 8
|
;srcPtr equ 8
|
||||||
@@ -911,11 +875,9 @@ ALIGN4
|
|||||||
je .super2xSaI
|
je .super2xSaI
|
||||||
call _2xSaILineW
|
call _2xSaILineW
|
||||||
jmp .normal
|
jmp .normal
|
||||||
ALIGN4
|
|
||||||
.supereagle
|
.supereagle
|
||||||
call _2xSaISuperEagleLineW
|
call _2xSaISuperEagleLineW
|
||||||
jmp .normal
|
jmp .normal
|
||||||
ALIGN4
|
|
||||||
.super2xSaI
|
.super2xSaI
|
||||||
call _2xSaISuper2xSaILineW
|
call _2xSaISuper2xSaILineW
|
||||||
.normal
|
.normal
|
||||||
@@ -930,7 +892,6 @@ ALIGN4
|
|||||||
jnz .next
|
jnz .next
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
sub edi,[NumBytesPerLine]
|
sub edi,[NumBytesPerLine]
|
||||||
ALIGN4
|
|
||||||
.loop
|
.loop
|
||||||
mov dword[es:edi],0
|
mov dword[es:edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -939,7 +900,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
emms
|
emms
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -951,7 +911,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
MMXInterpolwin:
|
MMXInterpolwin:
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -959,7 +918,6 @@ MMXInterpolwin:
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopab
|
je .loopab
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopab
|
.loopab
|
||||||
|
|
||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
@@ -1013,7 +971,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1090,7 +1047,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1104,7 +1060,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTrans]
|
movq mm2,[HalfTrans]
|
||||||
jmp .returninterps
|
jmp .returninterps
|
||||||
ALIGN4
|
|
||||||
.ignorehrs
|
.ignorehrs
|
||||||
.a
|
.a
|
||||||
movq mm0,[esi]
|
movq mm0,[esi]
|
||||||
@@ -1131,7 +1086,6 @@ ALIGN4
|
|||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1146,7 +1100,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1157,7 +1110,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTrans]
|
movq mm2,[HalfTrans]
|
||||||
jmp .returninterphs
|
jmp .returninterphs
|
||||||
ALIGN4
|
|
||||||
.ignorehrhs
|
.ignorehrhs
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1212,7 +1164,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1223,7 +1174,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
jmp .returninterpqs
|
jmp .returninterpqs
|
||||||
ALIGN4
|
|
||||||
.ignorehrqs
|
.ignorehrqs
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1292,7 +1242,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
NEWSYM interpolate640x480x16bwin
|
NEWSYM interpolate640x480x16bwin
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je MMXInterpolwin
|
je MMXInterpolwin
|
||||||
@@ -1303,7 +1252,6 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabi
|
je .loopabi
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabi
|
.loopabi
|
||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
@@ -1338,14 +1286,12 @@ ALIGN4
|
|||||||
add esi,66
|
add esi,66
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add edi,4
|
add edi,4
|
||||||
ALIGN4
|
|
||||||
.loopb
|
.loopb
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehr
|
jbe .ignorehr
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1389,7 +1335,6 @@ ALIGN4
|
|||||||
jnz .loopb
|
jnz .loopb
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -1399,7 +1344,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
@@ -1408,7 +1352,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabis
|
je .loopabis
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabis
|
.loopabis
|
||||||
.loopab
|
.loopab
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
@@ -1416,7 +1359,6 @@ ALIGN4
|
|||||||
jbe .ignorehrs
|
jbe .ignorehrs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterps
|
jmp .returninterps
|
||||||
ALIGN4
|
|
||||||
.ignorehrs
|
.ignorehrs
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshiresb
|
je .yeshiresb
|
||||||
@@ -1441,7 +1383,6 @@ ALIGN4
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1454,7 +1395,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -1467,7 +1407,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bb
|
jnz .bb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.rightsideb
|
.rightsideb
|
||||||
.cb
|
.cb
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -1477,13 +1416,12 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .cb
|
jnz .cb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.returninterps
|
.returninterps
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop2
|
.fslloop2
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1495,18 +1433,15 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
ALIGN4
|
|
||||||
.loopab2
|
.loopab2
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrhs
|
jbe .ignorehrhs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterphs
|
jmp .returninterphs
|
||||||
ALIGN4
|
|
||||||
.ignorehrhs
|
.ignorehrhs
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1548,7 +1483,6 @@ ALIGN4
|
|||||||
jnz .loopab2
|
jnz .loopab2
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterphs
|
.returninterphs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -1558,18 +1492,16 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
ALIGN4
|
|
||||||
.loopab3
|
.loopab3
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrqs
|
jbe .ignorehrqs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterpqs
|
jmp .returninterpqs
|
||||||
ALIGN4
|
|
||||||
.ignorehrqs
|
.ignorehrqs
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1615,7 +1547,6 @@ ALIGN4
|
|||||||
jnz .loopab3
|
jnz .loopab3
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterpqs
|
.returninterpqs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
;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
|
||||||
@@ -40,7 +42,6 @@ NEWSYM copy640x480x16bwin
|
|||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.startcopy
|
.startcopy
|
||||||
push es
|
push es
|
||||||
mov ax,ds
|
mov ax,ds
|
||||||
@@ -76,7 +77,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopa
|
je .loopa
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopa
|
.loopa
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -120,11 +120,9 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmx2
|
.mmx2
|
||||||
emms
|
emms
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshires
|
.yeshires
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -142,7 +140,6 @@ ALIGN4
|
|||||||
pop ebx
|
pop ebx
|
||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.rightside
|
.rightside
|
||||||
push ebx
|
push ebx
|
||||||
mov ebx,[NumBytesPerLine]
|
mov ebx,[NumBytesPerLine]
|
||||||
@@ -157,7 +154,6 @@ ALIGN4
|
|||||||
pop ebx
|
pop ebx
|
||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.mmx
|
.mmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -194,12 +190,10 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2
|
jnz .mmxr2
|
||||||
jmp .return
|
jmp .return
|
||||||
ALIGN4
|
|
||||||
.yeshiresng
|
.yeshiresng
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .return
|
jmp .return
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.bng
|
.bng
|
||||||
mov eax,[esi+75036*4-2]
|
mov eax,[esi+75036*4-2]
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -221,7 +215,6 @@ ALIGN4
|
|||||||
jnz .bngb
|
jnz .bngb
|
||||||
jmp .return
|
jmp .return
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -229,7 +222,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopab
|
je .loopab
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopab
|
.loopab
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
@@ -238,7 +230,6 @@ ALIGN4
|
|||||||
jbe .ignorehrb
|
jbe .ignorehrb
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.ignorehrb
|
.ignorehrb
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxsl
|
je .mmxsl
|
||||||
@@ -255,7 +246,6 @@ ALIGN4
|
|||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -270,7 +260,7 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -283,7 +273,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bb
|
jnz .bb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.rightsideb
|
.rightsideb
|
||||||
.cb
|
.cb
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -293,7 +282,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .cb
|
jnz .cb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.mmxsl
|
.mmxsl
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
.mmxrsl
|
.mmxrsl
|
||||||
@@ -310,7 +298,6 @@ ALIGN4
|
|||||||
jnz .mmxrsl
|
jnz .mmxrsl
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.halfscanlines
|
.halfscanlines
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -318,13 +305,11 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabh
|
je .loopabh
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabh
|
.loopabh
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrbh
|
jbe .ignorehrbh
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
ALIGN4
|
|
||||||
.ignorehrbh
|
.ignorehrbh
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh
|
je .mmxslh
|
||||||
@@ -362,7 +347,6 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmxslh
|
.mmxslh
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -409,7 +393,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h
|
jnz .mmxr2h
|
||||||
jmp .returnbh
|
jmp .returnbh
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.quartscanlines
|
.quartscanlines
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
@@ -418,13 +401,11 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabh2
|
je .loopabh2
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabh2
|
.loopabh2
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrbh2
|
jbe .ignorehrbh2
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
ALIGN4
|
|
||||||
.ignorehrbh2
|
.ignorehrbh2
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmxslh2
|
je .mmxslh2
|
||||||
@@ -466,7 +447,6 @@ ALIGN4
|
|||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .mmx2
|
je .mmx2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.mmxslh2
|
.mmxslh2
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -513,7 +493,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
jmp .returnbh2
|
jmp .returnbh2
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
HighResProc:
|
HighResProc:
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
cmp byte[ebx],3
|
cmp byte[ebx],3
|
||||||
@@ -546,7 +525,6 @@ HighResProc:
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.nofielde
|
.nofielde
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.hiresmode7
|
.hiresmode7
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmxmode7
|
je .yeshiresngmmxmode7
|
||||||
@@ -574,7 +552,6 @@ ALIGN4
|
|||||||
jnz .a2b
|
jnz .a2b
|
||||||
sub esi,75036*4
|
sub esi,75036*4
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresngmmxmode7
|
.yeshiresngmmxmode7
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
.mmxr
|
.mmxr
|
||||||
@@ -607,7 +584,6 @@ ALIGN4
|
|||||||
jnz .mmxrb
|
jnz .mmxrb
|
||||||
sub esi,75036*4
|
sub esi,75036*4
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.hires
|
.hires
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je .yeshiresngmmx
|
je .yeshiresngmmx
|
||||||
@@ -628,7 +604,6 @@ ALIGN4
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.lowerfield
|
.lowerfield
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.nofieldb
|
.nofieldb
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je .scanlines
|
||||||
@@ -648,10 +623,8 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bngb
|
jnz .bngb
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresngmmx
|
.yeshiresngmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -680,7 +653,6 @@ ALIGN4
|
|||||||
add edi,[NumBytesPerLine]
|
add edi,[NumBytesPerLine]
|
||||||
.lowerfieldb
|
.lowerfieldb
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.nofieldc
|
.nofieldc
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .scanlines
|
je .scanlines
|
||||||
@@ -713,7 +685,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2
|
jnz .mmxr2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.antialias
|
.antialias
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
@@ -747,7 +718,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2aa
|
jnz .mmxr2aa
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.halfscanlines
|
.halfscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
@@ -764,7 +734,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .abhs
|
jnz .abhs
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.quartscanlines
|
.quartscanlines
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
sub esi,256*2
|
sub esi,256*2
|
||||||
@@ -784,7 +753,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .abhs2
|
jnz .abhs2
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.halfscanlinesmmx
|
.halfscanlinesmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,32
|
mov ecx,32
|
||||||
@@ -813,7 +781,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .mmxr2h
|
jnz .mmxr2h
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.quartscanlinesmmx
|
.quartscanlinesmmx
|
||||||
mov eax,[spritetablea]
|
mov eax,[spritetablea]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -843,7 +810,6 @@ ALIGN4
|
|||||||
jnz .mmxr2h2
|
jnz .mmxr2h2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
Process2xSaIwin:
|
Process2xSaIwin:
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -851,7 +817,6 @@ Process2xSaIwin:
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabi
|
je .loopabi
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabi
|
.loopabi
|
||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
@@ -883,7 +848,6 @@ ALIGN4
|
|||||||
jnz .nextb
|
jnz .nextb
|
||||||
pop ebx
|
pop ebx
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
|
|
||||||
;srcPtr equ 8
|
;srcPtr equ 8
|
||||||
@@ -913,11 +877,9 @@ ALIGN4
|
|||||||
je .super2xSaI
|
je .super2xSaI
|
||||||
call _2xSaILineW
|
call _2xSaILineW
|
||||||
jmp .normal
|
jmp .normal
|
||||||
ALIGN4
|
|
||||||
.supereagle
|
.supereagle
|
||||||
call _2xSaISuperEagleLineW
|
call _2xSaISuperEagleLineW
|
||||||
jmp .normal
|
jmp .normal
|
||||||
ALIGN4
|
|
||||||
.super2xSaI
|
.super2xSaI
|
||||||
call _2xSaISuper2xSaILineW
|
call _2xSaISuper2xSaILineW
|
||||||
.normal
|
.normal
|
||||||
@@ -932,7 +894,6 @@ ALIGN4
|
|||||||
jnz .next
|
jnz .next
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
sub edi,[NumBytesPerLine]
|
sub edi,[NumBytesPerLine]
|
||||||
ALIGN4
|
|
||||||
.loop
|
.loop
|
||||||
mov dword[es:edi],0
|
mov dword[es:edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -941,7 +902,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
emms
|
emms
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -953,7 +913,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
MMXInterpolwin:
|
MMXInterpolwin:
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
cmp byte[GUIOn],1
|
cmp byte[GUIOn],1
|
||||||
@@ -961,7 +920,6 @@ MMXInterpolwin:
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopab
|
je .loopab
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopab
|
.loopab
|
||||||
|
|
||||||
mov dl,[resolutn]
|
mov dl,[resolutn]
|
||||||
@@ -1015,7 +973,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1092,7 +1049,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1106,7 +1062,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTrans]
|
movq mm2,[HalfTrans]
|
||||||
jmp .returninterps
|
jmp .returninterps
|
||||||
ALIGN4
|
|
||||||
.ignorehrs
|
.ignorehrs
|
||||||
.a
|
.a
|
||||||
movq mm0,[esi]
|
movq mm0,[esi]
|
||||||
@@ -1133,7 +1088,6 @@ ALIGN4
|
|||||||
add esi,64
|
add esi,64
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1148,7 +1102,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1159,7 +1112,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTrans]
|
movq mm2,[HalfTrans]
|
||||||
jmp .returninterphs
|
jmp .returninterphs
|
||||||
ALIGN4
|
|
||||||
.ignorehrhs
|
.ignorehrhs
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1214,7 +1166,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
inc dl
|
inc dl
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
@@ -1225,7 +1176,6 @@ ALIGN4
|
|||||||
call HighResProc
|
call HighResProc
|
||||||
movq mm2,[HalfTransC]
|
movq mm2,[HalfTransC]
|
||||||
jmp .returninterpqs
|
jmp .returninterpqs
|
||||||
ALIGN4
|
|
||||||
.ignorehrqs
|
.ignorehrqs
|
||||||
mov eax,[esi+510]
|
mov eax,[esi+510]
|
||||||
mov ecx,64
|
mov ecx,64
|
||||||
@@ -1294,7 +1244,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
NEWSYM interpolate640x480x16bwin
|
NEWSYM interpolate640x480x16bwin
|
||||||
cmp byte[MMXSupport],1
|
cmp byte[MMXSupport],1
|
||||||
je MMXInterpolwin
|
je MMXInterpolwin
|
||||||
@@ -1305,7 +1254,6 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabi
|
je .loopabi
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabi
|
.loopabi
|
||||||
mov [InterPtr],ebx
|
mov [InterPtr],ebx
|
||||||
|
|
||||||
@@ -1340,14 +1288,12 @@ ALIGN4
|
|||||||
add esi,66
|
add esi,66
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
add edi,4
|
add edi,4
|
||||||
ALIGN4
|
|
||||||
.loopb
|
.loopb
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehr
|
jbe .ignorehr
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterp
|
jmp .returninterp
|
||||||
ALIGN4
|
|
||||||
.ignorehr
|
.ignorehr
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1391,7 +1337,6 @@ ALIGN4
|
|||||||
jnz .loopb
|
jnz .loopb
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterp
|
.returninterp
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -1401,7 +1346,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlines
|
.scanlines
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,hirestiledat+1
|
mov ebx,hirestiledat+1
|
||||||
@@ -1410,7 +1354,6 @@ ALIGN4
|
|||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
je .loopabis
|
je .loopabis
|
||||||
mov ebx,SpecialLine+1
|
mov ebx,SpecialLine+1
|
||||||
ALIGN4
|
|
||||||
.loopabis
|
.loopabis
|
||||||
.loopab
|
.loopab
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
@@ -1418,7 +1361,6 @@ ALIGN4
|
|||||||
jbe .ignorehrs
|
jbe .ignorehrs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterps
|
jmp .returninterps
|
||||||
ALIGN4
|
|
||||||
.ignorehrs
|
.ignorehrs
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
je .yeshiresb
|
je .yeshiresb
|
||||||
@@ -1443,7 +1385,6 @@ ALIGN4
|
|||||||
add edi,4
|
add edi,4
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop
|
.fslloop
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1456,7 +1397,6 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
xor byte[res512switch],1
|
xor byte[res512switch],1
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.yeshiresb
|
.yeshiresb
|
||||||
mov byte[ebx],0
|
mov byte[ebx],0
|
||||||
test byte[res512switch],1
|
test byte[res512switch],1
|
||||||
@@ -1469,7 +1409,6 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .bb
|
jnz .bb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.rightsideb
|
.rightsideb
|
||||||
.cb
|
.cb
|
||||||
mov ax,[esi]
|
mov ax,[esi]
|
||||||
@@ -1479,13 +1418,12 @@ ALIGN4
|
|||||||
dec ecx
|
dec ecx
|
||||||
jnz .cb
|
jnz .cb
|
||||||
jmp .returnb
|
jmp .returnb
|
||||||
ALIGN4
|
|
||||||
.returninterps
|
.returninterps
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
add edi,[AddEndBytes]
|
add edi,[AddEndBytes]
|
||||||
mov ecx,256
|
mov ecx,256
|
||||||
ALIGN4
|
|
||||||
.fslloop2
|
.fslloop2
|
||||||
mov dword[edi],0
|
mov dword[edi],0
|
||||||
add edi,4
|
add edi,4
|
||||||
@@ -1497,18 +1435,15 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlineshalf
|
.scanlineshalf
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
ALIGN4
|
|
||||||
.loopab2
|
.loopab2
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrhs
|
jbe .ignorehrhs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterphs
|
jmp .returninterphs
|
||||||
ALIGN4
|
|
||||||
.ignorehrhs
|
.ignorehrhs
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1550,7 +1485,6 @@ ALIGN4
|
|||||||
jnz .loopab2
|
jnz .loopab2
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterphs
|
.returninterphs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -1560,18 +1494,16 @@ ALIGN4
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN4
|
|
||||||
.scanlinesquart
|
.scanlinesquart
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [lineleft],dl
|
mov [lineleft],dl
|
||||||
ALIGN4
|
|
||||||
.loopab3
|
.loopab3
|
||||||
mov ebx,[InterPtr]
|
mov ebx,[InterPtr]
|
||||||
cmp byte[ebx],1
|
cmp byte[ebx],1
|
||||||
jbe .ignorehrqs
|
jbe .ignorehrqs
|
||||||
call HighResProc
|
call HighResProc
|
||||||
jmp .returninterpqs
|
jmp .returninterpqs
|
||||||
ALIGN4
|
|
||||||
.ignorehrqs
|
.ignorehrqs
|
||||||
mov ecx,255
|
mov ecx,255
|
||||||
mov edx,[spritetablea]
|
mov edx,[spritetablea]
|
||||||
@@ -1617,7 +1549,6 @@ ALIGN4
|
|||||||
jnz .loopab3
|
jnz .loopab3
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
ALIGN4
|
|
||||||
.returninterpqs
|
.returninterpqs
|
||||||
add esi,64
|
add esi,64
|
||||||
inc dword[InterPtr]
|
inc dword[InterPtr]
|
||||||
@@ -1631,8 +1562,6 @@ 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