Video Graphics Array

Dieser Artikel beschreibt den Computergrafik-Standard. Zur Spezifikation der elektronischen Schnittstelle siehe VGA-Anschluss.

Video Graphics Array (VGA) ist ein Computergrafik-Standard, der bestimmte Kombinationen von Bildauflösung und Farbanzahl (Farb-Bit-Tiefe) sowie Wiederholfrequenz definiert und 1987 von IBM eingeführt wurde.

Anders als seine Vorgänger EGA und CGA war VGA anfangs als Ein-Zoll-Prozessor zur leichteren Integration auf Hauptplatinen konzipiert, aber nicht als eigener „Adapter“. Ein unmittelbarer Vorläufer war die Multi-Color Graphics Array (MCGA) genannte Onboard-Grafik des IBM PS/2 Model 30. Diese war nur mit 64 kB Videospeicher ausgestattet, was zwar den bei Spielen beliebten 256-Farben-Modus erlaubte, der daher auch „MCGA-Modus“ genannt wurde, die VGA-typische Videoauflösung von 640×480 Pixeln jedoch nur monochrom (1 Bit pro Pixel) darstellen konnte. Auch fehlte dem MCGA die Kompatibilität zur EGA-Karte.

Da auch alle modernen Grafikkarten immer noch kompatibel zu IBMs VGA sind, verwenden auch moderne Betriebssysteme noch den VGA-Grafikmodus, z. B. während der Installation oder wenn kein zur Grafikkarte passender Treiber installiert ist.

## Merkmale einer VGA-kompatiblen Grafikkarte

[Bearbeiten | Quelltext bearbeiten]

### Grundsätzliche Eigenschaften

[Bearbeiten | Quelltext bearbeiten]

Die VGA-Funktionalität setzt sich zusammen aus einem Videospeicher (RAM), einem Digital-Analog-Wandler und einer Prüfschaltung, welche ermittelt, ob der angeschlossene Bildschirm eine farbige oder monochrome Darstellung unterstützt.

Der 256 KB umfassende Videospeicher ist in vier Speicherbänke à 64 KB aufteilt, welche „übereinander“ im Adressraum des Mikroprozessors liegen. Befindet sich die VGA-Grafikkarte In einem Grafikmodus, können alle Pixel über den Videospeicher angesprochen werden. In einem Textmodus wird der Code jedes darzustellenden Zeichens zusammen mit seinen Attributen wie bspw. „unterstrichen“ oder „blinkend“ im Videospeicher abgelegt. In diesem Fall wird die Darstellung jedes Zeichens durch einen Pixelblock mithilfe eines Zeichensatzes bestimmt, der ebenfalls im Videospeicher abgelegt ist.

In einem Nur-Lesespeicher (ROM) befinden sich drei vordefinierte Zeichensätze mit bzw. 8 × 8 Pixeln, 8 × 14 Pixeln und 8 × 16 Pixeln je Zeichen.

Die Farben werden indirekt mithilfe einer frei definierbaren Farbpalette generiert, die jedem Farbcode im Videospeicher eine Zahl von 0 bis 23×6 − 1 = 262143 zuordnet, die final die darzustellende Farbe durch den Digital-Analog-Wandler bestimmt. Dieser sendet im Fall eines angeschlossenen Farbbildschirms diesem drei der Farbe entsprechende analoge Farbsignale (Rot-, Grün und Blauanteil der Farbe).[1]

### Hardware-Ebene

[Bearbeiten | Quelltext bearbeiten]

* VGA-Anschluss mit analoger Übertragung der RGB-Signalkomponenten (anders als bei EGA, ähnlich wie beim PGC), was (abhängig von der Karte oder Signalquelle) prinzipiell die Darstellung unendlich vieler Farben und Zwischenabstufungen in Verbindung mit einem geringen Schaltungsaufwand bei einem Röhrenmonitor erlaubt. Allerdings ist die Bildqualität stark vom Schaltungsaufbau und der Bauteilequalität der Karte sowie der anschließenden Übertragungskabel zur Bildröhre abhängig.

