Added small screen to 512x384 video modes in the DOS port.
This commit is contained in:
@@ -1014,7 +1014,7 @@ NEWSYM ClearScreen
|
|||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
; Total Number of Video Modes
|
; Total Number of Video Modes
|
||||||
NEWSYM NumVideoModes, dd 15
|
NEWSYM NumVideoModes, dd 17
|
||||||
|
|
||||||
; GUI Video Mode Names - Make sure that all names are of the same length
|
; GUI Video Mode Names - Make sure that all names are of the same length
|
||||||
; and end with a NULL terminator
|
; and end with a NULL terminator
|
||||||
@@ -1048,7 +1048,7 @@ 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,0,0,0,0,0,0,0,1,1,0 ; (Interp | Eagle)
|
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,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,0,0,1,1,0 ; Full Screen
|
||||||
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.)
|
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.)
|
||||||
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,0,0,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
|
||||||
NEWSYM GUI2xVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 ; 2xSaI/Super Eagle Engines
|
NEWSYM GUI2xVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 ; 2xSaI/Super Eagle Engines
|
||||||
|
|||||||
@@ -363,6 +363,7 @@ NEWSYM dosinitvideo
|
|||||||
|
|
||||||
.initvesa2512x384x8
|
.initvesa2512x384x8
|
||||||
mov byte[res640],2
|
mov byte[res640],2
|
||||||
|
mov byte[cbitmode],0
|
||||||
mov word[vesa2_x],512
|
mov word[vesa2_x],512
|
||||||
mov word[vesa2_y],384
|
mov word[vesa2_y],384
|
||||||
mov byte[vesa2_bits],8
|
mov byte[vesa2_bits],8
|
||||||
|
|||||||
@@ -2257,6 +2257,8 @@ NEWSYM copyvesa2512x384x8b
|
|||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
|
cmp byte[smallscreenon],1
|
||||||
|
je near .smallscreen
|
||||||
cmp byte[ForceNewGfxOff],0
|
cmp byte[ForceNewGfxOff],0
|
||||||
jne .nong16b
|
jne .nong16b
|
||||||
cmp byte[newengen],0
|
cmp byte[newengen],0
|
||||||
@@ -2351,6 +2353,44 @@ NEWSYM copyvesa2512x384x8b
|
|||||||
jnz .b2
|
jnz .b2
|
||||||
jmp .returnloop
|
jmp .returnloop
|
||||||
|
|
||||||
|
.smallscreen
|
||||||
|
push es
|
||||||
|
mov ax,[vesa2selec]
|
||||||
|
mov es,ax
|
||||||
|
mov esi,[vidbuffer]
|
||||||
|
mov edi,[VidStartDraw]
|
||||||
|
add esi,16+256+32
|
||||||
|
add edi,72*512+128
|
||||||
|
cmp byte[resolutn],224
|
||||||
|
jne .ssres239
|
||||||
|
add edi,8*512
|
||||||
|
.ssres239
|
||||||
|
xor eax,eax
|
||||||
|
mov dl,[resolutn]
|
||||||
|
dec dl
|
||||||
|
dec dl
|
||||||
|
cmp byte[MMXSupport],1
|
||||||
|
je .ssloopb
|
||||||
|
.ssloopa
|
||||||
|
mov ecx,64
|
||||||
|
rep movsd
|
||||||
|
add esi,32
|
||||||
|
add edi,128*2
|
||||||
|
dec dl
|
||||||
|
jnz .ssloopa
|
||||||
|
jmp .done
|
||||||
|
.ssloopb
|
||||||
|
mov ecx,16
|
||||||
|
MMXStuff
|
||||||
|
add esi,32
|
||||||
|
add edi,128*2
|
||||||
|
dec dl
|
||||||
|
jnz .ssloopb
|
||||||
|
emms
|
||||||
|
.done
|
||||||
|
pop es
|
||||||
|
ret
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
.scratio resb 1
|
.scratio resb 1
|
||||||
.lastrep resb 1
|
.lastrep resb 1
|
||||||
@@ -5628,6 +5668,8 @@ NEWSYM copyvesa2512x384x16b
|
|||||||
jne .startcopy
|
jne .startcopy
|
||||||
ret
|
ret
|
||||||
.startcopy
|
.startcopy
|
||||||
|
cmp byte[smallscreenon],1
|
||||||
|
je near .smallscreen
|
||||||
push es
|
push es
|
||||||
mov byte[.lastrep],0
|
mov byte[.lastrep],0
|
||||||
mov ax,[vesa2selec]
|
mov ax,[vesa2selec]
|
||||||
@@ -5714,6 +5756,44 @@ NEWSYM copyvesa2512x384x16b
|
|||||||
jnz .b2
|
jnz .b2
|
||||||
jmp .returnloop
|
jmp .returnloop
|
||||||
|
|
||||||
|
.smallscreen
|
||||||
|
push es
|
||||||
|
mov ax,[vesa2selec]
|
||||||
|
mov es,ax
|
||||||
|
mov esi,[vidbuffer]
|
||||||
|
mov edi,[VidStartDraw]
|
||||||
|
add esi,16*2+256*2+32*2
|
||||||
|
add edi,72*512*2+128*2
|
||||||
|
cmp byte[resolutn],224
|
||||||
|
jne .ssres239
|
||||||
|
add edi,8*512*2
|
||||||
|
.ssres239
|
||||||
|
xor eax,eax
|
||||||
|
mov dl,[resolutn]
|
||||||
|
dec dl
|
||||||
|
dec dl
|
||||||
|
cmp byte[MMXSupport],1
|
||||||
|
je .ssloopb
|
||||||
|
.ssloopa
|
||||||
|
mov ecx,64*2
|
||||||
|
rep movsd
|
||||||
|
add esi,32*2
|
||||||
|
add edi,128*2*2
|
||||||
|
dec dl
|
||||||
|
jnz .ssloopa
|
||||||
|
jmp .done
|
||||||
|
.ssloopb
|
||||||
|
mov ecx,16*2
|
||||||
|
MMXStuff
|
||||||
|
add esi,32*2
|
||||||
|
add edi,128*2*2
|
||||||
|
dec dl
|
||||||
|
jnz .ssloopb
|
||||||
|
emms
|
||||||
|
.done
|
||||||
|
pop es
|
||||||
|
ret
|
||||||
|
|
||||||
SECTION .bss
|
SECTION .bss
|
||||||
.scratio resb 1
|
.scratio resb 1
|
||||||
.lastrep resb 1
|
.lastrep resb 1
|
||||||
|
|||||||
Reference in New Issue
Block a user