Multicolor

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Den Darstellungs-Modus 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 z.B. mit Hilfe des BASIC-Befehls POKE.

Multicolor-Zeichen[Bearbeiten | Quelltext bearbeiten]

Im Multicolor-Modus auf Zeichenebene ist eine Besonderheit zu beachten, hier stehen nur die ersten acht Farben (0-7) zur freien Verfügung. Die höheren Farbindices (8-f) 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 auf einem Bildschirm darzustellen, ohne aufwändige Darstellungstricks verwenden zu müssen.

  • Der Multicolor-Modus für Zeichen wird über VIC-Adresse $D016 Bit 4 gesteuert.
  • Einschalten des Multicolor-Modus: POKE 53270,PEEK(53270) OR 16
  • Ausschalten des Multicolor-Modus: 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

Multicolor-Sprites[Bearbeiten | Quelltext bearbeiten]

  • Der Multicolor-Modus für Sprites wird über VIC-Adresse $D01C gesteuert.
  • Einschalten des Multicolor-Modus für alle Sprites: POKE 53276,255
  • Ausschalten des Multicolor-Modus 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 z.B. die drei Sprites 0-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 Multicolor-Modus für Grafik wird über VIC-Adresse $D016 Bit 4 gesteuert.
    • Einschalten des Multicolor-Modus: POKE 53265,PEEK(53265) OR 32 : POKE 53270,PEEK(53270) OR 16
    • Ausschalten des Multicolor-Modus: POKE 53265,PEEK(53265) AND 223 : POKE 53270,PEEK(53270) AND 239
  • Multicolor-Bilder haben eine Auflösung von 160x200 px 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

"Wool On Her Mind" von Bizzmo
Water von Joe
Concubism von Archmage
"Rabbytes Can Dance" von Yazoo