Daten von einer 1541-Floppy auf den Mac übertragen. Das geht! Hier eine Schritt-für-Schritt-Anleitung mit OpenCBM on Mac.

C64 – die Netzhautpeitsche

C64 mit Schachbrett-Tastatur Mein C64 ist seit Ewigkeiten in Rente und fristet seit mehr als 25 Jahren im Keller ein trauriges Dasein. Alle paar Jahre, oder eher Jahrzehnte, wurde er exhumiert und in Betrieb genommen, um mal wieder so richtig im Retro-Feeling zu schwelgen. Bis nach ein paar Runden Delta, Rambo oder Gianna Sisters der Charme ganz schnell verflogen ist. Die HD-Ultra-Mega-4k-gewöhnten Augen können stecknadelkopfgroße 8-Bit-Pixel nicht mehr lange ertragen.

Mach’ mir den SIDney!

Und nur für die – nach wie vor – grandiose SID-Musik muss man nicht das vergilbte Original-Equipment aus dem Keller schleppen. Das geht einfacher auf dem PC oder Mac bspw. mit der High Voltage SID Collection (HVSC), die unglaubliche 46.000+ C64 Songs bereitstellt. Da kann man sich ein schönes Mix-Tape für die nächste Autofahrt zusammenschneiden. Infos dazu übrigens im Artikel zu C64 Klingeltönen für’s iPhone.

Wahrer Altruismus aka “die nahende Trennung”

Bisher konnte ich mich nicht von der Brotkiste trennen, weil so viele gute Erinnerungen damit verbunden sind. Und ich eine, aus heutiger Sicht, absurde Menge Lebenszeit in die Maschine gesteckt habe. Aber die (Umzugs)Kiste, in der die (Brot)Kiste steckt, hat nun genug Keller gesehen. Es gibt Fans des Retro-Computings, die mit dem C64 vielleicht noch etwas sinnvolles anstellen können. Also weg damit!

Altlastensicherung

Doch es gibt noch etwas zu tun. Auf den ebenfalls noch vorhandenen 5 1/4 Zoll Floppy Discs schlummern unzählige Demos, Programme und andere Grausamkeiten meiner damaligen Programmierkünste, die ich selbstverständlich der Nachwelt erhalten möchte. Die Wahrscheinlichkeit ist zwar hoch, dass das “die Nachwelt” wenig bis null, nicht, zero, gar nicht interessiert, aber da halte ich es wie Richard Feynman und frage: Kümmert Sie, was andere denken? (Gutes Buch, BTW.)

Wie Daten vom C64 auf den PC/Mac transferieren?

ZoomFloppy V1.0 Die Kernfrage für dieses Datensicherungsunterfangen: Wie kommen die Programme von den labbrigen Floppy Discs auf den PC oder Mac? Findige Retro-Tüftler haben da so einiges zusammengelötet und meine Wahl fiel auf die ZoomFloppy v1.0 Platine. Damit wird ein Floppy-Laufwerk, in meinem Fall eine 1541, über die Platine mit dem PC oder Mac verbunden.

Der C64 wird für den Datentransfer nicht benötigt, allerdings eine passende Software auf dem PC/Mac, um die ZoomFloppy anzusteuern. OpenCBM ist so eine Software, die auf dem PC leicht in Betrieb genommen werden kann, da es vorkompilierte Packages gibt. Wie sich zeigte, war die Datensicherungsgeschichte mit dem Mac eine größere Herausforderung. Insbesondere, da es exakt nur eine einzige Anleitung im Netz zu geben scheint, wie denn OpenCBM auf dem Mac zum Laufen gebracht werden kann. Ok, habe nicht wochenlang recherchiert, aber egal wie man sucht, landet man am Ende doch immer wieder bei Lallafas Blog Artikel OpenCBM on Mac. Eine gute Anleitung, die nur leider bei mir nicht funktioniert hat.

Aber Lallafas Artikel enthielt genug Hinweise und Erläuterungen, um die nötigen Schritte quasi “von Hand” auszuführen. Hier ist also meine Schritt-für-Schritt-Anleitung, für alle, die sich mal wieder so richtig schön auf der Kommandozeile austoben möchten. *gg*