## Anzeigemodi

[Bearbeiten | Quelltext bearbeiten]

VGA und weitere Standards VGA-BIOS-Modi[2] Modus  | Typ  | Format  | Farbanzahl

|
|
|

0h  | Text  | 40 × 25  | 16 (monochrom)
1h  | Text  | 40 × 25  | 16
2h  | Text  | 80 × 25  | 16 (monochrom)
3h  | Text  | 80 × 25  | 16
4h  | CGA-Grafik  | 320 × 200  | 4
5h  | CGA-Grafik  | 320 × 200  | 4 (monochrom)
6h  | CGA-Grafik  | 640 × 200  | 2
7h  | MDA-Text  | 80 × 25  | 3 (monochrom)
Dh  | EGA-Grafik  | 320 × 200  | 16
Eh  | EGA-Grafik  | 640 × 200  | 16
Fh  | EGA-Grafik  | 640 × 350  | 3 (monochrom)
10h  | EGA-Grafik  | 640 × 350  | 16
11h  | VGA-Grafik  | 640 × 480  | 2
12h  | VGA-Grafik  | 640 × 480  | 16
13h  | VGA-Grafik  | 320 × 200  | 256

Als Textmodi werden vor allem 80 × 25 Zeichen (16 Pixelzeilen pro Zeichen) und 80 × 50 Zeichen (8 Pixelzeilen pro Zeichen) genutzt, beide mit einer zugrundeliegenden Bildauflösung von 720 × 400 Pixel.

### Mode-X und Mode-Y

[Bearbeiten | Quelltext bearbeiten]

VGA-Modi ohne BIOS-Unterstützung[3] Modus  | Typ  | Format  | Farbanzahl  | Bemerkung

|
|
|
|

Mode-X  | VGA-Grafik  | 320 × 240  | 256  | Quadratische Pixel (Pixelseitenverhältnis hat den Wert eins)
Mode-Y  | VGA-Grafik  | 320 × 200  | 256  | Längliche Pixel wie im Modus 13h (Pixelseitenverhältnis ist kleiner als eins)

Im Gegensatz zum einfacher zu programmierenden Modus 13h ist im Mode-X und Mode-Y Page Flipping möglich und es kann der gesamte Videospeicher verwendet werden. Das erlaubt es, für den Bildaufbau Double Buffering zu verwenden oder oft benötige 2D-Grafiken als Sprites abzulegen, um auf diese schnell, wie bei einem Cache, zurückzugreifen. Dies erlaubt performantere Animationen und die beim Mode-X die quadratischen Pixel vereinfachen die Erstellung von Grafiken, bei denen es auf ein richtiges Seitenverhältnis ankommt.

Der größte Vorteil des Mode-X ist allerdings, dass er einen parallelen Zugriff auf vier Pixel gleichzeitig erlaubt, da bei Standard VGA die Hardware grundsätzlich in vier Speicherbänke bzw. Ebenen von je 64 KiB pro Speicherbank organisiert ist, wovon jede Ebene in vierer Schritten die Pixel in der Horizontalen abbildet. D.h. das erste Byte in Ebene 0 bildet bspw. den 0., 4., 8. und 12. Pixel ab, die Ebene 1 bildet den 1., 5., 9. und 13. Pixel ab. Man nennt diese Zugriffsart auch planaren Zugriff, dieser ist auch als unchained mode bekannt. Durch diesen parallelen Zugriff ist Mode-X viermal so schnell, wie Mode 13h, allerdings auch komplizierter zu programmieren.

Mode-X und Mode-Y unterscheiden sich in der Auflösung und beim Format der Pixel. Mode-X weist quadratische Pixel auf, während im Mode-Y die Pixel höher als breit sind, wie auch bereits im Modus 13h.[4][3][5]

### Flexibilität des VGA-Anschlusses

[Bearbeiten | Quelltext bearbeiten]

