#244 – el commodore – XVII – 1581 Replica data

Mann, was war das beim letzten Mal für eine Kopierorgie gegen Ende des Artikels? Das muss doch irgendwie einfacher gehen, die noch fehlenden Dateien von der 5,25“-Diskettenrückseite auf unsere 3,5“-Diskette zu übertragen, oder?

Dieses „Laufwerks-Umsteck-Chaos“ wäre für mich prinzipiell in Ordnung, wenn man nicht jede Datei einzeln kopieren (und dementsprechend oft die Laufwerke umstecken) müsste. Tatsächlich geht das, wir verwenden nur die falsche Software! 😀 Mit dem Programm „Unicopy“ lassen sich mehrere Dateien auf einmal kopieren. Wie bereits in Artikel 241 habe ich wieder das SD2IEC aus Artikel 152 verwendet, um die Programmdatei auf den C64 zu bringen.

Fun Fact: Ist euch aufgefallen, wie ich diesmal die verkürzten Befehlsformen für LOAD (Shift+O) und LIST (Shift+I) verwendet habe? Kritiker nennen es faul, ich nenne es effizient! 😉

Die Software arbeitet größtenteils selbsterklärend. Nachdem man angegeben hat, ob sich noch weitere Programme im Speicher befinden und ob man auf Kassette oder Diskette speichern möchte, kann man für jede – auf der Diskette gefundene – Datei entscheiden, ob man diese kopieren möchte. Leider kann auch Unicopy nicht zaubern und wir müssen dennoch ein paar Mal umstecken, da sich immer nur ca. eine Hand voll Dateien auf einmal kopieren lässt. Doch woran liegt das?

Eigentlich ist die Erklärung total logisch. Tatsächlich ist das kein Problem der Software, sondern eher der Tatsache geschuldet, dass wir immer nur abwechselnd ein Laufwerk am C64 anschließen. Sobald wir das 1541er-Laufwerk abstecken und dafür das 1581er-Drive anstecken, steht ja der Quelldatenträger (auf dem sich aber die Dateien, die wir kopieren wollen, befinden) nicht mehr zur Verfügung. Damit der Transfervorgang klappt, müssen also die von der 5,25“-Diskette gelesenen Dateien temporär irgendwo zwischengespeichert werden. Doch wo?

Der „Zwischenbereich“ befindet sich im Arbeitsspeicher (RAM) des Computers. Dort wird einerseits das vom Benutzer geladene BASIC-Programm (in unserem Fall Unicopy) abgelegt und ebenso können hier temporär Daten gespeichert werden. Zwar trägt der C64 die Zahl 64 (und damit die Größe seines RAMs) bereits im Namen, doch von den insgesamt 65.536 Byte stehen dem Benutzer nur 38.911 Byte (knapp 38 kB) zur Verfügung. Der Rest des RAMs wird für Systemroutinen, Systemvariablen, den Kernel, den Bildschirmspeicher, den BASIC-Interpreter oder diverse Ein- und Ausgabe-Chips benötigt.

Ganz schön abstrakt das ganze! Ich versuche im Folgenden die einzelnen Schritte nochmal anhand der Grafik durchzugehen. Als erstes haben wir ja das Kopierprogramm Unicopy vom SD2IEC in den RAM geladen. Anschließend haben wir das 1541er-Laufwerk angesteckt und es wurden drei Dateien von der 5,25“-Diskette gelesen – ebenfalls in den Hauptspeicher des Computers. Sobald dieser voll ist, fordert uns das Programm zu einem Schreibvorgang auf. Daraufhin habe ich das 1581er-Drive angesteckt, um die Daten aus dem Hauptspeicher auf die 3,5“-Diskette zu schreiben.

Wir halten fest: Wie viele Dateien auf einen Rutsch kopiert werden können, ist also abhängig von der Größe der zu kopierenden Dateien, sowie dem im Arbeitsspeicher zur Verfügung stehenden Speicherplatz. Im Falle der Turrican-Diskette waren es immerhin drei bis vier Dateien, die sich auf einen Schwung kopieren haben lassen.

Fun Fact: Das Programm Unicopy arbeitet dabei sowieso schon recht optimiert, denn es wirft temporär BASIC-Komponenten aus dem Arbeitsspeicher und so können – sofern sich nicht noch weitere Programme (z.B. für zusätzlich angesteckte Hardware) im RAM befinden – bis zu 192 Blöcke (ca. 48 kB) anstatt der normal zur Verfügung stehenden 38 kB für den Kopiervorgang von Dateien genutzt werden – cool! 🙂

Puh, was für ein Aufwand! Immerhin haben wir jetzt endlich eine fertige 3,5“-Turrican-Disk mit sämtlichen benötigten Dateien.

Die Frage ist: Läuft das Spiel denn auch? Tatsächlich – wir können die „Turn the Disk“-Meldung einfach mit Return überspringen und der erste Level wird geladen – Erfolg! 🙂

