Multicolor

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Multicolor ist die Bezeichnung eines Grafikmodus beim C64, der pro Kachel (bzw. pro Zeichen) zwei zusätzliche Farben darstellen kann, also insgesamt vier aus seinen 16 Farben. Den Multicolormodus gibt es bei Zeichen, Sprites und für die hochauflösende Grafik. 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 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]

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]

  • 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]

  • 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
Farb-Bits Entsprechende Farbe Speicheradresse
00 Bildschirmfarbe 53281
01 Obere vier Bits... 1024-2023
10 Untere vier Bits
des Bildschirmspeichers
1024-2023
11 Farbspeicher (Zeichenfarbe) 55296-56295

Die Position des Bildschirmspeichers hängt von den Einstellungen des C64-Grafik-Chips (VIC) ab. Nach dem Einschalten des Rechners befindet er sich an Position 1024. Er hat in jedem Fall eine Länge von 1000 Bytes. Der zugeordnete Farbspeicher hat die gleiche Länge, befindet sich aber immer an derselben Position (55296).

Vierfarb-Multicolor

Wird nur die Bitmap berücksichtigt, kann man analog zum monochromen Hires-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.


Beispiele von Multicolor-Bilder

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