OpenCBM on Mac: HowTo für echte Kommandozeilenmänner

  1. XCode Developer Tools installieren. Bei mir war’s Version 6.3.1.
    Am einfachsten lässt sich XCode über Apples App Store installieren.
  2. Command Line Developer Tools installieren. Setzt die Existenz von XCode (vorheriger Schritt) voraus. Viele der folgenden Schritte erfolgen im Terminal; das $-Zeichen steht für den Terminal-Prompt. Zur Installation der Command Line Developer Tools folgenden Befehl ausführen.
    $ xcode-select –install
  3. XCode Lizenzbestimmungen zustimmen. NB: sudo erfordert in der Regel die Eingabe des (Admin-)Passwortes.
    $ sudo xcodebuild -license
  4. MacPorts installieren. Hier wird von macports.org das Package für die eigene MacOS Version benötigt. In meinem Fall war das Yosemite.
    Download von der MacPorts-Seite https://distfiles.macports.org/MacPorts/MacPorts-2.3.3-10.10-Yosemite.pkg.
    Danach das Paket mit Doppel-Klick installieren.
  5. MacPorts aktualisieren.
    $ sudo port -v selfupdate
  6. cc65 Compiler installieren. Den brauchen wir später, um OpenCBM zu kompilieren.
    $ sudo port install cc65
  7. USB Legacy Treiber installieren. Für den späteren Betrieb von OpenCBM.
    $ sudo port install libusb-legacy
  8. Verzeichnis für OpenCBM anlegen und hineinwechseln. Hier im Beispiel als Unterverzeichnis im Home-Verzeichnis des angemeldeten Nutzers.
    $ mkdir ~/opencbm && ~/opencbm
  9. OpenCBM runterladen. Das geht auf der Kommandozeile bspw. mit curl. NB: Ich habe Version 0.4.0 vom 28.04.2006 verwendet obwohl die aktuelle Version 0.4.2a vom 22.12.2007 ist. Wahrscheinlich ist es “safe”, die aktuelleste Version zu verwenden, aber ich halte mich hier in der Anleitung an das, was funktioniert hat.
    $ curl -o opencbm-0.4.0.tar.gz http://sourceforge.net/projects/opencbm/files/opencbm/opencbm-0.4.0/opencbm-0.4.0.tar.gz/download
  10. OpenCBM Archiv entpacken.
    $ tar xzvf opencbm-20110130.tgz && rm opencbm-20110130.tgz
  11. Verzeichniswechsel in den richtigen Unterordner.
    $ cd opencbm-20110130 && cd opencbm
  12. OpenCBM kompilieren. Dafür hatten wir in Schritt 6 den cc65 Compiler installiert. Nach erfolgreicher Kompilierung von OpenCBM werden die ausführbaren Dateien nebst man(ual)-Dateien automatisch an die richtigen Stellen im File-System kopiert. Nach Eingabe des folgenden Befehls erstmal Käffchen kochen.
    $ sudo make -f LINUX/Makefile PREFIX=/opt/local MANDIR=/opt/local/share/man/man1 install-all
  13. OpenCBM konfigurieren. Da ist nur ein Buchstabe in einer Datei zu ergänzen. Im folgenden Befehl wird der Editor vi verwendet. Wer dessen kryptische Syntax nicht kennt, ist verloren. Dann lieber die Datei mit dem Finder aufspüren und einem beliebigen anderen Text-Editor bearbeiten.
    $ sudo vi /opt/local/etc/opencbm.conf
    Und dort im Abschnitt

    [plugins]
    default=xu1541

    xu1541 durch xum1541 ersetzen. Datei speichern.

That’s it! Piece of cake! Easy-peasy! Let’s rock! Örchz.

Inbetriebnahme und Test

Das ZoomFloppy-Manual empfiehlt die folgende Reihenfolge, um die technischen Komponenten miteinander zu verbinden bzw. diese einzuschalten.

  1. Floppy Kabel mit der ZoomFloppy-Platine verbinden. Das gilt für den runden 8-poligen, also auch für ein ggf. vorhandenes Parallelkabel.
  2. Jetzt die ZoomFloppy über die Micro-USB-Buchse an den USB-Anschluß des Mac anschließen. Eine grüne LED zeigt die Betriebsbereitschaft an.
  3. Floppy einschalten.

