Titelbild Game Hero
Diese Seite verwendet eigene Cookies und Cookies von Dritten damit wir die bestmögliche Bedienbarkeit und Funktionalität bieten können. Wenn Sie auf diesen Seiten surfen, stimmen Sie der Verwendung von Cookies zu. Mehr erfahren OK

CBM Tape Pi als Datasette-Ersatz für den Commodore 64

Was wird benötigt?
  • Commodore 64
  • Raspberry Pi
  • El. Komponenten (Siehe Text)
Close
LoadingBild wird geladen...
Picture

Die Datasette war ein weit verbreitetes Laufwerk für Commodore-Rechner. Der Grund liegt wohl hauptsächlich am Preis. Das Lesen sowie Schreiben der Daten setzte viel Geduld voraus, aber da auch die Datenträger (Kassetten) relativ günstig waren, setzte sich dieses Laufwerk durch. Floppy-Laufwerke gab es natürlich auch, aber aus preislicher Sicht war dieses für Viele undenkbar. In dieser Anleitung geht es aber um eine Alternative für die Datasette. Und zwar wird hier ein Raspberry Pi verwendet der als Datasette fungiert. Die Daten werden komfortabel von der SD-Karte gelesen bzw. auf diese geschrieben. Die Datenübertragung zwischen PC und Commodore-Rechner wird hierdurch um einiges erleichtert. Dazu kommt, dass sehr wenige Komponenten sowie wenige technische Erfahrung vorausgesetzt wird.
Diese Anleitung wurde am 20.05.2021 erstellt. Die Version v1.7.0 der CBM Tape Pi Firmware wurde hierfür verwendet. Quelle dieser Anleitung bzw. Original-Projekt: github.com/RhinoDevel/cbmtapepi von Marcel Timm (photorhino.wordpress.com).

CBM Tape Pi
Klicke auf das Bild zum Vergrößern

Das cbmtapepi dient als Datasette-Ersatz für alle möglichen Commodore-Rechner. Dazu gehört der CBM / PET (getestet am 2001, 3032 und 8032-SK), VIC 20 und der C64. Andere Rechner wurden damit noch nicht getestet. In dieser Anleitung wird ein C64 sowie ein Raspberry Pi Zero verwendet.

Bevor es los geht, noch ein paar Hinweise (Wichtig!)
- Kontrolliere ob die Verdrahtung fehlerfrei ist. Eine fehlerhafte Verdrahtung kann den Commodore-Rechner sowie Raspberry Pi beschädigen.
- Die 6poligen Datasette-Connector ohne Verpolungsschutz können auch kopfüber eingesteckt werden. Dies würde den C64 sowie Raspberry Pi beschädigen. Beschrifte den Stecker damit immer klar ist wie rum er eingesteckt werden muss.
- Die Datasette-Schnittstelle des C64 ist standardmäßig als Eingang geschaltet. Mittels ❏ POKE-Befehle ist es möglich diesen als Ausgang zu verwenden. Dies ist absolut zu vermeiden, da die Spannung des C64 (5V) die GPIO des Raspberry Pi (3,3V) beschädigen würde!
- Arbeite immer im Spannungsfreien Zustand. Stecke den Datasette-Stecker nie in die Schnittstelle wenn der Rechner oder der Raspberry Pi eingeschaltet ist.
- Immer zuerst den Raspberry Pi und erst danach den Commodore-Rechner einschalten. Hingegen beim Ausschalten der Geräte, immer zuerst den Commodore-Rechner ausschalten.
- Vermeide statische Ladungen durch das Berühren eines geerdeten Objektes, wie beispielsweise einen Heizkörper. Oder verwende ein antistatisches Armband.
- Ich übernehme keine Verantwortung über Schäden die direkt oder indirekt durch diese Anleitung entstanden sind.

Benötigte Komponenten

Folgende Komponenten werden für dieses Projekt benötigt:

- Raspberry Pi 1 (getestet mit Version B), 2 (getestet mit Version B 1.1), 3 (getestet mit Version B 1.2) oder Zero (getestet mit Version W 1.1). Weitere Raspberry Pi Varianten wurden noch nicht getestet.
- MicroSD Karte
- Experimentier-Steckboard, min. 170 Kontakte (oder optional eine Lochrasterplatine falls das Ganze auf eine Platine gelötet werden soll).
- Steckbrücken (10 - 20cm) x20
- LED x1
- NPN transistor x3 (PN2222A oder BC547)
- PNP Transistor x1
- 10kΩ Widerstand x10
- Taster x1 (optional für Reset)
- Stiftleiste x1 (optional für Reset)
- Commodore Cassette Connector x1

Connector
Klicke auf das Bild zum Vergrößern

Alternativ kann auch das komplette Kabel samt Stecker einer ausrangierten Datasette verwendet werden.

Connector
Klicke auf das Bild zum Vergrößern
Die Verdrahtung

