Commodore 64 Grund-Befehle

Es gibt viele tolle Projekte für den C64, die den Rechner neue Funktionen verleihen oder bereits vorhandene Funktionen verbessern. Alles schön und gut, aber das hilft uns recht wenig, wenn wir die Bedienung unseres geliebten Rechners nicht beherrschen. Deshalb werden hier einige Grundbefehle und Tastenkombinationen vorgestellt, die für den C64-Nutzer hilfreich sein könnten.

Ein Hinweis vorweg: Wer diese Befehle nicht an einem echten C64 ausprobiert, sondern den C64-Emulator VICE verwendet, findet unter folgenden Link die Tastaturbelegung des Emulators: www.c64-wiki.de.

Groß- / Kleinschreibung

Das Umwandeln in Groß- bzw. Kleinbuchstaben erledigt die Tastenkombination SHIFT + COMMODORE-Taste. Allerdings werden hierbei alle Zeichen auf dem Bildschirm umgestellt.

Direkt- und Eingabemodus

Es gibt zwei Modi, Basic-Befehle einzugeben. Im Direkt-Modus werden die eingegebenen Befehle nach der Bestätigung mit der Eingabe-Taste sofort ausgeführt. Im Eingabemodus hingegen wird jede Basic-Zeile nummeriert und erst mit der Eingabe des Befehles RUN werden alle Befehle nacheinander ausgeführt. Einige Befehle, wie DEF, INPUT und GET können nur im Eingabe-Modus eingegeben werden.

REM DIREKTMODUS
PRINT"Hallo"

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

Neue Zeile ohne Auswertung

Ohne Zeilennummer vor dem Befehl, wird der Befehl sofort ausgeführt, sobald die Enter-Taste betätigt wird. Möchte man den Cursor auch ohne Zeilennummer in die nächste Zeile versetzen, dann muss die Kombination SHIFT + RETURN-Taste verwendet werden. Die zuvor eingegebenen Befehle werden somit nicht ausgewertet.

Cursor Home-Position

Es kann manchmal vorkommen, dass man den Cursor schnell in die obere linke Ecke bewegen möchte. Mit den Cursortasten ist dies zwar möglich, aber es geht auch schneller, mittels CLR/HOME-Taste.

Bildschirminhalt löschen

Der Bildschirm des C64 ist schnell mit ein paar Befehle überfüllt. Platz schafft die Tastenkombination SHIFT + CLR/HOME. Alle Zeichen, samt Begrüßungstext werden gelöscht. Der Inhalt des Speichers bleibt davon aber unberührt.

Soft-Reset

Eine weitere Möglichkeit den Bildschirm zu löschen, ist die Tastenkombination RUN/STOP + RESTORE zu drücken. Auch hier wird der Speicherinhalt nicht gelöscht, allerdings wird das aktuell laufende Programm unterbrochen.

Farben ändern

Die Textfarbe lässt sich schnell mit der Tastenkombination ändern und zwar mit der CONTROL-Taste und einer Ziffer von 1 bis 8. Weitere Farben gibt's mit gedrückter COMMODORE-Taste. Um zur Standardfarbe zurückzukehren, muss die Kombination COMMODORE-Taste + 7 gedrückt werden. Der standardmäßig blaue Bildschirmrahmen lässt sich mit der Poke-Adresse 53280,x ändern, wobei das "x" für die gewünschte Farbe steht. Ein Beispiel: POKE 53280,1 färbt den Rahmen in Weiss. Die Standardfarbe ist die 14. Auf demselben Weg lässt sich auch die Hintergrundfarbe ändern, allerdings mit der Adresse 53281,x. Der Standardwert ist die Ziffer 6.

Laden von Daten auf Diskette

Der wohl bekannteste Befehl lautet LOAD"$",8. Der Inhalt der Diskette wird hiermit geladen, aber noch nicht angezeigt. Um den Inhalt der Diskette aufzulisten, ist der Befehl LIST notwendig. Das gewünschte Programm wird mit dem Befehl LOAD”PROGRAMM”,8,1. gestartet. Natürlich muss nicht jedes Mal der Inhalt der Diskette aufgelistet werden, wenn der Name des Programms bekannt ist. Das Programm wurde jetzt zwar geladen, muss aber noch gestartet werden. Der Befehl RUN erledigt dies.

Speichern von Daten auf Diskette

Das Speichern der Daten auf Diskette funktioniert auf die selbe Weise wie das Laden, allerdings wird hierfür der Befehl SAVE benötigt. Zuerst laden wir eine beliebige Datei von Diskette, alternativ können ein paar Zeilen in Basic geschrieben werden, z.B.:

10 PRINT"Hallo"
20 GOTO 10

Diese zwei Zeilen speichern wir jetzt auf einer Diskette und nennen die Datei "Demo": SAVE"DEMO",8.

Ein Programm von Kassette laden