Bei der Ausserbetriebnahme alles in umgekehrter Reihenfolge.

Jetzt wird sich zeigen, ob die Mühe belohnt wird. Terminal öffnen und den folgenden Befehl eingeben.

$ cbmctrl detect
8: SpeedDOS 1541 (XP1541)

Wenn als Antwort so eine oder eine ähnlich Meldung erscheint, dann heisst das ERFOLG!

Die Meldung wird variieren, je nach dem, um welchen Floppy-Typ es sich handelt, ob ein Beschleuniger o.ä. vorhanden ist und an welchem Bus (8 oder 9) das Laufwerk hängt. Bei mir werkelt ein in der 1541 fest verbautes “Quickdos”; eine Variante des damals beliebten SpeedDOS, bei der nicht nur der Lade- sondern auch der Speichervorgang beschleunigt wurde. (35 x schneller laden, 17 x schneller speichern. Der Hammer!)

Bei einer 1571 könnte das wie folgt aussehen.

$ cbmctrl detect
8: 1571 (XP1541)

Der Mac kann jetzt über die ZoomFloppy mit dem Floppy-Laufwerk kommunizieren. FTW!

Noch ein letzter Test; wir überprüfen den Status des Laufwerks (an Bus 8).

$ cbmctrl status 8
00, ok,00,00

Wer seinerzeit mit dem C64 gearbeitet hat, wird die beruhigende Antwort “00, ok,00,00” noch kennen. Damit sind alle Tests erfolgreich abgeschlossen. Die Datensicherung kann beginnen.

Datensicherung = Fleißarbeit

So geht die Datensicherung dann los: Floppy ins Laufwerk schieben und im Terminal des Mac mit dem Befehl cbmctrl dir das Inhaltsverzeichnis (Directory) der eingelegten Diskette auslesen.

$ cbmctrl dir 8
0 ." XXXXX XXXXXXXX " P.P.P
140  "m.g.part x  /xsi" prg<   
40   "estimate    /xsi" prg<  
42   "control d.  /tsr" prg<  
87   "barbara d.  /xsi" prg<  
79   "megawurzel  /tsr" prg<  
130  "m.g.part xi /xsi" prg<   
47   "miami vice  /xsi" prg<  
31   "the tube m. /xsi" prg<  
28   "saboteur ii /xsi" prg<  
29   "shadow sc.  /xsi" prg<  
0 blocks free.             
00, ok,00,00

Kann die Diskette gelesen werden, wird das Directory wie man es vom C64 mit dem Befehl LOAD "$",8,1 und anschließendem LIST her kannte, ausgegeben. Nun gibt es zwei Möglichkeiten, um die Dateien von der Floppy-Disc auf den Mac zu übertragen.

1. Disk-Image (d64)

Auslesen des gesamten Inhalts einer Diskette mit dem Befehl d64copy und Ablegen in einer *.d64-Image-Datei. Hier ein Beispiel für das vollständige Auslesen einer Floppy-Disc.

$ d64copy --no-warp -r 3 8 dateiname.d64
[Warning] growing image file to 683 blocks
 1: *********************                  
 2: *********************                  
 3: *********************                  
 4: *********************                  
 5: *********************                  
 6: *********************                  
 7: *********************                  
 8: *********************                  
 9: *********************                  
10: *********************                  
11: *********************                  
12: *********************                  
13: *********************                  
14: *********************                  
15: *********************                  
16: *********************                  
17: *********************                  
18: *******************                    
19: *******************                    
20: *******************                    
21: *******************                    
22: *******************                    
23: *******************                    
24: *******************                    
25: ******************                     
26: ******************                     
27: ******************                     
28: ******************                     
29: ******************                     
30: ******************                     
31: *****************                      
32: *****************                      
33: *****************                      
34: *****************                      
35: *****************       100%   683/683
683 blocks copied.

Der Befehl zeigt Block-für-Block den Fortschritt an. Können Blöcke nicht gelesen werden, so wird dies ebenfalls angezeigt. In diesem Beispiel gab es keine (nicht korrigierbaren) Fehler und die Diskette wurde vollständig in das Disk-Image geschrieben.

