Tutorial: 64HDD - Die PC-Festplatte als Massenspeicher für den C64

Ein SD2IEC ist für die Datenübertragung zwischen PC und C64 wahrscheinlich die einfachste Lösung. Es gibt aber einige Alternativen, alle mit Vor- und Nachteilen. Eine davon ist 64HDD. 64HDD ist ein etwas älteres Projekt, aber was hat das im Retro-Bereich schon zu bedeuten? Damit lässt sich die Festplatte eines PC als Massenspeicher für den C64 einbinden.


Bevor es losgeht, noch ein paar Hinweise (Wichtig!):
- Stecke niemals das Verbindungskabel zwischen C64 und PC ein / aus, wenn eines der beiden Geräte eingeschaltet ist.
- Vermeide Kurzschlüsse bei der Erstellung des Kabels. Der PC oder der C64 kann dadurch beschädigt werden.
- Erstelle ein Backup der Daten auf den PC, bevor du mit diesem Projekt beginnst.
- Ich übernehme keine Verantwortung für Schäden, die direkt oder indirekt durch diese Anleitung entstanden sind.

64HDD Varianten

Es gibt eine kostenlose Version und eine kostenpflichtige Professional-Version mit mehr Features. In dieser Anleitung verwenden wir die kostenlose Version, die für unser Vorhaben vollkommen ausreicht. Einer der wesentlichen Nachteile der kostenlosen Version ist, dass die Daten des 64HDD-Laufwerkes nicht auf eine echte Diskette kopiert werden können.

Der PC

Die Leistung des Rechners spielt kaum eine Rolle. Im Gegenteil: Ein alter 386/486er ist besser geeignet als ein aktueller, da eine konstante Taktfrequenz des Prozessors für dieses Projekt ideal ist. Neuere Rechner regeln die Prozessorfrequenz je nach Bedarf rauf und runter, was Probleme verursachen könnte. Vorausgesetzt wird allerdings eine parallele Schnittstelle, die in jedem alten Rechner vorhanden sein sollte. In dieser Anleitung verwende ich einen Toshiba Satellite 4600 Pro Laptop, der mit seinem Pentium III 1 GHz und 512 MB RAM schon fast überdimensioniert ist für diese Aufgabe.

Das X(E)1541-Kabel

Zur Verbindung zwischen C64 und PC wird ein X1541- oder ein XE1541-Kabel. Dieses lässt sich mit ein wenig Lötarbeit selbst erstellen. Es folgt die Verdrahtung des Kabels (Pins von der Lötseite der Stecker gesehen).


Folgende Komponenten werden benötigt:

Als Kabellänge gilt, je kürzer desto weniger störungsanfällig. Bei 1 bis 2m dürfte es keine Probleme geben. Wer das Kabel nicht selbst zusammenlöten möchte, kann sich ein fertiges kaufen, beispielsweise hier: retro-kabel.de.

Wer im Besitz eines XM1541-Kabels ist, kann dieses mit geringem Aufwand zu einem XE-Kabel umbauen. Es genügt die Kontakte 5 und 6 am 6-poligen DIN Stecker zu vertauschen.

Die Software

Das Programm 64HDD (Download) ist kostenlos, allerdings müssen wir uns registrieren, bevor wir dieses verwenden können. Das Registrierungsformular finden wir hier: 64hdd.com.

64HDD braucht eine DOS-Umgebung und muss sich auf einem FAT formatierten Datenträger befinden. Wenn die Möglichkeit besteht, sollte DOS auf dem Rechner installiert werden. Alternativ kann 64HDD auf einer FAT formatierten Festplatte abgelegt und von einer Windows Boot-Diskette gebootet werden. Damit müssen wir nicht ein evtl. vorhandenes Betriebssystem löschen. Das setzt natürlich ein Diskettenlaufwerk voraus. Auf der Festplatte kopieren wir neben 64HDD einige C64 Disketten-Images. Diese legen wir in einen beliebigen Ordner. In diesem Beispiel lege ich sie in den Ordner namens "ROMS".

Das Bios

