DOS-Programm gesucht um VESA-Modus zu erzwingen
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Ernüchternde Antwort aus dem Eee PC Forum
Original von Frank9652
Gibt es eine Möglichkeit, das BIOS des integrierten Graphikchips auszulesen?
Antwort:
Der Graphikchip hat kein eigenes BIOS.
Original von Frank9652
Ich möchte nun das BIOS des integrierten Graphikchips auslesen, um evtl. an die verwendeten Modi für 1024 x 600 oder 1024 x 768 zu kommen.
Antwort:
1024x600 liegt ausserhalb der Spezifikationen der VESA-Graphikmodi und du wirst keine Möglichkeit haben, diese Auflösung unter DOS nutzen zu können.
1024x768 läßt unter DOS nur mit einem externen Bildschirm nutzen. Der unter Windows zur Verfügung stehende 1024x768-Modus, der die 768 Zeilen auf die 600-Bildschirmzeilen herunter skaliert, steht nur im Zusammenhang mit DirectX bzw. OpenGL zur Verfügung, welches ebenfalls unter DOS nicht nutzbar ist.
Soweit die Antwort aus dem Eee PC Forum
Gruß Frank
Original von Frank9652
Gibt es eine Möglichkeit, das BIOS des integrierten Graphikchips auszulesen?
Antwort:
Der Graphikchip hat kein eigenes BIOS.
Original von Frank9652
Ich möchte nun das BIOS des integrierten Graphikchips auslesen, um evtl. an die verwendeten Modi für 1024 x 600 oder 1024 x 768 zu kommen.
Antwort:
1024x600 liegt ausserhalb der Spezifikationen der VESA-Graphikmodi und du wirst keine Möglichkeit haben, diese Auflösung unter DOS nutzen zu können.
1024x768 läßt unter DOS nur mit einem externen Bildschirm nutzen. Der unter Windows zur Verfügung stehende 1024x768-Modus, der die 768 Zeilen auf die 600-Bildschirmzeilen herunter skaliert, steht nur im Zusammenhang mit DirectX bzw. OpenGL zur Verfügung, welches ebenfalls unter DOS nicht nutzbar ist.
Soweit die Antwort aus dem Eee PC Forum
Gruß Frank
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Hier der Output von Dosferatus Programm VESA.RES
Habe aber Probleme den Inhalt mit ANSI-Zeichen hier ins Forum zu übernehmen.
Ich habe deshalb die deutschen Umlaute und ß transferiert, bei den restlichen ANSI-Zeichen (Linien) mußte ich aber passen.
-Genau das selbe, wie bei meinen anderen VESA-Testprogrammen. 640 x 480 + 800 x 600 ja, der Rest nicht.
Dosferatus Programm findet nur 8 MB Grafikspeicher, laut Auszug aus Windows 7 sind es aber 251 MB Grafikspeicher und 64 MB Systemvideospeicher.
*** VESA REPORT ***
* Allgemein *
VESA Version : VESA v3.0
Grafikkartenspeicher : 8 MB
Offscreen-speicher : 0 KB (0 Bytes) [ Offset: 0 ]
Bezeichnung : Intel(r)PineView Graphics Chip Accelerated VGA BIOS
* Software *
Software Version : v1.0
Hersteller : Intel Corporation
Produktbezeichnung : Intel(r)PineView Graphics Controller
Revision : Hardware Version 0.0
* Fähigkeiten *
DAC-Farbenpalette : 8-bit (16777216 mögliche Farben)
Controller : VGA
Palette während Retrace : nicht möglich
VBE/AF Erweiterung : nicht unterstützt
Linearer FrameBuffer : direkt möglich
Hardware Mauscursor : nein
Hardware Clipping : nein
Hardware Transparenz : nein
* Liste der verfügbaren VESA-Modi *
(Attribute direkt von VESA)
(VBF-E = VGA, Banked Mode, Lin. Framebuffer mögl., EnableDirectAccess nötig)
ÚÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÂÄÄBitsÄÄÂÄÄPos.ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÂÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÂÄÄÄDSTIDLnnTMBOO¿
³Nr. ³ X ³ Y ³Farben ³Text³ R G B³-R -G -B³ LFB-Adresse ³VBF-E³A³B³Gran.³Größe³Aseg³Bseg³ScanL³ DTBTSFBV//IPN³
ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÅÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÅÄÄÄAEFLCBAGGCOTÄ´
³0101³ 640³ 480³ 8 Bit³ ³ 0 0 0³ 0 0 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 640³--------#--##-##³
³0103³ 800³ 600³ 8 Bit³ ³ 0 0 0³ 0 0 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 832³--------#--##-##³
³0105³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0107³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0111³ 640³ 480³ 16 Bit³ ³ 5 6 5³11 5 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 1280³--------#--##-##³
³0112³ 640³ 480³ 32 Bit³ ³ 8 8 8³16 8 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 2560³--------#--##-##³
³0114³ 800³ 600³ 16 Bit³ ³ 5 6 5³11 5 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 1600³--------#--##-##³
³0115³ 800³ 600³ 32 Bit³ ³ 8 8 8³16 8 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 3200³--------#--##-##³
³0117³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0118³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³011A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³011B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³013A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³013C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³014B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³014D³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³015A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³015C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0160³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0161³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0162³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0163³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0164³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0165³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0166³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0167³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0168³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0169³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016D³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016E³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016F³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0170³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0171³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
ÀÄÄÄÄßÄÄÄÄßÄÄÄÄßÄÄÄÄÄÄÄÄÄÄßÄÄÄÄßÄÄÄÄÄÄÄÄßÄÄÄÄÄÄÄÄßÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄßÄÄÄÄÄßÄßÄßÄÄÄÄÄßÄÄÄÄÄßÄÄÄÄßÄÄÄÄßÄÄÄÄÄßÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ONÄ ModeAvailable ³ OPT Optional Information Avail.³ BIO BIOS Supported
M/C Monochome/Color ³ T/G Textmode/Graphic ³ nVG No VGA Mode
nBA No Banked Mode ³ LFB Linear Framebuffer Avail. ³ DSC DoubleScan
ITL Interlaced Avail.³ TBF Triple Buffering Avail. ³ STE StereoScope
DDA DualDisplay ³ ³
Habe aber Probleme den Inhalt mit ANSI-Zeichen hier ins Forum zu übernehmen.
Ich habe deshalb die deutschen Umlaute und ß transferiert, bei den restlichen ANSI-Zeichen (Linien) mußte ich aber passen.
-Genau das selbe, wie bei meinen anderen VESA-Testprogrammen. 640 x 480 + 800 x 600 ja, der Rest nicht.
Dosferatus Programm findet nur 8 MB Grafikspeicher, laut Auszug aus Windows 7 sind es aber 251 MB Grafikspeicher und 64 MB Systemvideospeicher.
*** VESA REPORT ***
* Allgemein *
VESA Version : VESA v3.0
Grafikkartenspeicher : 8 MB
Offscreen-speicher : 0 KB (0 Bytes) [ Offset: 0 ]
Bezeichnung : Intel(r)PineView Graphics Chip Accelerated VGA BIOS
* Software *
Software Version : v1.0
Hersteller : Intel Corporation
Produktbezeichnung : Intel(r)PineView Graphics Controller
Revision : Hardware Version 0.0
* Fähigkeiten *
DAC-Farbenpalette : 8-bit (16777216 mögliche Farben)
Controller : VGA
Palette während Retrace : nicht möglich
VBE/AF Erweiterung : nicht unterstützt
Linearer FrameBuffer : direkt möglich
Hardware Mauscursor : nein
Hardware Clipping : nein
Hardware Transparenz : nein
* Liste der verfügbaren VESA-Modi *
(Attribute direkt von VESA)
(VBF-E = VGA, Banked Mode, Lin. Framebuffer mögl., EnableDirectAccess nötig)
ÚÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÂÄÄBitsÄÄÂÄÄPos.ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÂÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÂÄÄÄDSTIDLnnTMBOO¿
³Nr. ³ X ³ Y ³Farben ³Text³ R G B³-R -G -B³ LFB-Adresse ³VBF-E³A³B³Gran.³Größe³Aseg³Bseg³ScanL³ DTBTSFBV//IPN³
ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÅÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÅÄÄÄAEFLCBAGGCOTÄ´
³0101³ 640³ 480³ 8 Bit³ ³ 0 0 0³ 0 0 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 640³--------#--##-##³
³0103³ 800³ 600³ 8 Bit³ ³ 0 0 0³ 0 0 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 832³--------#--##-##³
³0105³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0107³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0111³ 640³ 480³ 16 Bit³ ³ 5 6 5³11 5 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 1280³--------#--##-##³
³0112³ 640³ 480³ 32 Bit³ ³ 8 8 8³16 8 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 2560³--------#--##-##³
³0114³ 800³ 600³ 16 Bit³ ³ 5 6 5³11 5 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 1600³--------#--##-##³
³0115³ 800³ 600³ 32 Bit³ ³ 8 8 8³16 8 0³ D0000000 (3328 MB) ³VBF ³7³0³ 64³ 64³A000³0000³ 3200³--------#--##-##³
³0117³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0118³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³011A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³011B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³013A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³013C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³014B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³014D³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³015A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³015C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0160³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0161³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0162³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0163³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0164³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0165³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0166³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0167³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0168³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0169³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016A³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016B³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016C³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016D³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016E³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³016F³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0170³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
³0171³ 0³ 0³ Monochrom³Text³ 0 0 0³ 0 0 0³ ³VB ³0³0³ 0³ 0³0000³0000³ 0³----------------³
ÀÄÄÄÄßÄÄÄÄßÄÄÄÄßÄÄÄÄÄÄÄÄÄÄßÄÄÄÄßÄÄÄÄÄÄÄÄßÄÄÄÄÄÄÄÄßÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄßÄÄÄÄÄßÄßÄßÄÄÄÄÄßÄÄÄÄÄßÄÄÄÄßÄÄÄÄßÄÄÄÄÄßÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ONÄ ModeAvailable ³ OPT Optional Information Avail.³ BIO BIOS Supported
M/C Monochome/Color ³ T/G Textmode/Graphic ³ nVG No VGA Mode
nBA No Banked Mode ³ LFB Linear Framebuffer Avail. ³ DSC DoubleScan
ITL Interlaced Avail.³ TBF Triple Buffering Avail. ³ STE StereoScope
DDA DualDisplay ³ ³
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Prima, damit erhalte ich folgende Ausgabe:DOSferatu hat geschrieben:Ich habe so ein Programm schon vor Jahren mal geschrieben. Ich kanns ja mal auf meinen Webspace stellen (weil man hier ja leider keine Dinge anhängen kann).
Es ist dort zu finden:
http://www.imperial-games.de/z/testvesa.exe
Wenn man es startet, gibt es die ganze Liste aus. Außerdem wird das Ganze auch in eine TextDatei namens VESA.RES geschrieben.
Anmerkung: Mit testvesa.exe *
(bzw irgendeinem Parameter)
wird eine breitere Liste ausgegeben, die nicht mehr auf den 80 Zeichen screen paßt, aber noch mehr Daten über die Modes enthält - wird ebenfalls in VESA.RES gespeichert.
(Anmerkung: Die Angabe vom "Grafikkartenspeicher = 14 MB" ist allerding schon merkwürdig. Die Colorful GeForce GTX 295 hat 2x 896MB GDDR3)
Code: Alles auswählen
*** VESA REPORT ***
* Allgemein *
VESA Version : VESA v3.0
Grafikkartenspeicher : 14 MB
Offscreen-speicher : 17 MB (17235968 Bytes) [ Offset: 17170693 ]
Bezeichnung : NVIDIA
* Software *
Software Version : v98.0
Hersteller : NVIDIA Corporation
Produktbezeichnung : GT200 Board - 0658a050
Revision : Chip Rev
* Fähigkeiten *
DAC-Farbenpalette : 8-bit (16777216 mögliche Farben)
Controller : VGA
Palette während Retrace : nicht möglich
VBE/AF Erweiterung : nicht unterstützt
Linearer FrameBuffer : direkt möglich
Hardware Mauscursor : nein
Hardware Clipping : nein
Hardware Transparenz : nein
* Liste der verfügbaren VESA-Modi *
(Attribute direkt von VESA)
(VBF-E = VGA, Banked Mode, Lin. Framebuffer mögl., EnableDirectAccess nötig)
┌────┬────┬────┬──────────┬────┬──Bits──┬──Pos.──┬────────────────────┬─────┐
│Nr. │ X │ Y │Farben │Text│ R G B│-R -G -B│ LFB-Adresse │VBF-E│
├────┼────┼────┼──────────┼────┼────────┼────────┼────────────────────┼─────┤
│0100│ 640│ 400│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0101│ 640│ 480│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0102│ 800│ 600│ 4 Bit│ │ 0 0 0│ 0 0 0│ │ B ?E│
│0103│ 800│ 600│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0104│1024│ 768│ 4 Bit│ │ 0 0 0│ 0 0 0│ │ B ?E│
│0105│1024│ 768│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0106│1280│1024│ 4 Bit│ │ 0 0 0│ 0 0 0│ │ B ?E│
│0107│1280│1024│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│010E│ 320│ 200│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│010F│ 320│ 200│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0111│ 640│ 480│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0112│ 640│ 480│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0114│ 800│ 600│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0115│ 800│ 600│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0117│1024│ 768│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0118│1024│ 768│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│011A│1280│1024│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│011B│1280│1024│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0130│ 320│ 200│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0131│ 320│ 400│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0132│ 320│ 400│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0133│ 320│ 400│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0134│ 320│ 240│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0135│ 320│ 240│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0136│ 320│ 240│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│013D│ 640│ 400│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│013E│ 640│ 400│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0145│1600│1200│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0146│1600│1200│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│014A│1600│1200│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0160│1280│ 800│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0161│1280│ 800│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0162│ 768│ 480│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│0166│1600│ 900│ 16 Bit│ │ 5 6 5│11 5 0│ 01080000 ( 16 MB) │ BF?E│
│0167│1600│ 900│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│0170│1600│ 900│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│017B│1280│ 720│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
│017C│1920│1200│ 8 Bit│ │ 0 0 0│ 0 0 0│ 01080000 ( 16 MB) │ BF?E│
│017D│1920│1200│ 32 Bit│ │ 8 8 8│16 8 0│ 01080000 ( 16 MB) │ BF?E│
└────┴────┴────┴──────────┴────┴────────┴────────┴────────────────────┴─────┘
http://www.alice-dsl.net/freecracmaps/Tool/VESAMODI.zip
Code: Alles auswählen
.MODEL SMALL ; Programm möglichst klein halten
.386
CODE SEGMENT use16 'CODE'
assume cs:CODE,ds:DATEN,ss:STAPEL
org 100h
START: mov ax, DATEN ; Segmentadresse vom Datenbereich
mov ds, ax ; in das DS-Segmentregister laden
mov es, ax ; in das ES-Segmentregister laden
mov di, OFFSET VINF ; OFFSET für ausgewählten Datenbereich (512 Bytes)
mov ax, 4F00h ; Vesa Funktionsnummer 0 Vesa-Bios-Info
int 10h ; holt 512 Bytes nach es:di (Datensegment:VINF)
cmp ax, 4Fh ; Wenn Rückgabewert "4F", dann war Funktion erfolgreich
jnz NOVESA ; sonst FEHLER: Kein Vesabios vorhanden
mov dl, [di+5] ; Major version number of Vesa über ds:di+5 in das dl-Register holen
cmp dl, 2 ; kleiner als Version 2 ?
jb VESA1 ; wenn ja FEHLER: Keine Modeliste vorhanden.
mov dx, OFFSET HEADER
mov ah, 9
int 21h
lfs si, [di+0Eh] ; Pointer der Modeliste über ds:di+E ins fs-Segmentregister und si-Offsetregister laden
MODE: mov cx, fs:[si] ; Modenummern über fs:si ins cx-register holen
add si, 2 ; Qell-Adresszeiger(Offset) erhöhen
cmp cx, 0FFFFh ; Ende der Liste erreicht?
jz MEND
mov ax, cx
call HEXOUT16 ; Modenummer ausgeben
mov ax, 4F01h ; Modus spezifische Info holen
mov di, OFFSET MINF
int 10h ; es:di 256 byte
cmp ax, 4Fh
jnz short NOVESA ; FEHLER: wird nicht unterstützt
mov ax, [di+12h] ; MaxX
call DEZOUT16
mov dx, OFFSET X
mov ah, 9
int 21h
mov ax, [di+14h] ; MaxY
call DEZOUT16
mov dx, OFFSET X
mov ah, 9
int 21h
xor ax, ax
mov al, [di+19h] ; Bit per pixel?
call DEZOUT16
mov dx, OFFSET SPACE
mov ah, 9
int 21h
and BYTE PTR[di], 80h ; linear access enable ?
jz short NOLIN
mov eax, [di+28h] ; linearer Bild-Offset vorhanden ?
call HEXOUT32
NOLIN: mov dx, OFFSET CRLF
mov ah, 9
int 21h
jmp MODE
;-------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
NOVESA: mov dx, OFFSET T1
mov ah, 9
int 21h
mov cl, 0FFh
jmp short ERREND
;-------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
VESA1: mov dx, OFFSET T2
mov ah, 9
int 21h
mov cl, 1
jmp short ERREND
;-------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
MEND: xor cl, cl
ERREND: mov al, cl ; ERRORLEVEL holen
mov ah, 4Ch ; Rücksprung zu DOS, Programm-Ende
int 21h
;----------------------------------------------------------------------------
; AX nach fünf dezimalen ASCII's wandeln und im Daten-Bereich ablegen
;----------------------------------------------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
DEZOUT16: pusha
mov di, OFFSET DEZ16
mov cl, 5 ; fünf dezimale ASCII's
mov bx, 10000
WANDEL: xor dx, dx
div bx
add al, 30h ; nach ASCII wandeln
mov si, dx ; Rest retten
mov [di], al ; Ziffer retten
inc di ; Zeiger erhöhen
mov ax, bx
mov bx, 0Ah
xor dx, dx
div bx
mov bx, ax
mov ax, si
dec cl
jnz WANDEL
;-------------------------------------
mov si, OFFSET DEZ16 -1 ; erste(n) Null(en) überlesen
mov dx, si
inc dx
NULL: inc si
cmp BYTE PTR[si], "0"
jz NULL
sub si, 5
cmp si, dx
jz short AUSG ; keine null vorhanden !
add si, 5
mov dx, si
AUSG: mov ah, 9 ; dezimale Zahl ausgeben
int 21h
popa
ret
;----------------------------------------------------------------------------
; EAX nach acht hexadezimale ASCII's wandeln und im Daten-Bereich ablegen
;----------------------------------------------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
HEXOUT32: pusha
mov di, OFFSET HEX32 ; Doppel-Word nach Hex-Ziffern wandeln
mov cl, 8 ; 8 Ziffern
A: rol eax, 4 ; 1 Nibble weiter
mov bl, al
and bl, 0Fh ; nur low-Nibble
add bl, 30h ; nach ASCII wandeln
cmp bl, 39h ; größer als Ziffer neun ?
jna short B
add bl, 7 ; dann Buchstabe von "A" bis "F"
B: mov [di], bl ; ASCII retten
inc di ; Zeiger erhöhen
dec cl ; Ziffer-Anzahl verringern
jnz A
;-------------------------------------
mov dx, OFFSET HEX32
mov ah, 9 ; hexadezimale Zahl ausgeben
int 21h
popa
ret
;----------------------------------------------------------------------------
; AX nach vier hexadezimale ASCII's wandeln und im Daten-Bereich ablegen
;----------------------------------------------------------------------------
org START + ((($-START)/16)*16)+16 ; Code-Ausrichtung
;-------------------------------------
HEXOUT16: pusha
mov di, OFFSET HEX16 ; Word nach Hex-Ziffern wandeln
mov cl, 4 ; 4 Ziffern
C: rol ax, 4 ; 1 Nibble weiter
mov bl, al
and bl, 0Fh ; nur low-Nibble
add bl, 30h ; nach ASCII wandeln
cmp bl, 39h ; größer als Ziffer neun ?
jna short D
add bl, 7 ; dann Buchstabe von "A" bis "F"
D: mov [di], bl ; ASCII retten
inc di ; Zeiger erhöhen
dec cl ; Ziffer-Anzahl verringern
jnz C
;-------------------------------------
mov dx, OFFSET HEX16
mov ah, 9 ; hexadezimale Zahl ausgeben
int 21h
popa
ret
CODE ends
;----------------------------------------------------------------------------
DATEN SEGMENT use32 'DATA'
;-------------------------------------
VINF DB 512 dup (0AAh) ; Vesa-Info(4F00)
MINF DB 512 dup (44h) ; Mode-Info(4F01)
DEZ16 DB "00000","$"
HEX32 DB "00000000 ","$"
HEX16 DB "0000 ","$"
HEADER DB "Vesamode,XRes,YRes,Bits per Pixel,Adresse des Framebuffer",0Dh,0Ah,"$"
CRLF DB 0Dh,0Ah,"$"
X DB "x","$"
SPACE DB " ","$"
T1 DB "Kein Vesabios vorhanden.", 0Dh, 0Ah, "$"
T2 DB "Keine Modeliste vorhanden.", 0Dh, 0Ah, "$"
DATEN ends
;----------------------------------------------------------------------------
STAPEL SEGMENT use16 STACK 'STACK'
DB 100h dup (88h)
STAPEL ends
end
Code: Alles auswählen
Vesamode,XRes,YRes,Bits per Pixel,Adresse des Framebuffer
0100 640x400x8 01080000
0101 640x480x8 01080000
0102 800x600x4
0103 800x600x8 01080000
0104 1024x768x4
0105 1024x768x8 01080000
0106 1280x1024x4
0107 1280x1024x8 01080000
010E 320x200x16 01080000
010F 320x200x32 01080000
0111 640x480x16 01080000
0112 640x480x32 01080000
0114 800x600x16 01080000
0115 800x600x32 01080000
0117 1024x768x16 01080000
0118 1024x768x32 01080000
011A 1280x1024x16 01080000
011B 1280x1024x32 01080000
0130 320x200x8 01080000
0131 320x400x8 01080000
0132 320x400x16 01080000
0133 320x400x32 01080000
0134 320x240x8 01080000
0135 320x240x16 01080000
0136 320x240x32 01080000
013D 640x400x16 01080000
013E 640x400x32 01080000
0145 1600x1200x8 01080000
0146 1600x1200x16 01080000
014A 1600x1200x32 01080000
0160 1280x800x8 01080000
0161 1280x800x32 01080000
0162 768x480x8 01080000
0166 1600x900x16 01080000
0167 1600x900x32 01080000
0170 1600x900x8 01080000
017B 1280x720x32 01080000
017C 1920x1200x8 01080000
017D 1920x1200x32 01080000
Code: Alles auswählen
Vesamode,XRes,YRes,Bits per Pixel,Adresse des 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
Zuletzt geändert von freecrac am Mi 29. Sep 2010, 18:42, insgesamt 3-mal geändert.
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Das ist ganz offensichtlich falsch, ganz ohne Bios geht es gar nicht. Ein Teil des GraKa-Bios beginnt in C000:0, auch dann wenn das Mainbord und die GraKa sich ein Bios gemeinsames teilen.frank9652 hat geschrieben:Ernüchternde Antwort aus dem Eee PC Forum
Original von Frank9652
Gibt es eine Möglichkeit, das BIOS des integrierten Graphikchips auszulesen?
Antwort:
Der Graphikchip hat kein eigenes BIOS.
Es gibt gar keine Spezifikationen der VESA-Graphikmodi mehr, so das jeder Herstellen beliebige Vesa-Modi die Sinn machen selber erstellen kann.Original von Frank9652
Ich möchte nun das BIOS des integrierten Graphikchips auslesen, um evtl. an die verwendeten Modi für 1024 x 600 oder 1024 x 768 zu kommen.
Antwort:
1024x600 liegt ausserhalb der Spezifikationen der VESA-Graphikmodi
Auch das bezweifel ich. In den Sourcen von Linux ist der Code enthalten um über Portadressen(des CTRC-Controllers) jede beliebige Auflösung einzustellen die innerhalb der Kapazität der GraKa liegt.und du wirst keine Möglichkeit haben, diese Auflösung unter DOS nutzen zu können.
Ich habe blos noch nicht die entrechenden Stellen finden können.
Das könnte man ja mal mit Linux testen, ob der 1024x768-Modus wirkklich nur unter Windows nutzbar ist.1024x768 läßt unter DOS nur mit einem externen Bildschirm nutzen. Der unter Windows zur Verfügung stehende 1024x768-Modus, der die 768 Zeilen auf die 600-Bildschirmzeilen herunter skaliert, steht nur im Zusammenhang mit DirectX bzw. OpenGL zur Verfügung, welches ebenfalls unter DOS nicht nutzbar ist.
Aber mit dem Vesa-Bios wist du damit wohl wirklich kein Glück haben.Soweit die Antwort aus dem Eee PC Forum
Gruß Frank
Dirk
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Das Ergebniss ist niederschmetternd, mit Vesa können wir dir nicht weiterhelfen, es fehlt die gewünschten Auflösung.frank9652 hat geschrieben:Hier der Output von Dosferatus Programm VESA.RES
Komisch, bei mir geht es mit den Zeichen.Habe aber Probleme den Inhalt mit ANSI-Zeichen hier ins Forum zu übernehmen.
Ich habe deshalb die deutschen Umlaute und ß transferiert, bei den restlichen ANSI-Zeichen (Linien) mußte ich aber passen.
Das ist wirklich traurig.-Genau das selbe, wie bei meinen anderen VESA-Testprogrammen. 640 x 480 + 800 x 600 ja, der Rest nicht.
Ich schaue mir jetzt noch mal meine Daten etwas genauer an, ob bei mir auch wirklich nur 14 MB angegeben werden, wenn nicht enthält das Programm von Dosferatus ein Fehler.Dosferatus Programm findet nur 8 MB Grafikspeicher, laut Auszug aus Windows 7 sind es aber 251 MB Grafikspeicher und 64 MB Systemvideospeicher.
Ergebniss: Das Programm von Dosferatus hat kein Fehler!!!
Bei mir stehen wirklich nur 14 MB eingetragen: 00E0h mal 64 KB! Das Vesa-Bios macht hier falsche Angaben.
Dirk
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Das VESA-BIOS macht keine falschen Angaben!
Es handelt sich dabei um etwas anderes.
Der angegebene Grafikspeicher bezieht sich dabei auf den für die Grafikmodi nutzbaren Grafikpuffer, d.h. den Speicher, der auch direkt in den Grafikauflösungen auf dem Bildschirm dargestellt werden kann. Der restliche Grafikkartenspeicher ist sogenannter Off-Screen Speicher, dieser wird von 3D-Grafikkarten z.B. benutzt. um darin Texturen und ggf irgendwelche vorberechneten Dinge zu speichern. Dieser Speicher ist für die direkte Grafikausgabe nicht nutzbar.
Manchmal wird von VESA der Offscreen-Speicer zum Teil noch angezeigt, manchmal einfach nur 0.
Für die für Grafikausgabe verfügbaren Speicher spielt das keine Rolle.
Will sagen: Nehmen wir an, es GÄBE eine Auflösung 1024x1024x8Bit (die bräuchte genau 1 MB, um eine Grafikseite darzustellen).
Trotzdem ist es dann nicht so, daß, wenn eine Grafikkarte z.B. 64 MB Grafikspeicher hat, man auch 64 verschiedene Grafikseiten darstellen kann, sondern es wird eher so sein, daß dann die ersten 4 oder 8 oder 14 oder 16 MB oder so nur direkt dafür gedacht sind, da "Pixel" reinzulegen, um die als Grafik darzustellen.
Daß gemeldeter Grafikspeicher = Gesamtspeicher der Grafikkarte ist, trifft auf unsere schönen alten "DOS"-Grafikkarten zu, sowas wie die ETx000 Serie und so.
Seit die Grafikkarten so Kram machen können, wie selber ganze Bildbereiche hardwaremäßig kopieren, 3D hardwaremäßig berechnen (texturierte Polygone mit etlichen Effekten dran - Transparenz, Bumpmapping, Light-/Environment-/Phong- Shading etc.), brauchen sie zusätzlichen Speicher, in den z.B. temporär verschiedene Daten (wie eben z.B. Texturen) reingeladen werden können.
Abgesehen davon verwenden vor allem so ONBoard-Grafikchips gerne "Shared Memory", d.h. sie klauen sich einfach ein Stück vom eingebauten RAM, weil sie selber keinen haben...
Achja, zu meinem Programm TESTVESA.EXE:
Diese "Probleme" bei der Darstellung liegen daran, daß es im Original den Zeichensatz Codepage 437 verwendet - die bekannte DOS-Rähmchengrafik. In Codepage 852 (den Windows benutzt) sind diese Zeichen anderweitig belegt. Aus diesen Rähmchen wird halt die Tabelle gebaut.
Abgesehen davon ist das Ganze natürlich auf feste Zeichenbreite (also Textmode) ausgelegt, mit proportionalen Zeichensätzen sieht es dann natürlich bescheiden aus.
Es handelt sich dabei um etwas anderes.
Der angegebene Grafikspeicher bezieht sich dabei auf den für die Grafikmodi nutzbaren Grafikpuffer, d.h. den Speicher, der auch direkt in den Grafikauflösungen auf dem Bildschirm dargestellt werden kann. Der restliche Grafikkartenspeicher ist sogenannter Off-Screen Speicher, dieser wird von 3D-Grafikkarten z.B. benutzt. um darin Texturen und ggf irgendwelche vorberechneten Dinge zu speichern. Dieser Speicher ist für die direkte Grafikausgabe nicht nutzbar.
Manchmal wird von VESA der Offscreen-Speicer zum Teil noch angezeigt, manchmal einfach nur 0.
Für die für Grafikausgabe verfügbaren Speicher spielt das keine Rolle.
Will sagen: Nehmen wir an, es GÄBE eine Auflösung 1024x1024x8Bit (die bräuchte genau 1 MB, um eine Grafikseite darzustellen).
Trotzdem ist es dann nicht so, daß, wenn eine Grafikkarte z.B. 64 MB Grafikspeicher hat, man auch 64 verschiedene Grafikseiten darstellen kann, sondern es wird eher so sein, daß dann die ersten 4 oder 8 oder 14 oder 16 MB oder so nur direkt dafür gedacht sind, da "Pixel" reinzulegen, um die als Grafik darzustellen.
Daß gemeldeter Grafikspeicher = Gesamtspeicher der Grafikkarte ist, trifft auf unsere schönen alten "DOS"-Grafikkarten zu, sowas wie die ETx000 Serie und so.
Seit die Grafikkarten so Kram machen können, wie selber ganze Bildbereiche hardwaremäßig kopieren, 3D hardwaremäßig berechnen (texturierte Polygone mit etlichen Effekten dran - Transparenz, Bumpmapping, Light-/Environment-/Phong- Shading etc.), brauchen sie zusätzlichen Speicher, in den z.B. temporär verschiedene Daten (wie eben z.B. Texturen) reingeladen werden können.
Abgesehen davon verwenden vor allem so ONBoard-Grafikchips gerne "Shared Memory", d.h. sie klauen sich einfach ein Stück vom eingebauten RAM, weil sie selber keinen haben...
Achja, zu meinem Programm TESTVESA.EXE:
Diese "Probleme" bei der Darstellung liegen daran, daß es im Original den Zeichensatz Codepage 437 verwendet - die bekannte DOS-Rähmchengrafik. In Codepage 852 (den Windows benutzt) sind diese Zeichen anderweitig belegt. Aus diesen Rähmchen wird halt die Tabelle gebaut.
Abgesehen davon ist das Ganze natürlich auf feste Zeichenbreite (also Textmode) ausgelegt, mit proportionalen Zeichensätzen sieht es dann natürlich bescheiden aus.
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Also nur der reine Bildspeicher der zur Anzeige gebracht werden kann, inclusive Speicher für triple buffering und stereoskopische Modi. Dafür dürften mir 14 MB genügen.DOSferatu hat geschrieben:Das VESA-BIOS macht keine falschen Angaben!
Es handelt sich dabei um etwas anderes.
Der angegebene Grafikspeicher bezieht sich dabei auf den für die Grafikmodi nutzbaren Grafikpuffer, d.h. den Speicher, der auch direkt in den Grafikauflösungen auf dem Bildschirm dargestellt werden kann.
Für DOS ist dieser Speicher damit nicht nutzbar ohne DOS-DirectX-Treiber.Der restliche Grafikkartenspeicher ist sogenannter Off-Screen Speicher, dieser wird von 3D-Grafikkarten z.B. benutzt. um darin Texturen und ggf irgendwelche vorberechneten Dinge zu speichern. Dieser Speicher ist für die direkte Grafikausgabe nicht nutzbar.

