Außer Rand und Band mit Hyper-Screen

Stefan Hartmann Karsten Isakovic

Bis zu 800 x 500 Punkte auf einem handelsüblichen Atari ST mit Monitor und für nur 3 Mark? Dazu viele Programme lauffähig, wie Calamus oder die neuesten Versionen von 1st Word Plus und GFA-Basic ab Version 3.04, oder... Die Liste ließe sich noch lange fortsetzen. Klingt wie Zauberei meinen Sie, und wo denn der Haken wäre, fragen Sie?

Es gibt keinen Haken. Löten Sie einfach wenige Bauteile in Ihren ST und ändern Sie mit unserem kleinen Programm das TOS. Nun den kleinen Schalter umlegen und schon erhöht sich die Auflösung Ihres Atari ST um mehr als 50 Prozent in allen drei Auflösungen. Die handelsüblichen Atari-Monitore sind in der Lage, diese Auflösung darzustellen, denn sie zeigen heute nur einen verkleinerten Bildschirmausschnitt. Die höherere Auflösung nutzt nur den jetzt noch brach liegenden Bildschirmrand.

Größerer Bildschirmspeicher

Ihr Computer verfügt dann über einen 67024 Byte großen Bildschirmspeicher. Lauffähig ist diese Änderung auf allen Modellen, vom 520 ST mit 512 KByte RAM bis zum Mega ST4 mit 4 MByte.

Alles was Sie dazu brauchen, sind ein einfacher Umschalter, zwei Dioden, zwei Widerstände, ein Transistor und ein Pufferkondensator, die zusammen nicht mehr als 3 Mark kosten.

Das bedeutet: Im Low-Resolution-Mode stehen jetzt 420 x 284 Punkte bei weiterhin 16 Farben pro Punkt und im Mid-Res-Mode sogar 840 x 284 Punkte mit vier Farben pro Punkt zur Verfügung. In monochromer Darstellung 840 x 568 Punkte. Dies erweitert das Arbeitsfenster zu einem ausgefüllten Bild ohne störenden Rand auf dem Fernsehschirm oder Farbmonitor.

Dadurch eignet er sich für professionelle Einsätze im Desktop-Video-Bereich, beispielsweise zusammen mit einem Genlock-Interface. Denkbar ist etwa, am unteren Rand eines Videobildes einen Scrolltext einzublenden, der vom rechten bis zum linken Rand der Bildröhre läuft und nicht wie sonst immer nur im Bildschirmfenster des ST erscheint.

Eines Tages erhielten wir ein Spieledemo, bei dem auf dem Farbmonitor im unteren Bildschirmrand ein Scrolltext in schönster Pixelgrafik auftauchte, dort wo sonst nur die Hintergrundfarbe, das Farbpalettenregister 0, zu bewundern ist. Es traf uns wie ein Blitz.

Hatte der Vorspann-Programmierer, dieser Hacker-Typ namens Alyssa, vielleicht ein nicht dokumentiertes Hardware-Register im ST entdeckt? Hatte uns Shiraz Shivji ein Register vorenthalten, das die Anzahl der Pixel-Grafik-Zeilen auf dem Bildschirm erhöht?

Monitor ohne Trauerränder

Ein ST-Video-Bild setzt sich im 50-Hz-Modus folgendermaßen zusammen:

