A bunch of stuff that I'm too lazy to list here.

This commit is contained in:
stainless
2001-11-07 02:31:11 +00:00
parent af22ab615a
commit f5d15a49fa
10 changed files with 467 additions and 52 deletions

View File

@@ -1014,7 +1014,7 @@ NEWSYM ClearScreen
SECTION .data
; Total Number of Video Modes
NEWSYM NumVideoModes, dd 17
NEWSYM NumVideoModes, dd 19
; GUI Video Mode Names - Make sure that all names are of the same length
; and end with a NULL terminator
@@ -1036,26 +1036,29 @@ db '640X400X8B VESA2',0 ; 13
db '640X400X16B VESA2',0 ; 14
db '640X480X8B VESA2',0 ; 15
db '640X480X16B VESA2',0 ; 16
db '800X600X8B VESA2',0 ; 17
db '800X600X16B VESA2',0 ; 18
db ' ',0
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
; Left side starts with Video Mode 0
NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0 ; New Graphics Mode Available
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,1,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 GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,1,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,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 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 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 GUIWFVID, db 0,0,0,0,0,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,0,0,0,0,0,0 ; Super 2xSAI Engine
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 ; Hi-Resolution Mode 7
NEWSYM GUIBIFIL, db 0,0,0,0,0,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,0,0,0,0,0,0 ; Triple Buffering (Win)
NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0 ; New Graphics Mode Available
NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0 ; Scanlines
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0 ; Interpolation
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 ; Eagle
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0 ; (Interp | Eagle)
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,0 ; Full Screen
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0 ; (Full Scr. | Wide Scr.)
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,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,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,0,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,0,0 ; 2xSaI/Super Eagle Engines
NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0 ; Super 2xSAI Engine
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; Hi-Resolution Mode 7
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
SECTION .text
; ****************************

View File

@@ -89,6 +89,10 @@ NEWSYM dosinitvideo
je near .initvesa2640x480x8
cmp byte[cvidmode],16
je near .initvesa2640x480x16
cmp byte[cvidmode],17
je near .initvesa2800x600x8
cmp byte[cvidmode],18
je near .initvesa2800x600x16
ret
%include "dos/vga.inc"
@@ -299,6 +303,66 @@ NEWSYM dosinitvideo
pop es
ret
;*******************************************************
; InitVESA2 800x600x8 Set up Linear 800x600x8b
;*******************************************************
.initvesa2800x600x8
mov byte[res640],1
mov byte[res480],1
mov word[vesa2_x],800
mov word[vesa2_y],600
mov byte[vesa2_bits],8
call InitVesa2
cmp byte[videotroub],1
jne .notrouble11
ret
.notrouble11
call makepal
; clear screen (800*600 bytes)
push es
mov ax,[vesa2selec]
mov es,ax
mov edi,0
mov ecx,800*600
.looph2
mov byte[es:edi],0
inc edi
dec ecx
jnz .looph2
pop es
ret
;*******************************************************
; InitVESA2 800x600x16 Set up Linear 800x600x16b
;*******************************************************
.initvesa2800x600x16
mov byte[res640],1
mov byte[res480],1
mov byte[cbitmode],1
mov word[vesa2_x],800
mov word[vesa2_y],600
mov byte[vesa2_bits],16
call InitVesa2
cmp byte[videotroub],1
jne .notrouble12
ret
.notrouble12
; clear screen (800*600*2 bytes)
push es
mov ax,[vesa2selec]
mov es,ax
mov edi,0
mov ecx,800*600*2
.looph3
mov byte[es:edi],0
inc edi
dec ecx
jnz .looph3
pop es
ret
;*******************************************************
; InitVESA2 320x480x8 Set up Linear 320x480x8b
;*******************************************************

View File

@@ -261,7 +261,9 @@ int pccmdline(void)
}
case 'n':
{
scanlines=1;
if(!hasroom) return 4;
scanlines=my_atoi(argv[p+1]);
p++;
break;
}
case 's':