Datenübertragung vom PC zum C64/VIC20 mit JSCBMLoader

Ein Arduinos kann dabei helfen, Daten zwischen PC und Commodore 64 auszutauschen. Dies wurde bereits in den Anleitungen Tapecart und Arduino Mega SD2IEC gezeigt. In dieser Anleitung wird ein Arduino verwendet, um eine Verbindung zwischen PC und C64 herzustellen. Der Arduino fungiert in diesem Fall als virtuelles Laufwerk. Die Methode zeichnet sich durch eine hohe Übertragungsgeschwindigkeit, die Unterstützung mehrerer Image-Formate und eine übersichtliche grafische Benutzeroberfläche am PC aus.

Quelle dieser Anleitung: JSCBMLoader von Raspberrypioneer (License)


Bevor es losgeht, noch ein paar Hinweise (Wichtig!)
  • Kontrolliere die Verbindungen sorgfältig. Ein Kurzschluss kann sowohl den C64 als auch den Arduino beschädigen.
  • Immer im spannungslosen Zustand arbeiten. Der DIN-Stecker darf nie in die Schnittstelle gesteckt werden, wenn der C64 oder Arduino eingeschaltet sind.
  • Vermeidung statischer Aufladung durch Tragen eines Antistatik-Armbandes.
  • Ich übernehme keine Haftung für Schäden, die direkt oder indirekt aus dieser Anleitung entstehen.

Was wird benötigt?

Für dieses Projekt werden nur wenige Komponenten benötigt, da lediglich eine Verbindung zum PC mittels USB-Kabel und zum C64 mittels IEC-Kabel hergestellt werden muss. Die Anzahl der Verbindungen ist gering und kann in kurzer Zeit durchgeführt werden. Nicht nur ein einziger Arduino kann verwendet werden, sondern es stehen folgende Varianten zur Verfügung:
In dieser Anleitung wird der Aufbau mit einem Arduino Micro Pro durchgeführt. Dieser ist sehr kompakt und kann bei Bedarf auch in einem kleinen Gehäuse verbaut werden.


Des Weiteren wird ein DIN 6-Stecker und einige Drahtbrücken benötigt. Für die PC-Seite wird lediglich ein kleines Tool benötigt, das der Entwickler zur Verfügung stellt. Bei dem genannten Programm handelt es sich um ein JavaScript-Programm, das in den meisten Browsern ausgeführt werden kann.

Die Verdrahtung

Die Anleitungen auf der GitHub-Seite des Entwicklers könnten für den einen oder anderen Nutzer etwas irreführend sein. Zum einen stellt der Entwickler grafisch dar, wie die jeweiligen Arduino Varianten verdrahtet werden müssen. Es wird jedoch darauf hingewiesen, dass für die Verwendung von Epyx Fastload eine entsprechende Anpassung der Schaltung erforderlich ist. Es scheint, dass diese Modifikation in der Software bereits durchgeführt wurde. Aus diesem Grund stimmen die Bilder mit der Verdrahtung auf der Github-Seite nicht mehr überein. Die korrekte Verdrahtung für den Arduino Micro Pro und den Arduino Uno finden wir in der Datei "cbmloader.js". Dort muss der entsprechende Arduino auskommentiert werden, um die korrekten Pins zu verwenden. In diesem Fall wird ein Arduino Micro Pro verwendet. Wir benötigen also die Pins 9, 18, 19 und 20. Die Verdrahtung sieht dann so wie im folgenden Bild dargestellt aus.

Die Firmware

Nachdem der Arduino mit dem USB-Kabel mit dem PC verbunden wurde, laden wir die Arduino-IDE herunter und öffnen damit das Sketch, das sich im Projektordner befindet.


Für die Verwendung eines Arduino Micro Pro kann aus der Boardliste der Arduino Leonardo gewählt werden, da dieser pin-kompatibel ist. Bei Verwendung eines Arduino Uno ist die Wahl des entsprechenden Boards erforderlich. Anschließend müssen wir noch den Port des Arduino eingeben. In der Regel sollte es lediglich einen geben. Sobald diese Schritte abgeschlossen sind, wird der Code kompiliert und auf den Arduino geladen.

Der erste Test

Für den ersten Test wird zunächst die Stromversorgung des Arduino getrennt und dann mit dem C64 verbunden. Anschließend wird das USB-Kabel wieder mit dem Arduino verbunden. Nun öffnen wir am PC die grafische Oberfläche. Da diese in JavaScript geschrieben ist, sollte sie in jedem modernen Browser mit Web Serial API ausführbar sein. In dieser Anleitung wurden die Browser Chrome und Edge getestet, die gut damit zu funktionieren scheinen. Wir öffnen die Datei „index.html“ mit einem der besagten Browser.


Auf der linken Seite des Bildschirms sollten einige Buttons zu sehen sein. Einer davon ähnelt einem USB-Stecker. Wenn darauf geklickt wird, sollte der Arduino ausgewählt und eine Verbindung damit hergestellt werden können.


Am unteren Bildschirmrand sollte eine Meldung erscheinen, die bestätigt, dass unser Arduino verbunden ist. Anschließend können wir eine beliebige C64-Datei mit der Endung PRG oder D64 öffnen. Hierzu klicken wir auf den Button, der wie ein Notiz-Icon aussieht, und wählen das Image. Das Image wird nun in der Liste angezeigt.


Auf dem C64 sollte nun auf das eingebundene Image zugegriffen werden können. Um dies zu überprüfen, werden wir den Inhalt der virtuellen Diskette auflisten.

LOAD”$”,8
LIST

Um das erste Programm auf der Diskette auszuführen, muss folgender Befehl eingegeben werden.

LOAD”*”,8,1
RUN


Nun wird das gewählte Programm auf den C64 geladen. Allerdings besteht keine 100-prozentige Kompatibilität. Nicht jede Software wird korrekt laufen. Mit dem Epyx Fastloader können die entsprechenden Befehle genutzt werden. Der Fastloader ermöglicht eine besonders effiziente Übertragung der Programme. Dadurch wird die Wartezeit erheblich verkürzt.

$ Listet den Inhalt der Diskette auf.
/* Führt das erste Programm auf der Diskette aus.

Covers und Beschreibung

Auf der grafischen Oberfläche können wir nicht nur einzelne Programme, sondern auch ganze Sammlungen importieren. Auf dieselbe Weise, wie ein einzelnes Programm importiert wurde, können mehrere geladen werden, indem mehrere Images markiert werden.


Die rechte Seite der grafischen Benutzeroberfläche ist zum gegenwärtigen Zeitpunkt noch leer, kann jedoch genutzt werden, um Covers oder Screenshots der Spiele einzublenden und sogar eine kurze Beschreibung hinzuzufügen. Um eine Zuordnung der Bilder zu den entsprechenden Images zu ermöglichen, muss beim Benennen der Grafiken ein spezifisches Muster gefolgt werden. Jedes Bild muss den Namen des Images enthalten, gefolgt von "-image". Das folgende Beispiel sollte dies verdeutlichen:

[Dateiname]-image.jpg


Die Bilder müssen in den Ordner "resources/art/c64" für die C64-Programme oder "resources/art/vic20" für VIC20-Programme kopiert werden. Die Ordner existieren zum jetzigen Zeitpunkt noch nicht, daher müssen sie angelegt und die Bilder/Screenshots dort hinein kopiert werden. Anschließend sollte beim Wählen des entsprechenden Programms das Bild angezeigt werden.


Um eine kurze Beschreibung hinzuzufügen, die unter dem Coverbild erscheint, muss die Datei „resources/info_c64.js“ bzw. „resources/info_vic20.js“ bearbeitet werden. Dabei müssen der Dateiname und die Beschreibung angegeben werden. Dieses Muster muss eingehalten werden, da die grafische Oberfläche die Beschreibung sonst nicht mit dem jeweiligen Programm assoziieren kann.


Um die Cover/Screenshots zwischen C64- und VIC20-Programmen umzuschalten, wird auf das Banner geklickt.