Grafikmodus

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Der Grafikmodus eines Computers gibt an, in welcher Auflösung und Farbtiefe bzw. Kombinationen aus Grafiken (Bitmaps), Zeichen und Objekten (z.B. Sprites) auf den Bildschirm bzw. Monitor dargestellt werden. Beim C64 wird dies durch den Grafikchip VIC-II gesteuert. Neben den normalen Text- (Standard Character Mode) und Grafikmodus (Standard Bitmap Mode) existieren noch drei weitere Grafikmodi, die zwar mehr Farben erlauben, dafür eine niedrigere Auflösung besitzen.

(thumbnail)
LoRes- bzw. PETSCII-Beispielbild: Gary von Mermaid

Inhaltsverzeichnis

[Bearbeiten] Hochauflösender Grafikmodus

Der C64 besitzt die Möglichkeit, Bit-Mapping durchzuführen. Im Gegensatz zum Textmodus kann dabei jeder Bildschirmpunkt direkt angesprochen werden. Damit kann man z.B. selbstberechnete Kreise, Dreiecke, Rechtecke, Diagramme oder sogar komplexe Bilder in einer Auflösung von maximal 320x200 Pixeln darstellen.

Der Umgang mit dem Grafikmodus ist für ein Programm auf dem C64 aufgrund der anfallenden Datenmengen zeitaufwändig, so dass hierfür in der Regel Assemblerprogramme zum Einsatz kommen. Es gibt auch spezielle BASIC-Erweiterungen für Grafikzwecke, z.B. Simons' Basic. In BASIC V2 muss man überwiegend mit POKEs arbeiten.

[Bearbeiten] Einschalten des C64-Grafikmodus

Dazu muss Bit 5 des VIC-II-Kontrollregisters in Adresse 53265 = $D011 gesetzt werden. In BASIC macht das die Anweisung:

POKE 53265,PEEK(53265) OR 32

Wird Bit 5 des VIC-II-Kontrollregisters auf 0 gesetzt, kommt man zurück in den Textmodus.

POKE 53265,PEEK(53265) AND 223

Die Lage der Bitmap und des Bildschirmspeichers mit den Farbinformationen teilt man Computer mit Hilfe des VIC-II Kontrollregisters 53272 ($D018) mit.

  • Bit 1-3 bestimmen die Startadresse der Bitmap. Das geht so wie das Setzen der Startadresse des Zeichensatzes im Textmodus, wobei für die 8K große Bitmap nur die Adressen 0 ($000) und 8192 ($2000) in Frage kommen. In BASIC wird der Bitmapstart innerhalb des VIC-Adressbereichs wie folgt auf $2000 gesetzt:
POKE 53272,PEEK(53272) OR 8
  • Bit 4-7 definieren die Startadresse des Bildschirmspeichers, wie in dem zugehörigen Artikel unter "Verschieben des Bildschirmspeichers" beschrieben.


Die Lage des VIC-Adressbereiches bestimmen die Bits 0-1 des CIA 2 Port A Registers 56576 = $DD00.

[Bearbeiten] Darstellungsarten bzw. Modi für Grafik beim C64

[Bearbeiten] Alle Standardmodi

(thumbnail)
Eine HiRes-Grafik

Diese lassen sich auch unter BASIC nutzen und sind die offiziell von Commodore dokumentierten Grafikmodi:

  • HiRes-Textmodus (Standard nach dem Einschalten): 320x200 Pixel, organisiert als 40×25 Zeichen (jedes Zeichen mit eigener Farbe, aber eine gemeinsame Hintergrundfarbe)
  • Hires-Bitmap-Modus: 320×200 frei ansprechbare Pixel in zwei Farben, wobei in jedem "Zeichen" andere Farben gewählt werden können.
  • Multicolor-Textmodus: höhere Farb-, aber teilweise niedrigere Pixel-Auflösung: 40x25 Zeichen, wobei für jedes Zeichen separat gewählt werden kann, ob es 8x8 normale oder 4x8 breite Pixel darstellt. Bei der Farbwahl gibt es diverse Einschränkungen.
  • Multicolor-Bitmap-Modus: höhere Farb-, aber niedrigere Pixel-Auflösung; 160×200 frei ansprechbare Pixel in vier Farben, wobei drei der Farben in jedem "Zeichen" neu gewählt werden können.
  • Erweiterter Hintergrundfarben-Textmodus (Extended Background Color): Wie HiRes-Textmodus, jedoch kann nun für jede Zeichenposition eine von vier Hintergrundfarben gewählt werden. Dafür sind allerdings nur noch 64 statt 256 verschiedene Zeichen verfügbar.

[Bearbeiten] Benutzerdefinierte Modi

Neben den Standardmodi wurden im Laufe der Zeit eine Reihe trickreicher Sonderformate entwickelt, die entweder die Auflösung erhöhen oder die Anzahl gleichzeitig darstellbarer Farben. Da der C64 maximal nur 16 Farben darstellen kann, verwendet man Tricks wie sich schnell nacheinander überlagernde Halbbilder (Interlace), um für das menschliche Auge mehr Farben zu simulieren.


(thumbnail)
Die erste FLI-Grafik

Diese Sonderformate lassen sich nur per Assembler nutzen:

  • Advanced Hires (mehr Farben durch Interlace)
  • MCI (Multicolor Interlace, höhere Auflösung)
  • FLI (Flexible Line Interpretation, mehr Farben pro Kachel)
  • AFLI (Advanced FLI, FLI bei Hires-Auflösung)
  • IFLI (Interlaced FLI, mehr Farben - bis zu 136 - und mehr Auflösung)


(thumbnail)
NUFLI-Bild Heraklion Release

Wenn noch die Sprites zur Erhöhung der darstellenden Grafikfähigkeiten herangezogen werden, erweitert sich das Angebot um weitere Darstellungs-"Modi":

  • OSCAR bzw. ESCOS (Multicolor mit Sprites in den Borders)
  • SHF (Super Hires)
  • SHIF (Interlaced Super Hires)
  • UFLI (FLI mit Sprite-Underlay)
  • UIFLI (auch dies im Interlace)
  • NUFLI


Es gibt noch mehr Darstellungstricks, die aber nicht besonders große Verbreitung gefunden haben. Besonders die Demogruppe Crest betrieb zahlreiche und intensive Experimente, um dem VIC neue Grafkmodi zu entlocken.

[Bearbeiten] Darstellungsarten bzw. Modi für hochauflösende Grafik beim C128

Benutzerdefinierte Modi

(thumbnail)
VDC-FLI
  • VDC-FLI
  • VDC-IHFLI


[Bearbeiten] Weblinks

[Bearbeiten] Infos zu verschiedenen C64 Grafikmodi

[Bearbeiten] Crest Demos, die den neuartigen X-FLI- / XFLI-Grafikmodus verwenden

[Bearbeiten] Weitere Infos zu verschiedenen C64/C128 Grafikmodi

In anderen Sprachen