C64 BASIC V2.0: Befehl: WAIT
WAIT
- Token: 146 / $92 | Abkürzung: wA | ROM Exec: 47149 / $B82D
- Typ: Anweisung | Funktion: System
- Syntax: WAIT <location>,<mask.1>[,<mask-2>]
Aktion, Hinweise, Tipps, Tricks:
Die WAIT-Anweisung unterbricht die Programmausführung, bis eine bestimmte Speicheradresse ein bestimmtes Bitmuster erkennt. Anders ausgedrückt: WAIT kann verwendet werden, um das Programm anzuhalten, bis ein externes Ereignis eintritt. Dies geschieht durch die Überwachung des Bitstatus in den Ein-/Ausgaberegistern.
Die mit WAIT verwendeten Datenelemente können beliebige numerische Ausdrücke sein, werden jedoch in ganzzahlige Werte umgewandelt. Die meisten Programmierer sollten diese Anweisung niemals verwenden. Sie hält das Programm an, bis sich die Bits einer bestimmten Speicheradresse auf eine bestimmte Weise ändern. Sie wird für bestimmte I/O-Operationen und fast nur für andere Zwecke verwendet.
Die WAIT-Anweisung verwendet den Wert der Speicheradresse und führt eine logische UND-Verknüpfung mit dem Wert in Maske 1 durch. Enthält die Anweisung eine Maske 2, wird das Ergebnis der ersten Operation exklusiv ODER mit Maske 2 verknüpft. Maske 1 filtert also alle Bits heraus, die nicht getestet werden sollen. Wenn das Bit in Maske 1 0 ist, ist das entsprechende Bit im Ergebnis immer 0. Der Wert von Maske 2 dreht alle Bits um, sodass sowohl der Aus- als auch der Ein-Zustand geprüft werden können. Alle Bits, die auf 0 geprüft werden, sollten an der entsprechenden Stelle in Maske 2 ein I haben.
Unterscheiden sich die entsprechenden Bits der Operanden und , ergibt die Exklusiv-ODER-Verknüpfung ein Bitergebnis von 1. Ergeben die entsprechenden Bits dasselbe Ergebnis, ist das Bit 0. Mit der Anweisung WAIT kann eine unendliche Pause eingeleitet werden. In diesem Fall können die Tasten <RUN/STOP> und <RESTORE> zur Wiederherstellung verwendet werden. Halten Sie die <RUN/STOP> Taste gedrückt und drücken Sie dann <RESTORE>. Das erste Beispiel unten wartet, bis eine Taste auf dem Bandgerät gedrückt wird, um das Programm fortzusetzen. Das zweite Beispiel wartet, bis ein Sprite mit dem Bildschirmhintergrund kollidiert.
Beispiele:
WAIT 1,32,32
WAIT 53273,6,6
WAIT 36868,144,16 (144 und 16 sind Masken. 144 = 10010000 im Binärformat und 16 = 10000 im Binärformat. Die WAIT-Anweisung hält das Programm an, bis das 128-Bit aktiviert oder das 16-Bit deaktiviert ist.)
Befehle | CLOSE, CLR, CMD, CONT, DATA, DEF, DIM, END, FOR, GET, GET#, GOSUB, GOTO, IF, INPUT, INPUT#, LET, LIST, LOAD, NEW, NEXT, ON, OPEN, POKE, PRINT, PRINT#, READ, REM, RESTORE, RETURN, RUN, SAVE, STOP, SYS, VERIFY, WAIT |
Befehle Spezial (Bywords) | FN, GO, NOT, SPC(, TAB(, THEN, TO, STEP |
Arithmetische und logische Operatoren | +, –, *, /, ^, >, =, <, AND, OR |
Funktionen | ABS, ASC, ATN, CHR$, COS, EXP, FRE, INT, LEFT$, LEN, LOG, MID$, PEEK, POS, RIGHT$, RND, SGN, SIN, SQR, STR$, TAN, USR, VAL |
Konstanten und Systemvariablen | Pi, ST, TI, TI$ |