CMOB

Aus C64-Wiki
Zur Navigation springenZur Suche springen
CMOB
Syntax: CMOB <f1>, <f2>
Parameter
f1: Spritefarbe 1 (0..15 für $D025)
f2: Spritefarbe 2 (0..15 für $D026)
Einordnung
Typ: Anweisung
Kontext: Sprites
Aufgabe: Färben eines Multicolorsprites
Abkürzung: keine (TSB: cM)
Token: $64 $64 (100 100)
Verwandte Befehle
DESIGN - @ - MOB SET - MOBCOL


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort CMOB.

Typ: Anweisung 
Syntax: CMOB <f1>, <f2>

Mit CMOB setzt man die beiden für alle Mulitcolor-Sprites einheitlichen Farben in VIC-Register $D025 (<f1>, für Bitmuster %01) und $D026 (<f2>, für Bitmuster %11). Die dritte, für jedes Sprite individuelle Farbe erhält es mit dem Befehl MOB SET (Register $D027 und folgende, für Bitmuster %10) oder (in TSB auch) mit MOBCOL. Die vierte Farbe schließlich ist die Bildschirmhintergrundfarbe, die mit COLOUR bzw. FCOL gesetzt wird (bei Bitmuster %00).

Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, ein falscher Wert (größer als 15) wird behandelt, als ob er mit 15 UND-Verknüpft wurde (wie bei Farben üblich).

Die CMOB-Farben werden bei der Sprite-Definition (mit DESIGN und @) den Definitionsbuchstaben B und D zugewiesen, der Buchstabe C erhält seine Farben aus dem MOB-SET-Befehl. (Leider hat David Simons an dieser Stelle nicht gut genug nachgedacht, sonst hätte er die Verwirrung bei den Farbdefinitionsbuchstaben sicher vermieden, daher:)

Beachten: Die Zuordnung der Buchstaben B und C bei den Befehlen MOB SET, DESIGN und @ ändert sich je nach Darstellungsmodus des Sprites. Das ist ärgerlich und führt oft zu einer Fehlersuche, ist aber nicht zu ändern.

Ein Multicolor-Sprite

Beispiel[Bearbeiten | Quelltext bearbeiten]

Definiert ein Multicolor-Sprite für den Simons'-Basic-Textmodus:

1700 PROC msprite
1710   DESIGN 1, 14*64
1720   @...bbbbb....
1721   @.bbb...bbb..
1722   @bb.cc.cc.bb.
1723   @bb...c...bb.
1724   @bb...c...bb.
1725   @.bbbcccbbb..
1726   @...bbbbb....
1727   @b...ddd.....
1728   @bb..ddd.....
1729   @bbbbdddbb...
1730   @..bbdddbb...
1731   @....ddd.bb..
1732   @....ddd..bb.
1733   @....ddd...b.
1734   @....ddd.....
1735   @..ccc.ccc...
1736   @.ccc...ccc..
1737   @.cc.....cc..
1738   @ccc.....ccc.
1739   @ccc.....ccc.
1740   @bbbbbbbbbbbb
1750   COLOUR 9,9: MOB SET 2,14,8,0,1: CMOB 7,6: s8=300: z8=205: MMOB 2,0,0,s8,z8,2,200
1760 END PROC

Gelb ist die CMOB-Farbe Nr. 1, blau die Nr. 2. Orange kommt aus dem MOB-SET-Befehl (dort Parameter Nr. 3)
(entnommen aus dem "Trainingsbuch zum Simon's Basic")