Der MOS 6567/6569 Videocontroller (VIC-II) und seine Anwendung im Commodore 64
Inhalt 3. Funktionsweise des VIC 3.7. Text-/Bitmapdarstellung 3.7.3. Grafikmodi
3.7.3.3. Standard-Bitmap-Modus (ECM/BMM/MCM=0/1/0) |
In diesem Modus (wie in allen Bitmap-Modi) liest der VIC die Grafikdaten aus einer 320×200-Bitmap, in der jedes Bit direkt einem Punkt auf dem Bildschirm entspricht. Die Daten aus der Videomatrix werden für die Farbinformation benutzt. Da die Videomatrix weiterhin nur eine 40×25-Matrix ist, können die Farben nur für Blöcke von 8×8 Pixeln individuell bestimmt werden (also eine Art YC-8:1-Format). Da die Entwickler des VIC-II den Bitmap-Modus mit sowenig zusätzlichem Schaltungsaufwand wie möglich realisieren wollten (der VIC-I hatte noch keinen Bitmap-Modus), ist die Bitmap etwas ungewöhnlich im Speicher abgelegt: Im Gegensatz zu modernen Videochips, die die Bitmap linear aus dem Speicher lesen, bilden beim VIC jeweils 8 aufeinanderfolgende Bytes einen 8×8-Pixelblock auf dem Bildschirm. Mit den Bits VM10-13 und CB13 aus Register $d018 lassen sich Videomatrix und Bitmap im Speicher verschieben. Im Standard-Bitmap-Modus entspricht jedes Bit in der Bitmap direkt einem Pixel auf dem Bildschirm. Für jedem 8×8-Block können Vorder- und Hintergrundfarbe beliebig eingestellt werden. c-Zugriff
Adressen
13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
VM13 | VM12 | VM11 | VM10 | VC9 | VC8 | VC7 | VC6 | VC5 | VC4 | VC3 | VC2 | VC1 | VC0
Daten
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
unbebutzt | Farbe von "1"-Pixeln | Farbe von "0"-Pixeln
g-Zugriff
Adressen
13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
CB13 | VC9 | VC8 | VC7 | VC6 | VC5 | VC4 | VC3 | VC2 | VC1 | VC0 | RC2 | RC1 | RC0
Daten
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
8 Pixel (1 Bit/Pixel) "0": Farbe aus Bits 0-3 der c-Daten "1": Farbe aus Bits 4-7 der c-Daten