Multicolor
Den Darstellungsmodus Multicolor gibt es bei Zeichen, Sprites und Grafik. Er bietet bis zu vier Farben pro Kachel bzw. pro Sprite. Da bei der Darstellung von Multicolor-Pixeln jeweils zwei Bits als ein Bitpaar für die Farbangabe benutzt werden, ist die Auflösung von Multicolorzeichen, -sprites und -grafiken horizontal gegenüber dem normalen Anzeigemodus (Hires) halbiert.
Das Ein- und Ausschalten des Multicolormodus erfolgt durch Ändern der Werte in den entsprechenden zuständigen Speicheradressen des VIC, etwa unter BASIC mit Hilfe des Befehls POKE.
Multicolor-Zeichen[Bearbeiten | Quelltext bearbeiten]
Im Multicolormodus auf Zeichenebene ist die Besonderheit zu beachten, dass hier nur die ersten acht Farben (0 bis 7) zur freien Verfügung stehen. Die höheren Farbindizes (8 bis 15) entsprechen hierbei den ersten acht Farben, schalten aber für das entsprechende Zeichen überhaupt erst den Multicolormodus ein. Wird einer der niedrigeren Farbcodes gewählt, so wird das Zeichen monochrom mit dieser Farbe dargestellt. Somit ist es möglich, Mono- und Multicolorzeichen gleichzeitig auf einem Bildschirm darzustellen, ohne aufwändige Darstellungstricks verwenden zu müssen.
- Der Multicolormodus für Zeichen wird über VIC-Adresse $D016 Bit 4 gesteuert.
- Einschalten des Multicolormodus:
POKE 53270,PEEK(53270) OR 16
- Ausschalten des Multicolormodus:
POKE 53270,PEEK(53270) AND 239
Farb-Bits | Entsprechende Farbe | Speicheradresse |
---|---|---|
00 | Bildschirmfarbe | 53281 |
01 | Multicolorfarbe 1 | 53282 |
10 | Multicolorfarbe 2 | 53283 |
11 | Farbspeicher (Zeichenfarbe) | 55296-56295 |
Die Farb-Bits 00 und 01 werden hierbei als Hintergrund betrachtet, die Farb-Bits 10 und 11 als Vordergrund. Das ist relevant, wenn Sprites hinter dem Text dargestellt werden, da beide Hintergrundfarben dann weiterhin hinter dem Sprite verschwinden.
Multicolor-Sprites[Bearbeiten | Quelltext bearbeiten]
- Der Multicolormodus für Sprites wird über VIC-Adresse $D01C gesteuert.
- Einschalten des Multicolormodus für alle Sprites:
POKE 53276,255
- Ausschalten des Multicolormodus für alle Sprites:
POKE 53276,0
Ansonsten kann gezielt z. B. mit POKE 53276,X
(X = 1, 2, 4, 8, 16, 32, 64, 128 für Sprite 0 bis 7) das jeweilige Sprite auf Multicolormodus umgeschaltet werden. Durch entsprechende Addition der genannten Werte können auch mehrere Sprites gleichzeitig in den Multicolormodus gehen. Will man beispielsweise die drei Sprites 0 bis 2 auf Multicolor umschalten, so erfolgt dies mit POKE 53276,7
(7 = 1+2+4).
Farb-Bits | Entsprechende Farbe | Speicheradresse |
---|---|---|
00 | Bildschirmfarbe | 53281 |
01 | Multicolorfarbe 1 | 53285 |
10 | Farbe des entsprechenden Sprites |
53287-53294 |
11 | Multicolorfarbe 2 | 53286 |
Multicolor-Grafik[Bearbeiten | Quelltext bearbeiten]
- Der Multicolormodus für Grafik wird über VIC-Adresse $D011 Bit 5 (Bitmap-Modus) und VIC-Adresse $D016 Bit 4 (Multicolor) gesteuert.
- Einschalten des Multicolormodus:
POKE 53265,PEEK(53265) OR 32 : POKE 53270,PEEK(53270) OR 16
- Ausschalten des Multicolormodus:
POKE 53265,PEEK(53265) AND 223 : POKE 53270,PEEK(53270) AND 239
- Einschalten des Multicolormodus:
- Multicolor-Bilder haben eine Auflösung von 160×200 Pixel und können pro Kachel vier verschiedene Farben enthalten.
- Jedem Bitpaar der Bitmap ist eine der vier Farben folgendermaßen zugeordnet:
Bitpaar Farbe Speicheradresse (hex) 00 Hintergrundfarbe 53281 ($D021) 01 Obere vier Bits vom Bildschirmspeicher 1024-2023 ($0400-$07E7), konfigurierbar 10 Untere vier Bits vom Bildschirmspeicher 1024-2023 ($0400-$07E7), konfigurierbar 11 Farbspeicher 55296-56295 ($D800-$DBE7)
Siehe den Artikel Multicolor Bitmap-Modus mit zusätzlichen Details.
Beispiele von Multicolor-Bildern