BFLASH

Aus C64-Wiki

Wechseln zu: Navigation, Suche
BFLASH
Format: BFLASH <sp>, <f1>, <f2>
oder BFLASH 0
Parameter
sp: Blinkgeschwindigkeit (1..255)
f1: Wechselfarbe 1 (0..15)
f2: Wechselfarbe 2 (0..15)
Einordnung
Typ: Anweisung
Kontext: Bildschirmkontrolle
Aufgabe: Blinken des Bildschirmrahmens
Shortcut: keiner
Verwandte Befehle
FLASH - OFF


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

Typ: Anweisung
Syntax: BFLASH <sp>, <f1>, <f2>
   oder BFLASH 0

BFLASH dient dazu, den Rahmen des Bildschirms in einer gewünschten Geschwindigkeit blinken zu lassen. Der erste Parameter (<sp>) legt die Geschwindigkeit fest, wobei die eingegebene Zahl die Anzahl von sechzigstel Sekunden angibt. Bei einem Wert von 10 für <sp> blinkt der Rahmen also 10 Mal pro Sekunde. Die beiden weiteren Parameter definieren die zwei Farben, zwischen denen der Interpreter bei Ausführung des Befehls hin- und herwechselt.

BLASH 0 beendet das Blinken.

Beachten: Die Ausführung des Befehls findet im Interrupt statt, das Programm läuft in dieser Zeit weiter. Der Programmierer hat in dieser Zeit keinen Einfluss mehr auf BFLASH. Auch das Ende des Befehlslaufs ist nicht synchronisiert, die zuletzt angezeigte Rahmenfarbe hängt daher vom Moment des Ausführens von BFLASH 0 ab. Wenn ein Programm vorzeitig abbricht (STOP-Taste gedrückt oder Laufzeitfehler), muss das Blinken von Hand mit BFLASH 0 ausgeschaltet werden, da der Interpreter es im Direktmodus weiterlaufen lässt.

Nach BFLASH 0 darf kein weiterer Parameter folgen, sonst meldet der Interpreter einen ?SYNTAX ERROR und bricht das Programm ab. Der Wert 0 als Zeitangabe ist also (im Gegensatz zu FLASH) unzulässig. Farbangaben größer als 15 werden akzeptiert, aber intern mit AND 15 behandelt.

Beispiel: 

 100 COLOUR 7,2:
     POKE 646,1:			; TSB: COLOUR 7,2,1 (kein POKE nötig)
     BFLASH 1,7,6:
     PRINT "{clear}";
 110 FOR x=0 TO 39
 120   y=x/2
 130   PRINT AT(x,y)"*" AT(39-x,y)"*"
 140   PRINT AT(x,0)"*" AT(x,20)"*"
 150   PRINT AT(0,y)"*" AT(39,y)"*"
 160 NEXT 
 170 FLASH 1,15:
     POKE 646,10			; TSB: COLOUR ,10 (kein POKE nötig)
 180 PRINT AT(0,1)"";:
     CENTRE "Demo von":
     PRINT 
 190 CENTRE "Flash und BFlash"
 200 PRINT AT(0,20)"";:
     PAUSE 6
 210 OFF :
     PAUSE 6:
     BFLASH 0:
     COLOUR 11,12:
     POKE 646,0			; TSB: COLOUR 11,12,0 (kein POKE nötig)

(schreibt einen Kasten mit weißen Sternen auf rotem Grund und lässt alles blinken)
Persönliche Werkzeuge