BFLASH

Aus C64-Wiki
Zur Navigation springenZur Suche springen
BFLASH
Syntax: 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
Abkürzung: keine (TSB: bF)
Token: $64 $1c (100 28)
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 60 für <sp> blinkt der Rahmen also 1 Mal pro Sekunde. Die beiden weiteren Parameter definieren die zwei Farben, zwischen denen der Interpreter bei Ausführung des Befehls hin- und herwechselt. Die Farbe des ersten Parameters wird in der Ausführung auch als erstes angezeigt.

BFLASH 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 (RUN/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 der Syntaxvariante 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.

In TSB wird nach Beendigung von BFLASH 0 die ursprünglich angezeigte Rahmenfarbe wiederhergestellt. Außerdem startet das Blinken unmittelbar (in Simons' Basic erst nach Ablauf der mit <sp> eingestellten Wartezeit). TSB akzeptiert statt BFLASH 0 auch BFLASH OFF (und BFLASH ON startet mit den zuletzt zuvor festgelegten Werten).

Beispiel[Bearbeiten | Quelltext bearbeiten]

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 :			; TSB: Auch FLASH OFF möglich
    PAUSE 6:
    BFLASH 0:			; TSB: Auch BFLASH OFF möglich
    COLOUR 11,12:
    POKE 646,0			; TSB: COLOUR 11,12,0 (kein POKE nötig)

Das Beispiel schreibt einen Kasten mit weißen Sternen auf rotem Grund und lässt alles blinken.