Anders als beim Ladevorgang von Disketten wird beim Laden von Kassetten nur der Befehl LOAD benötigt. Es erscheint daraufhin eine Aufforderung, die Play-Taste des Kassettenlaufwerkes zu betätigen. Nach beendetem Ladevorgang muss evtl. noch der RUN-Befehl eingegeben werden, um das Programm zu starten. Statt dem LOAD-Befehl, kann alternativ die Tastenkombination SHIFT + RUN/STOP angewendet werden.

Speichern von Daten auf Kassette

Auch hier wird der SAVE-Befehl verwendet, allerdings ohne die Geräteadresse. Es genügt der Befehl SAVE"DEMO". Der Inhalt des Speichers wird so auf Kassette gespeichert. Es ist nicht zwingend erforderlich, einen Dateinamen anzugeben.

Kopieren von Dateien

Eine Kopie einer Datei wird mit dem Befehl OPEN1,8,15,"C:Zieldatei=Quelldatei" erstellt. Als Quelldatei muss der Namen der zu kopierenden Datei eingegeben werden und die Zieldatei ist der Name der Kopie. Anschließend wird die Befehlseingabe mit CLOSE1 wieder geschlossen.

Dateien von Diskette löschen

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

Mit dem folgenden Befehl können wir mehrere Dateien auf einmal oder sogar alle löschen. Hier die Syntax: OPEN1,8,15,"S:Datei1,Datei2,Datei3". In diesem Beispiel wollen wir die Datei „Demo“ löschen, also geben wir den Befehl OPEN1,8,15,"S:Demo" ein und schließen anschließend die Befehlseingabe mit CLOSE1. Die Datei Demo wurde gelöscht. Jetzt wollen wir alle Dateien löschen die mit den Buchstaben „DEM“ beginnen. Dazu geben wir einen Platzhalter für die fehlenden Buchstaben ein. Der Befehl sieht dann wie folgt aus: OPEN1,8,15,"S:Dem*". Wenn man alle Dateien einer Diskette löschen will genügt es, nur den Platzhalter einzugeben. Der Befehl sieht dann so aus: OPEN1,8,15,"S:*".

Formatieren von Disketten

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

Der Format-Befehl ist dazu da, die Diskette für den C64 lesbar/beschreibbar zu machen. Eine nicht formatierte Diskette kann vom Laufwerk nicht bearbeitet werden. Anstatt alle Dateien von der Diskette zu löschen kann diese auch formatiert werden. Das erledigt der Befehl OPEN1,8,15,"N:Diskettenname,ID" für uns. Als Disketten-Name wird ein beliebiger Name eingegeben und als ID eine zweistellige Zahl. Alle Daten auf den Datenträger werden gelöscht.

Dateien auf Diskette verifizieren

Der VERIFY-Befehl überprüft, ob die Datei korrekt auf die Diskette geschrieben wurde. VERIFY"Dateiname",8. "Dateiname" steht für den Name der zu prüfenden Datei. Dabei werden die Daten im Speicher mit den Daten der Diskette verglichen und bei einer Abweichung eine Fehlermeldung ausgegeben.

Dateien auf Kassette verifizieren

Der Prüfvorgang von Dateien auf Kassette erfolgt ebenfalls mit dem Befehl VERIFY, allerdings ohne Geräteadresse: VERIFY"Datei". Wird kein Name angegeben, wird die erste Datei, die gefunden wird, mit dem Speicherinhalt verglichen.

Dateien umbenennen

Das Umbenennen von Dateien erledigt der Befehl OPEN1,8,15,"R:neuerName=alterName". In diesem Fall muss lediglich der alte sowie der neue Dateiname eingegeben werden.

Arbeitsspeicher löschen

Will man einen neuen Programmcode eingeben, so sollte zuerst der Arbeitsspeicher gelöscht werden. Das erledigt der Befehl NEW. Parameter werden keine benötigt.

PEEK und POKE

Mit den Befehlen PEEK und POKE lassen sich Werte des Speichers auslesen bzw. modifizieren. Auf diese Weise können Änderungen direkt im Speicher vorgenommen werden. PEEK (Auslesen) und POKE (Überschreiben) sind im Direkt- sowie im Eingabemodus verfügbar.

Im folgenden Beispiel wird ein Wert im Speicher überschrieben: POKE 53280,1

Dabei handelt es sich bei "53280" um die Speicheradresse und die Ziffer nach dem Komma ist der Wert die geschrieben werden soll. In diesem spezifischen Fall wird die Rahmenfarbe auf Weiß geändert. Weitere Informationen und Beispiele zu POKE sind unter c64-wiki.de zu finden.

Der mit den PEEK-Befehl ausgelesene Wert muss hingegen mit einem weiteren Befehl ausgegeben oder in eine Variable gespeichert werden: PRINT PEEK(53280)

Weitere Informationen und Beispiele zu PEEK sind unter c64-wiki.de zu finden.

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 stimmt mit dem auf den Datenträger nicht überein. Dies muss nicht bedeuten, dass die Daten falsch geschrieben wurden. Es könnte auch sein, dass sich die geschriebenen Daten nicht mehr im Arbeitsspeicher befinden.