CLR
Der BASIC-Befehl CLR “löscht” im Speicher angelegten
BASIC-Variablen bzw. gibt genau genommen den dadurch belegten
Speicherplatz sowie sonstige von BASIC benutzte Bereiche (z.B. den
Stapelspeicher) wieder frei und und schließt eventuell offene
Ein-/Ausgabekanäle (siehe OPEN).
Die Funktion ist auch impliziter Bestandteil des RUN-Befehls.
Als parameterloser Befehl führen etwaige dem Befehl folgende Angaben zu einem ?SYNTAX ERROR.
Konkret werden alle Variablen, Felder (siehe DIM), die
aktuelle DATA-Zeile, definierte Funktionen (siehe DEF FN),
Sprungadressen von Unterprogrammen (siehe GOSUB) und Schleifenvariablen
(siehe FOR und NEXT) gelöscht, indem deren interne Datenstrukturen
(Stapelspeicher, String-Stapel, String-Heap etc. des Basic-Interpreters
auf einen initialen Stand zurückgesetzt werden. Damit steht wieder mehr
RAM-Speicher, entsprechend dem Zustand nach dem Laden eines Programms,
zur Verfügung. Ein manuell oder mittels STOP angehaltenes Programm lässt
sich dann auch nicht mehr mittels CONT fortsetzen.
Außerdem geht der Zugriff auf geöffnete Dateien von Datenträgern wie
Diskette und Datasette verloren, da der entsprechende Datenpuffer und
der Status zur Datei verloren geht, auch wenn die Datei nicht
geschlossen wurde. Es hängt dann vom jeweiligen Gerät ab, wie mit nicht
sauber abgeschlossenen Dateien verfahren wird.
Beispiel
10 A=64 : B$="COMMODORE" : C%=128
20 D$ = B$ + STR$(A)
30 PRINT D$ " UND " B$ C% ; FRE(0)+65536
40 CLR
50 PRINT : PRINT B$ A " UND " B$ C% ; FRE(0)+65536