Tutorial - Das CBM Tape Pi für den Commodore 64

Neben dem SD2IEC gibt es zahlreiche weitere Optionen für den Datentransfer auf den C64 und andere Commodore-Computer. Diese reichen von kostspieligen Lösungen mit umfangreichen Funktionen bis hin zu einfachen Alternativen. Wer eine unkomplizierte Methode sucht, bereits einen Raspberry Pi besitzt und nicht in teure Komponenten investieren möchte, ist mit dem CBM Tape Pi gut beraten. Dabei wird die SD-Karte des Raspberry Pi als Datenträger verwendet, von der die Programme geladen werden können.  Neben dem Raspberry Pi werden nur wenige zusätzliche Komponenten benötigt.

Quelle dieser Anleitung: github.com/RhinoDevel/cbmtapepi von RhinoDevel (License)


Bevor es losgeht, noch ein paar Hinweise (Wichtig!):
- Das CBM Tape darf nur in den Datasette-Port des C64 gesteckt werden, wenn der Raspberry Pi und der C64 ausgeschaltet sind.
- Beachte, dass der Datasette-Stecker nicht kodiert ist und daher verkehrt herum eingesteckt werden könnte. Dies könnte zu Beschädigungen führen. Um dies zu vermeiden, sollte der Stecker beschriftet werden.
- Schalte immer zuerst den Raspberry Pi und dann den C64 ein. Beim Ausschalten immer zuerst den C64 ausschalten.
- Achte auf eine korrekte Verdrahtung des CBM Tape Pi und vermeide Kurzschlüsse. Eine falsche Verdrahtung kann die Hardware beschädigen.
- Bei der Einrichtung wird die SD-Karte vollständig gelöscht. Sicher gegebenenfalls vorhandene Daten.
- Es wird empfohlen, statische Aufladungen durch ein Antistatik-Armband zu vermeiden.
- Ich übernehme keine Haftung für Schäden, die direkt oder indirekt aus dieser Anleitung entstehen.

Was kann das CBM Tape Pi?

Das CBM Tape Pi ist ein Massenspeichergerät, ähnlich dem SD2IEC, allerdings unterstützt es nur PRG-Dateien. Es verfügt über einen „Fast-Mode“, der die Datenübertragung beschleunigt. Eine praktische Wedge erleichtert die Eingabe von Befehlen. Zusammenfassend bietet das CBM Tape Pi folgende Funktionen:
  • Lesen von PRG-Dateien
  • Löschen von Dateien
  • Öffnen von Ordnern
  • Inhalt eines Ordners auflisten
  • Kompatibilitäts- und Fast-Modus
  • Wedge für komfortable Befehlseingabe
  • Kostengünstig und geringer Installationsaufwand

Die Komponenten

Diese Anleitung beschreibt den Aufbau des CBM Tape Pi auf einer Steckplatine oder Prototypenplatine. Alternativ gibt es für dieses Projekt eine vorgefertigte Platine (CBM-Tape-Pi-PCB), auf die die Bauteile aufgelötet und der Raspberry Pi aufgesteckt werden kann. Die benötigten Komponenten sind in der folgenden Liste zu finden.

Einige Dupont-Verbinder (male-male und female-female)
Steckplatine oder alternativ eine Prototypenplatine
NPN-Transistor BC547 oder PN2222A x3
Raspberry Pi 1, 2, 3 oder Zero, mit Header (siehe Hinweis für Raspberry Pi unten)
Taster für Reset (optional)

Der Raspberry Pi

Dieses Projekt erfordert einen Raspberry Pi. Laut Entwickler sind die Modelle 1, 2, 3 und Zero kompatibel. Andere Modelle könnten ebenfalls funktionieren, wurden aber nicht getestet. Für meine Tests habe ich drei verschiedene Raspberry Pi Varianten verwendet, von denen nur eine die Software korrekt ausführen konnte.

