VESA-BIOS-Erweiterungen - VESA BIOS Extensions

VESA BIOS Extensions ( VBE ) ist ein VESA- Standard, derzeit in Version 3, der die Schnittstelle definiert, die von Software verwendet werden kann, um auf kompatible Videokarten mit hohen Auflösungen und Bittiefen zuzugreifen. Dies steht im Gegensatz zu den "traditionellen" int 10h BIOS- Aufrufen, die auf Auflösungen von 640 x 480 Pixel mit 16 Farben (4 Bit) Tiefe oder weniger beschränkt sind. VBE wird über das BIOS der Grafikkarte zur Verfügung gestellt , das beim Booten einige Interrupt- Vektoren installiert, die auf sich selbst verweisen .

Die meisten neueren Karten implementieren den leistungsfähigeren VBE 3.0-Standard. Ältere Versionen von VBE bieten nur eine Real-Mode- Schnittstelle, die nicht ohne erhebliche Leistungseinbußen innerhalb von Protected-Mode- Betriebssystemen verwendet werden kann. Folglich wurde der VBE-Standard fast nie zum Schreiben der Treiber einer Grafikkarte verwendet; jeder Anbieter musste somit ein proprietäres Protokoll für die Kommunikation mit seiner eigenen Videokarte erfinden . Trotzdem ist es üblich, dass ein Treiber den Real-Mode-Interrupt durchdringt , um Bildschirmmodi zu initialisieren und direkten Zugriff auf den linearen Bildpuffer einer Karte zu erhalten , da diese Aufgaben ansonsten die Handhabung vieler Hundert proprietärer Variationen erfordern würden, die von Karte zu Karte existieren Karte.

In EFI 1.x-Systemen werden das INT 10H und die VESA BIOS Extensions (VBE) durch das EFI UGA-Protokoll ersetzt. In weit verbreiteten UEFI 2.x-Systemen werden INT 10H und VBE durch UEFI GOP ersetzt .

Normen

Frühe VBE

VBE 1.0 (VS891001) wurde 1989 definiert. VBE 1.1 (VS900602) wurde 1990 definiert. VBE 1.2 (VS911022) wurde 1991 definiert. Diese Versionen von VBE erfordern den Realmodus, um zu funktionieren.

VBE definiert mehrere neue Funktionen, die über INT 10H aufgerufen werden . Die Funktionsnummerierung beginnt mit AX=4F00 oder (AH=4F, AL=00) für Funktion 00h . 00h bis 05h wurden in VBE 1.0 definiert, 06h und 07h in 1.1 und 08h in 1.2.

VESA-BIOS-Erweiterungen (VBE-Kern) 2.0 [November 1994]

Dieser Standard stellt die Hauptfunktionalität der VESA-BIOS-Erweiterungen bereit. Es ermöglicht Anwendungen, die Fähigkeiten der Grafikkarte zu bestimmen , und bietet die Möglichkeit, die gefundenen Anzeigemodi einzustellen. VBE 2.0 fügt einige neue Funktionen über dem vorherigen VBE 1.2-Standard hinzu, darunter linearer Framebuffer- Zugriff und Banking im geschützten Modus . Einige der VBE Core 2.0-Funktionen umfassen:

Linearer Framebuffer-Zugriff
Ermöglicht den direkten Framebuffer-Zugriff im geschützten Modus als einen großen Speicherbereich anstelle von weniger effizienten kleineren Blöcken.
Banking im geschützten Modus
Ermöglicht den Zugriff auf den Framebuffer aus dem geschützten Modus, ohne in den realen Modus zu "thunken" . Dies wird durch eine neue Funktion 0Ah realisiert .
Super-VGA- Umblättern
Ermöglicht Animationen mit höherer Leistung, um eine flüssige Animation für Computerspiele und andere Hochleistungsgrafikprogramme bereitzustellen.
Virtuelle Super-VGA-Bildschirme
Ermöglicht der Software das Einrichten virtueller Anzeigeauflösungen , die größer als die tatsächlich angezeigte Auflösung sind, und das reibungslose Scrollen oder Schwenken um das größere Bild.
High-Color- und TrueColor- Modi
16-Bit- und 24-Bit-Grafikmodi nach Industriestandard für Auflösungen von 320×200 bis 1600 ×1200 .

