CMOB
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.
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")
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE