Updated interpolation code
This commit is contained in:
@@ -29,9 +29,11 @@ EXTSYM HalfTransB,HalfTransC
|
|||||||
NEWSYM CopyVWinAsmStart
|
NEWSYM CopyVWinAsmStart
|
||||||
|
|
||||||
|
|
||||||
NEWSYM AddEndBytes, dd 0 ; Number of bytes between each line
|
SECTION .bss
|
||||||
NEWSYM NumBytesPerLine, dd 0 ; Total number of bytes per line (1024+AddEndBytes)
|
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
||||||
NEWSYM WinVidMemStart, dd 0
|
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
||||||
|
NEWSYM WinVidMemStart, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM copy640x480x16bwin
|
NEWSYM copy640x480x16bwin
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
@@ -1559,7 +1561,9 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss
|
||||||
InterPtr dd 0
|
;ALIGN32
|
||||||
|
InterPtr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM CopyVWinAsmEnd
|
NEWSYM CopyVWinAsmEnd
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ PreTripleBuffer:
|
|||||||
ret
|
ret
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
SECTION .data
|
||||||
VidModeSize dd 0,0,0,0,0,0,0,320*240,320*240*2,0,320*480,320*480*2
|
VidModeSize dd 0,0,0,0,0,0,0,320*240,320*240*2,0,320*480,320*480*2
|
||||||
dd 512*384,512*384*2,640*480,640*480*2
|
dd 512*384,512*384*2,640*480,640*480*2
|
||||||
VidModeLine dd 0,0,0,0,0,0,0,240,240,0,480,480,384,384,480,480
|
VidModeLine dd 0,0,0,0,0,0,0,240,240,0,480,480,384,384,480,480
|
||||||
@@ -231,10 +232,13 @@ NEWSYM VidStartDraw, dd 0
|
|||||||
VidModeComp db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
|
VidModeComp db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1
|
||||||
CVidStartAd db 0
|
CVidStartAd db 0
|
||||||
ApplyStart db 4
|
ApplyStart db 4
|
||||||
NEWSYM NextLineStart, dd 0
|
|
||||||
NEWSYM LastLineStart, dd 0
|
SECTION .bss
|
||||||
NEWSYM FlipWait, db 0
|
NEWSYM NextLineStart, resd 1
|
||||||
NEWSYM TriplebufTech, db 0
|
NEWSYM LastLineStart, resd 1
|
||||||
|
NEWSYM FlipWait, resb 1
|
||||||
|
NEWSYM TriplebufTech, resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
NEWSYM DosDrawScreen
|
NEWSYM DosDrawScreen
|
||||||
@@ -487,8 +491,10 @@ NEWSYM copymodex224
|
|||||||
out dx,al
|
out dx,al
|
||||||
mov byte[whichpage],0
|
mov byte[whichpage],0
|
||||||
ret
|
ret
|
||||||
.startesi dd 0
|
SECTION .bss
|
||||||
.startedi dd 0
|
.startesi resd 1
|
||||||
|
.startedi resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; CopyModeX 240 Copies buffer into unchained 320x240
|
; CopyModeX 240 Copies buffer into unchained 320x240
|
||||||
@@ -650,8 +656,11 @@ NEWSYM copymodex240
|
|||||||
out dx,al
|
out dx,al
|
||||||
mov byte[whichpage],0
|
mov byte[whichpage],0
|
||||||
ret
|
ret
|
||||||
.startesi dd 0
|
SECTION .bss
|
||||||
.startedi dd 0
|
.startesi resd 1
|
||||||
|
.startedi resd 1
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; CopyModeX 256 Copies buffer into unchained 320x256
|
; CopyModeX 256 Copies buffer into unchained 320x256
|
||||||
@@ -807,11 +816,12 @@ NEWSYM copymodex256
|
|||||||
out dx,al
|
out dx,al
|
||||||
mov byte[whichpage],0
|
mov byte[whichpage],0
|
||||||
ret
|
ret
|
||||||
.startesi dd 0
|
SECTION .bss
|
||||||
.startedi dd 0
|
.startesi resd 1
|
||||||
|
.startedi resd 1
|
||||||
NEWSYM whichpage, db 0 ; active page and visual page locations
|
|
||||||
|
|
||||||
|
NEWSYM whichpage, resb 1 ; active page and visual page locations
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; CopyModeQ 224 Copies buffer into chained 256x224
|
; CopyModeQ 224 Copies buffer into chained 256x224
|
||||||
@@ -1217,7 +1227,8 @@ copyvesa2320x480x8ng:
|
|||||||
;*******************************************************
|
;*******************************************************
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
ALIGN32
|
SECTION .data ALIGN = 32
|
||||||
|
|
||||||
NEWSYM EagleHold, dd 0
|
NEWSYM EagleHold, dd 0
|
||||||
NEWSYM smallscreenon, dd 0
|
NEWSYM smallscreenon, dd 0
|
||||||
NEWSYM smallscreence, dd 0
|
NEWSYM smallscreence, dd 0
|
||||||
@@ -1225,6 +1236,7 @@ NEWSYM CurrentGUIOn, dd 0
|
|||||||
vesavaland dd 0,0
|
vesavaland dd 0,0
|
||||||
mmxvalanda dd 11111111110000001111111111000000b,11111111110000001111111111000000b
|
mmxvalanda dd 11111111110000001111111111000000b,11111111110000001111111111000000b
|
||||||
mmxvalandb dd 00000000000111110000000000011111b,00000000000111110000000000011111b
|
mmxvalandb dd 00000000000111110000000000011111b,00000000000111110000000000011111b
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
NEWSYM copyvesa2640x480x8bgui
|
NEWSYM copyvesa2640x480x8bgui
|
||||||
@@ -2132,9 +2144,11 @@ NEWSYM copyvesa2512x384x8b
|
|||||||
jnz .b2
|
jnz .b2
|
||||||
jmp .returnloop
|
jmp .returnloop
|
||||||
|
|
||||||
.scratio db 0
|
SECTION .bss
|
||||||
.lastrep db 0
|
.scratio resb 1
|
||||||
.p512 db 0
|
.lastrep resb 1
|
||||||
|
.p512 resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM copyvesa2512x384x8ng
|
NEWSYM copyvesa2512x384x8ng
|
||||||
push es
|
push es
|
||||||
@@ -2210,9 +2224,11 @@ NEWSYM copyvesa2512x384x8ng
|
|||||||
jnz .b
|
jnz .b
|
||||||
jmp .returnloop
|
jmp .returnloop
|
||||||
|
|
||||||
.scratio db 0
|
SECTION .bss
|
||||||
.lastrep db 0
|
.scratio resb 1
|
||||||
.p512 db 0
|
.lastrep resb 1
|
||||||
|
.p512 resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Copy VESA2 320x240x16b Copies buffer to 320x240x16bVB2
|
; Copy VESA2 320x240x16b Copies buffer to 320x240x16bVB2
|
||||||
@@ -2396,8 +2412,10 @@ NEWSYM copyvesa2320x240x16b
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
NEWSYM palresvalng, dd 0,0
|
SECTION .bss
|
||||||
NEWSYM palresvalngb, dd 0,0
|
NEWSYM palresvalng, resd 2
|
||||||
|
NEWSYM palresvalngb, resd 2
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
%macro copya320x240 0
|
%macro copya320x240 0
|
||||||
mov [es:edi],dx
|
mov [es:edi],dx
|
||||||
@@ -2408,14 +2426,15 @@ NEWSYM palresvalngb, dd 0,0
|
|||||||
%endmacro
|
%endmacro
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ALIGN = 32
|
||||||
NEWSYM rescompareng, dd 0
|
NEWSYM rescompareng, resd 1
|
||||||
NEWSYM nextdrawallng, dd 0
|
NEWSYM nextdrawallng, resd 1
|
||||||
NEWSYM prevcol0ng, dd 0
|
NEWSYM prevcol0ng, resd 1
|
||||||
NEWSYM numbytelng, dd 0
|
NEWSYM numbytelng, resd 1
|
||||||
NEWSYM lineleft, dd 0
|
NEWSYM lineleft, resd 1
|
||||||
NEWSYM lineleft2, dd 0
|
NEWSYM lineleft2, resd 1
|
||||||
bankpos dd 0
|
bankpos resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
@@ -4625,8 +4644,9 @@ MMXInterpolFS:
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ALIGN=32
|
||||||
.interpspad dd 0,0,0,0,0,0,0,0
|
.interpspad resd 8
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
MMXInterpol:
|
MMXInterpol:
|
||||||
@@ -4662,7 +4682,7 @@ MMXInterpol:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -4704,7 +4724,7 @@ MMXInterpol:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -4720,7 +4740,7 @@ MMXInterpol:
|
|||||||
punpckhwd mm5,mm0
|
punpckhwd mm5,mm0
|
||||||
movq [edx],mm4
|
movq [edx],mm4
|
||||||
movq [edx+8],mm5
|
movq [edx+8],mm5
|
||||||
pand mm0,mm4
|
por mm0,mm4
|
||||||
movq mm0,mm6
|
movq mm0,mm6
|
||||||
pand mm4,mm2
|
pand mm4,mm2
|
||||||
pand mm6,mm2
|
pand mm6,mm2
|
||||||
@@ -4730,7 +4750,7 @@ MMXInterpol:
|
|||||||
paddd mm4,mm6
|
paddd mm4,mm6
|
||||||
paddw mm4,mm0
|
paddw mm4,mm0
|
||||||
movq mm0,mm5
|
movq mm0,mm5
|
||||||
pand mm0,mm7
|
por mm0,mm7
|
||||||
pand mm5,mm2
|
pand mm5,mm2
|
||||||
pand mm7,mm2
|
pand mm7,mm2
|
||||||
psrlw mm5,1
|
psrlw mm5,1
|
||||||
@@ -4767,7 +4787,9 @@ MMXInterpol:
|
|||||||
emms
|
emms
|
||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
.blank dd 0,0
|
SECTION .bss
|
||||||
|
.blank resd 2
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
.scanlines
|
.scanlines
|
||||||
inc dl
|
inc dl
|
||||||
@@ -4901,7 +4923,7 @@ MMXInterpol:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -4956,8 +4978,9 @@ MMXInterpol:
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ALIGN=32
|
||||||
NEWSYM InterPtr, dd 0
|
NEWSYM InterPtr, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM interpolate640x480x16b
|
NEWSYM interpolate640x480x16b
|
||||||
cmp byte[FPUCopy],2
|
cmp byte[FPUCopy],2
|
||||||
@@ -5262,8 +5285,8 @@ NEWSYM interpolate640x480x16b
|
|||||||
; Copy VESA2 640x480x16b, bit setting 1:5:5:5
|
; Copy VESA2 640x480x16b, bit setting 1:5:5:5
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss ALIGN = 32
|
||||||
.interpspad dd 0,0,0,0,0,0,0,0
|
.interpspad resd 8
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Copy VESA2 512x384x16b Copies buffer to 512x384x16bV2
|
; Copy VESA2 512x384x16b Copies buffer to 512x384x16bV2
|
||||||
@@ -5322,8 +5345,10 @@ NEWSYM copyvesa2512x384x16bgui
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.scratio db 0
|
SECTION .bss
|
||||||
.lastrep db 0
|
.scratio resb 1
|
||||||
|
.lastrep resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM copyvesa2512x384x16b
|
NEWSYM copyvesa2512x384x16b
|
||||||
cmp byte[vesa2red10],1
|
cmp byte[vesa2red10],1
|
||||||
@@ -5420,9 +5445,11 @@ NEWSYM copyvesa2512x384x16b
|
|||||||
jnz .b2
|
jnz .b2
|
||||||
jmp .returnloop
|
jmp .returnloop
|
||||||
|
|
||||||
.scratio db 0
|
SECTION .bss
|
||||||
.lastrep db 0
|
.scratio resb 1
|
||||||
.p512 db 0
|
.lastrep resb 1
|
||||||
|
.p512 resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
; Temporary
|
; Temporary
|
||||||
|
|
||||||
@@ -5482,8 +5509,10 @@ NEWSYM tempcopy
|
|||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.cocol db 0
|
SECTION .bss
|
||||||
.startbuf dd 0
|
.cocol resb 1
|
||||||
|
.startbuf resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM allcache
|
NEWSYM allcache
|
||||||
pushad
|
pushad
|
||||||
@@ -5679,9 +5708,11 @@ NEWSYM allcache
|
|||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.nbg dw 0
|
SECTION .bss
|
||||||
.a db 0
|
.nbg resw 1
|
||||||
.rowleft db 0
|
.a resb 1
|
||||||
|
.rowleft resb 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; Copy VESA1.2 640x480x16b
|
; Copy VESA1.2 640x480x16b
|
||||||
|
|||||||
@@ -27,15 +27,15 @@ EXTSYM vidbufferofsb
|
|||||||
;EXTSYM Super2xSaI
|
;EXTSYM Super2xSaI
|
||||||
EXTSYM HalfTransB,HalfTransC
|
EXTSYM HalfTransB,HalfTransC
|
||||||
|
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
NEWSYM CopyVWinAsmStart
|
NEWSYM CopyVWinAsmStart
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
SECTION .bss
|
||||||
NEWSYM AddEndBytes, dd 0 ; Number of bytes between each line
|
NEWSYM AddEndBytes, resd 1 ; Number of bytes between each line
|
||||||
NEWSYM NumBytesPerLine, dd 0 ; Total number of bytes per line (1024+AddEndBytes)
|
NEWSYM NumBytesPerLine, resd 1 ; Total number of bytes per line (1024+AddEndBytes)
|
||||||
NEWSYM WinVidMemStart, dd 0
|
NEWSYM WinVidMemStart, resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
NEWSYM copy640x480x16bwin
|
NEWSYM copy640x480x16bwin
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
@@ -951,7 +951,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -992,7 +992,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -1008,8 +1008,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
|
||||||
@@ -1018,7 +1018,7 @@ MMXInterpolwin:
|
|||||||
paddd mm4,mm6
|
paddd mm4,mm6
|
||||||
paddw mm4,mm0
|
paddw mm4,mm0
|
||||||
movq mm0,mm5
|
movq mm0,mm5
|
||||||
pand mm0,mm7
|
por mm0,mm7
|
||||||
pand mm5,mm2
|
pand mm5,mm2
|
||||||
pand mm7,mm2
|
pand mm7,mm2
|
||||||
psrlw mm5,1
|
psrlw mm5,1
|
||||||
@@ -1194,7 +1194,7 @@ MMXInterpolwin:
|
|||||||
movq mm3,mm0
|
movq mm3,mm0
|
||||||
movq mm4,mm0
|
movq mm4,mm0
|
||||||
movq mm1,[esi+2]
|
movq mm1,[esi+2]
|
||||||
pand mm3,mm1
|
por mm3,mm1
|
||||||
pand mm0,mm2
|
pand mm0,mm2
|
||||||
pand mm1,mm2
|
pand mm1,mm2
|
||||||
psrlw mm0,1
|
psrlw mm0,1
|
||||||
@@ -1563,8 +1563,9 @@ NEWSYM interpolate640x480x16bwin
|
|||||||
pop es
|
pop es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ALIGN32
|
SECTION .bss
|
||||||
InterPtr dd 0
|
InterPtr resd 1
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
|
||||||
%ifdef __MINGW__
|
%ifdef __MINGW__
|
||||||
|
|||||||
Reference in New Issue
Block a user