CLR

Aus C64-Wiki
Zur Navigation springenZur Suche springen
CLR
Syntax: CLR
Parameter
Einordnung
Typ: Anweisung
Kontext: Variablen
Aufgabe: Freigeben von Variablen und Datenkanälen sowie Rücksetzen des internen BASIC-Status
Abkürzung: cL
Token: $9c (156)
Verwandte Befehle
DIM, FRE, NEW, RUN

Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl CLR unter BASIC V2 des Commodore 64.


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.

Beispiele[Bearbeiten | Quelltext bearbeiten]

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

zeigt

COMMODORE 64 UND COMMODORE 128  38732
 0  UND  0  38772