VGA-Bildschirmkarte STGA: Fremdgänger (Teil 1)

Eine Super-VGA-Karte für den ST wäre eine feine Sache. Wenn sie auch noch unter 300 Mark kostet erst recht. Voilá: Unsere STGA kostet im Selbstbau mit VGA-Karte etwa 250 Mark.

Der Prototyp unseres Adapters für den Mega ST

Unsere »STGA« (ST-Graphics Adapter) macht dem ST die preiswerten Super-VGA-Karten aus der IBM-Welt zugänglich. Sie unterstützt sowohl den Dualmonitorbetrieb, bei dem z. B. GEM-Ausgaben auf dem »SM 124« und Farbausgaben auf einem zweiten Monitor erscheinen, als auch den Einsatz von GEM direkt auf der VGA-Karte. Der Adapter kostet etwa 100 Mark, für eine geeignete VGA-Karte müssen Sie mit etwa 150 Mark rechnen.

Für alle, die sich mit IBM-PCs nicht so recht auskennen, ein kurze Erklärung: Für den IBM-PC, der Ende 1981 erschien, war zunächst gar keine Grafikausgabe vorgesehen. Als »professioneller« Computer war er für »ernsthaftes« Arbeiten gedacht; Komfort also möglichst wie auf einem Großrechner. Der Computer kannte daher nur Textausgabe. Jeweils zwei aufeinander folgende Bytes im Bildspeicher kodieren ein ASCII-Zeichen mit Attributen für die Vorder- und Hintergrundfarbe inkl. den Eigenschaften »blinkend«, »intensiv« und »unterstrichen«. Der Textbildschirmspeicher liegt bei IBM-PCs übrigens an einer festen Adresse (BOOOOh) und läßt sich nicht verschieben.

Kurze Zeit später brachte IBM die erste Grafikerweiterungskarte auf den Markt: den »Color Graphics Adapter« (CGA). Mit 320 * 200 Bildpunkten in 4 Farben zum damaligen Zeitpunkt nicht einmal Homecomputer-Niveau. Die nächste Weiterentwicklung kam mit der Herkules Graphic Card von einem Fremdanbieter. Im Textmodus erlaubt die Karte 80 * 24 und 40 * 24 Zeichen sowie monochrome 720 * 350 Pixel in der Grafikauflösung.

1985 folgte dem PC der IBM AT (Advanced Technologie, denn hier arbeitete ein Intel 80286 Prozessor). IBM bot hierfür eine neue Farbgrafikkarte an, den »Enhanced-Graphics Adap-ter«(EGA). Die EGA erzeugt 640 * 350 Pixel in 16 Farben. Viele PC-Spiele brauchen mindestens diese Farb-fahigkeiten. 1987 folgte der nächste Generationswechsel bei IBM mit dem PS/2 inklusive Mikrokanal und 32-Zoll-Diskettenlaufwerken. Direkt auf dem Motherboard integriert wurde der neue IBM-Grafikstandard: das »Video Graphics Array« (VGA). Die PS/2-Geräte mit Mikrokanal sollten auch die Nachbauflut eindämmen. Im Ergebnis werden aber weiterhin unzählige PC-Clones mit 80386 und 80486-Prozessor angeboten, für die zum VGA-Standard kompatible Grafikkarten gebraucht werden. Von denen können Atari-Anwender nun ebenfalls profitieren. VGA-Karten können auch die CGA, MCGA und EGA-Modi darstellen, so daß praktisch alle PC-Programme mit einer VGA-Karte zurechtkommen.

Über den IBM-VGA-Standard hinaus vergrößerten viele Grafikkartenhersteller die Auflösung und die Farbinformation pro Bildpunkt. Allerdings ist die Programmierung der Super-VGA-Modi von Karte zu Karte unterschiedlich. So benötigt man für Anwendungsprogramme spezielle Treiberprogramme, die auf die jeweilige Karte abgestimmt sind. Mit den Grafikerweiterungen steckte IBM in einem selbstverschuldeten Dilemma: Der PC hatte seinerzeit mit dem Intel 8086 einen Prozessor bekommen, der nur maximal 1 MByte Speicher adressieren kann. Wie sollte man da Grafikkarten anschließen, die bei entsprechender Auflösung selbst ein halbes MByte und mehr benötigen? IBM löste das Problem, indem die Grafikkarte nur mit einem maximal 128 Kilobyte großen Speicherfenster oberhalb der Adresse AOOOOh für den Prozessor auskommt und dem PC nicht zu viel vom engen Adreßraum wegnimmt. Da der Prozessor für das Beschreiben des Bildschirmspeichers zuständig ist, muß bei höheren Auflösungen zwischen verschiedenen Planes (Farbebenen) oder Speicherbereichen mittels Banking umgeschaltet werden. So existieren eine Vielzahl von Registern auf einer VGA-Karte, mit deren Hilfe nicht nur die Auflösung und die Speicherorganisation eingestellt oder der Farb-palettenbaustein programmiert wird, sondern auch ein meist 64KByte großer Speicherbereich auf dem Videospeicher der Karte verschoben wird.