Die verwendeten Parameter --no-warp und -r 3 haben sich bei meinen Disketten als sinnvoll erwiesen: Warp-Modus aus, da es mit eingeschaltetem Warp-Modus zu viele Lesefehler gab. Und maximal drei Versuche, um Blöcke mit Lesefehlern doch noch erfolgreich lesen zu können.

2. Einzelne Files (prg)

Auslesen einzelner Files mit dem Befehl cbmread und Ablegen im *.prg-Format. Das könnte dann so aussehen.

$ cbmread 8 "control d.  /tsr"
[Info] reading CONTROL D.  /TSR -> control d.  _tsr.prg
[Info] identified a SpeedDOS 1541 drive
.........../
[Info] 00, OK,00,00

Sowohl *.d64- als auch *.prg Dateien werden von den einschlägigen C64-Emulatoren verarbeitet. Auf dem Mac präferiere ich VICE, the versatile Commodore Emulator.

Fehlerbehandlung

Das Auslesen 25 Jahre alter Disketten mit ebensoalter Hardware lief teilweise, und wenig überraschend, ein wenig unrund.

Gealterte Datenträger

Einige Diskette zeigen Stockflecken auf der Magnetscheibe. Keine Ahnung, ob das der Langlebigkeit zuträglich ist, aber mit Anhauchen und anschliessendem kräftigem Reiben mit dem dicken Daumen lasst sich die Flecken vermindern. Interessant, wie sich Einstellungen ändern. Früher war die Magnetschicht ein Heiligtum, das um Gottes Willen mit Nichts in Berührung kommen durfte. Schon gar nicht mit einem Daumen. Aber Dinge ändern sich und wer heilt, hat recht! Einige der Disketten waren so tatsächlich wieder in einen lesbaren Zustand zu bekommen.

Gealterte Hardware

Auch die 1541 hat ihre 25+ Jahre auf dem Buckel und kam zwar mit vielen Disketten erstaunlich gut, mit einigen aber gar nicht zurecht. Manchmal wollte sie auch Disketten nicht mehr lesen, die sie nur Minuten zuvor problemlos lesen konnte. Dann half zumeist meine "Master-Diskette": Eine Diskette, die die 1541 erstaunlicherweise jederzeit ohne zu Murren lesen konnte. Nach wiederholtem Lesen des Inhaltsverzeichnisses meiner Master-Diskette war möglicherweise der Schreib-/Lesekopf wieder an der richtigen Position und es konnten in Folge wieder andere Disketten gelesen werden.

Irgendwann ging dann leider gar nichts mehr und ich sah mich gezwungen, den Schreib-/Lesekopf der 1541 zu reinigen. Da gibt es zahlreiche Videos und Anleitungen im Netz; ich habe mich an diese bebilderte Anleitung gehalten. Der Andruckfilz blieb unangetastet. Sicherlich wäre es noch sinnvoll gewesen, wie beschrieben, die Führungsschienen mit Haftschmieröl zu pflegen. Mangels Öl habe ich das aber gelassen. Da bin ich knallhart.

format c:

Gerade bei der 1541 hat das Formatieren immer besonders viel Spaß gemacht, wenn der Schreib-/Lesekopf mit lautem Rattern an das Ende der Führungsschienen knallte. Nach dem Exhumieren des C64 aus dem Keller, war eine "Leerformatierung", also das Formatieren ohne eingelegte Diskette, aber genau der richtige Tipp, um der 1541 wieder auf die Sprünge zu helfen.

Mit OpenCBM lässt sich auch eine Diskette formatieren, bspw. so

cbmctrl command 8 N0:NAME,2D

oder so

cbmctrl open 8 15 I0

Wenn nichts mehr geht, ist das auf jeden Fall einen Versuch wert.

Ente gut, alles gut

Nach so viel Vorarbeit, ist die Freude groß, dass alle alten Demos, Programme und andere 8-Bit-Grausamkeiten in ein neues digitales Grab Format überführt werden konnten. Ipse fecit und ich habe fertig.

Leave a Reply

Your email address will not be published. Required fields are marked *