Raspberry Pi 3 B+ ungeeignet
Raspberry Pi Zero W2 ungeeignet
Raspberry Pi Zero W1 funktioniert

Der Aufbau

Die Schaltung ist simpel und sollte sich relativ schnell aufbauen lassen. Beachte jedoch die unterschiedliche Ausrichtung der Transistoren, die je nach Variante variiert. Das Schaltbild der verwendeten Transistoren dient als Orientierung. Der Aufbau kann auf einer Platine oder einer Prototypenplatine erfolgen. Die Schaltung ist auf der Github-Seite des Entwicklers unter github.com/RhinoDevel/cbmtapepi zu finden. 


CBM tape to Raspberry Pi (Marcel Timm, RhinoDevel)

Der Reset-Taster ist zwar optional, aber eine sinnvolle Ergänzung. Er verbindet den „RUN“-Pin des Raspberry Pi mit Masse. Die Position dieses Pins variiert je nach Raspberry Pi Modell. Beim Raspberry Pi Zero W1 liegt der RUN-Pin direkt neben einem GND-Pin.

Die SD-Karte einrichten

Die Einrichtung der SD-Karte erfordert einige Schritte. Der Entwickler empfiehlt, zunächst Raspberry Pi OS auf der Karte zu installieren, um den Prozess zu vereinfachen. Dazu benötigen wir das Tool „Raspberry Pi Imager“, das das gewünschte Betriebssystem herunterlädt und installiert. Wir starten das Tool, wählen die Raspberry Pi Variante und das gewünschte Betriebssystem aus. Für unser kleines Projekt eignet sich das 32-Bit-Betriebssystem Raspberry Pi OS ohne Desktop. Zum Zeitpunkt der Erstellung dieser Anleitung war dies Debian Bookworm.


Nach der Auswahl des Betriebssystems wählen Sie die Karte aus, auf die die Software kopiert werden soll. Stelle sicher, dass die richtige Karte aus der Liste ausgewählt wurde, um ein versehentliches Überschreiben des falschen Datenträgers zu vermeiden.  Alle Daten auf der ausgewählten Karte werden unwiderruflich gelöscht. Anschließend wird der Installationsvorgang gestartet.


Nachdem wir diese Schritte abgeschlossen haben, laden wir die CBM Tape Pi Software von der Projektseite des Entwicklers herunter. Je nach verwendeter Raspberry Pi Variante benötigen wir die passende Kernel-Datei. Kopiere diese Kernel-Datei auf die SD-Karte und überschreibe die vorhandene.


Im nächsten Schritt laden wir die Dateien fixup.dat, start.elf und bootcode.bin von der Raspberry Pi Firmware herunter. Diese Dateien kopieren wir dann auf die SD-Karte und überschreiben die vorhandenen Dateien. Abschließend löschen wir die Dateien config.txt und cmdline.txt von der SD-Karte.


Um das CBM Tape Pi zu testen, benötigen wir einige C64-Programme. Für diesen Test kopieren wir die Demo Copper Booze von csdb.dk auf die SD-Karte, ohne Unterverzeichnisse zu erstellen. Beachten, dass nur PRG-Dateien unterstützt werden.

Der Funktionstest

Nach Abschluss aller Schritte kann ein erster Funktionstest durchgeführt werden. Stecke den Datasette-Stecker in die Schnittstelle des C64. ⚠ Der Stecker besitzt keine Kodierung und kann daher falsch eingesteckt werden. Um dies zu vermeiden, sollten Sie den Stecker beschriften.


Der Entwickler weist darauf hin, dass der Raspberry Pi immer vor dem C64 mit Spannung versorgt werden muss und beim Ausschalten genau umgekehrt vorgegangen werden sollte.  Nach dem Einschalten sollten die LED des Raspberry Pi im Sekundentakt blinken und die LED des CBM Tape Pi konstant leuchten. Die LED des CBM Tape Pi leuchtet nur bei Inaktivität.

