CHECK (TSB)
CHECK (TSB) | |
Syntax: | CHECK |
Parameter | |
keine | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Programmablauf |
Aufgabe: | Beschleunigen von Prozeduraufrufen |
Abkürzung: | chE |
Token: | $64 $7c (100 124) |
Verwandte Befehle | |
EXEC (TSB) - CALL - PROC - END PROC |
Dieser Artikel beschreibt das TSB-Schlüsselwort CHECK (TSB).
Das entsprechende Simons'-Basic-Schlüsselwort lautet ebenfalls CHECK.
Typ: Anweisung
Syntax: CHECK
In TSB können genau wie in Simons' Basic Unterprogramme mit einem Namen versehen werden (siehe PROC). Sie werden dadurch unabhängig von ihrer Lage im Programm und der Programmierer kann leichter den Überblick bewahren (Namen lassen sich leichter einem Zweck zuordnen als Zeilennummern).
Intern durchsucht der Interpreter bei jedem PROC-Aufruf mittels EXEC oder CALL den ganzen Programm-Code nach dem Label hinter dem aufrufenden Befehl und wechselt bei erfolgreicher Suche dorthin. Diese Suche dauert sehr viel länger als bei den vergleichbaren Befehlen GOTO und GOSUB, da nicht nur die kurzen (zweibytigen) Zeilennummern überprüft werden, sondern alle Zeichen eines Labels.
TSB beschleunigt diesen Vorgang dadurch, dass es sich einmal aufgerufene Prozeduren in einer Liste (an Adresse $c400) merkt und bei folgenden Aufrufen zuerst diese Liste durchsucht. Im Lauf des Programms wird dessen Arbeitsgeschwindigkeit also immer größer.
Der Befehl CHECK legt diese Liste sofort und vollständig an, sodass alle folgenden Prozeduraufrufe beschleunigt werden. Die Liste kann maximal 128 Einträge aufnehmen (2 Bytes pro Prozedur). Weist ein Programm mehr als 128 PROC-Zeilen auf, werden die überzähligen ohne Fehlermeldung ignoriert und auf herkömmliche Weise (langsam) gesucht.
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!