C64 Grundbefehle
- Ein C64 oder C64-Emulator
- Basic ab V2.0
Es sind schon einige Jahre vergangen und nicht jeder kann sich an die kryptischen Befehle des C64 erinnern. Deshalb wird hier die Grundbedienung des C64 beschrieben.
Einen 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 ausgeführt. Im Eingabemodus hingegen, wird jede Basic-Zeile numeriert 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 natürlich auch vorkommen, daß man den Cursor schnell an die obere linke Ecke bewegen möchte. Mit den Cursor-Tasten 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 Tasten 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 einer Tastenkombinationen ä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 wählt man die Kombination COMMODORE-Taste + 7. 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 dem selben Weg lässt sich auch die Hintergrundfarbe ändern, allerdings mit der Adresse 53281,x. Der Standardwert ist die Ziffer 6.

Diskette einlegen und ein Programm starten
Der wohl bekannteste Befehl lautet LOAD"$",8
. Der Inhalt der Diskette wir hiermit geladen, aber noch nicht angezeigt. Um aber den Inhalt der Diskette aufzulisten ist der Befehl LIST
notwendig. Das gewünschte Programm wird wieder mit den LOAD-Befehl gestartet. Beispiel: LOAD"Name",8,1
. Natürlich muss nicht jedes mal der Inhalt der Diskette aufgelistet werden wenn man den Namen des Programms kennt. Das Programm wurde jetzt zwar geladen, es muss aber noch gestartet werden. Der Befehl RUN
erledigt dies.

Speichern von Daten auf Diskette
Das Speichern der Daten auf Diskette funktioniert gleich 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 eine Diskette und nennen die Datei "Demo". Dazu ist folgender Befehl nötig: 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 beendeten Ladevorgang muss evtl. noch der RUN-Befehl eingegeben werden um das Programm zu starten. Statt dem LOAD-Befehl, kann alternativ folgende Tastenkomination angewendet werden: SHIFT + RUN/STOP.

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 den 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.

Löschen von Dateien auf Diskette
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 Formatier-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 Diskettenname wird ein beliebiger Namen 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 den Befehl VERIFY, allerdings ohne Geräteadresse: VERIFY"Datei"
. Wird kein Name angegeben, wird die erste Datei die gefunden wird mit den 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 neuen Programm-Code 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. manipulieren. 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 noch mal die Übersicht der Befehle:LOAD
- Programm wird von Kassette geladen
LOAD"$",8
- Disketteninhalt einlesenLOAD"Name",8
- Programm mit gewünschten Namen wird von Diskette geladenLIST
- Inhalt der Diskette bzw. des Arbeitsspeichers wird aufgelistetRUN
- Geladenes Programm wird gestartetSAVE „Dateiname“
- Daten werden auf Kassette gespeichertSAVE“Dateiname“,8
- Daten werden auf Diskette gespeichertOPEN1,8,15,"C:Zieldatei=Quelldatei"
- Datei kopierenOPEN1,8,15,"S:Datei1,Datei2,Datei3…"
- Dateien von Diskette löschenOPEN1,8,15,"N:Diskettenname,ID"
- Diskette formatieren
OPEN1,8,15,"R:neuerName=alterName"
- Datei auf Diskette umbenennenCLOSE
- Befehlskanal schließenVERIFY"Dateiname",8
- Datei auf Diskette prüfen, bzw. mit Arbeitsspeicher vergleichenVERIFY"Dateiname"
- Datei auf Kassette prüfen, bzw. mit Arbeitsspeicher vergleichenNEW
- Arbeitsspeicher wird gelöschtPOKE
- Ändert den Wert der angegebenen SpeicheradressePEEK
- Ließt 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 den auf den Datenträger nicht überein. Dies muss nicht bedeuten daß die Daten falsch geschrieben wurden. Es könnte auch sein daß sich die geschriebenen Daten nicht mehr im Arbeitsspeicher befinden.