Es besteht aus 313 Zeilen, die 50mal in der Sekunde erscheinen. Ein Zeilensprungverfahren (Interlace: Fachbegriff aus der Fernsehtechnik für Halbbildverkämmung) findet nicht statt; zwei Halbbilder liegen also genau aufeinander. Die ersten 39 Bildzeilen stellt der ST normalerweise ohne Pixelgrafik, nur mit der Hintergrundfarbe (Farbpalette 0), dar. Dann folgen 200 Bildzeilen, bei denen jede Zeile links am Rand mit der Hintergrundfarbe beginnt, in der Mitte die Pixelgrafik (320 oder 640 Pixel, je nach Mode) darstellt, und am rechten Rand mit der Hintergrundfarbe aufhört. Die darauffolgenden 45 Zeilen, die den unteren Rand bilden, bestehen wieder nur aus der Hintergrundfarbe. So entsteht das typische grüne Desktop-Bild mit dem weißen Rahmen ohne Accessories und Desktop-Info. Weiß ist in diesem Fall die Hintergrundfarbe (Farbpalettenregister 0). Die letzten 29 der 313 Zeilen tastet das vom GLUE-Baustein erzeugte »Blank«-Signal dunkel aus. Sie stellen das vertikale Austastsignal dar (vertikale Austastlücke) und sind somit nicht auf dem Fernseher oder Monitor sichtbar.

Dieser Alyssa mußte einen Trick gefunden haben, mit dem er in die unteren 45 Zeilen, wo sonst nur die Hintergrundfarbe erscheint, Pixelgrafik zauberte. Wir setzten unseren Disassembler auf den Vorspann an: Nicht ein undokumentiertes Hardwareregister war die Lösung, sondern eine kurzzeitige 50/60 Hz-Umschaltung. Sie bringt die 199 Bildzeilen des GLUE-Chip so durcheinander, daß der ST statt 32000 jetzt 39200 Byte als Bildschirmspeicher anzeigt. (45 Zeilen à 160 Bytes ergeben 7200 Byte mehr).

So etwas herauszufinden, ohne den internen Hardware-Aufbaus der MMU, des Shifters und des GLUEs zu kennen, ist wirklich eine Meisterleistung. Atari veröffentlicht leider keine Hardwarebeschreibung zu diesen Chips.

So richtig hopsten uns die Brillen von der Nase, als wir das Amiga-Demo der TEX-Programmierer und schließlich das LT-PRG (The death of the left border) der TNT-Crew zu Gesicht bekamen. The Exceptions (TEX) und die TNT-Crew waren übrigens in den Ausgaben 7/88 bis 12/88 mit tollen Beiträgen zur Grafik-Programmierung vertreten. Hatten die TEX-Leute es geschafft, den rechten Rand abzuschalten und dort Pixelgrafik darzustellen, so trieb es die TNT-Crew noch weiter und präsentierte auch den linken Rand mit Pixelgrafik. »Wow«, dachten wir, wenn die Jungs es schaffen, den Atari per Software so zu überlisten, dann muß das doch auch mit einem kleinen Hardwareumbau gelingen, — ohne daß dafür komplizierte und zeitraubende Interrupt- und Videoadreßzähler-Synchronisierung wie bei der Softwareversion notwendig ist.

So sieht der fertige Hyperscreen-Umbau bei einem Atari 520 STM aus.
Der Beispielaufbau der Comp-Sync-Schaltung bei einem Atari 1040 ST

Außerdem wollten wir wissen, welche internen Signale durch diese neuen Demoprogramme verändert werden, wie also die Software die Hardware austrickst.

Nur mit einem Schaltplan des ST und einem Oszilloskop bewaffnet und mit den neuen Demos im Kopf durchforsteten wir mit dem Tastkopf erst einmal die Shifter-Gegend. Hier stellten wir fest, daß sich beispielsweise beim Hin- und Herschalten des Amiga-Demos zwischen dem »Overscan-Mode« und dem »Normal-Mode« das DE-(Display-Enable-) Signal ändert. Das mußte es sein!

Demnach ist das Display-Enable-Signal im Farbmodus zuständig für das Darstellen von Pixelgrafik in einer Videozeile. Immer wenn es auf »High« steht, gibt der Shifter Pixelgrafik aus, geht es auf »Low«, stellt er nur noch die Hintergrundfarbe dar.

