FLASH

Aus C64-Wiki
Zur Navigation springenZur Suche springen
FLASH
Syntax: FLASH <f> [, <sp>]
Parameter
f: Wechselfarbe (0..15)
sp: Blinkgeschwindigkeit (1..255)
Einordnung
Typ: Anweisung
Kontext: Bildschirmkontrolle
Aufgabe: Blinken von Zeichen
Abkürzung: keine (TSB: fL)
Token: $64 $1f (100 31)
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 60 für <sp> blinken die Zeichen also 1 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 Basic-Programm läuft weiter. Der Programmierer hat nach der Aktivierung keinen Einfluss mehr auf FLASH. Auch das Ende des Befehlslaufs ist in Simons' Basic nicht synchronisiert, die zuletzt angezeigte Blinkphase hängt daher vom Moment des Ausführens von OFF ab. Wenn ein Programm vorzeitig abbricht (RUN/STOP-Taste gedrückt oder Laufzeitfehler), muss das Blinken von Hand mit OFF ausgeschaltet werden, da der Interpreter es im Direktmodus weiterlaufen lässt. Da der Befehl nach Ablauf der eingestellten Zeit <sp> jedes mal den ganzen Bildschirm nach zu flashenden Zeichen durchsucht, wird das Updaten der TI-Zeit durch FLASH beeinträchtigt.

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


In TSB wurden die genannten Synchronisationsprobleme behoben. Zusätzlich akzeptiert es auch die klarere Befehlsangabe FLASH OFF statt einfach OFF.


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 CHR$(147);		; TSB: CLS
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 :			; 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.