Commodore 64 Grund-Befehle

Es existieren zahlreiche bemerkenswerte Projekte für den Commodore 64, welche die Funktionalität des Geräts erweitern. Natürlich ist es wichtig, die Funktionen unseres geschätzten Computers zu verstehen, aber das nützt uns wenig, wenn wir nicht wissen, wie man ihn bedient. Daher werden hier einige grundlegende Basic-Befehle und Tastenkombinationen vorgestellt, die für C64-Nutzer nützlich sein könnten.

Ein Hinweis vorweg: Wer diese Befehle nicht an einem echten C64 ausprobiert, sondern den C64-Emulator VICE verwendet, findet unter folgendem Link die Tastaturbelegung des Emulators:

Groß- / Kleinschreibung

Mit der Tastenkombination SHIFT + COMMODORE-Taste können wir alle Zeichen auf dem Bildschirm in Groß- oder Kleinbuchstaben umstellen.

Direkt- und Eingabemodus

Es gibt zwei Modi zur Eingabe von Basic-Befehlen: Im Direkt-Modus werden Befehle nach der Eingabe mit der Eingabetaste sofort ausgeführt. Im Eingabemodus hingegen wird jede Basic-Zeile nummeriert und erst nach Eingabe des Befehls RUN werden alle Befehle nacheinander ausgeführt. Einige Befehle, wie DEF, INPUT und GET, können nur im Eingabemodus eingegeben werden.

REM DIREKTMODUS
PRINT"Hallo"

1 REM EINGABEMODUS
10 PRINT"Hallo"
20 GOTO 10
RUN

Neue Zeile ohne Auswertung

Befehle ohne Zeilennummer werden sofort ausgeführt, sobald wir die Enter-Taste drücken. Um den Cursor ohne Zeilennummer in die nächste Zeile zu versetzen, verwenden wir die Kombination SHIFT + RETURN-Taste. Dadurch werden die zuvor eingegebenen Befehle nicht ausgewertet.

Cursor Home-Position

Um den Cursor schnell in die obere linke Ecke zu bewegen, kann man zwar die Cursortasten verwenden, die CLR/HOME-Taste ist jedoch deutlich schneller.

Bildschirminhalt löschen

Der Bildschirm des C64 füllt sich schnell mit Befehlen. Um Platz zu schaffen, drücke SHIFT + CLR/HOME. Dadurch werden alle Zeichen, einschließlich des Begrüßungstextes, gelöscht. Der Speicherinhalt bleibt jedoch unverändert.

Soft-Reset

Um den Bildschirm zu löschen, können wir auch die Tastenkombination RUN/STOP + RESTORE verwenden. Der Speicherinhalt bleibt erhalten, aktuell laufende Programme werden jedoch unterbrochen.

Farben ändern

Mit der Tastenkombination CONTROL + Ziffer (1-8) lässt sich die Textfarbe schnell ändern. Weitere Farben sind über die COMMODORE-Taste in Kombination mit einer Ziffer wählbar. Um die Standardfarbe wiederherzustellen, drücke COMMODORE + 7. Der standardmäßig blaue Bildschirmrahmen lässt sich mit der Poke-Adresse 53280,x ändern, wobei „x“ für die gewünschte Farbe steht. Zum Beispiel: POKE 53280,1 färbt den Rahmen weiß. Die Standardfarbe ist die 14. Ebenso lässt sich die Hintergrundfarbe mit der Adresse 53281,x ändern, wobei der Standardwert die Ziffer 6 ist.

Laden von Daten auf Diskette

Der wohl bekannteste Befehl lautet LOAD“$“,8. Dieser Befehl lädt den Inhalt der Diskette, zeigt ihn aber noch nicht an. Um den Inhalt der Diskette aufzulisten, verwenden wir den Befehl LIST. Um ein bestimmtes Programm zu starten, gib LOAD”PROGRAMM”,8,1 ein. Wenn wir den Namen des Programms kennen, müssen wir den Inhalt der Diskette nicht jedes Mal auflisten. Das Programm wurde nun geladen, muss aber noch mit dem Befehl RUN gestartet werden.