Wie die Komponenten miteinander verdrahtet werden, kann aus dem folgenden Bild entnommen werden. (Original-Schaltung entwickelt von Marcel Timm)

Beachte die Pin-Belegung der Transistoren (collector, base und emitter). Verlasse dich nicht auf die Ausrichtung des Transistor-Gehäuses. Informationen zu den Transistoren sind in den jeweiligen Datasheets zu finden.

Schematics
Klicke auf das Bild zum Vergrößern

Die Schaltung kann in höherer Auflösung hier runtergeladen werden. Das sieht dann auf den Experimentier-Board wie folgt aus.

CBM Tape Pi
Klicke auf das Bild zum Vergrößern
Die Software

Der Raspberry Pi braucht selbstverständlich eine SD-Karte von der er booten kann. Die Software die er benötigt wird in diesem Schritt eingerichtet. Dazu werden lediglich einige wenige Dateien benötigt. Zuerst sollte die SD-Karte formatiert werden, und zwar im ❏ FAT32- Format. Am einfachsten wird dies mit den Programm "SD Card Formatter" erledigt, welches für Windows und MacOS erhältlich ist.
ACHTUNG!: Alle Daten auf der Karte werden unwiderruflich gelöscht. Stelle sicher, dass die richtige Karte formatiert wird.

SD Card Formatter

Nach der Installation muss die entsprechende Karte gewählt werden. Anschließen kann diese formatiert werden. Mit "Quick format" ist die Karte in wenigen Sekunden formatiert.

SD Card Formatter

Ist dies erledigt, müssen wir noch einige Dateien auf die Karte kopieren. Die Dateien fixup.dat, start.elf sowie bootcode.bin, die wir auf der Github-Seite github.com/raspberrypi finden, kopieren wir auf die SD-Karte des Raspberry Pi.

Files

Im nächsten Schritt muss das Kernel-Image auf die Karte kopiert werden. Das besagte Image befindet sich im Zip-Archiv des aktuellen Releases: github.com/RhinoDevel/cbmtapepi/releases. Kopiere die Datei kernel.img (oder kernel7.img für den Raspberry Pi 2 oder 3) auf die SD-Karte.

Kernel-Image

Und zu guter Letzt brauchen wir noch einige C64-Programme im PRG-Format. Diese sind beispielsweise bei csdb.dk zu finden. Die runtergeladenen Dateien kopieren wir für unserem ersten Test in das Root-Verzeichnis der Karte.

PRG-Files

Falls die Dateinamen der PRG-Dateien länger als 12 Zeichen sind, benenne diese um und kürze die Namen auf maximal 12 Zeichen.

Der Funktionstest

Als erstes schalten wir den C64 und den Raspberry Pi aus und verbinden das cbmtapepi. Anschließend schalten wir den Raspberry Pi und erst danach den C64 ein.

Achtung, falls ein 6poligen Datasette-Connector ohne Verpolungsschutz verwendet wird! Diese können auch kopfüber eingesteckt werden. Dies würde den C64 sowie Raspberry Pi beschädigen. Beschrifte den Stecker damit immer klar ist wie rum dieser eingesteckt werden muss.

Connector
Klicke auf das Bild zum Vergrößern

In meinem Fall verwende ich ein Kabel einer Datasette. Dieses lässt sich nicht falsch rum in den Port stecken.

CBM Tape Pi
Klicke auf das Bild zum Vergrößern

Um zu überprüfen ob eine Verbindung zustande kommt, geben wir folgenden Befehle ein. Wenn alles erfolgreich verläuft, sollten wir das Inhaltsverzeichnis der SD-Karte sehen.

SAVE"$":LOAD
RUN

Load Directory

Da sich sehr viele Dateien auf der SD-Karte befinden, sehen wir nur das Ende der Liste. Um den Auflist-Vorgang zu unterbrechen, genügt es die RUN/STOP Taste zu drücken. Wenn bis hierhin alles geklappt hat, dann sollte es auch kein Problem sein ein Programm zu laden. Und zwar mit den folgenden Befehlen:

SAVE"NAME.PRG":LOAD
RUN

NAME.PRG steht für das Programm das geladen werden soll. Beachte, dass das Laden des Programmes, abhängig von der Speichergröße, viel Zeit in Anspruch nehmen kann, eben wie von einer echten Kassette.

Weitere Befehle die verwendet werden können:
SAVE"MYCBMAPP.PRG":LOAD,1,1 - Zum Laden von Programmen ohne Start Adresse.
SAVE"+MYNEWAPP" - Speichert eine Datei unter den Namen MYNEWAPP.
SAVE"CD PETPRGS" - Wechselt in das Unterverzeichnis PETPRGS.
SAVE"CD .." - Steigt eine Ordner-Ebene nach oben.
SAVE"RM OLDFILE.PRG" - Löscht die Datei namens OLDFILE.PRG.

Der Fast mode

