BCKGNDS
BCKGNDS | |
Syntax: | BCKGNDS <b1>, <b2>, <b3>, <b4> |
Parameter | |
b1: Hintergrundfarbe 1 (0..15) | |
b2: Hintergrundfarbe 2 (0..15) | |
b3: Hintergrundfarbe 3 (0..15) | |
b4: Hintergrundfarbe 4 (0..15) | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Bildschirmkontrolle |
Aufgabe: | Färben des Textbildschirms |
Abkürzung: | keine (TSB: bC) |
Token: | $64 $65 (100 101) |
Verwandte Befehle | |
COLOUR - FCOL - NRM |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort BCKGNDS.
Typ: Anweisung
Syntax: BCKGNDS <b1>, <b2>, <b3>, <b4> TSB-Syntax: BCKGNDS [128 + ] <f1>, <f2>, <f3>, <fx>
BCKGNDS aktiviert den so genannten Extended-Background-Color-Modus des C64 und setzt die dafür erforderlichen Farbinformationen in die VIC-Register $D021 (<b1>), $D022 (<b2>) usw. ein. Jedes Zeichen auf dem Bildschirm kann nun eine aus diesen vier verschiedenen Hintergrundfarben erhalten. Mit diesem Befehl und einem vielleicht extra für diese Zwecke erstellten Zeichensatz (siehe auch MEM) kann man wunderschöne Benutzeroberflächen gestalten, da sich auch die Farbe als Informationsträger einsetzen lässt.
Nachteil des Extended-Background-Color-Modus ist, dass die Anzahl verschieden aussehender Zeichen auf ein Viertel reduziert ist, da die oberen zwei Bits der Zeichencodierung für die Zuordnung zu den vier Hintergrundfarben Verwendung finden.
Da das normale Hintergrundfarbregister $D021 bei BCKGNDS auch betroffen ist, hat der Befehl COLOUR nach BCKGNDS konkurrierende Wirkung (er beeinflusst ebenfalls $D021). Man kann COLOUR einsetzen, um die globale Hintergrundfarbe zu ändern, ohne nochmals BCKGNDS bemühen zu müssen.
NRM schaltet den Extended-Background-Color-Modus wieder aus.
Wird ein Parameter bei der Eingabe weggelassen, so erscheint die Fehlermeldung ?SYNTAX ERROR, ein falscher Wert bleibt unbeachtet und wird behandelt als wäre ein AND 15 vorgenommen worden.
In TSB kann BCKGNDS dazu verwendet werden, die Farben im Multicolor-Textmodus zu setzen, und zwar ohne gleichzeitig den Extended-Background-Color-Modus einzuschalten. Dazu muss zum ersten Parameter (für das Register $D021) lediglich 128 addiert werden. Der vierte Parameter spielt in diesem Fall keine Rolle und kann beliebig beschickt werden (man darf ihn aber nicht weglassen): BCKGNDS 128+3,10,9,x
für Zeichen in hellrot (10) und braun (9) auf einem Cyan-Hintergrund (3). Siehe dazu das Beispiel 3 von MULTI.
Beispiele[Bearbeiten | Quelltext bearbeiten]
Einfaches Beispiel[Bearbeiten | Quelltext bearbeiten]
10 PRINT CHR$(147):COLOUR 15,12 20 BCKGNDS 12,1,5,7 30 Z=35:REM ZEICHEN "#" 40 FCHR 1,1,1,1,Z 50 FCHR 1,3,2,1,Z+64 60 FCHR 1,6,1,2,Z+128 70 FCHR 1,8,2,2,Z+192 80 WAIT 198,255:NRM
Demo[Bearbeiten | Quelltext bearbeiten]
100 CLS: CSET 1: COLOUR 0,0: DIM C%(2,3) 105 CENTRE " BCKGNDS DEMO ": INSERT "+-+! !+-+",1,1,38,23,0 110 FOR I=0 TO 2: FOR J=0 TO 3: READ C%(I,J): NEXT 115 FILL 2,2,36,21,32,0 120 BCKGNDS C%(i,0),C%(i,1),C%(i,2),C%(i,3) 130 FOR SP=2 TO 37: FOR ZL=2 TO 22 135 BC=INT(RND(1)*256) 140 FCHR ZL,SP,1,1,BC 165 NEXT : NEXT 170 PAUSE 5 175 NEXT 180 NRM: COLOUR 11,12: POKE 646,0 185 PRINT AT(0,22)""; 190 DATA 6,4,14,3 195 DATA 11,12,15,1 200 DATA 9,2,8,10
Dies erzeugt das Demo-Bild.
Kommentar: Das Programm zeigt drei verschiedene Farbzusammenstellungen (bläulich, grau und rötlich), die in den DATA-Zeilen geändert werden können. In den Zeilen 135 und 140 erzeugt es zufällige Bildschirmcode-Werte zwischen 0 und 255 und schreibt sie per FCHR in den Screen.
Zuletzt zeigt es den Bildschirm im normalen Modus mit mittelgrau als Hintergrundfarbe (Zeile 180).
Hinweis: Der INSERT-Befehl in Zeile 105 funktioniert nur unter TSB und erzeugt einen schwarzen Rahmen. Unter Simons' Basic kann er einfach weggelassen werden, da er nur der Optik dient.
$ | % | @ | 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