
CGA(Color Graphics Adapter, ursprünglich auch Color/Graphics Adapter oder IBM Color/Graphics Monitor Adapter) war die erste vonIBM im Jahr 1981 eingeführte farbfähigeGrafikkarte und der erste Farbgrafikkarten-Standard für denIBM PC. Bis zur Einführung vonEGA war CGA der Standard für vieleIBM-PC-kompatible Anwendungen, die jeden Bildpunkt einzeln adressieren müssen.[1] DasVideo-RAM umfasst 16384 Byte und die höchste Bildschirmauflösung der Karte beträgt 640 × 200 Bildpunkte.[2] Wie bei den meistenHeimcomputern entspricht das Timing der CGA-Karte dem des Fernsehbildes, wodurch die Karte mithilfe eines externenHF-Modulators an einen Fernseher oder direkt an einenComposite-Monitor angeschlossen werden kann. Die Rahmenfarbe des angezeigten Bildes kann imGrafikmodus mit 320 × 200 Bildpunkten und in denTextmodi durch Setzen eines Registerwerts aus der CGA-Farbpalette ausgewählt werden.[3]
Die CGA-Karte kennt zwei grundsätzliche Textmodi:
Der Zeichensatz für die Textmodi ist fest in einem ROM als Teil der CGA-Karte abgespeichert und umfasst in der DOS/OEM-US-Version die 256 Zeichen desIBM-Zeichensatzes derCodepage 437.[4]
Beide Modi haben je zwei Varianten:
Der Zeichensatz nutzt ein 8 × 8-Raster, wodurch Nachteile gegenüber den Monochrom-StandardsMDA undHGC in Kauf genommen werden müssen: die Buchstaben sehen sehr rasterartig aus, und die Zeilenabstände sind so gering, dass Unterlängen (wie bei den Kleinbuchstaben g, j, p, q, y) die Großbuchstaben der nächsten Zeile berührten.
| 0 | Schwarz #000000 | 8 | Dunkelgrau #555555 |
| 1 | Blau #0000AA | 9 | Hellblau #0000FF |
| 2 | Grün #00AA00 | 10 | Hellgrün #00FF00 |
| 3 | Cyan #00AAAA | 11 | Helles Cyan #00FFFF |
| 4 | Rot #AA0000 | 12 | Hellrot #FF0000 |
| 5 | Magenta #AA00AA | 13 | Helles Magenta #FF00FF |
| 6 | Gelb #AAAA00 | 14 | Hellgelb #FFFF00 |
| 7 | Hellgrau #AAAAAA | 15 | Weiß #FFFFFF |
| CGA-Palette 1 | |||
|---|---|---|---|
| Hintergrund | 5 – Magenta | ||
| 3 – Cyan | 7 – Hellgrau | ||
| CGA-Palette 2 | |||
| Hintergrund | 4 – Rot | ||
| 2 – Grün | 6 – Gelb | ||
Die CGA-Karte bietet zwei Grafikmodi:
Die bei Verwendung von 320 × 200 Bildpunkten zur Verfügung stehende Farbpalette umfasst je nach der für sie gewählten niedrigen/hohen Intensität entweder die Farben dunkles/helles Magenta, dunkles/helles Türkis, Hellgrau/Weiß und eine frei wählbare Farbe (standardmäßig Schwarz); oder die Farben Braun/Gelb, Grün/Hellgrün, Rot/Hellrot und (standardmäßig) Schwarz. Die meisten Spiele der frühen 1980er Jahre nutzen die erst genannte Farbpalette, wodurch deren typisches Türkis-Magenta-Erscheinungsbild zustande kommt.
Die Übertragung des Bildes an einenRGBI-Monitor erfolgt über einen 9-poligenSub-D-Anschluss.[5]

| Pin | Name | Funktion |
|---|---|---|
| 1 | GND | Masse |
| 2 | GND | Masse |
| 3 | R | Rot |
| 4 | G | Grün |
| 5 | B | Blau |
| 6 | I | Intensität |
| 7 | RES | reserviert |
| 8 | HSYNC | HorizontaleSynchronisation |
| 9 | VSYNC | Vertikale Synchronisation |
Als Signalpegel werdenTTL-Pegel verwendet.
Die Signale R, G und B steuern direkt, d. h. digital, die Farben Rot, Grün und Blau an, aus denen sich die dargestellte Farbe eines Bildpunktes zusammensetzt. Bei gleichzeitiger Aktivität des I-Signals wird die Intensität dieser Farbe erhöht.[5][6]