Die Bildauflösung und Parameter der Bildausgabe über den klassischen VGA-Anschluss lassen sich ziemlich frei einstellen. Trotzdem lassen sich TV-Röhrengeräte prinzipiell nicht an einer Standard-VGA-Karte betreiben (kein CSync = erfordert Zusatzelektronik, etwas andere Pegel = erfordert Zusatzelektronik, kein Zeilensprung = nur 240...288 Zeilen-Darstellung möglich).

Für herkömmliche analoge VGA-Röhrenmonitore geeignet sind jedoch folgende Varianten:

* Pixelfrequenz: 28,322 MHz oder 25,175 MHz halbierbar.
* Zeilenfrequenz: 31,4688 kHz ist der Standardwert. Exakt 80 % der Zeilenzeit wird zur Bilddarstellung genutzt.
* Vollbilddarstellung.
* 70,08 Bilder/s bei maximal 400 sichtbaren Zeilen oder 59,94 Bilder/s bei maximal 480 sichtbaren Zeilen
* Die Anzahl der sichtbaren Zeilen lässt sich auf 350 Zeilen reduzieren. Dem Monitor wurde das durch Änderung der Polarität des Sync-Signale übermittelt (+hsync -vsync). Genutzt für EGA-Simulation.
* Eine weitere Möglichkeit, die Auflösung zu verringern, besteht darin, Zeilen doppelt darzustellen – aus 480 Zeilen werden so 240 oder aus 400 Zeilen werden 200 Zeilen. Genutzt für CGA-Simulation.
* Pro Zeile sind 640 oder 720 sichtbare Pixel üblich (je nach gewähltem Pixeltakt)
* Dieser lässt sich halbieren auf 320 bzw. 360 Pixel.
* Im 256-Farben-Modus wird der Pixeltakt ebenfalls immer halbiert.
* Speicheraufbau
* 64 kB × 32 bit, erweiterte Karten 128 kB × 32 bit.
* Grafikmodi lesen alle 8 Takte ein 32-Bit-Wort aus. Modi mit bis zu 16 Farben generieren daraus 8 Pixel. 256-Farben-Modi 4 Pixel.
* Bei Textmodi kommt ein zweiter Zugriff für das Auslesen der Zeichenrepräsentation dazu.

Der Fortschritt des VGA-Anschlusses war die analoge Übertragung des Signals zum Monitor. Damit überwand man das Manko des CGA-Anschlusses bzw. EGA-Anschlusses, die prinzipiell nur 16 bzw. 64 Farben (bei SW: 3 bzw. 4 Graustufen) übertragen konnten. VGA-Anschlüsse konnten theoretisch beliebig viele Farben anzeigen, Standard-VGA-Karten haben 262144 davon genutzt.

Erst ein Jahrzehnt später hat sich die analoge Übertragung als Manko herausgestellt. Für TFT-Displays mit einzeln ansteuerbaren Pixeln führt sie bei hohen Auflösungen (spätestens bei 1600×1200 Pixeln) zu Unschärfe und Unruhe (Moiré) im Bild. Die Nachfolger heißen DVI-D, HDMI und DisplayPort. HDMI ist eine Weiterentwicklung von DVI; HDMI-Signale sind zu DVI abwärtskompatibel.

## Kompatibilität zu MDA-, CGA- und EGA-Karten

[Bearbeiten | Quelltext bearbeiten]

VGA war weitgehend abwärtskompatibel zu allen bisherigen IBM-Grafikkarten für PCs; beim Zugriff über das BIOS war die Kompatibilität besonders hoch, aber auch bei direkter Registerprogrammierung funktionierten die meisten Programme weiterhin. Insbesondere musste der Benutzer nicht mehr zwischen Farbfähigkeit (CGA, EGA) und hoher Textqualität (MDA) wählen. Für VGA wurden von Anfang an sowohl monochrome (meist weiße) als auch farbige Monitore angeboten.

### Farbpaletten

[Bearbeiten | Quelltext bearbeiten]