Not so fun Fact: Dieser Trick (also das Zusammenkopieren von mehreren Diskettenseiten auf eine 3,5“-Diskette funktioniert leider nicht bei jedem Spiel. Einige Entwickler und Hersteller haben Routinen eingebaut, welche den „Disk Name“ oder die „Disk ID“ abprüfen und der stimmt dann (wenn sich alle Dateien auf einer Disk befinden) natürlich nicht mehr überein. Fies! 😀

Einen kleinen Schönheitsfehler sollten wir aber noch korrigieren: Bei der Formatierung habe ich die Disk „RETROLOLO“ genannt, jetzt würde mir aber als Label „TURRICAN“ besser gefallen, da es mehr dem Inhalt entspricht. Leider lässt sich der Name einer Disk nicht ohne weiteres mit Bordmitteln umbenennen. Dafür braucht man extra Tools, die das bewerkstelligen können.

Not so fun Fact: Der allseits bekannte und empfohlene Weg ist es, die Diskette neu (mit korrektem Namen) zu formatieren und anschließend wieder zu beschreiben – nein, danke! xD

Wie wir in Artikel 147 gelernt haben, ist die magnetisierbare Schicht einer Diskette in zahlreiche Spuren und Sektoren aufgeteilt. Zum Ansprechen und Verwalten der Daten in der Struktur wird ein Dateisystem benötigt. Verwendet man die großen 5,25“-Disketten (1541er-Laufwerk) kommt das CBMFS zum Einsatz. Neben den eigentlichen Daten befinden sich auf einer CBMFS-Diskette auch Verwaltungsinformationen wie z.B. die BAM (Block Availability Map) auf Spur 18 in Sektor 0 sowie das Directory (Inhaltsverzeichnis über die auf dem Datenträger befindlichen Dateien samt Position) auf Spur 18 ab Sektor 1.

Fun Fact: Eine 5,25“-Diskette im CBM-Format kann maximal 144 Directory-Einträge besitzen, d.h. wir können nicht mehr als 144 Dateien auf eine Diskette (bzw. eine Diskettenseite) schreiben. In der Praxis ist das wohl eher kein Problem, weil ja sowieso nur 166 kB zur Verfügung stehen! 😉

Auweia, schon wieder so viel langweilige Theorie. Müssen wir das wirklich alles wissen? Tatsächlich sind diese Informationen für uns wichtig, denn in der BAM werden (neben Anzahl und Position der belegten und freien Blöcke einer Disk) auch der Name einer Diskette sowie die Disk-ID gespeichert! Praktischerweise gibt es zahlreiche Programme (wie z.B. den „Disk Title Changer“ oder den „Disk Wizard“), welche Spur 18 (und somit die BAM und das Directory der Diskette) bearbeiten können. Na, das ist doch genau das, was wir brauchen, oder? 🙂

Ich befürchte ich muss euch enttäuschen, denn bisher habe ich euch ja „nur“ etwas über die 5,25“-Disketten, welche im 1541er-Laufwerk verwendet werden, erzählt. Wie wir mittlerweile wissen, verwendet das 1581er-Laufwerk aber 3,5“-Disketten, welche mit einer erweiterten Form des

CBM-Dateisystems (1581-FS) formatiert sind. Im Vergleich zum „normalen“ CBMFS werden hier die BAM und das Directory nicht auf Spur 18, sondern Spur 40 gespeichert. Ebenso sind Informationen über den Disk-Namen und die Disk-ID in einen eigenen Header-Sektor gewandert. Somit ist es kein Wunder, dass die für das 1541er-Laufwerk designten Programme nicht funktionieren. Leider gibt es auch kaum Software, welche mit dem erweiterten Dateisystem umgehen kann. Und jetzt?

Fun Fact: Auf einer 3,5“-Diskette stehen insgesamt 296 Directory-Einträge zur Verfügung. Die Frage ist, welcher Geisteskranke knapp 300 Dateien auf so eine C64-Floppy schreiben würde? 😀

Nach einigem Herumprobieren habe ich dann doch noch eine Lösung gefunden. Theoretisch würde man bestimmt irgendwo im Netz ein geeignetes Tool finden, aber ich denke wir sollten mal wieder die Final Cartridge (aus den Artikeln 153 und 154) verwenden! 🙂

Mit angestecktem Modul am C64 starten wir die Software „Disc Doctor“ und greifen auf Spur 40 zu:

Und prompt finden wir die Stelle, an welcher der Disk-Name gespeichert ist. Diesen können wir im „Textmodus“ (mit einem Druck auf „T“) abändern. Da der Name „TURRICAN“ ein Zeichen kürzer als „RETROLOLO“ ist, müssen wir anschließend noch das letzte Byte (also das „O“) im Hex-Modus (Druck auf „@“) durch ein Blank (Hex „a0“) ersetzen, bevor wir die Änderungen speichern. Abgefahren! 😀

Und, hat unsere Änderung funktioniert? Tatsächlich – jetzt heißt die Diskette TURRICAN. Nice! 🙂

Puh – was für ein Aufwand – und das alles nur, um einen Namen einer Diskette zu ändern! 😀 Naja, was soll’s das war es mir wert. Immerhin haben wir wieder etwas dazugelernt! 😉

Schön, dass das jetzt alles funktioniert hat, aber, wenn ich ehrlich bin ist die Lösung, die Dateien zwischen dem 1541er-Laufwerk und der 1581-Replica immer durch Umstecken der Laufwerke kopieren zu müssen, schon irgendwie aufwändig. Gibt es da keine bessere Lösung?

Wenn ich schon so provokativ frage, dann wird es wohl eine einfachere Möglichkeit geben, oder? 😛 Tatsächlich benötigen wir lediglich ein zweites Netzteil! Ich habe hierfür ein gebrauchtes Netzteil vom Typ DV-5128UP, welches für sämtliche Floppy-Modelle verwendet werden kann, erworben:

Mit dem frisch gekauften Netzteil (welches am 1581er-Laufwerk angeschlossen wird), sowie einem zweiten seriellen Kabel (welches ich noch aus Artikel 151 übrig habe), können wir die Geräte einfach „hintereinander“ (in Reihe) schalten. Dazu wird der „INTERFACE“-Port (siehe Artikel 146) des 1541er-Laufwerks zum Anschluss des 1581er-Laufwerks verwendet:

Das ist aber nur die halbe Miete, denn damit beide Laufwerke vom C64 adressiert werden können, müssen wir die „Gerätenummer“ unserer 1581er-Replica auf einen anderen Wert als 8 (da dieser ja schon vom 1541er-Laufwerk belegt wird) mit Hilfe des DIP-Schalters auf der Rückseite des Geräts umstellen. Das haben wir ja schon eher unfreiwillig bei der Fehlersuche in Artikel 243 geübt! 😛

Fun Fact: In der auf dem Bild sichtbaren Schalterposition hat das Laufwerk jetzt die Geräteadresse 9!

Schaut etwas chaotisch aus, sollte aber klappen! 😀

Es scheint zu funktionieren, denn während sich das 5,25“-Laufwerk über Adresse 8 ansprechen lässt, ist das 3,5“-Laufwerk jetzt über Adresse 9 erreichbar. Sehr schön! 🙂

Jetzt fehlt eigentlich nur noch eine möglichst flexible Software, welche mit beiden Laufwerkstypen umgehen kann. Mit „FCOPY“ habe ich da einen geeigneten Kandidaten gefunden.

 Fun Fact: Natürlich gäbe es noch zahlreiche weitere Alternativen wie z.B. das „1581 Toolkit“, „CBM-Command“, „copydisk“, „WCopy+“ oder „DraCopy“ (inklusive einer neuen, verbesserten Version). Seht es mir nach, dass ich nicht den Nerv habe, mir alle Tools anzusehen. Hauptsache eines davon funktioniert! 😀

Um zu testen, ob das Tool auch wirklich das tut, was es verspricht, habe ich es heruntergeladen, auf eine SD-Karte kopiert und anschließend über das SD2IEC auf dem C64 gestartet. Jetzt können wir versuchen, ein paar Daten von einer 5,25“-Diskette mit auf die 3,5“-TURRICAN-Diskette zu kopieren. Die Bedienung ist dabei sehr intuitiv: Laufwerke auswählen, Dateien auswählen, Kopiervorgang starten.

Not so fun Fact: Das alles klappt allerdings nur für nicht kopiergeschützte Disks. Möchte man auch Spiele, Programme, Dateien, etc. von einer kopiergeschützten Diskette kopieren, muss man wesentlich tiefer einsteigen und sich mit ganz anderer Software, wie z.B. der der Toolsammlung „Maverick“ (Kopierschutz-Knacker) beschäftigen. Keine Angst, das erspare ich euch – und mir! 😉

Abschließend sollten wir uns nochmal den Inhalt der Diskette anzeigen lassen, nur um sicher zu gehen, dass die Dateien auch wirklich kopiert wurden. It works – I’m happy! 🙂

Ende gut, alles gut. Ich denke letztendlich haben wir eine gute Lösung zum Kopieren von Dateien zwischen den Laufwerken gefunden. Schon irgendwie lustig – hätte ich das verdammte Netzteil schon früher gehabt, hätten wir uns die ganze Kopierorgie sparen können. Was soll’s, so haben wir zumindest ein paar neue Tools kennengelernt. Die Zeit bekommen wir eh nicht mehr zurück! 😀

Bitte entschuldigt mich jetzt – ich werde mich jetzt zur Entspannung nochmal etwas „Turrican“ widmen – diesmal aber mit einem Joystick und nicht mit kryptischen Befehlen auf der Tastatur… 😉

In diesem Sinne – bis die Tage, ciao!

Write a comment