Multicolor Bitmap-Modus
Der Multicolor Bitmap-Modus ist ein Standard-Grafikmodus des Commodore 64. Dieser Bitmap-Modus kann Bilder mit einer Auflösung von bis zu 160 × 200 Pixeln in 16 Farben darstellen. Pro Kachel sind dabei bis zu vier Farben darstellbar. Drei Farben dürfen in jeder Kachel anders sein, eine - die Hintergrundfarbe - ist für das gesamte Bild gleich.
Einschalten[Bearbeiten | Quelltext bearbeiten]
In VICs Kontrollregister 1 ($D011) muss Bit 5 (Bitmap ↔ Text) gesetzt und Bit 6 (Erweiterter Hintergrundfarbenmodus) gelöscht sein. Im Kontrollregister 2 ($D016) muss Bit 4 (Multicolor) gesetzt sein.
VIC-II Kontrollregister im Hires Bitmap-Modus | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Adresse hex. | Adresse dez. | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | ||
$D011 | 53265 | 0 | 1 | ||||||||
$D016 | 53270 | - | - | - | 1 |
Multicolormodus ein/ausschalten in BASIC:
- Ein:
POKE 53265,PEEK(53265) OR 32 : POKE 53270,PEEK(53270) OR 16
- Aus:
POKE 53265,PEEK(53265) AND 223 : POKE 53270,PEEK(53270) AND 239
Achtung bei Nutzung von Rasterzeilen-Interrupts, diese POKEs verstellen ggf. auch die Zeile, in der ein IRQ ausgelöst wird.
Eigenschaften[Bearbeiten | Quelltext bearbeiten]
In diesem Grafikmodus werden Bilder mit hoher Farbvielfalt dargestellt. Allerdings reduziert sich dabei die horizontale Auflösung gegenüber dem Hires Bitmap-Modus auf die Hälfte, da jeder Punkt des Bildes aus zwei Bits der Bitmap besteht.
Bitpaar und Farbe[Bearbeiten | Quelltext bearbeiten]
Ein Bild im Multicolor Bitmap-Modus besteht aus einer Bitmap und drei Farbspeichern. Die Farben 1 und 2 werden aus dem Bildschirmspeicher genommen, die Farbe 3 aus dem Farb-RAM und die Farbe 0 aus dem Speicher für die Hintergrundfarbe. Jedem Bitpaar in der Bitmap ist eine der vier Farben zugeordnet:
Bitpaar | Farbe | Speicheradresse (hex.) |
---|---|---|
00 | Hintergrundfarbe | 53281 ($D021) |
01 | Obere vier Bits vom Bildschirmspeicher-Byte | 1024-2023 ($0400-$07E7), konfigurierbar |
10 | Untere vier Bits vom Bildschirmspeicher-Byte | 1024-2023 ($0400-$07E7), konfigurierbar |
11 | Farbspeicher | 55296-56295 ($D800-$DBE7) |
Bei gleichzeitiger Darstellung der Multicolor-Grafik mit einem Sprite, bestimmen die Bitpaare 00 und 01 den Hintergrund, die Bitpaare 10 und 11 den Vordergrund in Bezug auf die Sprite/Hintergrund-Priorität.
Speicher[Bearbeiten | Quelltext bearbeiten]
Die Speicherbelegung ist im Artikel Bitmap-Modus erklärt.
Die Bitmap belegt einen Speicherbereich von 8000 Byte, also knapp 8 KByte. Der Bildschirmspeicher und das Farb-RAM belegen je 40×25 = 1000 Bytes, die Hintergrundfarbe ein Byte.
Vierfarb-Multicolor[Bearbeiten | Quelltext bearbeiten]
Wird nur die Bitmap berücksichtigt, kann man analog zum monochromen Hires Bitmap-Modus eine Multicolor-Grafik mit vier Farben (bestimmt durch den Inhalt 00, 01, 10, 11 des Doppelbits) erstellen, die für den ganzen Schirm gleich sind. Da die Farbinformationen nicht im Bild enthalten sind, muss ein Programm, das ein solches Bild anzeigen will, diese selbst setzen.
Beispielbilder[Bearbeiten | Quelltext bearbeiten]
Multicolor 4-farbig, 32 Blöcke groß
Pf.-Auge-Analyse
Weblinks[Bearbeiten | Quelltext bearbeiten]
Programmierung und Dokumentation
- Multicolor Bitmap-Mode bei codebase64
- VIC-II: Grafikmodes – BITMAP (Multi-Color) bei Retro-Programming (Webarchiv)
Bilder