Nach dem ersten Einschalten startet das CBM Tape Pi im Kompatibilitätsmodus. Dieser Modus, wie der Name schon sagt, soll die Kompatibilität verbessern. Dafür ist die Übertragungsgeschwindigkeit allerdings sehr gering. Im Kompatibilitätsmodus werden Befehle mit „SAVE“ an das CBM Tape Pi gesendet. Hier sind einige Beispiele:

Ausführen eines Programms
SAVE"DATEI.PRG":LOAD
RUN

Inhalt der SD-Karte auflisten
SAVE"$":LOAD
RUN

Verzeichnis wechseln
SAVE"CD ORDNERNAME"

Eine Verzeichnisebene nach oben
SAVE"CD .."

Weitere Befehle finden wir unter github.com/RhinoDevel/cbmtapepi. Für unseren ersten Test geben wir die Befehle SAVE"$":LOAD und dann RUN ein, um den Inhalt der SD-Karte aufzulisten. Wenn dies gelungen ist, können Programme mit den oben genannten Befehlen geladen und ausgeführt werden.

Der Fast-Modus

Der Fast-Mode ermöglicht nicht nur eine schnellere Datenübertragung, sondern bietet auch eine sogenannte Wedge, mit der Befehle in verkürzter Form eingegeben werden können. Um den Fast-Mode zu aktivieren, geben wir den Befehl SAVE“MODE C64” ein. Alternativ können wir auch SAVE“MODE C64TOM” verwenden, um die Wedge im oberen Bereich des Basic-Speichers zu laden. Nach Eingabe des Befehls gehen wir wie folgt vor:
  • Schalte den C64 aus.
  • Starte den Raspberry Pi neu oder führe einen Reset durch.
  • Schalte den C64 ein.
  • Gib den Befehl LOAD ein.
  • Starte die Wedge mit RUN
Die Wedge ist aktiv, auch wenn wir keine Bestätigung erhalten. Befehle können jetzt mit einem Rufzeichen eingegeben werden. Zum Beispiel:

Inhalt der SD-Karte auflisten
!$
LIST

Ausführen eines Programms
!DATEI.PRG
RUN

In diesem Beispiel laden wir die PRG-Datei, die wir auf die SD-Karte kopiert haben. In meinem Fall heißt die Datei CBOOZE.PRG.


Nach kurzer Wartezeit sollte das Programm geladen werden. Der Fast-Mode wird gespeichert und bleibt auch nach einem Neustart des Raspberry Pi erhalten. Die Wedge muss jedoch jedes Mal neu geladen werden. Um in den Kompatibilitätsmodus zurückzukehren, geben wir einfach !MODE SAVE ein.

Der Debug-Kernel

Die Release-Seite der CBM Tape Pi Software bietet neben der regulären Firmware auch eine Debug-Version. Diese gibt im Gegensatz zur normalen Firmware ein Log über die serielle Schnittstelle oder den HDMI-Port des Raspberry Pi aus. Bei Problemen kann die Debug-Firmware helfen, die Fehlerquelle einzugrenzen.

Wedge schneller laden (optional)

Die Kombination aus Fast-Mode und Wedge steigert die Datenübertragungsrate erheblich. Während der Fast-Mode nach einem Neustart aktiv bleibt, muss die Wedge wiederholt neu geladen werden, was Zeit kostet. Um diesen Nachteil zu vermeiden, kann die Wedge auf ein anderes Laufwerk oder, noch besser, auf ein EasyFlash kopiert werden. Um diesen Vorteil zu nutzen, laden wir die Wedge mit dem Befehl LOAD, führen das Programm aber nicht mit RUN aus. Stattdessen speichern wir das Tool auf einem anderen Datenträger: SAVE”WEDGE”,8,1.


Mit dem EasyFlash Multi Cart Creator lässt sich die Datei in ein EasyFlash kompatibles Cartridge-Image konvertieren, was die Ladezeiten deutlich verkürzt.