CGA bot 16 feststehende Farben. EGA bewahrte die CGA-Kompatibilität und erlaubte trotzdem 64 Farben in allen Modi, indem die 16 Farbnummern der CGA als Zeiger auf eine sogenannte Palette, eine Tabelle mit 16 Einträgen, interpretiert wurden; die Einträge der Palette enthielten dann die EGA-Farbnummern im Bereich 0 bis 63. Beim Start des Systems wurden dort Farbnummern eingetragen, die den gleichen Farbeindruck wie die 16 CGA-Farben boten; Programme, die den EGA-Standard kannten, konnten die Eintragungen aber ändern. Somit konnten zwar weiterhin nur 16 Farben gleichzeitig dargestellt werden, aber aus einer Gesamtmenge von 64 Farben.

Defaultpalette im 256-Farben-Modus

VGA-Grafikkarten unterstützen 262.144 mögliche Farben. Bei VGA-Karten existiert die erwähnte Palette mit 16 Einträgen ebenfalls – die darin enthaltenen Werte im Bereich 0 bis 63 werden aber im Gegensatz zu EGA nicht direkt als Farbnummern, sondern wiederum als Zeiger auf die ersten 64 Einträge einer weiteren Tabelle interpretiert. Diese VGA-Farbpalette hat nun 256 Einträge im Bereich von 0 bis 262143. Auch hier werden beim Start in die ersten 64 Einträge solche VGA-Farben eingetragen, die den 64 EGA-Farben optisch gleichen, aber von Programmen, die VGA kennen, verändert werden können. Durch dieses zweistufige Verfahren können auch in den CGA- und EGA-kompatiblen Modi der VGA alle VGA-Farben dargestellt werden, allerdings weiterhin nur jeweils 16 davon gleichzeitig. Im 256-Farb-Grafikmodus werden die Daten im Bildschirmspeicher dagegen direkt als Zeiger auf die 256-Einträge-Tabelle interpretiert und die 16-Einträge-Tabelle nicht verwendet.

Bei einigen CGA-kompatiblen Modi verwendet VGA sogar eine dreistufige Palette, da auch die CGA-Karte in diesen Modi bereits eine, allerdings nicht frei wählbare, Palette von 2 oder 4 aus 16 Farben verwendet hatte.

### Textmodus

[Bearbeiten | Quelltext bearbeiten]

VGA-Grafikkarten stellen den Textmodus mit 720 Punkten pro Zeile dar, wie schon die MDA-Karte, aber im Gegensatz zu CGA und EGA, die 640 Punkte verwenden. Jedes der 80 Zeichen pro Zeile wurde im Vergleich zu CGA/EGA um einen Pixel auf 9 Pixel verbreitert, damit erhöht sich der Zeichenabstand und somit die Lesbarkeit. Da im Zeichenspeicher jedoch weiterhin nur acht Spalten gespeichert waren, wurde das 9. Pixel entweder leer gelassen oder durch Wiederholung des 8. Pixel erzeugt. Die Entscheidung darüber wird nach der Nummer des Zeichencodes getroffen – die Zeichen 0xC0 bis 0xDF, welche in der Codepage 437 Blockgrafikzeichen mit Anschluss nach rechts enthalten, benutzen die Wiederholung des 8. Pixels, bei den anderen ist die 9. Spalte immer leer. Dadurch ergeben sich auch die typischen vertikalen Streifen bei einigen Programmen (wie z. B. Turbo Pascal ab Version 6), die den Hintergrund mit Grauzeichen füllen. Für die Verwendung von anderen Codepages, die in den Positionen 0xC0 bis 0xDF gewöhnliche Druckzeichen enthalten, kann die Wiederholung des 8. Pixels auch komplett abgeschaltet werden (diese Möglichkeit gab es bei der MDA, deren Codepage unveränderlich auf die 437 festgelegt war, noch nicht).

Wie schon bei der EGA-Karte steuert das Bit 3 des Attribut-Bytes die Auswahl aus zwei Zeichensätzen. Somit ist es mit benutzerdefinierten Zeichensätzen möglich, bis zu 512 verschiedene Zeichen gleichzeitig im Textmodus darzustellen.