Der 160×100-Modus ist ein Grafikmodus, der mit Hilfe eines Textmodus realisiert und nicht durch dasBIOS der CGA-Karte unterstützt wird.[7] Somit muss der bei der CGA-Karte eingesetzte Chip Motorola MC6845 direkt programmiert werden.[8] Zum Einsatz kommt bei diesem Modus eine 80 × 100-Zeichenmatrix. Da jedes Zeichen zwei Byte belegt, werden insgesamt 16000 von 16384 Bytes anGrafikspeicher verwendet.
Hierzu wird die CGA-Karte wie folgt konfiguriert, wobei der Bilddarstellung ein Raster von 640 × 200 Bildpunkten zugrunde liegt:
▌) oder alternativrechter Balken (▐). Weitere nutzbare Zeichen sindLeerzeichen,breiter Balken (█) und für Mischfarben░,▒ und▓.[8]
Diesen Grafikmodus nutzen allerdings nur sehr wenige Spiele. Ein Beispiel ist der noch 2011 erschienenePac-Man-KlonPaku Paku, dessenQuelltext frei einsehbar ist und der unter einerPublic Domain-Lizenz veröffentlicht wurde.[10] Hinzu kam, dass nur wenige Grafikkarten, z. B. die imIBM PCjr und imTandy 1000, diesen Modus neben der Original-Karte von IBM unterstützen.
Bei der CGA-Karte ist es darüber hinaus möglich, beim Erreichen bestimmter Bildzeilen, mit denen das Bild sukzessive aufgebaut wird, zwischen den einzelnen Farbpaletten umzuschalten und so unterschiedliche Farbpaletten in Teilbereichen des Bildes zu nutzen. Hierbei sollten die sichtbaren Bildzeilen, bei denen der Palettenwechsel stattfindet, farblich so gestaltet werden, dass sie keine unerwünschten Farbeffekte zeigen. Verwendet wurde dieser Modus beispielsweise vom SpielCalifornia Games, wenn es auf einem Ur-PC mit CGA-Karte und8088-Prozessor mit 4,77 MHz Taktfrequenz ausgeführt wurde. Auf Systemen mit einer anderen Taktfrequenz und CGA-Karte werden hingegen nur vier Farben bei der Bilddarstellung verwendet, da das für den Multicolor-Modus notwendige Timing bei diesem Spiel direkt von der Taktfrequenz des Prozessors abgeleitet wird.[11]
Die CGA-Karte wurde von IBM als Alternative zur gleichzeitig erschienenenMDA-Karte im Jahr 1981 mit dem ersten Ur-PC von IBM angeboten.[12] Während die MDA-Karte für den geschäftlichen Einsatz konzipiert war, war die CGA-Karte für den Heimgebrauch gedacht.[13] Sie war damals rund 1000 DM teuer, von ihrer Leistung aber für einen professionellen Computer unzureichend: die Auflösung mit 640 × 200 Bildpunkten bei zwei Farben wurde von den Konkurrenzgeräten übertroffen (VictorSirius: 800 × 400 Bildpunkte), der 320×200-Bildpunkte-Modus war mit vier Farben für Spiele nicht gut geeignet, und der 16-Farben-Modus besitzt eine selbst für Heimcomputer ungenügende Auflösung. Zugriffe auf den Bildspeicher erzeugen im 80 × 25 Textmodus Bildstörungen in Form von Schnee. Die IBM-BIOS-Routinen schalteten deswegen während des Scrollens die Bildschirmausgabe komplett ab, was wiederum heftiges Geflacker verursachte.[14] Alternativ dazu benutzte man nicht die BIOS-Routinen, und konnte so die Daten während der Austastlücken in den Bildspeicher schreiben. Weiterhin gab es am Anfang selbst von IBM keine geeigneten Monitore. Die Ausgabe auf einen Fernseher erfolgte damals üblicherweise alsComposite-Signal oder als HF-moduliertes Signal mit schlechter Bildqualität. Da außerdem aus Sicht der damaligen Computer-Puristen Farbe nichts mit Professionalität zu tun hatte (es sei denn für exotische Anwendungen wieCAD), setzte sich die ein Jahr später angebotene monochrome Hercules-KarteHGC durch, und die CGA-Karte spielte erst einmal eine Nebenrolle.
IBM-PC-Nachbauten, die sowohl leistungsfähiger als auch preiswerter als das Original waren, nutzten so gut wie immer auch Nicht-IBM-Grafikkarten (z. B. dieATI Graphics Solution). Auch waren diese Grafikkarten oftmals leistungsfähiger und preiswerter sowie flexibler bei der Ansteuerung von Monitoren als die CGA- und MDA-Karten von IBM. Ebenso waren sie kompatibler zu den originalen CGA- und MDA-Karten als die von IBM als deren Nachfolger entwickelteEGA-Karte. Sie benötigten weniger Strom und waren deutlich kleiner, weil die Nachbauten eigeneVLSI-Chips verwendeten.[15]
Compaq nutzte bei seinemPortable 386 und Portable III eine eigene, später verworfene Auflösung von 640 × 400 Bildpunkten als CGA-Weiterentwicklung.
Auf der Demo-PartyRevision 2015 wurden von der Demo8088 MPH (by Hornet + CRTC + DESiRE) durch geschickte Ansteuerung der CGA-Karte Bilder mit bis zu 1024 Farben bei einer Auflösung von 80 × 100 Pixel erzeugt.[9] Für die Ausgabe wird jedoch z. Zt. zwingend einNTSC-Monitor benötigt, da hier hardwarenah in die Generierung des Bildsignals eingegriffen und derComposite-Ausgang der CGA-Karte verwendet wird. Emulatoren können dies Stand Mai 2016 nicht widerspiegeln. Da zwei verschiedene Versionen der CGA-Karte hergestellt wurden, die sich in der Bildsignalerzeugung unterscheiden, variieren die Farben je nach der alten oder neuen Version.[16]