Die auf dem Mainboard verbaute parallele Schnittstelle ist üblicherweise im Bios konfigurierbar. Um eventuelle Probleme zu vermeiden, kontrollieren wir aber, ob die LPT-Schnittstelle eingeschaltet und richtig konfiguriert ist. Die Bios-Einstellungen werden beim Bootvorgang des Rechners gleich nach dem Einschalten mit einer bestimmten Taste aufgerufen. Welche das ist, hängt vom Mainboard / Bios ab. Oft ist es die Entfernen-Taste, in anderen Fällen eine Funktionstaste. Eine Hilfe, wie man ins Bios gelang, finden wir hier: praxistipps.chip.de.

Haben wir den Zugang zum Bios gefunden, suchen wir die Parallel-Port Einstellungen. Die Bezeichnung kann je nach Bios-Hersteller variieren. Der Port muss eingeschaltet und auf SPP, Normal, Standard oder Bi-Directional eingestellt werden. ECP funktioniert laut meinen Tests hingegen nicht.

Die erste Verbindung

64HDD wird mittels Parameter konfiguriert. An dieser Stelle geht es nur darum, eine Verbindung aufzubauen, um zu sehen, ob Software und Hardware korrekt funktionieren. Als erstes schalten wir beide Rechner aus und verbinden diese mit dem X(E)1541-Kabel. Ist das Kabel angeschlossen, schalten wir beide Rechner ein.

Am PC: Wir wechseln unter DOS in das 64HDD-Verzeichnis. Dort geben wir folgenden Befehl ein.

64hdd -[Registrierungscode] -8 -xe -ls


Den Registrierungscode haben wir bei der Registrierung erhalten. Dieser muss hier (ohne eckige Klammern) angegeben werden. Wer ein X1541-Kabel verwendet, darf den Parameter "-xe" nicht verwenden. Wenn alles geklappt hat, sollte 64HDD starten und die zur Verfügung gestellte Laufwerksnummer und das Verzeichnis anzeigen.


Am C64: Und jetzt laden wir am C64 das Verzeichnis ein, als ob es eine normale Diskette wäre…

LOAD"$",8

...und lassen uns den Inhalt mit dem Befehl LIST anzeigen. Wir sollten nun den Inhalt des Laufwerkes "C:" des DOS-Rechners sehen.


Wenn das funktioniert hat, haben wir alles richtig gemacht und können zu den 64HDD-Parametern und C64-Befehlen weitergehen.

Die Parameter

64HDD unterstützt eine Vielzahl an Parameter. In dieser Anleitung werden nur die wichtigsten gezeigt. Einige werden nicht nur für die Ausführung von 64HDD vorausgesetzt, sondern beheben eventuelle Probleme, die bei schnellen Rechnern auftauchen könnten.

Parameter: -8 bis -15
Funktion: Stellt den C64 ein Laufwerk mit der entsprechenden Geräte-Nummer bereit. Üblicherweise "-8". Das Stammverzeichnis des Laufwerkes C: wird als Speicherplatz für den C64 eingebunden.

Parameter: +8 bis +15 (Verzeichnis)
Funktion: Stellt den C64 ein Laufwerk mit der entsprechenden Geräte-Nummer bereit. Üblicherweise "+8". Das angegebene Verzeichnis wird als Speicherplatz für den C64 eingebunden. Das sollte das Verzeichnis sein, in dem sich die C64 Disketten-Images befinden.
Beispiel: +8 C:\\roms

Parameter: -faster
Funktion: Dieser Parameter beschleunigt die Datenübertragung. Allerdings sollte dieser nur mit 386/486 CPUs verwendet werden, die mit einem Takt von mehr als 40 MHz laufen. Bei anderen CPUs wird dieser Parameter nicht empfohlen.

Parameter: -fastest
Funktion: Dasselbe wie -faster, ist aber für 386/486 CPUs geeignet mit einem Takt unterhalb von 40MHz.

Parameter: -nocredits
Funktion: Überspringt die Darstellung der Credits und sorgt somit für einen geringfügig schnelleren Start von 64HDD

Parameter: -noreset
Funktion: Ein sehr nützlicher Parameter, der dafür sorgt, dass 64HDD nicht beendet wird, wenn der C64 ausgeschaltet / neu gestartet wird.

Parameter: +lpt (Nummer)
Funktion: Falls mehrere parallele Schnittstellen im Rechner verbaut sind, muss angegeben werden, welche davon verwendet werden soll. Die Standardeinstellung ist 1.

Parameter -xe
Funktion: Dieser Parameter muss angegeben werden, falls ein XE1541-Kabel verwendet wird. Bei der Verwendung eines X1541-Kabels wird kein Parameter benötigt.