Der eingebaute Zeichengenerator unterstützt benutzerdefinierte Zeichensätze, die 1 bis 32 Pixel hoch sein können. Während die üblichen benutzerdefinierten Zeichensätze die üblichen Zeichengrößen von 8×8, 8×14 oder 8×16 Pixeln benutzen, existieren auch kleinere Schriften, die etwa bei 5 Pixel hohen Zeichen bis zu 96 Zeichenzeilen erlauben würden, die aber kaum noch lesbar sind.

Mit 1 oder 2 Pixel hohen „Schriften“ lassen sich im Textmodus (pseudo)grafische Effekte erzielen, die allerdings auch zur Blütezeit der Grafik-Spielereien unter DOS nur selten genutzt worden sind, da im Textmodus nur 16 Farben zur Verfügung stehen und die 256-Farben-Grafikmodi deutlich bessere Effekte ermöglichten.

### Grafik-BIOS

[Bearbeiten | Quelltext bearbeiten]

Wie schon die EGA-Karten benutzen auch VGA-Karten ein eigenes Grafik-BIOS, um die VGA- und auch EGA-Grafikfunktionen des Adapters für Anwenderprogramme zugänglich zu machen, ohne dass diese die komplizierte Registerprogrammierung selbst durchführen müssen. Dies ist notwendig, da das System-BIOS eines PCs in der Regel lediglich MDA und CGA unterstützt. Wie bei SCSI-Steuergeräten und Netzwerkkarten mit Boot-ROM wird der Maschinencode in den für Zusatzkarten reservierten Adressraum des Prozessors zwischen 640 und 960 Kibibyte, im so genannten konventionellen Arbeitsspeicher, eingeblendet. Hier können die Programme dann auf die VGA- (und EGA-) Routinen der Grafikkarte zugreifen. Teilweise werden auch Grafikroutinen des System-BIOS auf angepassten Code der Grafikkarte umgelenkt, um die Kompatibilität zu älteren Programmen zu gewährleisten.

Auf den Nachfolgern der IBM-PC-kompatiblen Computer mit UEFI als System-Firmware, die zwischen 2010 und 2020 PCs mit dem klassischen BIOS ablösten, findet sich weiterhin Grafik-Firmware, die jedoch nicht mehr direkt von Programmen angesprochen wird, sondern über eine standardisierte Programmierschnittstelle (API), u. a. GOP (UEFI), OpenGL/Vulkan (plattformübergreifend), DirectX (Windows) oder Metal (macOS).

## Geschichte

[Bearbeiten | Quelltext bearbeiten]

### Entwicklung

[Bearbeiten | Quelltext bearbeiten]

Die heutigen Grafikkarten für IBM-kompatible PCs sind häufig zumindest teilweise VGA-kompatibel. Von 1981 bis etwa 1990 setzte IBM die Standards dieser Architektur, so auch bei Grafikkarten. Aufgrund der Fähigkeiten und Architektur des seinerzeit meistverwendeten Betriebssystems DOS (benötigt lediglich Textmodus, keine Multitaskingfähigkeit) war es damals daher notwendig, dass Peripherie und Erweiterungskarten zum jeweiligen gängigen Industriestandard hardwarekompatibel sein mussten, da die Software die Erweiterungskarte oder Peripheriekomponente direkt programmierte. Mit der Zeit ergab sich aber das Problem, dass die Farbtiefen und Auflösungen und deren Ansteuerung lediglich bis zum VGA-Standard definiert waren. Mit dem einsetzenden Siegeszug des PC Ende der 1980er Jahre nahm die Anzahl der Hersteller für PC-Grafiklösungen auf dem Markt stark zu, und der Preis für Grafikkarten sank. IBM verlor seine Markt- und Standardisierungsmacht. Um sich von der Konkurrenz abzuheben, begannen zahlreiche Hersteller (z. B. Genoa Systems, Trident Microsystems, Hercules u. v. m.), den VGA-Standard mit eigenen Entwicklungen (bzw. VGA-Grafik-BIOS-Erweiterungen) zu erweitern. So boten mit der Zeit die meisten Grafikkarten die Möglichkeit, Auflösungen bis 1024×768 oder darüber in High- oder True Color darzustellen. Auch wurden mit dem Aufkommen von grafischen Benutzeroberflächen wie Windows erste Funktionen zu deren Beschleunigung implementiert, wie das Zeichnen und Füllen von Rechtecken und Flächen in Hardware durch die Grafikkarte. Allerdings waren all diese erweiterten, über VGA hinausgehenden Funktionen nicht standardisiert und unterschieden sich zum Teil je nach Grafikkarte. Daher musste zunächst jede Software, die diese Funktionen nutzen wollte, ihre eigenen Grafikkartentreiber mitbringen (Beispiel: MS Flugsimulator 5.0). Für wichtige Anwendungen wie Windows 3.1, teilweise AutoCAD, wurden aber auch seitens der Grafikchiphersteller Treiber zur Verfügung gestellt. Vor allem bei günstigen Nicht-Standard-Grafikkarten war dies aber auch nicht immer der Fall, und daher beschränkte sich die Software unter DOS meist auf VGA.

