Added a new video mode to the DOS port.

This commit is contained in:
stainless
2001-09-05 23:14:01 +00:00
parent 42c5e322da
commit d4fa4e1fdb
7 changed files with 257 additions and 87 deletions

View File

@@ -260,27 +260,29 @@ ScreenShow:
cmp byte[debugdisble],0
je .debug
cmp byte[cvidmode],0
je near copymodeq224
cmp byte[cvidmode],1
je near copymodeq
.debug
cmp byte[cvidmode],1
je near copymodex
cmp byte[cvidmode],2
je near copyvesa12640x480x16b
je near copymodex
cmp byte[cvidmode],3
je near copyvesa2320x240x8b
je near copyvesa12640x480x16b
cmp byte[cvidmode],4
je near copyvesa2320x240x16b
je near copyvesa2320x240x8b
cmp byte[cvidmode],5
je near copyvesa2320x480x8b
je near copyvesa2320x240x16b
cmp byte[cvidmode],6
je near copyvesa2320x480x8b
cmp byte[cvidmode],7
je near copyvesa2320x480x16b
cmp byte[cvidmode],7
cmp byte[cvidmode],8
je near copyvesa2512x384x8b
cmp byte[cvidmode],8
je near copyvesa2512x384x16b
cmp byte[cvidmode],9
je near copyvesa2640x480x8b
je near copyvesa2512x384x16b
cmp byte[cvidmode],10
je near copyvesa2640x480x8b
cmp byte[cvidmode],11
je near copyvesa2640x480x16b
cmp byte[curblank],40h
je .startcopy
@@ -300,26 +302,28 @@ NEWSYM dosvidpastecopyscr
ScreenShowGUI:
cmp byte[cvidmode],0
je near copymodeq
je near copymodeq224
cmp byte[cvidmode],1
je near copymodex
je near copymodeq
cmp byte[cvidmode],2
je near copyvesa12640x480x16bgui
je near copymodex
cmp byte[cvidmode],3
je near copyvesa2320x240x8b
je near copyvesa12640x480x16bgui
cmp byte[cvidmode],4
je near copyvesa2320x240x16bgui
je near copyvesa2320x240x8b
cmp byte[cvidmode],5
je near copyvesa2320x480x8bgui
je near copyvesa2320x240x16bgui
cmp byte[cvidmode],6
je near copyvesa2320x480x16bgui
je near copyvesa2320x480x8bgui
cmp byte[cvidmode],7
je near copyvesa2512x384x8b
je near copyvesa2320x480x16bgui
cmp byte[cvidmode],8
je near copyvesa2512x384x16bgui
je near copyvesa2512x384x8b
cmp byte[cvidmode],9
je near copyvesa2640x480x8bgui
je near copyvesa2512x384x16bgui
cmp byte[cvidmode],10
je near copyvesa2640x480x8bgui
cmp byte[cvidmode],11
je near copyvesa2640x480x16bgui
jmp copymodeq
%endif
@@ -536,6 +540,41 @@ NEWSYM copymodeq
pop es
ret
;*******************************************************
; CopyModeQ224 Copies buffer into chained 256x224
;*******************************************************
NEWSYM copymodeq224
cmp byte[curblank],40h
jne .startcopy
ret
.startcopy
push es
mov es,[selcA000]
mov esi,[vidbuffer]
add esi,16+256+32
mov edi,256
mov edx,222
cmp byte[FPUCopy],2
je near .loopb
.loopa
mov ecx,64
rep movsd
add esi,32
dec edx
jnz .loopa
jmp .done
.loopb
mov ecx,16
MMXStuff
add esi,32
dec edx
jnz .loopb
emms
.done
pop es
ret
;*******************************************************
; Copy VESA2 320x240x8b Copies buffer to 320x240x8bVBE2
;*******************************************************
@@ -5395,26 +5434,28 @@ NEWSYM copyvesa12640x480x16b
NEWSYM DOSClearScreen
%ifdef __MSDOS__
cmp byte[cvidmode],0
je near cscopymodeq
je near copymodeq224
cmp byte[cvidmode],1
je near cscopymodex
je near cscopymodeq
cmp byte[cvidmode],2
je near cscopyvesa12640x480x16b
je near cscopymodex
cmp byte[cvidmode],3
je near cscopyvesa2320x240x8b
je near cscopyvesa12640x480x16b
cmp byte[cvidmode],4
je near cscopyvesa2320x240x16b
je near cscopyvesa2320x240x8b
cmp byte[cvidmode],5
je near cscopyvesa2320x480x8b
je near cscopyvesa2320x240x16b
cmp byte[cvidmode],6
je near cscopyvesa2320x480x16b
je near cscopyvesa2320x480x8b
cmp byte[cvidmode],7
je near cscopyvesa2512x384x8b
je near cscopyvesa2320x480x16b
cmp byte[cvidmode],8
je near cscopyvesa2512x384x16b
je near cscopyvesa2512x384x8b
cmp byte[cvidmode],9
je near cscopyvesa2640x480x8b
je near cscopyvesa2512x384x16b
cmp byte[cvidmode],10
je near cscopyvesa2640x480x8b
cmp byte[cvidmode],11
je near cscopyvesa2640x480x16b
%endif
ret
@@ -5584,11 +5625,11 @@ NEWSYM GetScreen
; jbe .getscreen
; ret
;.getscreen
cmp byte[cvidmode],4
cmp byte[cvidmode],5
je near getcopyvesa2320x240x16b
cmp byte[cvidmode],10
cmp byte[cvidmode],11
; je near getcopyvesa2640x480x16b
cmp byte[cvidmode],8
cmp byte[cvidmode],9
; je near getcopyvesa2512x384x16b
%endif
ret