Speichern von Daten auf Diskette

Das Speichern von Daten auf Diskette erfolgt ähnlich wie das Laden, wobei der Befehl SAVE verwendet wird. Zunächst laden wir eine beliebige Datei von Diskette oder schreiben ein paar Zeilen Basic-Code, zum Beispiel:

10 PRINT"Hallo"
20 GOTO 10

Die beiden Zeilen speichern wir nun auf einer Diskette und benennen die Datei in „Demo“ um: SAVE „DEMO“,8.

Ein Programm von Kassette laden

Im Gegensatz zum Laden von Disketten benötigt das Laden von Kassetten lediglich den Befehl LOAD. Anschließend erscheint eine Aufforderung, die Play-Taste des Kassettenlaufwerkes zu drücken. Nach Abschluss des Ladevorgangs muss gegebenenfalls der RUN-Befehl eingegeben werden, um das Programm zu starten. Alternativ kann die Tastenkombination SHIFT + RUN/STOP anstelle des LOAD-Befehls verwendet werden.

Speichern von Daten auf Kassette

Der SAVE-Befehl wird hier ebenfalls verwendet, jedoch ohne die Geräteadresse. Es genügt, den Befehl SAVE“DEMO“ einzugeben, um den Speicherinhalt auf Kassette zu speichern. Ein Dateiname ist nicht zwingend erforderlich.

Kopieren von Dateien

Um eine Kopie einer Datei zu erstellen, geben wir den Befehl OPEN1,8,15,“C:Zieldatei=Quelldatei“ ein. „Quelldatei“ ist der Name der Datei, die kopiert werden soll, und „Zieldatei“ ist der Name der Kopie. Schließe die Befehlseingabe anschließend mit CLOSE1.

Dateien von Diskette löschen

Vorsicht: Die Dateien werden ohne Rückfrage gelöscht!

Mit dem folgenden Befehl können wir mehrere Dateien gleichzeitig oder sogar alle löschen. Die Syntax lautet: OPEN1,8,15,“S:Datei1,Datei2,Datei3“. Um beispielsweise die Datei „Demo“ zu löschen, geben wir den Befehl OPEN1,8,15,“S:Demo“ ein und schließen die Befehlseingabe mit CLOSE1 ab. Die Datei „Demo“ wird gelöscht. Um alle Dateien zu löschen, die mit den Buchstaben „DEM“ beginnen, verwenden wir einen Platzhalter für die fehlenden Buchstaben. Der Befehl lautet dann: OPEN1,8,15,“S:Dem*“. Um alle Dateien einer Diskette zu löschen, genügt es, nur den Platzhalter einzugeben. Der Befehl lautet dann: OPEN1,8,15,“S:*“.

Formatieren von Disketten

Vorsicht: Die Daten werden ohne Rückfrage gelöscht!

Der Format-Befehl macht eine Diskette für den C64 lesbar und beschreibbar. Eine nicht formatierte Diskette kann vom Laufwerk nicht verwendet werden. Anstatt alle Dateien zu löschen, kann die Diskette formatiert werden. Der Befehl OPEN1,8,15,“N:Diskettenname,ID“ erledigt dies für uns. Als Disketten-Name kann ein beliebiger Name verwendet werden, und als ID wird eine zweistellige Zahl eingegeben. Beachte, dass durch die Formatierung alle Daten auf dem Datenträger gelöscht werden.

Dateien auf Diskette verifizieren

Der VERIFY-Befehl prüft, ob die Datei korrekt auf die Diskette geschrieben wurde. Gib dazu „VERIFY“ gefolgt vom Dateinamen und der Diskettennummer (z.B. „VERIFY Dateiname,8“) ein. Der Befehl vergleicht die Daten im Speicher mit denen auf der Diskette und gibt eine Fehlermeldung aus, falls eine Diskrepanz festgestellt wird.