Parameter: -ls
Funktion: Dieser Parameter sorgt dafür, dass der Inhalt des Ordners am C64 nach der Eingabe von LOAD"$...",8 bzw. LIST gleich angezeigt wird. Ohne diesen Parameter wird erst bei wiederholter Eingabe des Befehles das Inhaltsverzeichnis angezeigt.

Parameter: +p (1-9999)
Funktion: Bei Problemen mit Rechner mit variabler Taktfrequenz könnte dieser Parameter hilfreich sein. Hier sollte die verwendete Taktfrequenz angegeben oder alternativ andere Frequenzen getestet werden.

Disketten einbinden und Programme laden

Wenn 64HDD läuft, können wir am C64 auf das Dateisystem des DOS-Systems zugreifen und Disketten-Images einbinden bzw. Programme laden. Die wichtigsten Befehle, die dafür nötig sind, werden hier aufgelistet.

Befehl: LOAD"$",8
Funktion: Lädt das Inhaltsverzeichnis des Ordners, in dem man sich gerade befindet. Mit LIST wird das Inhaltsverzeichnis angezeigt.

Befehl: LOAD"$[Disketten-Image/Verzeichnis]",8
Funktion: Wechselt in das DOS-Verzeichnis oder bindet ein Disketten-Image (z.B. D64) ein.
Beispiel: LOAD"$games.d64",8

Befehl: LOAD"[Programmname.prg]",8,1
Funktion: Lädt das angegebene Programm
Beispiel: LOAD"game.prg",8,1

Befehl: LOAD"$..",8
Funktion: Steigt eine DOS-Ebene nach oben

Befehl: LOAD"$[LW Buchstabe]:/",8
Funktion: Wechselt auf ein anderes PC-Laufwerk.
Beispiel: LOAD"$d:/",8

Wer JiffyDOS in seinem C64 installiert hat, kann sich über eine einfachere Handhabung freuen. Denn die Funktionstasten sind mit nützlichen Befehlen belegt und etwas weniger tippen müssen wir auch noch. Beispielsweise sieht ein Verzeichniswechsel wie folgt aus: @CD:[Verzeichnis].

Es gibt unzählige weitere DOS- und C64-spezifische Befehle. Dies würde aber den Umfang dieser Anleitung sprengen. Eine englische Dokumentation mit allen Befehlen ist hier zu finden: www.64hdd.com.

Beispiel:
Da die Vielzahl an Parametern und Befehlen für Verwirrung sorgen kann, zeige ich zur Verdeutlichung noch ein kleines Beispiel in dem wir annehmen, dass 64HDD mit folgenden Befehl gestartet wurde:

64HDD -Registrieungscode] -8 -xe -ls -noreset



Am C64: Wir laden das Verzeichnis mit diesen Befehlen.

LOAD"$",8
LIST

Der Inhalt des Laufwerkes C: sollte zu sehen sein.


Jetzt wechseln wir in das Verzeichnis "ROMS", das wir am Anfang dieser Anleitung erstellt haben (oder einen anderen beliebigen Ordner der Diskettenimages enthalten).

LOAD"$ROMS",8
LIST


Nun binden wir eine beliebige Diskette ein (in meinem Fall RTYPE.D64) und starten die erste Datei, die sich darauf befindet.

LOAD"$RTYPE.D64",8
LOAD"*",8,1
RUN


64HDD automatisch starten

Egal ob 64HDD von DOS oder von der Bootdiskette gestartet wird. Jedes Mal muss der 64HDD Befehl mit den Parametern angegeben werden. Oder wir tragen ihn in die Autoexec.bat ein. Der Inhalt dieser Datei wird bei jedem Bootvorgang ausgeführt. Die Datei befindet sich im Stammverzeichnis von DOS (oder Bootdiskette). Dort geben wir den Befehl "EDIT AUTOEXEC.BAT" ein. Der Befehl 64HDD samt Pfad und Parameter sollte in der letzten Zeile angegeben werden. Das sieht in meinen Fall so aus:

C:\\64HDD\\64HDD -[Registrierungscode] +8 C:\\ROMS -xe -ls -noreset -nocredits


Dann speichern wir die Datei (Taste AltGr, Pfeiltaste nach unten auf Speichern). Beim nächsten Systemstart sollte 64HDD automatisch starten.