Spiele bis 1994 sind daher meist auch auf den 320 × 200 × 8-VGA-Modus beschränkt (Mode 13h). Beispiele sind Doom 1, Worms oder Wolfenstein 3D. In grafischen Betriebssystemen wie bspw. Windows NT oder OS/2 war immer ein VGA-Treiber für den standardisierten VGA-Modus der einzig verfügbare, wenn noch kein hardwarespezifischer Grafiktreiber installiert wurde.

Um höhere Auflösungen und deren Programmierung zu vereinheitlichen, wurden Anfang der 1990er Jahre von der VESA die Auflösungen bis 1280×960 in 256 Farben und deren BIOS-APIs normiert. Diese VESA-Erweiterungen wurden darauf auch zügig von den Grafikchipherstellern übernommen und in die VGA-BIOSe eingepflegt. Die VESA-Erweiterungen erschienen in mehreren Versionen, aktuell ist Version 3.0. Die VGA-BIOS-Chips waren meist als ROM ausgeführt, so dass sich die Grafikkarten selbst nicht auf eine neue VESA-BIOS-Version aufrüsten lassen. Durch die Verwendung von TSR-Programmen, welche gewissermaßen als „VESA-Wrapper“ dienen, lassen sich unter DOS neue VESA-Erweiterungen auf Systemen nutzen, welche über eine entsprechend leistungsfähige, aber zur benötigten VESA-Version inkompatible Grafikkarte besitzen. Diese TSR-Programme stellen die VESA-Erweiterungs-Routinen zur Verfügung und übersetzen sie für die Grafikkarte. Neben herstellerspezifischen Wrappern gibt es auch Universalwrapper wie UNIVESA.EXE oder UNIVBE.EXE. Diese wurden oft verwendet, um die VESA-Erweiterungen der Version 2.0 auf Systemen nachzurüsten, deren Grafikkarten lediglich VESA 1.0 unterstützen. Erst Mitte der 1990er Jahre hatten sich die mit den VESA-Erweiterungen kompatiblen Grafikkarten soweit durchgesetzt, dass sie von den Spieleherstellern zunehmend unterstützt wurden. Auch war mit dem Erscheinen der ersten Pentium-Prozessoren auf dem Massenmarkt genug Rechenleistung vorhanden, um auch in den VESA-Modi, selbst mit Wrapper eine flüssige Grafikdarstellung in aufwändigen DOS-Spielen wie Wing Commander 3 oder The Need for Speed erreichen zu können. In der Shareware-Szene wurde allerdings noch längere Zeit auf den Mode 13h (320×200, 256 Farben) gesetzt, da hier eine Bildschirmseite ziemlich genau 64 kB benötigt. Dies ist in zahlreichen verbreiteten günstigen Real-Mode-Compilern wie Turbo Pascal die maximal erlaubte Größe für Datenstrukturen im Arbeitsspeicher; Mode-13h-Bildschirmseiten sind unter solchen Compilern daher vergleichsweise einfach zu handhaben. Trotz der VESA-Erweiterungen wird unter Windows bis einschließlich Version 7 ein Standard-VGA-Treiber eingerichtet, solange kein herstellerspezifischer Treiber verfügbar ist, im Gegensatz beispielsweise zu Linux und BSD oder neueren Windows-Versionen. Bei letzterem nennt sich der generische Treiber nun Microsoft Basic Display Adapter und unterstützt auch hohe Auflösungen, jedoch ohne spezifische Beschleunigungsfunktionen.