Dateien auf Kassette verifizieren

Der Befehl VERIFY dient auch zur Überprüfung von Dateien auf Kassette, jedoch ohne Geräteadresse: VERIFY“Datei“. Ohne Dateiname, wird die erste gefundene Datei mit dem Speicherinhalt verglichen.

Dateien umbenennen

Der Befehl OPEN1,8,15,“R:neuerName=alterName“ dient zum Umbenennen von Dateien. Dabei müssen lediglich der alte und der neue Dateiname angegeben werden.

Arbeitsspeicher löschen

Um neuen Programmcode einzugeben, muss zunächst der Arbeitsspeicher gelöscht werden. Dies geschieht mit dem Befehl NEW, für den keine Parameter erforderlich sind.

PEEK und POKE

Die Befehle PEEK und POKE ermöglichen das Auslesen und Modifizieren von Speicherwerten. Dadurch können Änderungen direkt im Speicher vorgenommen werden. Beide Befehle stehen sowohl im Direkt- als auch im Eingabemodus zur Verfügung.

Im folgenden Beispiel wird der Speicherwert an Adresse 53280 mit dem Wert 1 überschrieben: POKE 53280,1

Die Speicheradresse „53280“ wird mit dem Wert nach dem Komma angesprochen, um die gewünschte Änderung vorzunehmen. In diesem speziellen Fall wird die Rahmenfarbe auf Weiß gesetzt. Weitere Informationen und Beispiele zur Verwendung von POKE finden wir unter c64-wiki.de .

Um den mit dem PEEK-Befehl ausgelesenen Wert anzuzeigen oder in einer Variable zu speichern, verwenden wir einen weiteren Befehl wie PRINT PEEK(53280). Weitere Informationen und Beispiele zu PEEK finden wir unter c64-wiki.de.

Befehlsübersicht

Hier nochmal die Übersicht der Befehle:
LOAD - Programm wird von Kassette geladen
LOAD"$",8 - Disketteninhalt einlesen
LOAD"Name",8 - Programm mit gewünschten Namen wird von Diskette geladen
LIST - Inhalt der Diskette bzw. des Arbeitsspeichers wird aufgelistet
RUN - Geladenes Programm wird gestartet
SAVE „Dateiname“ - Daten werden auf Kassette gespeichert
SAVE“Dateiname“,8 - Daten werden auf Diskette gespeichert
OPEN1,8,15,"C:Zieldatei=Quelldatei" - Datei kopieren
OPEN1,8,15,"S:Datei1,Datei2,Datei3…" - Dateien von Diskette löschen
OPEN1,8,15,"N:Diskettenname,ID" - Diskette formatieren
OPEN1,8,15,"R:neuerName=alterName" - Datei auf Diskette umbenennen
CLOSE - Befehlskanal schließen
VERIFY"Dateiname",8 - Datei auf Diskette prüfen, bzw. mit Arbeitsspeicher vergleichen
VERIFY"Dateiname" - Datei auf Kassette prüfen, bzw. mit Arbeitsspeicher vergleichen
NEW - Arbeitsspeicher wird gelöscht
POKE - Ändert den Wert der angegebenen Speicheradresse
PEEK - Liest den Wert der angegebenen Speicheradresse aus

Troubleshooting

?FILE NOT FOUND: Es wird versucht eine Datei zu laden, die nicht vorhanden ist. Prüfe, ob der Dateiname richtig eingegeben wurde.

?DEVICE NOT PRESENT: Es wird versucht, auf ein Gerät zuzugreifen, das nicht existiert. Entweder ist die Geräteadresse falsch oder das Gerät nicht ordnungsgemäß angeschlossen.

?VERIFY ERROR: Der Inhalt des Arbeitsspeichers kann vom Inhalt des Datenträgers abweichen. Dies bedeutet nicht zwangsläufig, dass die Daten falsch geschrieben wurden. Es ist auch möglich, dass die geschriebenen Daten nicht mehr im Arbeitsspeicher vorhanden sind.