Die TEX- und TNT-Programmierer hatten es also geschafft, das High-Low-(Puls-Pausen-)Verhältnis dieses Signals zu ändern, so daß in jeder Videozeile das DE-Signal länger und eher auf High steht. Dadurch gibt jede Zeile mehr Pixelgrafik aus als die üblichen 320 beziehungsweise 640 Pixel. Das Display-Enable-Signal wird vom GLUE erzeugt, wie auch die anderen zum Fernsehbildaufbau benötigten Signale, Blank, HSync, VSync. Es geht vom GLUE aus zur MMU, zum Shifter und zum Timer-B-Eingang des MFP-Bausteins, zum Zählen der Zeilen durch Interrupt.

Der Bildaufbau im Farbmodus bei 50 Hz spielt sich folgendermaßen ab:

Das vertikale Synchron-Signal geht vom GLUE nicht nur an die Monitorbuchse, sondern auch an die MMU Gleichzeitig gelangt die Anfangsadresse des Bildschirmspeichers im RAM fürs nächste Halbbild (313 Zeilen) an die interne Zählerkette in der MMU. Sie stammt aus den Adressen FF8201 und FF8203. Liegt das Display-Enable-Signal jetzt auf High, so erzeugt es in der MMU das Display-Cycle-Clock-Signal. Dieses überträgt aus dem RAM die Videodisplay-Informationen, also die Pixelgrafik immer 16-Bit-weise in den Shifter und benutzt dabei den Load-Eingang dieses Chips. Dabei zählt es die Zählerkette in der MMU immer hinauf — die aktuelle Zahl steht im Video-Adreß-Zähler FF8205/07/09. Bleibt das Display-Enable-Signal jetzt länger High, dann adressiert die MMU insgesamt mehr Speicher als Bildschirmspeicher und übergibt sie an den Shifter als Pixelgrafik-Display. Das CMPCS-Signal (Color map chip select), das durch die MMU entsteht und zum Shifter an den CS-(Chip Select-)Eingang gelangt, ändert sich nur, wenn in den Farbpalettenregister des Shifters neue Werte stehen sollen. Schließlich tastet das vom GLUE generierte Blank-Signal das vom RGB-Widerstands-D/A-Netzwerk kommende Farbsignal in den horizontalen Rückläufen jeder Zeile und in den ganzen 29 Zeilen des vertikalen Bildsynchronimpulses aus.

Der Anschluß des Kabels Nr. 3 und unsere Comp-Sync-Schaltung beim Atari 520 STM
Hier sehen Sie die Leiterbahnunterbrechung in der Nähe des GLUE beim 1040 ST

Die softwaremäßigen Tricks arbeiten nun so, daß durch interruptgesteuerte Umschaltung der Bildfrequenz in bestimmten Fernsehzeilen das vom GLUE erzeugte DE-Signal länger in einer Zeile auf High steht. Dieses Ergebnis ist auch erreichbar, indem man statt des DE-Signals ein anderes Signal zur MMU und zum Shifter führt und zwar ein Signal, das bereits das geeignete Puls-Pausen-Verhältnis besitzt. Dann sind die rechenzeitintensiven Synchronisationstricks per Software überflüssig und ein angepaßtes TOS oder Bigscreen (ST-Magazin Ausgabe 11/88) laufen mit der neuen Hyper-Screen-Auflösung unter GEM.

Signalsuche im Computer

Nun fehlte uns nur noch ein entsprechendes Signal im Computer, das ein geeignetes Puls-Pausen-Verhältnis aufweist, um es als neues DE-Signal verwenden zu können.

Wir durchtrennten auf der Computerplatine die Verbindung, die die MMU und den Shifter mit dem normalen DE-Signal versorgt und legten an diese alten DE-Eingänge (Pin 52 der MMU und Pin 37 des Shifters) erst einmal nur »high«-Pegel (+5 Volt). Es klappte tatsächlich.

Nach dem Einschalten des Computers erschienen in der oberen Hälfte des Bildschirms wild verteilte bunte Pixels ohne störenden Rand.

