FLASH

Aus C64-Wiki
Wechseln zu: Navigation, Suche
FLASH
Format: FLASH <f> [, <sp>]
Parameter
f: Wechselfarbe (0..15)
sp: Blinkgeschwindigkeit (1..255)
Einordnung
Typ: Anweisung
Kontext: Bildschirmkontrolle
Aufgabe: Blinken von Zeichen
Abkürzung: keine
Verwandte Befehle
BFLASH - OFF


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

Typ: Anweisung
Syntax: FLASH <f> [, <sp>]

FLASH lässt Zeichen in der angegebenen Farbe <f> mit einer gewünschten Geschwindigkeit <sp> blinken. Die Alternativfarbe beim Blinkvorgang ergibt sich aus der Hintergrundfarbe des Zeichens, die von COLOUR oder BCKGNDS abhängt. Der Parameter <sp> legt die Blinkgeschwindigkeit fest, wobei die eingegebene Zahl der Anzahl von sechzigstel Sekunden entspricht. Bei einem Wert von 10 für <sp> blinken die Zeichen also 10 Mal pro Sekunde. Dieser Parameter kann auch weggelassen werden. In diesem Fall verwendet der Interpreter die zuletzt gewählte Geschwindigkeit bzw. 0 (die langsamste), wenn vorher noch keine definiert wurde.

OFF schaltet das Blinken der Zeichen aus.

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 FLASH. Auch das Ende des Befehlslaufs ist nicht synchronisiert, die zuletzt angezeigte Blinkphase hängt daher vom Moment des Ausführens von OFF ab. Wenn ein Programm vorzeitig abbricht (STOP-Taste gedrückt oder Laufzeitfehler), muss das Blinken von Hand mit OFF ausgeschaltet werden, da der Interpreter es im Direktmodus weiterlaufen lässt.

Farbangaben größer als 15 werden nicht akzeptiert und führen zu einem ?SYNTAX ERROR mit Programmabbruch.

Beispiel: 

 100 COLOUR 7,2:
     POKE 646,1:			; TSB: COLOUR 7,2,1 (kein POKE nötig)
     BFLASH 1,7,6:
     PRINT "";
 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 (ohne POKE)
 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)