Startseite X68000

Ein Beispiel für fortgeschrittene Graphik-Programmierung auf dem X68000

Einmal wollte ich auf dem X68000 einen Editor für Digitalfotos programmieren, unter Verwendung des Modus mit den 65536 Farben gleichzeitig, aber in diesem Modus verwendet der X68000 die Bildschirmauflösung von 512x512 Pixel: die Pixel sind dann nicht quadratisch, sondern wegen des 4:3-Bildschirmformats 33% breiter als hoch. Digitalkameras verwenden aber quadratische Pixel, eine interpolierende Umrechnung würde das Bild beschädigen. Wenn man jedoch nicht umrechnet, erscheint das Bild auf dem X68000-Bildschirm stark in die Breite verzerrt. Also was tun?

Der X68000 besitzt auch einen bitmapped "Text-Modus" mit der Bildschirmauflösung von 768x512 Pixeln, allerdings sind im Text-VRAM nur 16 Farben gleichzeitig möglich, die man aus einer 65536-Farben-Palette frei wählen kann. In diesem Modus sind die Pixel bereits annähernd quadratisch - wenn man am Röhrenbildschirm des X68000 die vertikale Bildhöheneinstellung ein wenig (um ca. 11%) herunterdreht, hat das Bild ein 3:2-Format und die Pixel sind dann quadratisch.

Eine andere Möglichkeit der Herstellung quadratischer Pixel ist, die horizontal angezeigte Pixelzahl durch Änderung der Werte in den CRTC-Registern von 768 auf 683 zu reduzieren, dann bleibt das Bildformat 4:3, die Pixel sind quadratisch, aber in meinem Bild-Editor (siehe Bild ganz unten) stünde dann für die seitlichen "Bedienbereiche" statt 256 nur noch 171 Pixel Breite zur Verfügung.

Meine Problemlösung:
  1. Zunächst habe ich direkt am Monitor durch Drehen am Vertikal-Einstell-Regler das angezeigte Bild niedriger gemacht, so dass es im Format 3:2 mit quadratischen Pixeln und der Standardauflösung 768x512 Pixel dargestellt wurde (Damals erschien mir diese Methode einfacher als die oben erwähnte zweite Alternative):

  2. Dann habe ich meinen Bild-Editor so programmiert, dass er ein 512x512-Pixel-Foto in das Graphik-VRAM lädt, dann den Display-Controller auf 768x512-Pixel-Auflösung schaltet und trotzdem den 65536-Farben-Modus aktiviert - da das Graphik-VRAM aber nur 512x512 Pixel (zu je 16 bit) enthält, erscheint dann neben dem quadratischen Bild ein Teil des VRAM-Inhalts noch einmal, denn die Adressierung in den VRAMs des X68000 arbeitet zeilenweise zyklisch:

  3. Durch Verändern des Wertes im Anfangsadressenregister des Graphik-VRAM kann man die quadratische 512x512 Pixel-Graphik nach Belieben waagerecht verrutschen, z.B. 128 Pixel nach rechts in die Mitte des Bildschirms, so dass die unerwünschten Bildschirminhalte nicht alle rechts, sondern z.B. links und rechts von diesem Quadrat erscheinen:

  4. In das ebenfalls graphikfähige, aber nur 16 verschiedene Farben gleichzeitig unterstützende Text-VRAM habe ich die Bedienelemente für den Bild-Editor programmiert. Die schwarze Farbe des Quadrats in der Mitte wurde von mir auf "transparent" eingestellt, für die schwarze Farbe links und rechts des Quadrats habe ich dagegen eine andere Farbe benutzt, die ich auf "fast schwarz" eingestellt hatte - den Unterschied sieht man nicht:

  5. Der X68000 verfügt wie viele japanische Computerfamilien über ZWEI unabhängige Displaycontroller mit jeweils eigenem VRAM (je 512 KiB), dabei ist ein Controller für den "Textmodus" und der andere für den "Graphikmodus" zuständig. Und es ist möglich, auch beide gleichzeitig zu aktivieren: in diesem Fall überlagert der Text-Bildschirm den Graphik-Bildschirm auf der ganzen Fläche, d.h. man sieht dann vom Graphik-Bildschirm nur die Teile, die im Text-Bildschirm die auf "transparent" eingestellte Farbe enthalten:

    Et voilà: mein Bild-Editor mit 768x512-Pixel-Bildschirm, Mittelteil 512x512 Pixel mit 65536 Farben gleichzeitig, auf Original-X68000-Monitor.
Im linken und rechten Rand stelle ich die Bedienelemente des Bild-Editors dar: da "schwarz" als Transparentfarbe im Mittelteil benutzt wird, stehen zur Gestaltung der Bedienbereiche nur noch 15 verschiedene Farben zur Verfügung, die allerdings frei aus der 65536-Farben-Palette gewählt werden können - und eine von diesen 15 Farben nutze ich zur Darstellung der aktuell gewählten Pen-Farbe im Einstellfeld rechts unten. Bleiben also nur noch 14 frei wählbare Farben, um den Bedienbereich zu gestalten. Im von mir gewählten schlichten Design bin ich mit nur 6 Farben ausgekommen, wie sehen kann. Und da der X68000 außerdem ganz unabhängig vom Grafik-VRAM und Text-VRAM auch noch über überlagerbare Hardware-Sprites nebst eigenem Sprite-VRAM verfügt, war auch die Darstellung eines beweglichen Graphik-Cursors fürs Editieren überhaupt kein Problem ...

Ich finde es immer noch beeindruckend, dass man in Japan bereits 1987 auf einem handelsüblichen X68000 in Basisausstattung und seinem Standard-Monitor ein solches "fotorealistisches" Bild erscheinen lassen konnte - während dies in Europa damals noch sehr teure Zusatzhardware erfordert hätte.

Übrigens kann beim X68000 durch entsprechendes Einstellen der Werte in den CRTC-Registern aus dem intern 1024x1024 Pixel großen 16-Farben-Text-VRAM auch ein größerer Ausschnitt als die von Sharp vorgesehenen 768x512 Pixel angezeigt werden, z.B. 800x600 Pixel, aber die damals von Sharp für den X68000 angebotenen Monitore unterstützen diese anderen Zeilenzahlen nicht. Wenn man allerdings einen flexiblen Multisync-Monitor am Analog-RGB-Anschluss anschließt, einen, der auch auf andere Zeilenfrequenzen synchronisieren kann, dann steht der Weg auch zu weiteren Bildschirmauflösungen offen: das Text-VRAM kann im 16-Farben-Modus maximal mit 1024x1024 Pixeln (zu je 4 bit) gefüllt werden. Eine Darstellung mit 65536 Farben gleichzeitig ist allerdings grundsätzlich auf 512x512 Pixel beschränkt - mehr hat im 512 KiB großen Graphik-VRAM nicht Platz.


DISCLAIMER: Alle Angaben auf dieser Seite erfolgen nach bestem Wissen, jedoch ohne Gewähr.
Dies ist eine nicht-kommerzielle Fan-Website

© 2005-2015 Elmar Dünßer (Duensser)