NEW

Aus C64-Wiki
Zur Navigation springenZur Suche springen
NEW
Syntax: NEW
Parameter
Einordnung
Typ: Anweisung
Kontext: Speicherverwaltung
Aufgabe: löscht den Programmspeicher und versetzt den BASIC-Interpreter in Grundzustand
Abkürzung:
Token: $a2 (162)
Verwandte Befehle
CLR, DIM, FRE

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


Der BASIC-Befehl NEW "löscht" das im Speicher befindliche BASIC-Programm bzw. gibt genau genommen den durch BASIC-Programme und Variablen belegten Speicherplatz sowie sonstige von BASIC benutzte Bereiche (Stapelspeicher) wieder frei und und schließt eventuell offene Ein-/Ausgabekanäle (siehe OPEN).
Etwaige angegebene Parameter führen zur Ausgabe der Fehlermeldung ?SYNTAX ERROR.

Der BASIC-Befehl NEW bietet sich vor dem Eintippen eines neuen BASIC-Programms an, sofern man das alte Programm nicht mehr benötigt.
Mitunter ist dieser Befehl sogar notwendig, wenn z.B. im Direktmodus mit LOAD "DATEI",8,1 Daten in einen höheren Adressbereich gelangen und damit das BASIC-Programmende (VARTAB) in die Nähe oder über das BASIC-Speicherlimit gerät. Das Ausführen von Kommandos oder die Eingabe von neuen Programmzeilen könnte dann in einem ?OUT OF MEMORY ERROR enden. NEW setzt das BASIC-Programmende wieder auf den initialen Zustand, allerdings unter Verlust eines eventuell vorhandenen Programms.

Intern bedient sich der NEW-Befehl u.a. der Routinen von CLR, RESTORE und END. Da nur Verwaltungsinformationen zurückgesetzt und nicht etwa der gesamte Speicher überschrieben wird, kann nach einem unbeabsichtigten NEW ein "gelöschtes" Programm durch Manipulation der Verwaltungsinformationen des BASIC-Interpreters wieder hergestellt werden, solange danach keine neue BASIC-Zeile erstellt, das Kommando LOAD ausgeführt oder Variablen angelegt wurden. Manche Erweiterungen bieten entsprechende Befehle an, z.B. das OLD von Simons Basic oder des Final Cartridge 3.
Auch nach einem Reset lässt sich damit ein BASIC-Programm wieder herstellen, siehe UNNEW.
Eine Wiederherstellung nur mit BASIC ohne Hilfe von Erweiterungen ist auch mit dem UNNEW-Einzeiler möglich.