CHECK (TSB)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
CHECK (TSB)
Format: CHECK
Parameter
keine
Einordnung
Typ: Anweisung
Kontext: Programmablauf
Aufgabe: Beschleunigen von Prozeduraufrufen
Abkürzung: chE
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 extrem 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.