Für IBM-PCs gibt es folgende Grafikkartenstandards:

Uns interessieren hier nur die vergleichsweise billigen SuperVGA-Karten, die Auflösungen von mindestens 800 * 600 Pixeln mit 256 Farben, aber auch 640 * 480 und 1024 * 768 mit 16 oder 265 Farben darstellen können. Für einige Anwendungen sind aber auch 1280 * 1024 Pixel interessant.

Prinzipiell erlaubt die STGA auch die Nutzung des 15-bit-TrueColor-Modus mit 32768 Farben bei einer Auflösung von 800 * 600 Pixeln Als Bildschirm eignen sich alle VGA-Festfre-quenz-, Mehrfrequenz oder Multisync-Monitore. Standard VGA-Monitore verfügen über nur eine feste Ablenkfrequenz. Mehr als 640 * 480 Pixel lassen sich stabil kaum darstellen. Mehrfrequenzmonitore können auf mehrere fest eingestellte Ablenkfrequenzen synchronisieren. 800 * 600 und 1024 * 768 sind damit kein Problem; Zwischenwerte, besonders hohe oder besonders niedrige Frequenzen lassen sich aber nicht benutzen. Die maximale mit der Super-VGA erreichbare Auflösung bei hoher Bild-wiederholrate erfordert schon einen relativ teuren Monitor.

Standard-VGA-Monitore arbeiten bei 800 * 600 häufig nur mit 60 Hz, höhere Auflösungen sind ggf. gar nicht möglich. Für unsere STGA haben wir folgende Monitore erfolgreich getestet:

Es sei an dieser Stelle darauf hingewiesen, daß die Werbeaussagen der Monitorhersteller mit kritischer Vorsicht zu verstehen sind. Da ist zum einen die Bildwiederholfrequenz. Bei einem 14-Zoll-Monitor und mittelkurzer Nachleuchtdauer des Phosphors empfinden die meisten Menschen erst ab 70 Hz praktisch kein Bildschirmflimmern mehr.

VGA-Festfrequenzmonitore schaffen lediglich in den Textauflösungen, also unterhalb von 640 * 480 Pixeln Auflösung die geforderten 70Hz. Bei der Standard-VGA-Auflösung von 640 * 480 sind es nur noch 60 Hz. VGA-Monitore haben eine maximale Ablenkfrequenz von 31,5 kHz. Für die gerade bei 14-Zoll-Monitoren gerne genutzen 800 * 600 Pixel bei 60 Hz muß der Monitor aber fast 38 kHz schaffen, für 70Hz sind schon 48kHz erforderlich.

Aber nicht nur die Ablenkfrequenzen spielen beim Monitorkauf eine entscheidende Rolle. Für die gewünschte Auflösung ist auch jeweils mindestens eine entsprechende Bildschirmdiagonale nötig. Die meisten Farbmonitore haben einen Pixelabstand von 0,28mm dot-pitch. Für 800 horizontale Bildschirmpunkte benötigt der Monitor dann mindestens:

dot-pitch * Pixel = Breite
0.31 mm * 800 = 24,8 cm
0.28 mm * 800 = 22,4 cm
0.28 mm * 1024 = 28,7 cm
0.2 8mm * 1280 = 35,8 cm
0.26 mm * 800 = 20,8 cm

Messen Sie das einfach nach. Ein 14-Zoll-Monitor hat gar nicht die nötige Bildfläche, um 1024 Bildpunkte horizontal anzusteuern. Hierfür ist dann mindestens ein 15-Zoll-Farbmonitor nötig, sonst gehen zu viele Pixel schlichtweg verloren. Trotzdem stellen viele 14-Zoll-Monitore ein Videobild auch mit 1024 * 768 Pixel dar. Feine Details können nicht abgebildet werden.

Die Bildschirmdiagonale betragen also bei

12 Zoll = 30,48 cm
14 Zoll = 35,56 cm
17 Zoll = 43,18 cm