Im unteren Bereich aber erschienen merkwürdige 16er-Pixelgruppen, die dauernd ihre Farben wechselten. Wir dachten zuerst, dieser untere Bereich würde fehlerhaft dargestellt, bis wir auf die Idee kamen, es könnten Datenbussignale sein. Ein ST mit 1 MByte RAM plaziert beim Einschalten seinen Bildschirmspeicher am oberen Ende des Speichers. Mit dem Umbau braucht er mehr Bildschirmspeicher zum Auslesen. Da am oberen Ende nur 32 KByte vorhanden sind, gelangen nach diesen 32 KByte nur noch Undefinierte Datenbussignale auf den Monitor. Richtig: Nach Herunterlegen der Bildschirmspeicher-Anfangs-Adresse in den Speicherzellen FF8201 und FF8203 ist von diesen wild umhertanzenden Datenbussignalen nichts mehr zu sehen, und Pixelgrafik füllt den ganzen Bildschirm.

Der Desktop war allerdings auch verschwunden. Wegen der neuen Anordnung des Bildschirmspeichers und der anderen Aufteilung der Bitplanes liegen nicht mehr die gleichen Pixel wie vorher übereinander. Deshalb zeigte der Bildschirm nur Undefinierte bunte Pixel.

Bei Anpassung des GEM auf der alten RAM-TOS-Diskette stießen wir auf ein Problem: Die einzelnen Fernsehzeilen dürfen nur maximal 255 Byte Bildschirmspeicher besitzen, und die Anzahl der Bytes muß durch 4 teilbar sein, damit wir das veränderte GEM in den beiden Auflösungen der Farbmodi installieren können. Beim neuen Beta-TOS gilt die Beschränkung auf 255 Byte pro Zeile übrigens nicht mehr.

Es reicht nicht aus, einfach beide Eingänge auf High zu legen, weil der Shifter dann auch im horizontalen Zeilenrücklauf zuviele Pixels ausgibt. Durch das Austasten des Blank-Signals erscheinen diese nicht auf dem Bildschirm, aber sie verbrauchen Speicherplatz. Wir suchten nach einem besser geeigneten Signal.

Nach Experimentieren mit dem HSync-Signal — es erlaubt keinen einwandfreien 60-Hz-Betrieb —, dem Blank-Signal — es bleibt noch ein kleiner linker Rand sichtbar, 60 Hz mit »zerfranstem« linken Rand — und dem VSync-Signal — zuviel Byte im Zeilenrücklauf verschwenden Speicherplatz —, entschieden wir uns für das gemischte Synchronsignal — Composite Sync aus einer UND-Verknüpfung von HSync und VSync.

Der Umbau im Detail

Dieses Signal erfüllt die Anforderungen. Leider kann es nur auf den beiden oben besprochenen Eingängen liegen, den alten DE-Eingängen von Shifter und MMU. Liegt das Synchronsignal auf dem Timer-B-Eingang des MFP 68901 (Pin 20), wo auch das normale DE-Signal anlicgt, dann bootet der ST nach einem Reset oder nach dem Einschalten nicht mehr. Ursache sind wahrscheinlich die Initialisierungsroutinen im ROMTOS, da der ST beim Starten auf 60 Hz anfängt und dann vielleicht zuviele Interrupts über den Timer B bekommt. Diese Störung beseitigt man, indem der HBL-Interrupt die Zeilen zählt, um bespielsweise nach jeder Zeile die Farbpaletten umzuladen und damit in jeder Zeile 16 neue Farben anzuzeigen.

Wir bauten einen 520 STM mit einem Platinenboard laut Version F um. Bei den Modellen 520, 520+ und 260 ist die Leiterbahn, die gleichzeitig den Shifter und die MMU mit dem alten DE-Signal versorgt, an der gleichen Stelle zu finden. Diese Bahn müssen Sie durchtrennen. Falls Sie eine andere Reversion als F besitzen, prüfen Sie vor dem Durchtrennen der Leiterbahn noch einmal, ob das Oszillsokop an dieser Stelle vor dem Umbau das gleiche Signal anzeigt, wie an Pin 37 des Shifters. Dort liegt das alte Display-Enable Signal an.

