BFLASH
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.
$ | % | @ | 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