VESA-BIOS-Erweiterungen (VBE-Kern) 3.0 [September 1998]

Eine Obermenge des VBE 2.0-Standards. Dieser Standard fügt dem VBE 2.0-Standard eine Bildwiederholfrequenzsteuerung , Möglichkeiten für Stereobrillen , verbessertes Multi-Buffering und andere Funktionen hinzu.

Dreifache Pufferung
Ermöglicht Hochgeschwindigkeitsanwendungen die Durchführung von Multi-Buffering mit weniger Bildschirmflimmern und ohne auf den Grafikcontroller warten zu müssen.
Steuerung der Aktualisierungsrate mithilfe von GTF-Timings
Auf diese Weise können Anwendungen und Dienstprogramme des Betriebssystems die Aktualisierungsrate auf allen VBE 3.0-Grafikcontrollern standardmäßig ändern. Wichtig für Stereoanwendungen, da bei aktiviertem Stereo die effektive Bildwiederholfrequenz des Benutzers halbiert wird.
Seitenumblättern in Stereo
Wenn eine Anwendung sieht Stereo mit Brille , muss Software Umblättern doppelt so oft wie normal, weil es separate Bilder für jedes Auge erzeugen muss. Diese neue Funktion ermöglicht die korrekte Anzeige von stereokompatibler Software.
Hardware-Stereo-Synchronisierung
Ermöglicht der Stereosoftware festzustellen, ob an der Grafikkarte des Benutzers ein Anschluss für eine Stereobrille vorhanden ist.

Als Alternative zur Funktion 0Ah wurde ein neuer "Protected Mode Entry Point" hinzugefügt .

VBE/Beschleunigerfunktionen (VBE/AF) [August 1996]

VBE/AF bietet eine Low-Level-Standardschnittstelle für gängige Beschleunigungsfunktionen, die auf der meisten Hardware verfügbar sind. Einige der im Standard definierten Funktionen sind der Zugriff auf Hardware-Cursor, Bit Block Transfers (Bit Blt), Off-Screen- Sprites , Hardware-Panning, Zeichnen und andere Funktionen. Es ist so definiert, dass es im geschützten Modus funktioniert.

Ergänzende Spezifikationen

Zusätzliche Spezifikationen bieten eine geräteunabhängige Schnittstelle zwischen Anwendungssoftware und Super-VGA-Hardware. Funktionsnummern werden vom VESA Software Standards Committee (SSC) zugewiesen.

Power-Management-Erweiterungen (PM)

DPMS ist ein Hardwarestandard, der es Grafikkarten ermöglicht, mit DPMS-konformen Monitoren über ein spezielles Signalisierungssystem zu kommunizieren , das mit vorhandenen Grafikcontrollern und Monitorkabeln verwendet werden kann. Dieses Signalisierungssystem ermöglicht es der Grafikkarte, dem Monitor mitzuteilen, dass er in eine Reihe von verschiedenen Energieverwaltungs- oder Energiesparzuständen wechseln soll, die es dem Monitor effektiv ermöglichen, sich selbst auszuschalten, wenn er nicht verwendet wird.

Flat Panel Interface Extensions (FP)

Ermöglicht den Zugriff auf spezielle Funktionen in Flachbildschirm-Controllern.

Audio-Interface-Erweiterungen (AI)

Bietet Standard für Audiodienste.

Derzeit (Version 1.00) definiert die VBE/AI-Spezifikation drei Geräteklassen: WAVE, MIDI und VOLUME. Nicht abgedeckte Gerätetypen:

CDROM-Steuerung
die von den CD-ROM-Erweiterungen von Microsoft abgedeckt wird .
Effektprozessoren
Diese Geräteklasse wird in einer zukünftigen Version der VBE/AI-Spezifikation erweitert.

OEM-Erweiterungen

Bietet einen Standardeintrag für herstellerspezifische Erweiterungen.

Datenkanal anzeigen (DDC)