Der 1040 ST und der Mega ST besitzen eine vollkommen andere Platine. Bei diesen müssen Sie die zu unterbrechende Leiterbahn selbst finden. Beim 1040 Version D gibt es übrigens eine Stelle auf der Lötseite der Platine genau unter dem GLUE, wo sich die Leiterbahn des alten DE-Signals befindet. Durchtrennen Sie die Leiterbahn an dieser Stelle, so erfolgt der Umbau genauso wie beim 520 STM.

Der schon vorhandene Composite Sync-Ausgang für die Monitorbuchse ist leider nicht geeignet, da der Anschluß eines Farbmonitors das Signal zu sehr schwächt und dieses zur zusätzlichen Ansteuerung des Shifters und der MMU nicht mehr ausreicht — wenn Sie an Pegel und Schaltflanken denken.

Deshalb ist ein neues Composite-Sync-Signal notwendig. Dies entsteht durch Verschalten von zwei Dioden, zwei Widerständen, einem NPN-Transistor und einem Pufferkondensator.

Die Schaltung wird im »fliegenden Aufbau« an den HF-Modulator-Eingängen aufgebaut, da hier alle erforderlichen Signale (HSync, VSync, + 5 Volt) zur Verfügung stehen.

Nach Fertigstellung überkleben Sie es mit Isolierband, damit keine Kurzschlüsse mit dem darüberliegenden Abschirmblech entstehen.

Da ein Masseanschluß an den zehn Modulator-Eingangspins fehlt, wird der Emitterwiderstand mit seinem Masseanschluß direkt auf einen Masse-Lötpunkt links neben dem Modulator auf der Grundplatine gelötet.

Der komplette Schaltplan unseres Hyperscreen-Umbaus

Es sollten unbedingt die H- und VSync-Signale an den HF-Modulatoranschlußpins für den Sync-Ver-UNDer benutzt werden, da sie dort die richtigen Amplitudenwerte besitzen — auch wenn der Modulator wie beim 520+, 260er und 1040er dort fehlt. Baut man beispielsweise bei der Version D des 1040 ST die Composite-Sync-Schaltung an der gleichen Stelle auf, wo schon die eingebaute Monitor-Composite-Sync-Schaltung sitzt, dann ist dort der Amplitudenpegel teilweise zu schwach, so daß das neue Composite Sync-Signal nicht mehr TTL-kompatibel und damit zur Ansteuerung des Hyper-Screen-Modes ungeeignet ist. Bei der Version D des 1040 ST wird das HSync-Signal erst über zwei Inverter im 7404 gepuffert und dann erst zur Monitorbuchse geführt. Das hat den Nachteil, daß von außen über die Monitorbuchse kein externes HSync-Signal mehr auf den GLUE gelangt, was bedeutet, daß diese 1040er-Reversion nicht von außen genlockfähig, also nicht mehr extern synchronisierbar ist.

Der Betrieb

Auch sollten Sie eventuell den Kondensator C 114 beim 1040 Version D herauslöten — links oberhalb des Shifter-Abschirmgehäuses —, da dieser die Flankensteilheit des HSync-Signals negativ beeinflussen kann.

Aufpassen müssen Sie auch beim ganz alten 520. Bei ihm sind die zehn Modular-Eingangs-Lötaugen anders belegt als beim 520 STM, deshalb sollten Sie sich vorher die zu verschaltenden Signale (HSync, VSync und + 5 Volt) mit einem Oszilloskop anschauen.