Wenn der Raspberry Pi nach erfolgter Einrichtung das erste mal eingeschaltet wird, läuft cbmtapepi im Kompatibilitätsmodus. Das Laden von Programmen in diesen Modus dauert, ähnlich wie bei echten Kassetten, sehr lange. Seit Version 1.7.0 bietet cbmtapepi einen "Fast mode" an. Mit diesen werden die Daten zwischen Raspberry Pi und Commodore-Rechner um ein Vielfaches schneller übertragen. Des Weiteren wird ein Befehlserweiterung installiert, welcher es erlaubt mit Kurzbefehlen im Fast mode zu arbeiten.

Den Fast mode aktivieren

Um vom Kompatibilitäts-Modus in den Fast-Modus zu gelangen, müssen folgende Schritte abgearbeitet werden.

Zuerst muss je nach Commodore-Rechner der entsprechende Befehl eingegeben werden:

SAVE"MODE <mode name>"

"<mode name>" steht für den gewünschten Rechner/Befehlserweiterung.

PET1: CBM/PET, BASIC v1, fast mode, Befehlserweiterung installiert im Tape Buffer.
PET2: CBM/PET, BASIC v2, fast mode, Befehlserweiterung installiert im Tape Buffer.
PET4: CBM/PET, BASIC v4, fast mode, Befehlserweiterung installiert im Tape Buffer.
PET1TOM: CBM/PET, BASIC v1, fast mode, Befehlserweiterung installiert im oberen Basic Speicher-Bereich.
PET2TOM: CBM/PET, BASIC v2, fast mode, Befehlserweiterung installiert im oberen Basic Speicher-Bereich.
PET4TOM: CBM/PET, BASIC v4, fast mode, Befehlserweiterung installiert im oberen Basic Speicher-Bereich.
VIC20: VIC 20, fast mode, Befehlserweiterung installiert im oberen Basic Speicher-Bereich.
C64: C64, fast mode, Befehlserweiterung installiert im oberen Speicherbereich (vor Adresse $D000).
C64TOM: C64, fast mode, Befehlserweiterung installiert im oberen Basic Speicher-Bereich.

Beispiel: SAVE"MODE C64"

Mode C64

Anschließend schalten wir den Commodore-Rechner aus, starten den Raspberry Pi neu (oder drücken den Reset-Button falls vorhanden) und schalten den Commodore-Rechner wieder ein.

Nun muss der Befehl LOAD eingegeben werden. Wenn alles geklappt hat, sollte der Rechner nun die entsprechende Software laden.

Fast mode

Ab jetzt steht uns der Fast-Modus zur Verfügung. Statt den SAVE-Befehl, der im Kompatibilitäts-Modus verwendet wurde um Programme zu laden, muss im Fast-Modus ein Rufzeichen verwendet werden. Das Inhaltsverzeichnis lässt sich demnach wie folgt aufrufen:

!$
RUN

Ein Programm hingegen wird mit !PROGRAMMNAME.PRG geladen und mit RUN gestartet.

Load PRG

Hinweis: Auch nach einen Neustart des Raspberry Pi's bleibt der Fast mode aktiv, nicht so aber am Commodore-Rechner, denn dieser hat keinen permanenten Speicher. Deshalb muss am Commodore-Rechner jedes mal die Befehlserweiterung mit den Befehl "LOAD" aufs neue geladen werden.

Den Fast mode wechseln

Ist der Fast-Mode aktiv, dann genügt es mittels !MODE <mode name> den Modus zu wechseln.

Mode Change

Den Fast mode deaktivieren

Möchte man den Fast-Modus deaktivieren, genügt es den folgenden Befehl einzugeben:

!MODE SAVE

Auch in diesem Fall muss der Raspberry Pi sowie der Commodore-Rechner neu gestartet werden. Anschließend ist der Kompatibilitäts-Modus wieder aktiv.

Der Reset-Button (Optional)

Der Reset-Taster dient dazu den Raspberry Pi neuzustarten, ohne jedes mal dessen Stromversorgung zu unterbrechen. Allerdings muss hierfür am Raspberry Pi ein zusätzlicher Pin angelötet werden, und zwar bei "RUN".

Reset Button
Klicke auf das Bild zum Vergrößern

Wen RUN auf Masse gelegt wird, dann startet der Raspberry Pi neu.

Reset Button
Klicke auf das Bild zum Vergrößern
Die Status-LED

Die Aufgabe der LED die am cbmtapepi verbaut ist, hat die Aufgabe den Status anzuzeigen. Genau gesagt, kann diese drei Zustände anzeigen:
- LED leuchtet - cbmtapepi wartet auf Befehle
- LED aus - Daten werden übertragen
- LED blinkt - Ein Fehler ist aufgetreten, z.B. Datei nicht gefunden

Befehlserweiterung
Zurück
- Datenschutz Besucher total: 2309250 Heute: 10