D. Baruth
Hi,
My DOS SVGA / VESA programs work with DOS. They do not work
on my Windows 2000 computer in a "Command Prompt" environment.
That is a dual boot computer and the programs work when booted
into the other OS or DOS from a floppy. They did work on another
Windows XP computer in its command prompt. Though I could
freeze the system if I exited the full screen session while in some
situations when in a VESA mode.
So, I conclude it depends on the drivers used. The Win2k drivers
(Matrox, FWIW) do not support VESA modes in a Windows DOS
emulation. The Win XP drivers (ATI?) did.
Regards,
Steve N.
Hi Steve,
I have tried to run the program on a friend's computer - also Windows
XP, but a different addition - with no success.
You must be right about the video drivers. I guess they support only
linear memory access; i.e. no bank switching. "Bad" Windows drivers.
Regards,
Dan
I try to check if my Nvidia card has VBE on an new installation of Windows
XP without to install a videodriver, but the test failed. After i intall
a videodriver the test results that the card has a VBE3-Bios.
With a videodriver i can get the VBE-modelist, but it is not possible to
use one of these VBE-modi under XP.
Then i try to use DOSBox 0.74. But DOSBox use an own VBE-moedelist, not the
modelist from my nvidia card.
http://www.dosbox.com/download.php?main=1
[DOSBox 0.74]
Vesamode,XRes,YRes,Bits per Pixel,Adress of the framebuffer
0100 640x400x8 C0000000
0101 640x480x8 C0000000
0102 800x600x4
0103 800x600x8 C0000000
0104 1024x768x4
0105 1024x768x8 C0000000
0106 1280x1024x4
0107 1280x1024x8 C0000000
010D 320x200x15 C0000000
010E 320x200x16 C0000000
010F 320x200x32 C0000000
0110 640x480x15 C0000000
0111 640x480x16 C0000000
0112 640x480x32 C0000000
0113 800x600x15 C0000000
0114 800x600x16 C0000000
0115 800x600x32 C0000000
0116 1024x768x15 C0000000
0117 1024x768x16 C0000000
0150 320x200x8 C0000000
0151 320x240x8 C0000000
0152 320x400x8 C0000000
0153 320x480x8 C0000000
0160 320x240x15 C0000000
0161 320x400x15 C0000000
0162 320x480x15 C0000000
0165 640x400x15 C0000000
0170 320x240x16 C0000000
0171 320x400x16 C0000000
0172 320x480x16 C0000000
0175 640x400x16 C0000000
0190 320x240x32 C0000000
0191 320x400x32 C0000000
0192 320x480x32 C0000000
0207 1152x864x8 C0000000
0209 1152x864x15 C0000000
020A 1152x864x16 C0000000
0213 640x400x32 C0000000
0222 848x480x8 C0000000
0223 848x480x15 C0000000
0224 848x480x16 C0000000
0225 848x480x32 C0000000
Dirk
Hi Dan,
I tried out a DOS SVGA program on two Windows XP
laptops and both supported a full screen VESA display.
One Sony and one IBM, both reported ATI graphics.
The program uses the default CGA font, which was
corrupted on both. But graphics was good. The Sony
had a corrupted desktop upon exiting the DOS session.
FWIW,
Steve N.
VBE has never published "one" modelist. Every VESA program is
supposed to query all available modes' capabilities to determine which
mode number to use. In theory, mode 0100 is 640x400x8 on one card but
320x240x8 on another, etc.
(In *practice*, 99% of cards use the same mode numbers for the most
common modes, like most 8-bit modes. I have definitely seen wild
variation on early cards for 24-bit modes though. IIRC Cirrus and
Tseng use different mode numbers for 320x240x24 for example.)
> On Jun 14, 2:41 am, Dirk Wolfgang Glomp <freec...@nospicedham.web.de>
> wrote:
>> Then i try to use DOSBox 0.74. But DOSBox use an own VBE-moedelist, not the
>> modelist from my nvidia card.http://www.dosbox.com/download.php?main=1
>
> VBE has never published "one" modelist.
I hope that older VBE1.1 cards are compatible to this "one" following
modelist. [vbe3.pdf from vesa.org]:
00h - 640x400 256 108h - 80 60
101h - 640x480 256 109h - 132 25
102h 6Ah 800x600 16 10Ah - 132 43
103h - 800x600 256 10Bh - 132 50
104h - 1024x768 16 10Ch - 132 60
105h - 1024x768 256
106h - 1280x1024 16
107h - 1280x1024 256
10Dh - 320x200 32K (1:5:5:5)
10Eh - 320x200 64K (5:6:5)
10Fh - 320x200 16.8M (8:8:8)
110h - 640x480 32K (1:5:5:5)
111h - 640x480 64K (5:6:5)
112h - 640x480 16.8M (8:8:8)
113h - 800x600 32K (1:5:5:5)
114h - 800x600 64K (5:6:5)
115h - 800x600 16.8M (8:8:8)
116h - 1024x768 32K (1:5:5:5)
117h - 1024x768 64K (5:6:5)
118h - 1024x768 16.8M (8:8:8)
119h - 1280x1024 32K (1:5:5:5)
11Ah - 1280x1024 64K (5:6:5)
11Bh - 1280x1024 16.8M (8:8:8)
81FFh Special Mode (see below for details)
> Every VESA program is
> supposed to query all available modes' capabilities to determine which
> mode number to use. In theory, mode 0100 is 640x400x8 on one card but
> 320x240x8 on another, etc.
> (In *practice*, 99% of cards use the same mode numbers for the most
> common modes, like most 8-bit modes. I have definitely seen wild
> variation on early cards for 24-bit modes though. IIRC Cirrus and
> Tseng use different mode numbers for 320x240x24 for example.)
Yes i know, but there is a difference between older cards with VBE1.1 and
newer cards that comes with a VBE2- or VBE3-BIOS.
[vbe3.pdf from vesa.org]:
"Starting with VBE version 2.0, VESA will no longer define new VESA mode
numbers and it will no longer be mandatory to support these old mode
numbers. OEM's who wish to add new VBE mode numbers to their
implementations, must make sure that all new modes are defined with mode
numbers above 0x100, However, it is highly recommended
that BIOS implementations continue to support these mode numbers for
compatibility with older software and add new mode numbers after the last
VESA defined mode number).
Future display resolutions will be defined by VESA display vendors. The
color depths will not be specified and new mode numbers will not be
assigned for these resolutions. For example, if the VESA display vendors
define 1600x1200 as a VESA resolution, application developers should target
their display resolution for 1600x1200 rather than choosing an arbitrary
resolution like 1550x1190. The VBE implementation should be queried to get
the available resolutions and color depths and the application should be
flexible enough to work with this list."
....
With a newer card with a VBE 2/3-BIOS we have to use the modetable that
comes within the VBE-BIOS and the modenumber can vary.
Here are some modelists of modern VBE2/3 cards:
Powercolor ATI 9800 PRO(VBE2) VESA Modi 128 MB
------------------------------------------------------------
4.....8...15...16...24..32..Matrix
------------------------------------------------------------
109............................132 x 25
10A............................132 x 43
130............................132 x 44
......182 10D 10E 10F 120 320 x 200
......192 193 194 195 196 320 x 240
......1A2 1A3 1A4 1A5 1A6 400 x 300
......1B2 1B3 1B4 1B5 1B6 512 x 384
......1C2 1C3 1C4 1C5 1C6 640 x 350
......100 183 184 185 186 640 x 400
......101 110 111 112 121 640 x 480
102 103 113 114 115 122 800 x 600
104 105 106 107 108 123 1024 x 768
......107 119 11A 11B 124 1280 x 1024
----------------------------------------------
Powercolor ATI X800 PRO(VBE3) VESA MODI 256 MB
(beherscht kein tripple buffering)
-------------------------------------------------------------
4....8...15...16...24...32..Matrix
-----------------------------------------------------------
109............................132 x 25
10A............................132 x 34
130............................132 x 44
...............10D........10F 320 x 200
....193.......194........196 320 x 240
....1B3.......1B4........1B6 512 x 384
....1C3.......1C4........1C6 640 x 350
....100.......184........186 640 x 400
....101.......110........112 640 x 480
....133.......134........136 720 x 400
....103.......113........115 800 x 600
....105.......116........118 1024 x 768
....153.......154........156 1152 x 864
....107.......119........11B 1280 x 1024
....143.......144........146 1400 x 1050
....173.......174........176 1600 x 1200
....1D3.......1D4........1D6 1856 x 1392
....1E3.......1E4........1E6 1920 x 1440
-----------------------------------------------------
MSI NVIDIA GF 4 Ti4200(VBE3) VESA Modi 64 MB
---------------------------------------------------------
4.....8...15...16...24...32.....Matrix
--------------------------------------------------------
108............................80 x 60
109............................132 x 25
10A............................132 x 43
10B............................132 x 50
10C............................132 x 60
......130......10E......10F 320 x 200
......134......135......136 320 x 240
......131......132......133 320 x 400
......100......13D......13E 640 x 400
......101......111......112 640 x 480
102 103 ......114......115 800 x 600
104 105 ......117......118 1024 x 768
106 107......11A...........1280 x 1024
......147......148...........1400 x 1050
......145......146...........1600 x 1200
-------------------------------------
ASUS NVIDIA GF 6800 GT(VBE3) VESA Modi 256 MB
----------------------------------------------------
4....8.....15....16...24...32...Matrix
----------------------------------------------------
......130........10E........10F 320 x 200
......134........135........136 320 x 240
......131........132........133 320 x 400
......100........13D........13E 640 x 400
......101........111........112 640 x 480
102 103........114........115 800 x 600
104 105........117........118 1024 x 768
106 107........11A........11B 1280 x 1024
......145........146.............1600 x 1200
......147........148.............1400 x 1050
..............................152 2048 x 1536
-------------------------------------------------
Vesamodi Colorfull GTX295(VBE3)
(all values in hex)
0100 X=0280 Y=0190 8Bit
0101 X=0280 Y=01E0 8Bit
0102 X=0320 Y=0258 4Bit *
0103 X=0320 Y=0258 8Bit
0104 X=0400 Y=0300 4Bit *
0105 X=0400 Y=0300 8Bit
0106 X=0500 Y=0400 4Bit *
0107 X=0500 Y=0400 8Bit
010E X=0140 Y=00C8 10Bit
010F X=0140 Y=00C8 20Bit
0111 X=0280 Y=01E0 10Bit
0112 X=0280 Y=01E0 20Bit
0114 X=0320 Y=0258 10Bit
0115 X=0320 Y=0258 20Bit
0117 X=0400 Y=0300 10Bit
0118 X=0400 Y=0300 20Bit
011A X=0500 Y=0400 10Bit
011B X=0500 Y=0400 20Bit
0130 X=0140 Y=00C8 8Bit
0131 X=0140 Y=0190 8Bit
0132 X=0140 Y=0190 10Bit
0133 X=0140 Y=0190 20Bit
0134 X=0140 Y=00F0 8Bit
0135 X=0140 Y=00F0 10Bit
0136 X=0140 Y=00F0 20Bit
013D X=0280 Y=0190 10Bit
013E X=0280 Y=0190 20Bit
0145 X=0640 Y=04B0 8Bit
0146 X=0640 Y=04B0 10Bit
014A X=0640 Y=04B0 20Bit
0160 X=0500 Y=0320 8Bit
0161 X=0500 Y=0320 20Bit
0162 X=0300 Y=01E0 8Bit
017B X=0500 Y=02D0 20Bit
017C X=0780 Y=04B0 8Bit
017D X=0780 Y=04B0 20Bit
.....
But i don´t know how i can show the content of the second linear
framebuffer on a secondary dislay device using one modern VBE3 card.
I can´t found it in the linux sources. And maybe i am to stupid to
understand the VBE/AF structures on:
http://www.talula.demon.co.uk/freebe/
Any help with it would be gracefull.
Dirk
For those who's interested, have a look at:
http://www.munted.org.uk/programming/vmode.zip
Sources are provided within the zip file.
--
Tactical Nuclear Kittens
Oh yeah, because it is more complicate to use only debug for to list
the vesamodi of a VBE2/3 card and to look at the parameter for those modi
like the resolution and bits per pixel i wrote a litle programm for to do
that. Download:
http://www.alice-dsl.net/freecracmaps/Tool/VESAMODI.zip
(MASM 5 Sourcecode inside)
...
Additional i wrote a pure 16 Bit DOS-application that demonstrate how to
use a vesamode with a resolution of 1024 x 768 x 32 with an own refreshrate
of 100hz and additionaly it demonstrate how to use the linear framebuffer
with hardware triple buffering. To enable an access to the linear
framebuffer i prefer the unrealmode/bigrealmode.
For to use the unrealmode/bigrealmode we have to remove/REM any memmory
manager like emm386.exe in our config.sys before.
After rebooting without it we can start the aplication.
Goal of the aplication:
If the application starts without any error message, then the application
switch into the vesamode and begin to move some
balls across the screen and if they reached a border of the screen, then
they turn their direction.
For to terminate the application and to switch back to DOS in the
textmode(3) please press any key on your keyboard.
Minimum system requirements:
Operating system: DOS 5, 6, or DOS 7 (a part of Windows98/ME)
(not working under windows(DOSbox) and not working with a memmory manager
like emm386.exe)
MMX-CPU (tested on AMD Palomino 1800+@1550mhz and on AMD Tbred
2700+@2100mhz; Socket A mainboard with AGP)
Fully working vesa 3 Bios (tested on MSI NVIDIA Geforce 4 TI 4200 64MB
AGPx4 // failed with Powercolor ATI x800 pro(VBE3 256MB AGPx8))
CRT-Monitor with DDC and 96 khz (tested on 19" Samsung 940 and on 19"
SAMTRON 96P)
Used resources:
Public documents from vesa.org(register and/or login):
EEDIDguideV1.pdf
vbe3.pdf
Download:
http://www.alice-dsl.net/freecracmaps/Tool/Neutrip.zip
(MASM 5 Sourcecode inside)
;---------------------------------------------------------------------------
; I have written this sourcecode for MASM 5.
; Example for to generate a 16 bit executable for a pure DOS-enviroment:
; MASM /Z FILENAME.asm,FILENAME.obj,,
; LINK /CP:1 FILENAME.obj,FILENAME.exe,,,
;--------------------------------------------
; Legal situation: No personalised spiritual ownership or liquidication
; rights for usement, or for spreading out aviable, because all ideas are
; (at all hazards) only a small part of the heritage of our common human
; culture and nobody can progress an idea without to make a use of our all
; intergenerational relationships beginning from our roots thousands of
; years ago.
;--------------------------------------------
; Freeware and a wide-ranging transparency in the world helps a lot for to
; establish a social freedom and a gracefull living. But additional We have
; to act very soon for to feed all humans and to stop the immiseration in
; the world. Over one billion of humans are very hungry today, yesterday,
; the day before yesterday............
; They all will die very painfully, if we can´t stop that with the highest
; ermergency now.
;---------------------------------------------------------------------------
Dirk