deutsch Esperanto    
Inoffizielle
Fan-Seite

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 Ränder 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. in die Mitte des Bildschirms, so dass die unerwünschten Bildschirminhalte nicht alle rechts, sondern links und rechts von diesem Quadrat erscheinen, wenn einem das besser gefällt:

  4. In das (ebenfalls graphikfähige) 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, die schwarze Farbe links und rechts des Quadrats ist dagegen eine andere der 16 aus der großen Palette auswählbaren Farben:

  5. Da der X68000 wie die meisten japanischen Computer über ZWEI unabhängige Displaycontroller verfügen - einen für den "Textmodus" und einen zweiten für den "Graphikmodus" -, kann man auch beide gleichzeitig aktivieren: der Text-Bildschirm überlagert dann den Graphik-Bildschirm:

    Et voilà: mein Bild-Editor mit 768x512-Pixel-Bildschirm, Mittelteil 512x512 Pixel mit 65536 Farben gleichzeitig, auf Original-X68000-Monitor.
Auf dem Bildschirm sieht man links und rechts Inhalte des Text-VRAMs, in denen ich die Bedienelemente des Bild-Editors darstelle: da "schwarz" als Transparentfarbe benutzt wird, stehen zu ihrer Gestaltung nur noch 15 frei wählbare Farben zur Verfügung - eine von diesen nutze ich zur Darstellung der aktuell gewählten Pen-Farbe. Und im quadratischen Mittelteil sieht man das zu bearbeitende Bild mit 65536 Farben gleichzeitig. Da der X68000 außerdem über überlagerbare Hardware-Sprites nebst eigenem Sprite-VRAM verfügt, war auch die Darstellung eines beweglichen Graphik-Cursors kein Problem ...
-----------

Ü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, oder auch noch mehr, 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 ... 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

zurück zur Seite über die Sharp X68000 Computerfamilie
© 2005-2015 Elmar Dünßer (Duensser)