Verständlich.Manchmal wird von VESA der Offscreen-Speicer zum Teil noch angezeigt, manchmal einfach nur 0.
Für die für Grafikausgabe verfügbaren Speicher spielt das keine Rolle.
Will sagen: Nehmen wir an, es GÄBE eine Auflösung 1024x1024x8Bit (die bräuchte genau 1 MB, um eine Grafikseite darzustellen).
Trotzdem ist es dann nicht so, daß, wenn eine Grafikkarte z.B. 64 MB Grafikspeicher hat, man auch 64 verschiedene Grafikseiten darstellen kann, sondern es wird eher so sein, daß dann die ersten 4 oder 8 oder 14 oder 16 MB oder so nur direkt dafür gedacht sind, da "Pixel" reinzulegen, um die als Grafik darzustellen.
Bei der Verwendung von "Shared Memory" müssen sich CPU und GPU den Speicher teilen. Beide können nie gleichzeitig auf den Speicher zugreifen und behindern sich dabei gegenseitig. Der Speicher von Grafikkarten mit eigenem Ram ist viel schneller als der normale Ram-Speicher und die GPU kann ungehindert auf ihren Speicher zugreifen. Die CPU wird nun auch nicht mehr durch den Zugriff von der Grafikkarte auf den gemeinsam genutzten Speicher behindert.Daß gemeldeter Grafikspeicher = Gesamtspeicher der Grafikkarte ist, trifft auf unsere schönen alten "DOS"-Grafikkarten zu, sowas wie die ETx000 Serie und so.
Seit die Grafikkarten so Kram machen können, wie selber ganze Bildbereiche hardwaremäßig kopieren, 3D hardwaremäßig berechnen (texturierte Polygone mit etlichen Effekten dran - Transparenz, Bumpmapping, Light-/Environment-/Phong- Shading etc.), brauchen sie zusätzlichen Speicher, in den z.B. temporär verschiedene Daten (wie eben z.B. Texturen) reingeladen werden können.
Abgesehen davon verwenden vor allem so ONBoard-Grafikchips gerne "Shared Memory", d.h. sie klauen sich einfach ein Stück vom eingebauten RAM, weil sie selber keinen haben...
Das könnte sich vielieicht ändern wenn sich mehrere GB an Speichen in die CPU/GPU integrieren läßt.
Mit dem Textbetrachter vom Windows-Commander kann man die Datei "VESA.RES" öffnen und in das Antwortfenster kopieren. Mit Notepad geöffnet werden die Zeichen anders angezeigt.Achja, zu meinem Programm TESTVESA.EXE:
Diese "Probleme" bei der Darstellung liegen daran, daß es im Original den Zeichensatz Codepage 437 verwendet - die bekannte DOS-Rähmchengrafik. In Codepage 852 (den Windows benutzt) sind diese Zeichen anderweitig belegt. Aus diesen Rähmchen wird halt die Tabelle gebaut.
Abgesehen davon ist das Ganze natürlich auf feste Zeichenbreite (also Textmode) ausgelegt, mit proportionalen Zeichensätzen sieht es dann natürlich bescheiden aus.
Eine feste Breite bekommt man wenn man es zischen Code ??? Code (siehe Werkzeugleiste im Antwortfenster) plaziert.
Dirk
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Hallo Leute!
Vielen Dank für eure Mühen.
Ich habe nicht nur hier im Forum "ermittelt" - aber bisher scheint sich keine Lösung abzuzeichnen.
Zur Not schleppe ich dann halt zwei Netbooks mit mir rum (eines für DOS mit 7,1 Zoll und eines fürs Internet mit 10,1 Zoll).
Aber ich werde mal so frech sein, und rotzfrech bei Intel direkt anfragen, auch wenn die vielleicht aus dem Lachen nicht mehr rauskommen.
Vielleicht können die mir ja die Parameter mitteilen, wie man den Grafikchip zu 1024 x 768 / 16,7 Mio Farben oder 64000 Farben überreden kann.
Dann müßte es doch möglich sein, mit einem DOS-Programm diese Einstellungen an den Grafikchip zu schicken, und anschließend Geos starten?
Auch meine Suche die automatische Scalierung auf die volle Bildschirmbreite auszuschalten blieb bisher erfolglos. Mit 800 x 600 in den richtigen Proportionen könnte ich auch leben.
Im November auf dem Geostreffen werde ich mir dann mal Geos unter einem Emulator zeigen lassen. - Vielleicht kann ich mich dann doch dafür "erwärmen".
Nochmals vielen Dank
Gruß Frank
Vielen Dank für eure Mühen.
Ich habe nicht nur hier im Forum "ermittelt" - aber bisher scheint sich keine Lösung abzuzeichnen.
Zur Not schleppe ich dann halt zwei Netbooks mit mir rum (eines für DOS mit 7,1 Zoll und eines fürs Internet mit 10,1 Zoll).
Aber ich werde mal so frech sein, und rotzfrech bei Intel direkt anfragen, auch wenn die vielleicht aus dem Lachen nicht mehr rauskommen.
Vielleicht können die mir ja die Parameter mitteilen, wie man den Grafikchip zu 1024 x 768 / 16,7 Mio Farben oder 64000 Farben überreden kann.
Dann müßte es doch möglich sein, mit einem DOS-Programm diese Einstellungen an den Grafikchip zu schicken, und anschließend Geos starten?
Auch meine Suche die automatische Scalierung auf die volle Bildschirmbreite auszuschalten blieb bisher erfolglos. Mit 800 x 600 in den richtigen Proportionen könnte ich auch leben.
Im November auf dem Geostreffen werde ich mir dann mal Geos unter einem Emulator zeigen lassen. - Vielleicht kann ich mich dann doch dafür "erwärmen".
Nochmals vielen Dank
Gruß Frank
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Das können sie ganz bestimmt, doch ich habe Zweifel daran ob sie das tun werden. Wenn sie aber Antworten dann sage mal bescheid.frank9652 hat geschrieben:Hallo Leute!
Vielen Dank für eure Mühen.
Ich habe nicht nur hier im Forum "ermittelt" - aber bisher scheint sich keine Lösung abzuzeichnen.
Zur Not schleppe ich dann halt zwei Netbooks mit mir rum (eines für DOS mit 7,1 Zoll und eines fürs Internet mit 10,1 Zoll).
Aber ich werde mal so frech sein, und rotzfrech bei Intel direkt anfragen, auch wenn die vielleicht aus dem Lachen nicht mehr rauskommen.
Vielleicht können die mir ja die Parameter mitteilen, wie man den Grafikchip zu 1024 x 768 / 16,7 Mio Farben oder 64000 Farben überreden kann.
Das Problem wird allerdings bestehen bleiben, das Anwendungen beim Starten selber einen Videomode anschalten und damit vorherige Einstellungen ignorieren und wieder rückgängig machen.Dann müßte es doch möglich sein, mit einem DOS-Programm diese Einstellungen an den Grafikchip zu schicken, und anschließend Geos starten?
Also brauchen wir dann immer noch einen Treiber der den Versuch der Anwendungen selber einen Videomode anzuschalten abfängt und verhindert. Damit eine bestimmte Auflösung sinnvoll
verwendet werden kann muss die jeweilige Anwendung die Auflösung gerechnet in Zeilen und Spalten und der Anzahl der Bytes je Pixel berücksichtigen. Werden hierbei falsche Parameter
verwendet kommt dabei nichts Sinvolles heraus. Anwendungen die dafür Vesamodeinfo(Function 4F01) benutzen um diese Parameter zu ermitteln, die könnte man ebenfalls über einen Treiber
mit den richtigen Informationen versorgen.
So ein DOS-Treiber für den Softwareinterrupt INT 10h läßt sich relativ leicht bewerkstelligen. Man holt aus der Speicherstelle 10h * 4 den dortigen Vector vom INT 10h heraus und rettet ihn.
Dann trägt man dort einen neuen Vector ein, der auf die Adresse unseres Treibers im Speicher zeigt. Unser Treiber muss dafür resident im Speicher verbleiben. Wenn eine Anwendung nun
den INT 10h aufruft, dann wird nun unser Treiber angesprungen. Unser Treiber schaut nun nach ob zb. ein Videomode angeschaltet werden soll und verhindert das indem der Interruptaufruf
einfach beendet wird. Andernfalls wenn etwas Anderes gemacht werden soll was wir so beibehalten wollen wie bisher, dann springen wir zum urspünglichen Vector weiter den wir uns dafür
gerettet haben. So läßt sich jeder Modewechsel der über INT 10h normaler Weise erfolgen soll auf eine relativ einfache Weise verhindern.
Die Interpolation von einem Windowstreiber kann man zwar abschalten, aber ich bin mir nicht sicher ob die Interpolation die ein Monitor selber vornimmt überhaupt abgeschaltet werden kann.Auch meine Suche die automatische Scalierung auf die volle Bildschirmbreite auszuschalten blieb bisher erfolglos. Mit 800 x 600 in den richtigen Proportionen könnte ich auch leben.
Diese Frage sollten die Monitorhersteller beantworten können.
Gerne geschehen.Im November auf dem Geostreffen werde ich mir dann mal Geos unter einem Emulator zeigen lassen. - Vielleicht kann ich mich dann doch dafür "erwärmen".
Nochmals vielen Dank
Gruß Frank
Dirk
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Wir haben auf unserem Geostreffen eine Lösung gefunden!
Nochmal die Problembeschreibung!
Ich wollte die graphische Benutzeroberfläche Geoworks (16 Bit) auf dem Asus EeePC 1015PE benutzen.
Über eine bootfähige SD-Karte mit DOS konnte ich Geos starten, aber nur im Modus 800 x 600 weil der integrierte Graphikchip nur maximal den alten VESA-Modus 800 x 600 zur Verfügung stellt. Durch die Hardware (Monitor?) wird aber das Bild automatisch auf 1024 x 600 verzerrt wodurch z.B. runde Kreise keine runden Kreise mehr sind.
Eine Möglichkeit dieses "automatische Stretching" abzuschalten, habe ich nicht gefunden.
Die Lösung...
...sah so aus, daß wir auf einer bootbaren SD-Karte Puppy-Linux installiert haben, und darunter den DOS-Emulator DOSEMU mit Geos.
Dadurch wurde es möglich unter Geos die Auflösung 1024 x 600 zu fahren.
Auch der Zugriff auf jedes USB-Device und mein angeschlossenes DVD-Laufwerk sind unter Geos möglich.
Zum Datenaustausch kann ich von Geos her (auf dem Asus) die Dateien in das Grundverzeichnis der SD-Karte schieben, auf das ich unter DOS (von anderen Rechnern) genauso wie unter Windows 7 Zugriff habe.
Da die Lösung jetzt eigentlich in den Bereich Emulatoren gehört, poste ich dort noch einmal den Beitrag.
Gruß Frank
Nochmal die Problembeschreibung!
Ich wollte die graphische Benutzeroberfläche Geoworks (16 Bit) auf dem Asus EeePC 1015PE benutzen.
Über eine bootfähige SD-Karte mit DOS konnte ich Geos starten, aber nur im Modus 800 x 600 weil der integrierte Graphikchip nur maximal den alten VESA-Modus 800 x 600 zur Verfügung stellt. Durch die Hardware (Monitor?) wird aber das Bild automatisch auf 1024 x 600 verzerrt wodurch z.B. runde Kreise keine runden Kreise mehr sind.
Eine Möglichkeit dieses "automatische Stretching" abzuschalten, habe ich nicht gefunden.
Die Lösung...
...sah so aus, daß wir auf einer bootbaren SD-Karte Puppy-Linux installiert haben, und darunter den DOS-Emulator DOSEMU mit Geos.
Dadurch wurde es möglich unter Geos die Auflösung 1024 x 600 zu fahren.
Auch der Zugriff auf jedes USB-Device und mein angeschlossenes DVD-Laufwerk sind unter Geos möglich.
Zum Datenaustausch kann ich von Geos her (auf dem Asus) die Dateien in das Grundverzeichnis der SD-Karte schieben, auf das ich unter DOS (von anderen Rechnern) genauso wie unter Windows 7 Zugriff habe.
Da die Lösung jetzt eigentlich in den Bereich Emulatoren gehört, poste ich dort noch einmal den Beitrag.
Gruß Frank
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Eine kleine Anmerkung meinerseits:
Ich habe heute (mittlerweile - weil nach Mitternacht - eigentlich gestern) ein Programm geschrieben, das das besagte Problem teilweise lösen könnte. (Ich werde dazu noch eine SETUP.EXE bauen.)
Das Programm klinkt sich in den INT 10h ein und "überschreibt" die VESA-Funktionen 00h und 01h und gibt eigene Werte zurück. Ich habe das Teil NICHT als TSR gebaut, sondern als EXE, die den INT 10h "hookt", eine andere EXE aufruft und danach den INT 10h wiederherstellt.
Zu benutzen wäre das Ganze dann so (wenn PROGRAM.EXE das zu nutzende Programm ist) :
STUBVESA PROGRAM.EXE
(Danach können auch noch Kommandozeilenparameter für PROGRAM.EXE angegeben werden.)
STUBVESA braucht dabei zusätzlich (Code+Daten+Stack) ca. 5 kByte im Speicher oder so.
Ich habe damit heute z.B. ein Experiment gemacht, indem ich so getan habe, als hätte der Mode 640x480 (8bit) eine Scanline von 800 Bytes und der Mode 800x600 (8bit) eine Scanline von 1024 Bytes - und habe die EIGENTLICHEN Modi 800x600 und 1024x768 damit überschrieben. Auf dieselbe Art könnte man z.B. einen vom eigentlichen VESA verhandenen 1024x600 Mode auf 800x600 "kürzen", indem man einträgt, daß er nur 800x600 Pixel wäre. Es sieht dann eben so aus, daß der rechte Bereich (die rechten 224 Pixel) nicht benutzt werden - jedoch hätte man eine 1:1 Ratio der Pixel bei der Darstellung.
Das Programm habe ich eigentlich geschrieben, weil auf dem Rechner eines Bekannten, auf dem wir diverse Experimente machen, VESA scheinbar nur irgendwie unzulänglich unterstützt wird - und damit all meine Programme, die VESA nutzen (insbesondere eben das derzeit verwendete Tool) eventuell doch noch zum Laufen gebracht werden können.
Aber ich habe mich in diesem Zusammenhang daran erinnert, daß im DOSforum jemand ein damit verwandtes Problem hatte. Sollte also eventuell Interesse an diesem Mini-Tool bestehen - auch für andere Zwecke - dann kann ich da auch gern noch weitere Dinge tun, eben z.B. das erwähnte SETUP dazu schreiben, das die Mode-Umbelegung und -modifikation einiger Modi zuläßt.
(Anmerkung: Natürlich nicht nur für 8-Bit-Modi, sondern auch für 4/15/16/24/32-Bit.)
Ich habe heute (mittlerweile - weil nach Mitternacht - eigentlich gestern) ein Programm geschrieben, das das besagte Problem teilweise lösen könnte. (Ich werde dazu noch eine SETUP.EXE bauen.)
Das Programm klinkt sich in den INT 10h ein und "überschreibt" die VESA-Funktionen 00h und 01h und gibt eigene Werte zurück. Ich habe das Teil NICHT als TSR gebaut, sondern als EXE, die den INT 10h "hookt", eine andere EXE aufruft und danach den INT 10h wiederherstellt.
Zu benutzen wäre das Ganze dann so (wenn PROGRAM.EXE das zu nutzende Programm ist) :
STUBVESA PROGRAM.EXE
(Danach können auch noch Kommandozeilenparameter für PROGRAM.EXE angegeben werden.)
STUBVESA braucht dabei zusätzlich (Code+Daten+Stack) ca. 5 kByte im Speicher oder so.
Ich habe damit heute z.B. ein Experiment gemacht, indem ich so getan habe, als hätte der Mode 640x480 (8bit) eine Scanline von 800 Bytes und der Mode 800x600 (8bit) eine Scanline von 1024 Bytes - und habe die EIGENTLICHEN Modi 800x600 und 1024x768 damit überschrieben. Auf dieselbe Art könnte man z.B. einen vom eigentlichen VESA verhandenen 1024x600 Mode auf 800x600 "kürzen", indem man einträgt, daß er nur 800x600 Pixel wäre. Es sieht dann eben so aus, daß der rechte Bereich (die rechten 224 Pixel) nicht benutzt werden - jedoch hätte man eine 1:1 Ratio der Pixel bei der Darstellung.
Das Programm habe ich eigentlich geschrieben, weil auf dem Rechner eines Bekannten, auf dem wir diverse Experimente machen, VESA scheinbar nur irgendwie unzulänglich unterstützt wird - und damit all meine Programme, die VESA nutzen (insbesondere eben das derzeit verwendete Tool) eventuell doch noch zum Laufen gebracht werden können.
Aber ich habe mich in diesem Zusammenhang daran erinnert, daß im DOSforum jemand ein damit verwandtes Problem hatte. Sollte also eventuell Interesse an diesem Mini-Tool bestehen - auch für andere Zwecke - dann kann ich da auch gern noch weitere Dinge tun, eben z.B. das erwähnte SETUP dazu schreiben, das die Mode-Umbelegung und -modifikation einiger Modi zuläßt.
(Anmerkung: Natürlich nicht nur für 8-Bit-Modi, sondern auch für 4/15/16/24/32-Bit.)
Re: DOS-Programm gesucht um VESA-Modus zu erzwingen
Hallo Dosferatu!
Auch wenn mein Problem anderweitig gelöst wurde, hätte ich schon Interesse das mal auszuprobieren.
Nochmal zur kurzen Beschreibung meines Problems.
Der Grafikchip für den Asus EeePC 1015PE scheint in die CPU integriert worden zu sein, und bietet als VESA-Modi nur 800x600 an.
Die exakte Auflösung (auch unter Win 7) ist auf den widescreen-TFT 1024 x 600.
Starte ich von DOS Boot-SD-Karte mein Programm (PC-Geos) dann werden auch nur die 800x600 erkannt aber das Bild auf die volle TFT-Breite verzerrt.
Dadurch sind Kreise halt nicht mehr rund, sondern oval.
Die Lösung meines Problems bestand bestand nun darin, daß wir wieder eine SD-Karte bootfähig gemacht haben, und darauf Puppeee Linux installiert haben.
Darunter dann DOSEMU (ein DOS-Emulator) mit meinem PC-Geos.
Da DOSEMU (im gegensatz zu DOSBOX) auch 64.000 Farben unterstützt sowie die Auflösung 1024x600 wurde diese Auflösung an Geos durchgereicht.
Das Doing sieht folgendermaßen aus:
Ich boote von SD-Karte Puppeee Linux, und starte per Einfachklick Geos. Unsichtbar wird aber zuerst DOSEMU gestartet, und in einem Fenster dann Geos.
Um das Fenster auf volle Bildschirmgröße zu bringen, mußich dann nur noch Strg + F drücken. -Dann sieht man weder von Puppeee noch von DOSEMU irgend etwas.
-Was mich bei der ganzen Sache komplett gewundert hatte, daß der Zugriff auf die ganzen USB-Speichermedien sofort geklappt hatte. -Nur die Art, wo man dann die Dateien findet ist ein bischen Gewöhnungsbedürftig.
-Auch der direkte Ausdruck aus Geos heraus über DOSBOX, Puppeee und einen "USB auf Sub-D"-Adapter auf den Parallelportdrucker funktioniert nun (nachdem ich einen anderen Adapter gekauft hatte).
Nur Soundausgabe unter DOSEMU habe ich noch nicht hinbekommen, brauche es aber auch wirklich nicht.
Mich reizt es aber es noch hinzubekommen. - Vielleicht auf dem nächsten Treffen im November 2011.
Gruß Frank
Auch wenn mein Problem anderweitig gelöst wurde, hätte ich schon Interesse das mal auszuprobieren.
Nochmal zur kurzen Beschreibung meines Problems.
Der Grafikchip für den Asus EeePC 1015PE scheint in die CPU integriert worden zu sein, und bietet als VESA-Modi nur 800x600 an.
Die exakte Auflösung (auch unter Win 7) ist auf den widescreen-TFT 1024 x 600.
Starte ich von DOS Boot-SD-Karte mein Programm (PC-Geos) dann werden auch nur die 800x600 erkannt aber das Bild auf die volle TFT-Breite verzerrt.
Dadurch sind Kreise halt nicht mehr rund, sondern oval.
Die Lösung meines Problems bestand bestand nun darin, daß wir wieder eine SD-Karte bootfähig gemacht haben, und darauf Puppeee Linux installiert haben.
Darunter dann DOSEMU (ein DOS-Emulator) mit meinem PC-Geos.
Da DOSEMU (im gegensatz zu DOSBOX) auch 64.000 Farben unterstützt sowie die Auflösung 1024x600 wurde diese Auflösung an Geos durchgereicht.
Das Doing sieht folgendermaßen aus:
Ich boote von SD-Karte Puppeee Linux, und starte per Einfachklick Geos. Unsichtbar wird aber zuerst DOSEMU gestartet, und in einem Fenster dann Geos.
Um das Fenster auf volle Bildschirmgröße zu bringen, mußich dann nur noch Strg + F drücken. -Dann sieht man weder von Puppeee noch von DOSEMU irgend etwas.
-Was mich bei der ganzen Sache komplett gewundert hatte, daß der Zugriff auf die ganzen USB-Speichermedien sofort geklappt hatte. -Nur die Art, wo man dann die Dateien findet ist ein bischen Gewöhnungsbedürftig.
-Auch der direkte Ausdruck aus Geos heraus über DOSBOX, Puppeee und einen "USB auf Sub-D"-Adapter auf den Parallelportdrucker funktioniert nun (nachdem ich einen anderen Adapter gekauft hatte).
Nur Soundausgabe unter DOSEMU habe ich noch nicht hinbekommen, brauche es aber auch wirklich nicht.
Mich reizt es aber es noch hinzubekommen. - Vielleicht auf dem nächsten Treffen im November 2011.
Gruß Frank