FILL

Aus C64-Wiki
Zur Navigation springenZur Suche springen
FILL
Syntax: FILL <zl>,<sp>,<bt>,<ho>,<bc>,<f>
Parameter
zl: Bildschirmzeile (0..24)
sp: Bildschirmspalte (0..39)
bt: Breite (1..40)
ho: Höhe (1..25)
bc: Bildschirmcode (0..255)
f: Farbe (0..15)
Einordnung
Typ: Anweisung
Kontext: Bildschirmkontrolle
Aufgabe: Füllen eines Bildschirmbereichs mit einem Zeichen in Farbe
Abkürzung: keine (TSB: fI)
Token: $64 $07 (100 7)
Verwandte Befehle
FCOL - FCHR - MOVE - INV - COLOUR


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

Typ: Anweisung
Syntax: FILL <zl>,<sp>,<bt>,<ho>,<bc>,<f>

Mit FILL kann man Bereiche des Textbildschirms (oder den ganzen Textbildschirm) mit einem bestimmten Zeichen in einer bestimmten Farbe füllen. Damit ist FILL eine Kombination aus FCHR und FCOL.

Bei Über- oder Unterschreitung der zulässigen Werte (siehe Box) meldet der Interpreter die Fehlermeldung ?BAD MODE ERROR.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Beispiel 1[Bearbeiten | Quelltext bearbeiten]

Dieses Beispiel schreibt einen Rahmen in die rechte untere Bildschirmecke, wartet und lässt den Inhalt einmal weiß blinken.

10 PRINT CHR$(147);: CENTRE "DEMO FILL"
20 SP=29: ZL=14: BT=10: HO=10: RA=160: IN=32: F1=1: F2=0
25 COLOUR F2,15
30 FCHR ZL,SP,BT,HO,RA
40 FCHR ZL+1,SP+1,BT-2,HO-2,IN
50 PRINT AT(SP+2,ZL+2) "-DEMO-"
60 PRINT AT(SP+2,ZL+HO-2) "TASTE!"
70 WAIT 198,255
80 FILL ZL+1,SP+1,BT-2,HO-2,RA,F1: PAUSE 1
85 FILL ZL+1,SP+1,BT-2,HO-2,IN,F2
90 PRINT AT(SP+2,ZL+HO-2) "DANKE!"
100 PRINT CHR$(19);

Hinweis: In TSB muss die Syntax für CENTRE, COLOUR und PRINT AT angepasst werden. PRINT "{clr/home}"; kann man durch CLS ersetzen.

Beispiel 2[Bearbeiten | Quelltext bearbeiten]

Dieses Beispiel gibt vier Bildschirmseiten mit den Zeichen der Zeichensätze 1 und 2 (normal und invertiert) in der Reihenfolge der Bildschirmcodes aus.

100 COLOUR 15,7
110 Z$=CHR$(142):ZS$="ZS1"
120 PROC ZEICHEN
130 PRINT CHR$(147)Z$
140 FILL 0,0,40,25,160,15
150 FOR R=0 TO 7
160 FOR C=0 TO 15
170 FILL 2*R,2*C+1,1,1,I,0
180 PRINT AT(0,20)ZS$;I
190 I=I+1
200 NEXT:NEXT
210 POKE 198,0: WAIT 198,255
220 IF I=128 THEN CALL ZEICHEN
230 IF I>255 AND Z$=CHR$(14) THEN CALL FERTIG
240 IF I>255 THEN I=0:Z$=CHR$(14):ZS$="ZS2":CALL ZEICHEN
250 PROC FERTIG
260 PRINT AT(0,20)CHR$(142):END