Added full screen to 640x400 modes in the DOS port.

This commit is contained in:
stainless
2001-11-05 06:15:52 +00:00
parent 992f777019
commit 56bfad4d20
2 changed files with 82 additions and 1 deletions

View File

@@ -1046,7 +1046,7 @@ NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0 ; Scanlines
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 ; Interpolation NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 ; Interpolation
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ; Eagle NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ; Eagle
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle) NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle)
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0 ; Full Screen NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0 ; Full Screen
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0 ; Small Screen NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0 ; Small Screen
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0 ; Triple Buffering NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0 ; Triple Buffering
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0 ; Half/Quarter Scanlines NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0 ; Half/Quarter Scanlines

View File

@@ -1292,6 +1292,8 @@ NEWSYM copyvesa2640x400x8b
mov dl,[resolutn] mov dl,[resolutn]
dec dl dec dl
dec dl dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
je .smallscreen je .smallscreen
.loopa .loopa
@@ -1342,6 +1344,45 @@ NEWSYM copyvesa2640x400x8b
dec dl dec dl
jnz .ssloopb jnz .ssloopb
emms emms
jmp .done
.fullscreen
push ebx
sub edi,64
.fsloopa
mov ecx,64
call .fsloopb
add esi,32
mov ecx,64
call .fsloopb
sub esi,256
mov ecx,64
call .fsloopb
add esi,32
dec dl
dec dl
jnz .fsloopa
pop ebx
jmp .done
.fsloopb
mov ebx,1
call .fsloopc
sub esi,1
mov ebx,4
call .fsloopc
dec ecx
jnz .fsloopb
ret
.fsloopc
mov al,[esi]
mov [es:edi],al
inc edi
mov [es:edi],al
inc esi
inc edi
dec ebx
jnz .fsloopc
ret
.done .done
pop es pop es
@@ -1368,6 +1409,8 @@ NEWSYM copyvesa2640x400x16b
mov dl,[resolutn] mov dl,[resolutn]
dec dl dec dl
dec dl dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1 cmp byte[smallscreenon],1
je .smallscreen je .smallscreen
.loopa .loopa
@@ -1418,6 +1461,44 @@ NEWSYM copyvesa2640x400x16b
dec dl dec dl
jnz .ssloopb jnz .ssloopb
emms emms
jmp .done
.fullscreen
push ebx
sub edi,64*2
.fsloopa
mov ecx,64
call .fsloopb
add esi,32*2
mov ecx,64
call .fsloopb
sub esi,256*2
mov ecx,64
call .fsloopb
add esi,32*2
dec dl
dec dl
jnz .fsloopa
pop ebx
jmp .done
.fsloopb
mov ebx,1
call .fsloopc
sub esi,2
mov ebx,4
call .fsloopc
dec ecx
jnz .fsloopb
ret
.fsloopc
mov ax,[esi]
mov [es:edi],ax
mov [es:edi+2],ax
add esi,byte 2
add edi,byte 4
dec ebx
jnz .fsloopc
ret
.done .done
pop es pop es