Added a new video mode to the DOS port.
This commit is contained in:
@@ -621,12 +621,12 @@ db '',13,10
|
|||||||
%endif
|
%endif
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
db '; Video Mode, 0 - 10',13,10
|
db '; Video Mode, 0 - 10',13,10
|
||||||
db '; 0 = 256x256x8B (MODEQ) 1 = 320x240x8B (MODEX)',13,10
|
db '; 0 = 256x224x8B (MODEQ) 1 = 256x256x8B (MODEQ)',13,10
|
||||||
db '; 2 = 640x480x16B (VESA1) 3 = 320x240x8B (VESA2)',13,10
|
db '; 2 = 320x240x8B (MODEX) 3 = 640x480x16B (VESA1)',13,10
|
||||||
db '; 4 = 320x240x16B (VESA2) 5 = 320x480x8B (VESA2)',13,10
|
db '; 4 = 320x240x8B (VESA2) 5 = 320x240x16B (VESA2)',13,10
|
||||||
db '; 6 = 320x480x16B (VESA2) 7 = 512x384x8B (VESA2)',13,10
|
db '; 6 = 320x480x8B (VESA2) 7 = 320x480x16B (VESA2)',13,10
|
||||||
db '; 8 = 512x384x16B (VESA2) 9 = 640x480x8B (VESA2)',13,10
|
db '; 8 = 512x384x8B (VESA2) 9 = 512x384x16B (VESA2)',13,10
|
||||||
db '; 10 = 640x480x16B (VESA2)',13,10
|
db '; 10 = 640x480x8B (VESA2) 11 = 640x480x16B (VESA2)',13,10
|
||||||
db '',13,10
|
db '',13,10
|
||||||
db 'VideoModeDos = %U',13,10
|
db 'VideoModeDos = %U',13,10
|
||||||
db '',13,10
|
db '',13,10
|
||||||
|
|||||||
@@ -1013,42 +1013,43 @@ NEWSYM ClearScreen
|
|||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
; Total Number of Video Modes
|
; Total Number of Video Modes
|
||||||
NEWSYM NumVideoModes, dd 11
|
NEWSYM NumVideoModes, dd 12
|
||||||
|
|
||||||
; 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
|
||||||
NEWSYM GUIVideoModeNames
|
NEWSYM GUIVideoModeNames
|
||||||
db '256X256X8B MODEQ',0 ; 0
|
db '256X224X8B MODEQ',0 ; 0
|
||||||
db '320X240X8B MODEX',0 ; 1
|
db '256X256X8B MODEQ',0 ; 1
|
||||||
db '640X480X16B VESA1',0 ; 2
|
db '320X240X8B MODEX',0 ; 2
|
||||||
db '320X240X8B VESA2',0 ; 3
|
db '640X480X16B VESA1',0 ; 3
|
||||||
db '320X240X16B VESA2',0 ; 4
|
db '320X240X8B VESA2',0 ; 4
|
||||||
db '320X480X8B VESA2',0 ; 5
|
db '320X240X16B VESA2',0 ; 5
|
||||||
db '320X480X16B VESA2',0 ; 6
|
db '320X480X8B VESA2',0 ; 6
|
||||||
db '512X384X8B VESA2',0 ; 7
|
db '320X480X16B VESA2',0 ; 7
|
||||||
db '512X384X16B VESA2',0 ; 8
|
db '512X384X8B VESA2',0 ; 8
|
||||||
db '640X480X8B VESA2',0 ; 9
|
db '512X384X16B VESA2',0 ; 9
|
||||||
db '640X480X16B VESA2',0 ; 10
|
db '640X480X8B VESA2',0 ; 10
|
||||||
|
db '640X480X16B VESA2',0 ; 11
|
||||||
db ' ',0
|
db ' ',0
|
||||||
|
|
||||||
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
|
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
|
||||||
; Left side starts with Video Mode 0
|
; Left side starts with Video Mode 0
|
||||||
NEWSYM GUI16VID, db 0,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
|
NEWSYM GUI16VID, db 0,0,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
|
||||||
NEWSYM GUINGVID, db 1,1,1,1,1,1,0,1,1,1,1,0 ; New Graphics Mode Available
|
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,0,1,1,1,1,0 ; New Graphics Mode Available
|
||||||
NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0 ; Scanlines
|
NEWSYM GUISLVID, db 0,0,0,1,0,0,1,1,0,0,1,1,0 ; Scanlines
|
||||||
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation
|
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation
|
||||||
NEWSYM GUIEAVID, db 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,1,0,0 ; Eagle
|
||||||
NEWSYM GUIIEVID, db 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,1,1,0 ; (Interp | Eagle)
|
||||||
NEWSYM GUIFSVID, db 0,0,0,1,1,0,0,0,0,1,1,0 ; Full Screen
|
NEWSYM GUIFSVID, db 0,0,0,0,1,1,0,0,0,0,1,1,0 ; Full Screen
|
||||||
NEWSYM GUISSVID, db 0,0,1,0,0,0,0,0,0,1,1,0 ; Small Screen
|
NEWSYM GUISSVID, db 0,0,0,1,0,0,0,0,0,0,1,1,0 ; Small Screen
|
||||||
NEWSYM GUITBVID, db 0,0,0,1,1,1,1,1,1,1,1,0 ; Triple Buffering
|
NEWSYM GUITBVID, db 0,0,0,0,1,1,1,1,1,1,1,1,0 ; Triple Buffering
|
||||||
NEWSYM GUIHSVID, db 0,0,0,0,0,0,1,0,0,0,1,0 ; Half/Quarter Scanlines
|
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,1,0,0,0,1,0 ; Half/Quarter Scanlines
|
||||||
NEWSYM GUI2xVID, db 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,1,0 ; 2xSaI/Super Eagle Engines
|
||||||
NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; If Windows Full Screen
|
NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0 ; If Windows Full Screen
|
||||||
NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation
|
NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation
|
||||||
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation
|
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,1,0 ; Interpolation
|
||||||
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering
|
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering
|
||||||
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
|
||||||
SECTION .text
|
SECTION .text
|
||||||
|
|
||||||
; ****************************
|
; ****************************
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
EXTSYM AddSub256,InitVesa2,cbitmode,cvidmode,makepal
|
EXTSYM AddSub256,InitVesa2,cbitmode,cvidmode,makepal
|
||||||
EXTSYM scanlines,selcA000,vesa2_bits,vesa2_bpos,vesa2_clbit
|
EXTSYM scanlines,selcA000,vesa2_bits,vesa2_bpos,vesa2_clbit
|
||||||
EXTSYM vesa2_gpos,vesa2_rpos,vesa2_usbit,vesa2_x,vesa2_y
|
EXTSYM vesa2_gpos,vesa2_rpos,vesa2_usbit,vesa2_x,vesa2_y
|
||||||
EXTSYM vesa2selec,InitVesa12,videotroub
|
EXTSYM vesa2selec,InitVesa12,videotroub,cscopymodeq
|
||||||
|
|
||||||
NEWSYM InitVidAsmStart
|
NEWSYM InitVidAsmStart
|
||||||
|
|
||||||
@@ -51,26 +51,28 @@ NEWSYM dosinitvideo
|
|||||||
mov byte[res640],0
|
mov byte[res640],0
|
||||||
mov byte[res480],0
|
mov byte[res480],0
|
||||||
cmp byte[cvidmode],0
|
cmp byte[cvidmode],0
|
||||||
je near .initmodeq
|
je near .initmodeq224
|
||||||
cmp byte[cvidmode],1
|
cmp byte[cvidmode],1
|
||||||
je near .initmodex
|
je near .initmodeq
|
||||||
cmp byte[cvidmode],2
|
cmp byte[cvidmode],2
|
||||||
je near .initvesa12640x480x16
|
je near .initmodex
|
||||||
cmp byte[cvidmode],3
|
cmp byte[cvidmode],3
|
||||||
je near .initvesa2320x240x8
|
je near .initvesa12640x480x16
|
||||||
cmp byte[cvidmode],4
|
cmp byte[cvidmode],4
|
||||||
je near .initvesa2320x240x16
|
je near .initvesa2320x240x8
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],5
|
||||||
je near .initvesa2320x480x8
|
je near .initvesa2320x240x16
|
||||||
cmp byte[cvidmode],6
|
cmp byte[cvidmode],6
|
||||||
je near .initvesa2320x480x16
|
je near .initvesa2320x480x8
|
||||||
cmp byte[cvidmode],7
|
cmp byte[cvidmode],7
|
||||||
je near .initvesa2512x384x8
|
je near .initvesa2320x480x16
|
||||||
cmp byte[cvidmode],8
|
cmp byte[cvidmode],8
|
||||||
je near .initvesa2512x384x16
|
je near .initvesa2512x384x8
|
||||||
cmp byte[cvidmode],9
|
cmp byte[cvidmode],9
|
||||||
je near .initvesa2640x480x8
|
je near .initvesa2512x384x16
|
||||||
cmp byte[cvidmode],10
|
cmp byte[cvidmode],10
|
||||||
|
je near .initvesa2640x480x8
|
||||||
|
cmp byte[cvidmode],11
|
||||||
je near .initvesa2640x480x16
|
je near .initvesa2640x480x16
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -358,6 +360,132 @@ NEWSYM dosinitvideo
|
|||||||
; pop es
|
; pop es
|
||||||
; ret
|
; ret
|
||||||
|
|
||||||
|
;*******************************************************
|
||||||
|
; InitModeQ224 Sets up 256x224 chained mode
|
||||||
|
;*******************************************************
|
||||||
|
|
||||||
|
.initmodeq224
|
||||||
|
mov byte[cbitmode],0
|
||||||
|
|
||||||
|
mov ax,0013h
|
||||||
|
int 10h
|
||||||
|
|
||||||
|
; enable writes
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0011h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
in ax,dx
|
||||||
|
and ax,007fh
|
||||||
|
push ax
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0011h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
pop ax
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
; tweak regs
|
||||||
|
mov dx,03c2h
|
||||||
|
mov ax,00e3h
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,1
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,003fh
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,2
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,0040h
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,4
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,004ah
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,5
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,009ah
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,6
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,000bh
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,7
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,003eh
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,9
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,0061h
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0010h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,00dah
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0011h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,009ah
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0012h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,00bfh
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0013h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,0020h
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0015h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,0007h
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
mov dx,03d4h
|
||||||
|
mov ax,0016h
|
||||||
|
out dx,ax
|
||||||
|
inc dx
|
||||||
|
mov ax,001ah
|
||||||
|
out dx,ax
|
||||||
|
|
||||||
|
call cscopymodeq
|
||||||
|
call makepal
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
; InitVESA2 320x240x8 Set up Linear 320x240x8b
|
; InitVESA2 320x240x8 Set up Linear 320x240x8b
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ int pccmdline(void)
|
|||||||
{
|
{
|
||||||
if(!hasroom) return 4;
|
if(!hasroom) return 4;
|
||||||
cvidmode=my_atoi(argv[p+1]);
|
cvidmode=my_atoi(argv[p+1]);
|
||||||
if(cvidmode > 10) return 13;
|
if(cvidmode > 11) return 13;
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1438,12 +1438,12 @@ SECTION .data
|
|||||||
db ' -u Force PAL timing',13,10
|
db ' -u Force PAL timing',13,10
|
||||||
%ifndef __LINUX__
|
%ifndef __LINUX__
|
||||||
db ' -v # Select Video Mode :',13,10
|
db ' -v # Select Video Mode :',13,10
|
||||||
db ' 0 = 256x256x8B (MODEQ) 1 = 320x240x8B (MODEX)',13,10
|
db ' 0 = 256x224x8B (MODEQ) 1 = 256x256x8B (MODEQ)',13,10
|
||||||
db ' 2 = 640x480x16B (VESA1) 3 = 320x240x8B (VESA2)',13,10
|
db ' 2 = 320x240x8B (MODEX) 3 = 640x480x16B (VESA1)',13,10
|
||||||
db ' 4 = 320x240x16B (VESA2) 5 = 320x480x8B (VESA2)',13,10
|
db ' 4 = 320x240x8B (VESA2) 5 = 320x240x16B (VESA2)',13,10
|
||||||
db ' 6 = 320x480x16B (VESA2) 7 = 512x384x8B (VESA2)',13,10
|
db ' 6 = 320x480x8B (VESA2) 7 = 320x480x16B (VESA2)',13,10
|
||||||
db ' 8 = 512x384x16B (VESA2) 9 = 640x480x8B (VESA2)',13,10
|
db ' 8 = 512x384x8B (VESA2) 9 = 512x384x16B (VESA2)',13,10
|
||||||
db ' 10 = 640x480x16B (VESA2)',13,10
|
db ' 10 = 640x480x8B (VESA2) 11 = 640x480x16B (VESA2)',13,10
|
||||||
%endif
|
%endif
|
||||||
db ' -w Enable VSync',13,10
|
db ' -w Enable VSync',13,10
|
||||||
db 'Press any key to continue.',0
|
db 'Press any key to continue.',0
|
||||||
|
|||||||
@@ -270,9 +270,9 @@ NEWSYM cachevideo
|
|||||||
je .nohires
|
je .nohires
|
||||||
cmp byte[scanlines],1
|
cmp byte[scanlines],1
|
||||||
je .nohires
|
je .nohires
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],6
|
||||||
je .yeshires
|
je .yeshires
|
||||||
cmp byte[cvidmode],9
|
cmp byte[cvidmode],10
|
||||||
jne .nohires
|
jne .nohires
|
||||||
.yeshires
|
.yeshires
|
||||||
mov byte[Mode7HiRes],1
|
mov byte[Mode7HiRes],1
|
||||||
|
|||||||
@@ -260,27 +260,29 @@ ScreenShow:
|
|||||||
cmp byte[debugdisble],0
|
cmp byte[debugdisble],0
|
||||||
je .debug
|
je .debug
|
||||||
cmp byte[cvidmode],0
|
cmp byte[cvidmode],0
|
||||||
|
je near copymodeq224
|
||||||
|
cmp byte[cvidmode],1
|
||||||
je near copymodeq
|
je near copymodeq
|
||||||
.debug
|
.debug
|
||||||
cmp byte[cvidmode],1
|
|
||||||
je near copymodex
|
|
||||||
cmp byte[cvidmode],2
|
cmp byte[cvidmode],2
|
||||||
je near copyvesa12640x480x16b
|
je near copymodex
|
||||||
cmp byte[cvidmode],3
|
cmp byte[cvidmode],3
|
||||||
je near copyvesa2320x240x8b
|
je near copyvesa12640x480x16b
|
||||||
cmp byte[cvidmode],4
|
cmp byte[cvidmode],4
|
||||||
je near copyvesa2320x240x16b
|
je near copyvesa2320x240x8b
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],5
|
||||||
je near copyvesa2320x480x8b
|
je near copyvesa2320x240x16b
|
||||||
cmp byte[cvidmode],6
|
cmp byte[cvidmode],6
|
||||||
je near copyvesa2320x480x16b
|
je near copyvesa2320x480x8b
|
||||||
cmp byte[cvidmode],7
|
cmp byte[cvidmode],7
|
||||||
je near copyvesa2512x384x8b
|
je near copyvesa2320x480x16b
|
||||||
cmp byte[cvidmode],8
|
cmp byte[cvidmode],8
|
||||||
je near copyvesa2512x384x16b
|
je near copyvesa2512x384x8b
|
||||||
cmp byte[cvidmode],9
|
cmp byte[cvidmode],9
|
||||||
je near copyvesa2640x480x8b
|
je near copyvesa2512x384x16b
|
||||||
cmp byte[cvidmode],10
|
cmp byte[cvidmode],10
|
||||||
|
je near copyvesa2640x480x8b
|
||||||
|
cmp byte[cvidmode],11
|
||||||
je near copyvesa2640x480x16b
|
je near copyvesa2640x480x16b
|
||||||
cmp byte[curblank],40h
|
cmp byte[curblank],40h
|
||||||
je .startcopy
|
je .startcopy
|
||||||
@@ -300,26 +302,28 @@ NEWSYM dosvidpastecopyscr
|
|||||||
|
|
||||||
ScreenShowGUI:
|
ScreenShowGUI:
|
||||||
cmp byte[cvidmode],0
|
cmp byte[cvidmode],0
|
||||||
je near copymodeq
|
je near copymodeq224
|
||||||
cmp byte[cvidmode],1
|
cmp byte[cvidmode],1
|
||||||
je near copymodex
|
je near copymodeq
|
||||||
cmp byte[cvidmode],2
|
cmp byte[cvidmode],2
|
||||||
je near copyvesa12640x480x16bgui
|
je near copymodex
|
||||||
cmp byte[cvidmode],3
|
cmp byte[cvidmode],3
|
||||||
je near copyvesa2320x240x8b
|
je near copyvesa12640x480x16bgui
|
||||||
cmp byte[cvidmode],4
|
cmp byte[cvidmode],4
|
||||||
je near copyvesa2320x240x16bgui
|
je near copyvesa2320x240x8b
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],5
|
||||||
je near copyvesa2320x480x8bgui
|
je near copyvesa2320x240x16bgui
|
||||||
cmp byte[cvidmode],6
|
cmp byte[cvidmode],6
|
||||||
je near copyvesa2320x480x16bgui
|
je near copyvesa2320x480x8bgui
|
||||||
cmp byte[cvidmode],7
|
cmp byte[cvidmode],7
|
||||||
je near copyvesa2512x384x8b
|
je near copyvesa2320x480x16bgui
|
||||||
cmp byte[cvidmode],8
|
cmp byte[cvidmode],8
|
||||||
je near copyvesa2512x384x16bgui
|
je near copyvesa2512x384x8b
|
||||||
cmp byte[cvidmode],9
|
cmp byte[cvidmode],9
|
||||||
je near copyvesa2640x480x8bgui
|
je near copyvesa2512x384x16bgui
|
||||||
cmp byte[cvidmode],10
|
cmp byte[cvidmode],10
|
||||||
|
je near copyvesa2640x480x8bgui
|
||||||
|
cmp byte[cvidmode],11
|
||||||
je near copyvesa2640x480x16bgui
|
je near copyvesa2640x480x16bgui
|
||||||
jmp copymodeq
|
jmp copymodeq
|
||||||
%endif
|
%endif
|
||||||
@@ -536,6 +540,41 @@ NEWSYM copymodeq
|
|||||||
pop es
|
pop es
|
||||||
ret
|
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
|
; Copy VESA2 320x240x8b Copies buffer to 320x240x8bVBE2
|
||||||
;*******************************************************
|
;*******************************************************
|
||||||
@@ -5395,26 +5434,28 @@ NEWSYM copyvesa12640x480x16b
|
|||||||
NEWSYM DOSClearScreen
|
NEWSYM DOSClearScreen
|
||||||
%ifdef __MSDOS__
|
%ifdef __MSDOS__
|
||||||
cmp byte[cvidmode],0
|
cmp byte[cvidmode],0
|
||||||
je near cscopymodeq
|
je near copymodeq224
|
||||||
cmp byte[cvidmode],1
|
cmp byte[cvidmode],1
|
||||||
je near cscopymodex
|
je near cscopymodeq
|
||||||
cmp byte[cvidmode],2
|
cmp byte[cvidmode],2
|
||||||
je near cscopyvesa12640x480x16b
|
je near cscopymodex
|
||||||
cmp byte[cvidmode],3
|
cmp byte[cvidmode],3
|
||||||
je near cscopyvesa2320x240x8b
|
je near cscopyvesa12640x480x16b
|
||||||
cmp byte[cvidmode],4
|
cmp byte[cvidmode],4
|
||||||
je near cscopyvesa2320x240x16b
|
je near cscopyvesa2320x240x8b
|
||||||
cmp byte[cvidmode],5
|
cmp byte[cvidmode],5
|
||||||
je near cscopyvesa2320x480x8b
|
je near cscopyvesa2320x240x16b
|
||||||
cmp byte[cvidmode],6
|
cmp byte[cvidmode],6
|
||||||
je near cscopyvesa2320x480x16b
|
je near cscopyvesa2320x480x8b
|
||||||
cmp byte[cvidmode],7
|
cmp byte[cvidmode],7
|
||||||
je near cscopyvesa2512x384x8b
|
je near cscopyvesa2320x480x16b
|
||||||
cmp byte[cvidmode],8
|
cmp byte[cvidmode],8
|
||||||
je near cscopyvesa2512x384x16b
|
je near cscopyvesa2512x384x8b
|
||||||
cmp byte[cvidmode],9
|
cmp byte[cvidmode],9
|
||||||
je near cscopyvesa2640x480x8b
|
je near cscopyvesa2512x384x16b
|
||||||
cmp byte[cvidmode],10
|
cmp byte[cvidmode],10
|
||||||
|
je near cscopyvesa2640x480x8b
|
||||||
|
cmp byte[cvidmode],11
|
||||||
je near cscopyvesa2640x480x16b
|
je near cscopyvesa2640x480x16b
|
||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
@@ -5584,11 +5625,11 @@ NEWSYM GetScreen
|
|||||||
; jbe .getscreen
|
; jbe .getscreen
|
||||||
; ret
|
; ret
|
||||||
;.getscreen
|
;.getscreen
|
||||||
cmp byte[cvidmode],4
|
cmp byte[cvidmode],5
|
||||||
je near getcopyvesa2320x240x16b
|
je near getcopyvesa2320x240x16b
|
||||||
cmp byte[cvidmode],10
|
cmp byte[cvidmode],11
|
||||||
; je near getcopyvesa2640x480x16b
|
; je near getcopyvesa2640x480x16b
|
||||||
cmp byte[cvidmode],8
|
cmp byte[cvidmode],9
|
||||||
; je near getcopyvesa2512x384x16b
|
; je near getcopyvesa2512x384x16b
|
||||||
%endif
|
%endif
|
||||||
ret
|
ret
|
||||||
|
|||||||
Reference in New Issue
Block a user