FLASH
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.
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE