Tutorial - Das UNO2IEC für den Commodore 64

Der SD2IEC ist eine kompakte Alternative für Disketten-Laufwerke, die sich zum Standard-Datenträger für C64-Anwender entwickelt hat.  Lars Wadefalk, ein bekannter Entwickler im Bereich SD2IEC, hat mit dem UNO2IEC eine weitere Variante entwickelt, die sich vom SD2IEC unterscheidet. Während der SD2IEC Daten direkt von der SD-Karte liest, überträgt das UNO2IEC Daten vom PC, was für mehr Flexibilität sorgt. Optional kann außerdem eine visuelle Ladeanzeige in Form eines LED-Panels hinzugefügt werden.

Quelle dieser Anleitung: uno2iec von Larswad (License)


Bevor es losgeht, noch ein paar Hinweise (Wichtig!):
  • Vermeide Kurzschlüsse. Ein Kurzschluss kann sowohl den C64 als auch den Arduino beschädigen.
  • Beachte, dass die Arbeit an der Hardware im spannungsfreien Zustand erfolgen muss.
  • Um eine statische Aufladung zu vermeiden, wird das Tragen eines antistatischen Armbands empfohlen.
  • Für etwaige Schäden, die direkt oder indirekt durch diese Anleitung entstehen, wird keine Haftung übernommen.

Was kann das UNO2IEC?

Das Gerät bietet im Wesentlichen die gleichen Funktionen wie das SD2IEC, mit dem Unterschied, dass die Daten nicht von einer SD-Karte gelesen werden, sondern von einem Host. In diesem Fall dient ein Windows-Rechner als Host. Auf dem Rechner wird ein kleines Programm installiert, mit dem die C64-Disketten-Images verwaltet und gemountet werden können. Das Host-Programm unterstützt sowohl D64- als auch T64-Image-Dateien. Nach dem Mounten ist der Inhalt des Images im Host-Programm sichtbar. Anschließend kann der C64 auf das Image zugreifen, als wäre es eine herkömmliche Diskette.

Die Komponenten

Diese Anleitung ist in zwei Teile gegliedert. Im ersten Teil bauen wir einen UNO2IEC und lernen seine Funktionen kennen. Im zweiten Teil fügen wir eine visuelle LED-Anzeige hinzu, die zwar nicht zwingend erforderlich ist, ergänzt aber unser kleines Projekt. Für dieses Projekt benötigen wir einen Arduino Uno oder Nano. Da der Nano jedoch deutlich kompakter ist, wird er in dieser Anleitung verwendet. Die Anzahl der benötigten Komponenten ist gering:
Für die optionale LED-Anzeige: Max 7219 dot-matrix-module

Die Firmware flashen

Bevor wir mit der Verdrahtung beginnen, müssen wir die Firmware auf den Arduino flashen. Die Firmware finden wir auf der Projektseite des Entwicklers. Lade anschließend die Arduino IDE herunter, installiere sie und öffne damit die Firmware-Datei (uno2iec/uno2iec.ino).


Um den Arduino verwenden zu können, muss Windows die neue Hardware erkennen. Dazu muss ein Treiber installiert werden, der je nach Arduino-Modell variiert. Für die meisten Arduino Nano Clones sollte der Treiber von www.wch-ic.com geeignet sein. Zur Überprüfung der korrekten Treiberinstallation öffnen wir den Gerätemanager von Windows. Dort sollte das neue Gerät aufgelistet sein. Notiere anschließend den Port.


Wie bereits erwähnt, konzentrieren wir uns in diesem ersten Teil der Anleitung auf die Grundfunktion des UNO2IEC. Daher ist es nicht notwendig, die optionale LED-Anzeige zu aktivieren. Indem wir sie deaktivieren, vermeiden wir die Installation einer zusätzlichen Bibliothek. Um die LED-Anzeige zu deaktivieren, wechseln wir zum Reiter „Global Defines“ und kommentieren die folgende Zeile aus: „USE_LED_DISPLAY“. Setze dazu einfach zwei Schrägstriche am Anfang der Zeile.


Im nächsten Schritt müssen wir nur noch ein paar Einstellungen in der Arduino IDE vornehmen. Um die Firmware hochladen zu können, müssen wir den Arduino und seinen Port angeben.


Sollte es später zu einem Fehler kommen, der besagt, dass der Firmware-Upload fehlgeschlagen ist, können wir versuchen, den alten Bootloader zu verwenden. Dieser wird ebenfalls in der Arduino IDE konfiguriert.


Nun sollten wir die Firmware kompilieren und hochladen können.

Der Aufbau

Im nächsten Schritt verdrahten wir die Komponenten. Da wir nur wenige Komponenten verwenden, können wir das Projekt in einem kompakten Gehäuse unterbringen. In dieser Anleitung bauen wir das Projekt auf einer Steckplatine auf. Wir folgen dabei dem folgenden Verdrahtungsschema.


Sobald wir fertig sind, schalten wir den C64 aus und schließen das UNO2IEC an. Den Arduino verbinden wir mit dem PC.


Als Nächstes installieren wir das Host-Programm auf dem Windows-Rechner. Dazu laden wir das Tool „UNO2IEC Host Program“ herunter und installieren es. Für die Tests benötigen wir außerdem einige C64-Programme im D64- oder T64-Format. Nach der Installation starten wir das Programm und öffnen die Einstellungen. In diesem Abschnitt nehmen wir die folgenden Änderungen vor:
  • COM Port: Hier wählen wir den Port des Arduino. Es dürfte nur ein einziger Port verfügbar sein.
  • Serial Speed: 57600
  • Device Number: 8
  • Reset Pin: 6
  • Clock Pin: 5
  • ATN Pin: 4
  • Data Pin: 3

Der Funktionstest

m nächsten Schritt schalten wir den C64 ein und mounten im Host-Programm ein Disketten-Image. Dafür öffnen wir zunächst den Menüpunkt „Main -> Mount specific file“. Anschließend wählen wir das gewünschte Image aus und klicken auf „Mount“. Der Inhalt der Diskette sollte nun im rechten Teil des Fensters angezeigt werden.


Am C64 können wir nun versuchen die Diskette zu laden:

LOAD”*”,8,1
RUN


Nach erfolgreicher Durchführung aller Schritte sollte das Programm von der virtuellen Diskette geladen werden können. Beachte jedoch, dass nicht jedes Programm mit dieser Datenübertragungsmethode kompatibel ist.


In den Einstellungen können wir den Ordner für unsere Diskettenabbilder festlegen. So werden sie bei jedem Start des Host-Programms in der Liste angezeigt und lassen sich bequem einbinden. Aktiviere das Häkchen bei „Show Directories“, um die Ordner einzusehen.

Die LED-Anzeige (optional)

Wir gehen davon aus, dass das UNO2IEC korrekt funktioniert und ein Test durchgeführt wurde. Im nächsten Schritt wird das Projekt um eine LED-Ladeanzeige erweitert. Diese zeigt neben einem Ladebalken auch einen beliebigen Schriftzug an, der individuell gewählt werden kann. Die Installation des Max7219-Moduls erfolgt gemäß dem nachfolgenden Schema.


Im nächsten Schritt öffnen wir erneut die Arduino IDE und die Firmware. Wir stellen sicher, dass die Zeile "USE_LED_DISPLAY" nicht auskommentiert ist.


Der Versuch, die Firmware zu kompilieren, würde fehlschlagen, da eine erforderliche Bibliothek fehlt. Diese ist nicht in der Arduino IDE enthalten und muss manuell installiert werden. Die Bibliothek, die von demselben Entwickler wie der UNO2IEC stammt, ist unter github.com/Larswad/arduino_max7219 zu finden. Entpacke die ZIP-Datei nicht. Um die Bibliothek in die Arduino IDE zu importieren, wähle in der Menüleiste „Sketch -> Include Library -> Add .ZIP Library“ und wähle anschließend die ZIP-Datei aus.


Die Bibliothek ist nun eingebunden und aktiv. Optional können wir den Schriftzug ändern, der bei Inaktivität angezeigt wird. Dieser befindet sich im Reiter „uno2iec.ino“, wo beliebiger Text eingegeben werden kann.


Nach erfolgreicher Kompilierung und dem Hochladen der Firmware sollte der Funktionstest wie zuvor beschrieben problemlos ablaufen. Diesmal sollte die LED-Anzeige einen Fortschrittsbalken anzeigen, und bei Inaktivität wird der von uns gewählte Text durchgescrollt.