Restoring interpolation routine to the original.

This commit is contained in:
stainless
2001-11-15 00:01:55 +00:00
parent e5d1c9b36a
commit 9f0a9c3260

View File

@@ -2711,41 +2711,43 @@ NEWSYM copyvesa2320x240x16b
;cmp byte[ScreenScale],1
;je .infsloopa
.inloopa
mov bx,[esi]
mov ecx,256-2
mov ax,[esi+2]
add esi,byte 2
mov [es:edi],bx
add edi,byte 2
.inloopb
push eax
mov ebp,[esi+2]
shr eax,byte 1
push ebp
shr ebx,byte 2
and eax,7befh
shr ebp,byte 2
and ebx,39e7h
add eax,ebx
and ebp,39e7h
add eax,ebp
mov ax,[esi]
mov [es:edi],ax
pop eax
pop ebx
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
jnz .inloopa
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
.inloopa2
mov ax,[esi]
add esi,byte 2
mov [es:edi],ax
add edi,byte 2
add esi,byte 32*2
sub edi,byte -64*2
dec dl
jnz .inloopa
jmp .inloopa2
.done
pop es
@@ -3311,56 +3313,64 @@ NEWSYM copyvesa2320x480x16b
.interpolate
cmp byte[scanlines],1
je .inloopb
je .inloopa2
.inloopa
call .inloopc
sub esi,256*2
add edi,32*2+32*2
call .inloopc
add esi,32*2
add edi,32*2+32*2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
call .inloopb
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
jnz .inloopa
jmp .done
.inloopb
call .inloopc
add esi,32*2
add edi,32*2+320*2+32*2
dec dl
jnz .inloopb
jmp .done
.inloopc
mov bx,[esi]
mov ecx,256-2
mov ax,[esi+2]
add esi,byte 2
mov [es:edi],bx
add edi,byte 2
call .inloopc2
.inloopa2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
mov [es:edi],ax
add edi,byte 2
ret
.inloopc2
push eax
mov ebp,[esi+2]
shr eax,byte 1
push ebp
shr ebx,byte 2
and eax,7befh
shr ebp,byte 2
and ebx,39e7h
add eax,ebx
and ebp,39e7h
add eax,ebp
mov ecx,254
call .inloopb
mov ax,[esi]
mov [es:edi],ax
pop eax
pop ebx
add esi,16*2+16*2+2
add edi,32*2+320*2+32*2+2
dec dl
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 .inloopc2
jnz .inloopb
ret
.done