Added a new video mode to the DOS port.

This commit is contained in:
stainless
2001-09-06 01:40:09 +00:00
parent 100c92912d
commit 7671377681
7 changed files with 266 additions and 86 deletions

View File

@@ -262,27 +262,29 @@ ScreenShow:
cmp byte[cvidmode],0
je near copymodeq224
cmp byte[cvidmode],1
je near copymodeq240
cmp byte[cvidmode],2
je near copymodeq
.debug
cmp byte[cvidmode],2
je near copymodex
cmp byte[cvidmode],3
je near copyvesa12640x480x16b
je near copymodex
cmp byte[cvidmode],4
je near copyvesa2320x240x8b
je near copyvesa12640x480x16b
cmp byte[cvidmode],5
je near copyvesa2320x240x16b
je near copyvesa2320x240x8b
cmp byte[cvidmode],6
je near copyvesa2320x480x8b
je near copyvesa2320x240x16b
cmp byte[cvidmode],7
je near copyvesa2320x480x8b
cmp byte[cvidmode],8
je near copyvesa2320x480x16b
cmp byte[cvidmode],8
cmp byte[cvidmode],9
je near copyvesa2512x384x8b
cmp byte[cvidmode],9
je near copyvesa2512x384x16b
cmp byte[cvidmode],10
je near copyvesa2640x480x8b
je near copyvesa2512x384x16b
cmp byte[cvidmode],11
je near copyvesa2640x480x8b
cmp byte[cvidmode],12
je near copyvesa2640x480x16b
cmp byte[curblank],40h
je .startcopy
@@ -304,26 +306,28 @@ ScreenShowGUI:
cmp byte[cvidmode],0
je near copymodeq224
cmp byte[cvidmode],1
je near copymodeq
je near copymodeq240
cmp byte[cvidmode],2
je near copymodex
je near copymodeq
cmp byte[cvidmode],3
je near copyvesa12640x480x16bgui
je near copymodex
cmp byte[cvidmode],4
je near copyvesa2320x240x8b
je near copyvesa12640x480x16bgui
cmp byte[cvidmode],5
je near copyvesa2320x240x16bgui
je near copyvesa2320x240x8b
cmp byte[cvidmode],6
je near copyvesa2320x480x8bgui
je near copyvesa2320x240x16bgui
cmp byte[cvidmode],7
je near copyvesa2320x480x16bgui
je near copyvesa2320x480x8bgui
cmp byte[cvidmode],8
je near copyvesa2512x384x8b
je near copyvesa2320x480x16bgui
cmp byte[cvidmode],9
je near copyvesa2512x384x16bgui
je near copyvesa2512x384x8b
cmp byte[cvidmode],10
je near copyvesa2640x480x8bgui
je near copyvesa2512x384x16bgui
cmp byte[cvidmode],11
je near copyvesa2640x480x8bgui
cmp byte[cvidmode],12
je near copyvesa2640x480x16bgui
jmp copymodeq
%endif
@@ -575,6 +579,46 @@ NEWSYM copymodeq224
pop es
ret
;*******************************************************
; CopyModeQ240 Copies buffer into chained 256x240
;*******************************************************
NEWSYM copymodeq240
cmp byte[curblank],40h
jne .startcopy
ret
.startcopy
push es
mov es,[selcA000]
mov esi,[vidbuffer]
mov edi,256
cmp word[resolutn],224
jne .res239
add edi,8*256
.res239
add esi,16+256+32
mov edx,[resolutn]
sub edx,2
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
;*******************************************************
@@ -5434,28 +5478,30 @@ NEWSYM copyvesa12640x480x16b
NEWSYM DOSClearScreen
%ifdef __MSDOS__
cmp byte[cvidmode],0
je near copymodeq224
je near cscopymodeq
cmp byte[cvidmode],1
je near cscopymodeq
cmp byte[cvidmode],2
je near cscopymodex
je near cscopymodeq
cmp byte[cvidmode],3
je near cscopyvesa12640x480x16b
je near cscopymodex
cmp byte[cvidmode],4
je near cscopyvesa2320x240x8b
je near cscopyvesa12640x480x16b
cmp byte[cvidmode],5
je near cscopyvesa2320x240x16b
je near cscopyvesa2320x240x8b
cmp byte[cvidmode],6
je near cscopyvesa2320x480x8b
je near cscopyvesa2320x240x16b
cmp byte[cvidmode],7
je near cscopyvesa2320x480x16b
je near cscopyvesa2320x480x8b
cmp byte[cvidmode],8
je near cscopyvesa2512x384x8b
je near cscopyvesa2320x480x16b
cmp byte[cvidmode],9
je near cscopyvesa2512x384x16b
je near cscopyvesa2512x384x8b
cmp byte[cvidmode],10
je near cscopyvesa2640x480x8b
je near cscopyvesa2512x384x16b
cmp byte[cvidmode],11
je near cscopyvesa2640x480x8b
cmp byte[cvidmode],12
je near cscopyvesa2640x480x16b
%endif
ret
@@ -5625,11 +5671,11 @@ NEWSYM GetScreen
; jbe .getscreen
; ret
;.getscreen
cmp byte[cvidmode],5
cmp byte[cvidmode],6
je near getcopyvesa2320x240x16b
cmp byte[cvidmode],11
cmp byte[cvidmode],12
; je near getcopyvesa2640x480x16b
cmp byte[cvidmode],9
cmp byte[cvidmode],10
; je near getcopyvesa2512x384x16b
%endif
ret