Der Display Data Channel oder DDC ist eine digitale Verbindung zwischen einem Computerdisplay und einem Grafikadapter , die es dem Display ermöglicht, seine Spezifikationen an den Adapter zu übermitteln. Der Standard wurde von VESA erstellt .

Serielle Steuerschnittstelle (SCI)

Bietet hardwareunabhängige Mittel für Betriebssystem und Anwendung zum Lesen und Schreiben von Daten über die serielle I²C- Steuerschnittstelle.

VBE-Modusnummern

Obwohl die Modusnummer ein 16-Bit-Wert ist, sind die optionalen VBE-Modusnummern 14 Bit breit. Bit 15 wird vom VGA-BIOS als Flag verwendet, um den Anzeigespeicher zu löschen oder zu erhalten. VBE definierte Modusnummern wie folgt:

Bisschen Bedeutung
0–8 Modusnummern. Wenn Bit 8 1 ist, handelt es sich um einen VESA-definierten VBE-Modus.
9-10 Reserviert für Erweiterungen. Muss auf 0 gesetzt werden.
11 Steuerung der Aktualisierungsrate Wählen Sie. Wenn auf 1 gesetzt, verwenden Sie benutzerdefinierte CRTC-Werte für die Aktualisierungsrate, ansonsten verwenden Sie die BIOS-Standardaktualisierungsrate.
12–13 Reserviert für VBE/AF. Muss auf 0 gesetzt werden.
14 Linear/Flat-Frame-Pufferauswahl. Wenn auf 1 gesetzt, verwenden Sie den linearen Framebuffer, andernfalls verwenden Sie den Banked Framebuffer.
fünfzehn Anzeigespeicher beibehalten Auswählen. Wenn auf 1 gesetzt, Anzeigespeicher erhalten, andernfalls Anzeigespeicher löschen.

Ab VBE/Core 2.0 definiert VESA keine neuen VESA-Modusnummern mehr und erfordert kein Gerät mehr, um die alten Nummern zu implementieren. Um Informationen eines Bildschirmmodus richtig zu erkennen, verwenden Sie die Funktion 01h - Return VBE Mode Information .

Modus 81FFh ist ein spezieller Videomodus, der entwickelt wurde, um den aktuellen Speicherinhalt zu erhalten und den Zugriff auf den gesamten Videospeicher zu ermöglichen.

Von VESA defined definierte Modi

Ab dem VBE 2.0-Standard werden von VESA keine neuen Modi definiert und alte Modi sind nicht mehr obligatorisch. Die Verwendung definierter Modi sollte als veraltet betrachtet werden: Moderne Grafikkarten können diese Modusnummern verwenden oder nicht (obwohl die meisten dies aus Gründen der Abwärtskompatibilität tun), und moderne Software sollte sie nicht verwenden. Die richtige Methode für die Software, die verfügbaren Anzeigemodi zu erkennen, besteht darin, eine Liste der Modi zu erhalten (mit "Funktion 00h - VBE-Controller-Informationen zurückgeben") und dann jeden Modus zu überprüfen (mit "Funktion 01h: VBE-Modusinformationen zurückgeben"), bis er gefunden wird den/die Modus/en, die es benötigt.

Grafikmodi 320×200 640×400 640×480 800×600 1024×768 1280×1024
16-Farben-Palette 258 (0102h), 106 (6Ah) 260 (0104h) 262 (0106h)
256-Farben-Palette 256 (0100h) 257 (0101h) 259 (0103h) 261 (0105h) 263 (0107h)
15-Bit (5:5:5) 269 ​​(010Dh) 272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h)
16-Bit (5:6:5) 270 (010Eh) 273 (0111h) 276 (0114h) 279 (0117 Uhr) 282 (011Ah)
24-Bit (8:8:8) 271 (010Fh) 274 (0112h) 277 (0115h) 280 (0118h) 283 (011Bh)

Die Modi 264–268 sind Textmodi. 264 (0108h) ist 80 Spalten × 60 Zeilen (80×60), 265 (0109h) ist 132×25, 266 (010Ah) ist 132×43, 267 (010Bh) ist 132×50 und 268 (010Ch) ist 132× 60.