In der zweiten Hälfte der 1990er Jahre setzten sich Windows 95 und 98 zunehmend durch. Windows 95 und seine Nachfolger bieten mit DirectX und OpenGL Betriebssystemschnittstellen, mit denen Anwendungen definierte Funktionen von Grafikkarten ansprechen können. Windows gibt dabei standardisierte Funktionsaufrufe sofort an den Grafiktreiber weiter, der sie in Befehle für die Grafikkarte umsetzt. Somit sind ein Großteil der Funktionen von Grafikkarten aus Windows für alle Arten von Programmen einheitlich ansprechbar. Ein zu einem bestimmten Hardwarestandard kompatibles Grafik-BIOS ist unter Windows prinzipiell nicht mehr erforderlich. Eine direkte Programmierung der Grafikkarte wie unter DOS ist unter Windows ohnehin nicht möglich, da Windows multitaskingfähig ist und für die Benutzeroberfläche selber die Grafikkarte benötigt. Um etwaige Konflikte durch gleichzeitige Zugriffe von verschiedenen Programmen zu vermeiden, laufen Hardwarezugriffe unter Windows daher grundsätzlich koordiniert über das Betriebssystem und dessen Gerätetreiber. Die DirectX-Treiber ermöglichen im Gegensatz zum Grafik-BIOS komplexere Funktionen und sprechen den Chip in der Regel direkt über seine Register an. Das Upgrade von Funktionen wird durch den Verzicht auf die Routinen des recht starren VGA-Grafik-BIOS wesentlich erleichtert. DirectX-Treiber ermöglichen im Gegensatz zum Grafik-BIOS komplexere Funktionen. Die Steuerung der Grafikkarte erfolgt hauptsächlich durch den Windows-Treiber. Das Programmieren aufwändigerer Grafiken wird vereinfacht, da die Abstraktionsebene höher liegt und z. B. ein wesentlicher Teil der Darstellung einer virtuellen Welt im Gegensatz zu früher von Grafiktreiber und Grafikkarte übernommen werden kann. Dies eröffnet zahlreiche Möglichkeiten, die Grafikdarstellung durch bestimmte Schaltungen im Grafikchip zu beschleunigen. Auch die Portierbarkeit auf andere Plattformen wird durch den hohen Abstraktionsgrad erleichtert. Allerdings nimmt dadurch auch die Komplexität des Grafikchips und des Grafiktreibers zu. Die vergleichsweise einfachen Grafikchips, welche bislang höchstens über einige Beschleunigungsfunktionen für grafische Benutzeroberflächen verfügten (z. B. Füllen von Rechtecken, Zeichnen von Linien durch die Hardware), wurden mit der breiten Verfügbarkeit von Windows 95 ff. und Direct3D zu hochkomplexen Grafikprozessoren mit Fähigkeiten zur beschleunigten Darstellung dreidimensionaler Welten weiterentwickelt. Zahlreiche bekannte Grafikchiphersteller aus den 1990er Jahren konnten mit dieser Entwicklung nicht Schritt halten und sind mittlerweile aus dem Markt verschwunden.