Die Verschaltung von Kabel 1 und 2 ist aus dem Schaltplan zu erkennen. Kabel 3 wird mit dem einen Ende an den rechten Anschluß des Schalters angelötet und mit dem anderen Anschluß an den Verbindungspunkt von dem 240 Ohm Emitterwiderstand und dem Emitter des Treibertransistors (BC 555 oder BC 237). Der Umschalter legt das normale Display-Enable-Signal (Normalbetrieb) oder das gemischte Synchronsignal (Hyper-Screen-Betrieb) auf die DE-Eingänge des Shifters und der MMU.

Man kann problemlos während des Betriebs des ST zwischen den Modi umschalten, ohne daß der Computer abstürzt. Es kommt lediglich ab und zu vor, daß beim Umschalten, bedingt durch Prellen des Schalters, die Farbpaletten verschoben sind. Das läßt sich aber durch nochmaliges Hin- und Herschalten wieder beheben. Natürlich ist nach dem Umschalten von Normal-Mode auf Hyper-Screen eine entsprechende Software notwendig, damit nicht nur wirre Pixelhäufungen auf dem Bildschirm stehen. Damit sich jeder selbst sein Disketten-BETA-TOS patchen kann, schreiben wir ein kurzes GFA-Basic-Programm.

Starten Sie GFA-Basic, laden Sie das Programm, legen Sie Ihre Original-Beta-TOS-Diskette ins Laufwerk A und starten Sie das Programm dann mit RUN. Dadurch werden einige Screen-Parameter im Beta-TOS für den Hyper-Screen-Mode angepaßt. Sie können dann sogleich im neuen Overscan-Mode das angepaßte Beta-TOS booten.

Dabei kommt es manchmal zu Farbpalettenverschiebungen. Das tritt aber nur sehr selten auf und auch nur beim Einschalten des Computers, so daß Sie durch nochmaliges Hin- und Herschalten wieder die richtige Farbpalette einstellen können. (uw)

# Hyperscreen: Teil 2

In der nächsten Ausgabe erfahren Sie genauere Details über den Bildschirmaufbau unter Hyperscreen. Außerdem finden Sie eine Liste der Programme, die ohne Schwierigkeiten mit größeren Bildschirmauflösungen arbeiten. Diesem Aspekt kommt nicht nur durch Hyperscreen besondere Bedeutung zu. Da Atari auf der CeBIT einen eigenen Großbildschirm vorgestellt hat, tragen immer mehr Softwarehersteller diesem Umstand Rechnung und passen ihre Programme gemäß den GEM-Konventionen an.

# Die Software zum Hyperscreen

Ursprünglich mußten wir zu einem gepatchten RAM-TOS greifen, um dem GEM unseren Hyperscreen-Modus mitzuteilen. Auf unserer Leserservice-Diskette finden Sie auch weiterhin ein GFA-Basic-Programm, mit dem Sie Ihr Disketten-TOS verändern können. Weitere Forschungen ergaben jedoch auch einen weiteren gangbaren Weg, um den Atari ST hyperscreen-fähig zu machen. Ein einfaches Programm, das im Auto-Ordner steht, manipuliert das ROM-TOS, um dem GEM den vergrößerten Bildschirmspeicher mitzuteilen. Auch diese Lösung läuft in allen Auflösungsstufen des ST. Da der Quelltext dieses Programms leider für einen Abdruck zu lang ist, drucken wir hier nur ein MCI-Listing ab. Dieses Listing geben Sie mit unserer »MCI-Eingabehilfe« ein und stellen es in den Auto-Ordner. Der Computer startet es dann beim Booten und stellt sich automatisch auf den Hyperscreen-Modus ein. Den kompletten Quellcode dieses Programms finden Sic natürlich ebenso wie das lauffähige Programm auf unserer Leserservice-Diskette.

Unsere Eingabehilfe »MCI« erhalten Sie, wenn Sie uns eine formatierte Diskette mit einem frankierten Briefumschlag einsenden. (uw)



Aus: ST-Magazin 05 / 1989, Seite 16

Links

Copyright-Bestimmungen: siehe Über diese Seite