Wenn Sie wissen, daß Ihr Monitor z.B. 15-Zoll groß ist (das ist die diagonale Größenangabe), dann beträgt die Breite 17 * 4 / 5 = 13,5 Zoll bzw. 343 mm. Maximal sichtbar ist aber meist ein deutlich geringerer Bereich, ca. 300mm.

Graustufenmonitore haben eine durchgehende Phosphorbeschichtung und können daher höhere Auflösungen wiedergeben als gleichgroße Farbmonitore. Wer also die STGA für DTP oder ähnliche Anforderungen benutzen will, ist mit einem großen SW-Graustufen-Monitor evtl, besser bedient.

Unser STGA-Adapter muß zwei Dinge erledigen: Die Register und den Speicher der Grafikkarte in den Adreßraum des STs bringen und der Grafikkarte die gleichen Signale und Versorgungsspannungen wie im PC-Slot bereitstellen. Aus dem Atari Profibuch [1] erfahrt man, wie sich Atari eine solche Erweiterung legal gedacht hat. Der Speicherbereich von $C0 0000 ... $CF FFFF, $FF 0000 ... $FF 7FFF und $FF FE00 ... $FFFFFD steht hierfür zur Verfügung. Bei Speicherzugriffen außerhalb dieses Bereiches wird von der GLUE keine Bestätigung erzeugt, somit meldet die Busüberwachung einen BUS-Error und es hagelt Bomben.

Der Bildspeicher der Grafikkarte muß in den hierfür reservierten Adreßraum des Atari gelegt werden. Der Adapter ist also im wesentlichen ein Adressdecoder. Aus den Adressleitungen A16-A23, den beiden Datastrobes UDS, LDS, dem Adreß-Stro-be AS sowie der Read/Write-Leitung erkennt der Adapter, ob auf die VGA zugegriffen wird. Der Adreßbereich von $C00000-$CEFFFF ist für den Bildspeicher, $CF0000-$CFFFFF für PO-Zugrifife reserviert. Demnach beträgt der linear vom ST adressierbare Speicher auf der VGA 960 KByte. Ausreichend für 1024 * 768 in 256 Farben oder 800 * 600 bei 16 Bit Farbtiefe (800 * 600 * 2 Byte = 960000 Byte). Dieser »HiColor«-Modus nutzt je 5 Bit für den Rot-, Grün- und Blauanteil des Bildes. Das ist zwar noch 3 Bit von Truecolor (24 Bit, je 8 pro Grundfarbe) entfernt, erlaubt aber immerhin 32768 Farben gleichzeitig.

# Die maximalen Auflösungen der Karten
Standard maximale Auflösung Farben
Herkules 720 * 348 monochrom
CGA 320 * 200 4 aus 8
CGA 640 * 200 2 aus 16
MCGA 640 * 480 256 von 262144
EGA 640 * 350 16 aus 64
VGA 640 * 480 256 aus 262144
8514/A 1024 * 768 interl. 256 aus 262144
SuperVGA 1280 * 1024 256 aus 262144

Die zum vollen Megabyte Adreßraum noch verbleibenden 64 KByte dienen den I/O-Zugriffen auf die Register der VGA-Karte.

Die notwendige Logik baut man heutzutage praktischerweise mit einem GAL auf. Der Adapter ist prinzipiell für den Mega ST gedacht, weil so genug Platz für den liegenden Einbau einer VGA-Karte bleibt und das Netzteil meist ausreichende Reserven bietet. Nur im »Mega ST 1« kann es knapp werden. In diesem Fall sollten Sie einen Lüfter einbauen und die Leistungsfähigkeit des Netzteiles prüfen.

Wer die STGA an einem »520er« oder »1040er« betreiben will, kommt um ein externes Gehäuse und evtl, ein zusätzliches Netzteil nicht herum. Die STGA gibt es in zwei Versionen: Eine für den Mega-Bus und eine zum Aufsetzen auf den 68000-Prozessor.

Die Adapterplatine für den Megabus erlaubt den Betrieb einer Prozessorauf-steckkarte. Mehrstöckige »Türme« auf der CPU sind aber nicht möglich. Prozessorbeschleunigerkarte oder TOS 2.06 oder PC-Emulator vertragen sich vom Platzbedarf her mit der Mega-Version der STGA.