Textmodi Säulen
Reihen 80 132
25 265 (0109h)
43 266 (010Ah)
50 267 (010Bh)
60 264 (0108h) 268 (010Ch)

Andere allgemein verfügbare Grafikmodi

Die folgende Tabelle kombiniert die von VESA definierten Modi (die schwarz gekennzeichneten Werte) zusammen mit den häufig verwendeten Modi, die jedoch möglicherweise nicht auf allen Grafikkarten funktionieren, da sie nicht durch einen Standard definiert sind ( in rot gekennzeichnet ).

Grafikmodi 320×200 640×400 640×480 800×500 800×600 896×672 1.024×640 1.024×768 1152 × 720 1280 ×1024 1360 × 768 1440 × 900 1600 ×1200
16-Farben-Palette 258 (0102h),
106 (6Ah)
260 (0104h) 262 (0106h)
256-Farben-Palette 256 (0100h) 257 (0101h) 367 (016Fh) 259 (0103h) 303 (012Fh) 362 (016 Ah) 261 (0105h) 357 (0165h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-Bit (5:5:5) 269 ​​(010Dh) 289 (0121h) 272 (0110h) 368 (0170h) 275 (0113h) 304 (0130h) 363 (016Bh) 278 (0116h) 358 (0166h) 281 (0119h) 353 (0161h) 285 (011Dh)
16-Bit (5:6:5) 270 (010Eh) 290 (0122h) 273 (0111h) 369 (0171h) 276 (0114h) 305 (0131h) 364 (016Ch) 279 (0117 Uhr) 359 (0167h) 282 (011Ah) 978 (03d2h) 354 (0162h) 286 (011Eh)
24-Bit (8:8:8) 271 (010Fh) 291 (0123h) 274 (0112h) 370 (0172h) 277 (0115h) 306 (0132h) 365 (016Dh) 280 (0118h) 360 (0168h) 283 (011Bh) 355 (0163h) 287 (011Fh)
32-Bit (8:8:8) 292 (0124h) 297 (0129h) 371 (0173h ) 302 (012Eh) 307 (0133h) 366 (016Eh) 312 (0138h) 361 (0169h) 317 (013Dh) 980 (03d4h) 356 (0164h) 322 (0142h)

Moduserkennung

Es wurden einige Tools geschrieben, um auf einem System verfügbare VBE-Modi zu erkennen. Sie funktionieren im Allgemeinen durch den Aufruf von Function 01h , was zuverlässiger ist, als eine Tabelle mit erweiterten Modi als Teil der Selbstdokumentation des Geräts anzunehmen.

  • hwinfo ist das Hardware-Erkennungstool, das in SuSE Linux und in einigen anderen Linux-Distributionen verwendet wird . Ausführen von hwinfo --framebufferBerichten mit Grafikinformationen, einschließlich VESA-Modi in einer "Modus"-Zeile.
  • mdt ist ein Linux- oder DOS- Tool, das die VBE-Unterstützung erkennt und Video-BIOS-Informationen druckt.
  • Das Linux Real Mode Interface (LRMI) verfügt über ein vbetestProgramm, das VESA-Informationen ausdruckt .
  • SciTech Software hatte eine vbetestfür DOS unabhängige Version aus dem Jahr 1994.
  • Die x86 "PC"-Version GNU GRUB 2 verfügt über einen vbeinfoBefehl zum Ausdrucken verfügbarer Videomodi und vbetestzum Ausprobieren eines bestimmten Modus. Sie verwenden eine eingebaute Tabelle anstelle von Funcion 01h . Für andere Plattformen, einschließlich x86 EFI, werden sie durch die allgemeineren videoinfound videotest.

Linux-Videomodusnummern

Der Linux-Kernel ermöglicht es dem Benutzer, den VESA-Modus beim Booten auszuwählen, indem ein Code im Speicher an den Kernel übergeben wird. Der LILO-Bootloader übergibt diesen Code basierend auf einem "vga"-Parameter in seiner Konfigurationsdatei. Es hat die Form 'vga=XXX', wobei XXX der Dezimalwert ist, oder 'vga=0xHHH', wobei HHH der hexadezimale Wert ist. Der Bootloader-Parameter 'vga=' akzeptiert jedoch nicht direkt VESA-Videomodusnummern; die Linux-Videomodusnummer ist vielmehr die VESA-Nummer plus 512 (bei der dezimalen Darstellung) oder plus 0x200 (bei der hexadezimalen Darstellung). Der definierte VESA-Wert von 257 (0x101), der 640x480 und 256 Farben repräsentiert, hat beispielsweise einen entsprechenden Linux-Videomoduswert von 769 (0x301).

Wie bereits erwähnt, definiert der VESA-Standard einen begrenzten Satz von Modi; insbesondere keine oben1280 ×1024 werden abgedeckt und ihre Implementierung ist stattdessen für Grafikkartenhersteller völlig optional. Da es den Anbietern freisteht, beliebige zusätzliche Werte zu verwenden, bedeutet dies, dass die in der folgenden Tabelle rot gekennzeichneten Modi (und in Dezimalform ausgedrückt) möglicherweise nicht für Ihre Grafikkarte gelten !

320×200 640×400 640×480 800×500 800×600 896×672 1024 ×640 1024 × 768 1152 × 720 1280 × 1.024 1400 × 1.050 1440 × 900 1600 × 1200 1920 ×1200
16 Farben 770 0302h 772 0304h 774 0306h
256 Farben 768 0300h 769 0301h 879 036Fh 771 0303h 815 032Fh 874 036 Ah 773 0305h 869 775 0307h 835 864 796 893
15-Bit (5:5:5) 781 030Dh 801 0321h 784 0310h 880 0370h 787 0313h 816 0330h 875 036Bh 790 0316h 870 793 0319h 865 797
16-Bit (5:6:5) 782 030Eh 802 0322h 785 0311h 881 0371h 788 0314h 817 0331h 876 036Ch 791 0317h 871 794 031 Ah 837 866 798
24-Bit (8:8:8) 783 030Fh 803 0323h 786 0312h 882 0372h 789 0315h 818 0332h 877 036Dh 792 0318h 872 795 031Bh 838 867 799
32-Bit (8:8:8) 1 804 809 883 814 819 878 824 873 829 868 834

1: 32-Bit ist wirklich (8:8:8:8), aber die letzte 8-Bit-Zahl ist ein "leerer" Alphakanal. Es entspricht ansonsten der 24-Bit-Farbe. Viele GPUs verwenden den 32-Bit-Farbmodus anstelle des 24-Bit-Modus lediglich für einen schnelleren Zugriff auf den Videospeicher durch die 32-Bit-Speicherausrichtung.

vga= 864 [ 352 (0160h)] erscheint auch zur Auswahl1280 × 800 (8-Bit) für die Displays verschiedener Laptops.
vga= 834 [ 322 (0142h)] ist1400 ×1050

In Parallels verfügbare Modi

Die VESA-BIOS-Emulation in der virtuellen Maschine von Parallels verfügt über einen anderen Satz nicht standardmäßiger VESA-Modi. Ab Build 3214 zeigt LRMI vbetest diese Modi an:

640×400 640×480 720×480 800×500 800×600 896×672 1024 ×640 1024 × 768 1152 × 720 1280 × 1.024 1440 × 900 1600 × 1200
256 Farbpalette 256 (0100h) 257 (0101h) 367 (016Fh) 364 (016Ch) 259 (0103h) 297 (0129h) 358 (0166h) 261 (0105h) 355 (0163h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-Bit (5:5:5) 272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h) 285 (011Dh)
16-Bit (5:6:5) 289 (0121h) 273 (0111h) 368 (0170h) 365 (016Dh) 276 (0114h) 298 (012 Ah) 359 (0167h) 279 (0117 Uhr) 356 (0164h) 282 (011Ah) 353 (0161h) 286 (011Eh)
24-Bit (8:8:8) 290 (0122h) 274 (0112h) 369 (0171h) 366 (016Eh) 277 (0115h) 299 (012Bh) 360 (0168h) 280 (0118h) 357 (0165h) 283 (011Bh) 354 (0162h) 287 (011Fh)

Siehe auch

Verweise

Weiterlesen

Externe Links