Aufgrund des hohen Alters des VGA-Standards und den damit einhergehenden Limitierungen des Designs war es ein Anliegen verschiedener Hersteller wie Intel oder ATI, den VGA-Standard durch den von Microsoft geförderten UGA-Standard (Universal Graphics Adapter) zu ersetzen. Immerhin wurde die VGA-Karte in den mittleren 1980ern für den ISA-Bus entwickelt, was gerade für moderne Betriebssysteme eine Schwierigkeit darstellt, da VGA somit zu den Errungenschaften des geschützten Speichermodells (Protected Mode) inkompatibel ist.

Das erklärte Ziel von UGA, das mit EFI-Version 1.1 eingeführt wurde, war es, die grafischen Mindestleistungen von 640 × 480 × 4 auf 800 × 600 × 32 anzuheben, das Speichermodell der Grafikkarte zu vereinfachen (durch 32-Bit-Zugriff sowie die Abschaffung der Paletten und des Textmodus) und einen plattformunabhängigen Zugriff auf die Grafikkarte über EFI-Treiber zur Verfügung zu stellen. Kritischer, plattformabhängiger Code sollte damit reduziert werden. In UEFI ab Version 2.0 wurde UGA gestrichen und durch das einfachere und modernere GOP (Graphics Output Protocol) ersetzt, dem jedoch im Gegensatz zu UGA der Textmodus fehlt. EFI-Treiber sowohl für UGA als auch für GOP sind jedoch kein Ersatz für Betriebssystem-spezifische Treiber, ermöglichen aber bereits an hochauflösende Displays angepasste Grafikmodi in der Firmware selbst (etwa für das „BIOS-Setup“) sowie bei der Installation von Betriebssystemen und dienen meist als Fallback-Option, wenn spezifische Treiber für die jeweilige Grafikkarte fehlen.

Nach den Plänen von AMD, Intel, LG und weiteren Rechner- und Bildschirm-Herstellern, soll der VGA- sowie auch der LVDS-Anschluss spätestens im Jahr 2015[veraltet] nicht mehr hergestellt werden. An dessen Stelle sollen die digitalen Ausgänge DisplayPort oder HDMI verbaut werden.[6]

### Heutige Bedeutung

[Bearbeiten | Quelltext bearbeiten]

Unabhängig von dieser ursprünglichen Vielfalt von Auflösungen steht „VGA-Auflösung“ inzwischen meist für die Auflösung von 640 × 480 Pixeln, etwa bei Spezifikationen für Displays oder Smartphones, wobei meist höhere eine Pixeltiefe bzw. Farbauflösung bis 32 Bit genutzt wird, die ursprünglich nicht zur Verfügung standen. Von der VGA-Auflösung von 640 × 480 Pixeln leiten sich weitere Formate z. B. für PDAs ab. Eine Auflistung findet sich unter Bildauflösung#Standards.

## Literatur

[Bearbeiten | Quelltext bearbeiten]

* Mathias Uphoff: Programmierung der EGA /VGA-Grafikkarte. Addison-Wesley, 1990, ISBN 3-89319-274-3.

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ Section 2. VGA Function. (PDF; 659 kB) In: mcamafia.de. IBM Corp., 1992, abgerufen am 21. März 2024 (englisch).
2. ↑ Fabien Sanglard: Game Engine Black Book – Wolfenstein 3D. 2.2. überarbeitete Auflage. 15. Dezember 2022, 2.3 Video (englisch).
3. ↑ a b Fabien Sanglard: Game Engine Black Book – Wolfenstein 3D. 2.2. überarbeitete Auflage. 15. Dezember 2022, 4.5.2 Solving the VGA Problem (englisch).
4. ↑ Michael Abrash: Chapter 48 – Mode X Marks the Latch. In: Phat Code. 2001, abgerufen am 21. März 2024 (englisch).
5. ↑ Mode Y. In: Google Groups. 17. August 1993, abgerufen am 21. März 2024 (englisch).
6. ↑ VGA-Buchse zum Aussterben verurteilt. heise online, 10. Dezember 2010

Grafikstandards bei IBM-PC-kompatiblen Computern

MDA – CGA – HGC (Hercules) – EGA – PGC – VGA – SVGA – 8514/A – XGA