Der Adapter für die 68000-CPU kann direkt auf eine 64polige CPU gelötet oder in eine CPU-Fassung gesteckt werden. So paßt der Adapter auf alle 260, 520 und 1040ST-Motherboards, die in einem großen Gehäuse stecken. Bei beengten Verhältnissen können Sie aber auch ein Flachbandkabel mit Quetsch-Stecker in Schneid-Klemmtechnik verwenden. Die Bestückung mit CPU-Fassung erlaubt den Einbau auch bei MegaSTs mit Netzwerkkarte.

Huckepacklösungen mit FPU und Beschleunigerkarte funktionieren an den von uns getesteten Exemplaren.

Getestet wurde die Funktion zusammen mit einem AT-Speed und einer 16MHz-Beschleunigerkarte (»Hyper-cache+«) in einem 1040ST mit 4 MByte RAM in einem externen Gehäuse. Außerdem in einem Mega ST4 mit der TOS 2.06-CPU-Karte von »Hard&Soft« und in STs mit Coprozessoren und einer »HBS240«-Beschleunigerkarte.

Das GAL-Listing, die Treiber-, Utilitiy- und Demosoftware, erhalten Sie bei Abschluß unseres Projekts auf Diskette. Den Schaltplan und das Platinenlayout werden wir in der nächsten Ausgabe ab-drucken; ebenso die Bezugs-Modalitäten. Damit Sie dann aber richtig loslegen können, drucken wir vorab die komplette Sück-liste ab. (uw)

Literatur:

[1] Jankowski, Reschke, Rabich: »ATARI ST Profibuch< Sybex, ca. 1000 Seiten
[2] »Schöne bunte Welt: Hardwarenahe Pro grammierung von VGA-Karten«, Teil 1: c’t 4/91 S. 296, Teil 2: c’t 5/91 S. 292
[3] Heribert Cebulla: »So funktioniert die VGA«, Teil 1 - Teil 5 mc Okt. 88 - Feb. 89
[4] »Schönheitsfehler: Fallen im VDI des Atari ST«, c’t 3/91 S. 242
[5] ET4000 Graphics-Controller-Data-Book der Tseng Laboratories, High Performance Video Technology
[6] Mega ST Series - Internal Expansion Bus Documentation

Stückliste

1 STGA-Platine Megabus oder 68000 CP
1 GAL 20V8
1 Transistor BC 547(B)
2 Dioden 1N4148 1 Elko 4u7
1 Blockkondensator 100 nF
1 Kondensator 100 pF
1 Widerstand 10 kOhm
2 Widerstände 4,7 kOhm
1 PC-Slot (62- und 36-polig, Platinenstecker je einmal 231-polig und einmal 218-polig.)
1 VG-Leiste Bauform AB-Wirewrap 64-polig - für den Megabus oder
1 64-poliger Präzisionssockel und
2 32-polige, einreihige Pfostenleisten, die in den Präzisionssockel passen - für die CPU-Version.

Benötigtes Werkzeug:

Kleiner Lötkolben oder besser: Lötstation
Durchgangsprüfer, Voltmeter, Schraubendreher, Flachzange

Geeignete Grafikkarten:

Der STGA-Adapter ist auf den Einbau einer 16-Bit-Super-VGA-Grafikkarte mit »ET4000«-Chip und einem Megabyte Speicher abgestimmt. Diese VGA-Grafikkarten werden zur Zeit sehr häufig verwandt und sind daher auch leicht zu erhalten. Eine HiColor-VGA ist auch geeignet, denn die Software zum Initialisieren der Karte kann diesen Videomodus (32767 Farben, 15Bit pro Farbe) nutzbar machen - allerdings nur zum Betrachten von Bildern und zur Nutzung mit eigenen Programmen. Ein 32K- Farben-VDI ist nicht geplant (liegt vor allem an den unterschiedlichen Ansteuerungen).

Wir konnten bisher nur eine begrenzte Anzahl SuperVGA-Karten testen und unsere Software darauf abstimmen.

Das Menü enthält eine Liste verschiedener Auflösungen und Frequenzen. Es sollten immer zuerst niedrige Frequenzen ausprobiert werden. Wenn alles funktioniert, kann die nächsthöhere Frequenz getestet werden. Sobald der Monitor ein Bild nicht ohne Zittern oder durchlaufende Bilder darstellen kann, den Monitor ausschalten und später nur noch die letzte noch stabile Frequenz benutzen.

Liste bereits getesteter VGA-Karten:


Udo Jendrysiak Bodo Wenzel Till Harbaum
Aus: ST-Magazin 05 / 1993, Seite 28

Links

Copyright-Bestimmungen: siehe Über diese Seite