Arme Leute Apple Disk Transfer

Letzte Änderung: 2008-09-16

Auf dieser Seite wird beschrieben, wie von einem Apple II alte DOS 3.3 Disketten ohne zusätzliche Hardware gebackupt werden können, falls dein Apple weniger als 64k RAM (deswegen der Name!) hat.

Falls dein Apple >= 64k RAM hat, bist du mit ADTPro vermutlich besser bedient.

Ich bin mir nicht ganz sicher, ob das Zeug hier für alle möglichen Konfigurationen funktioniert. Ich hab alles für meinen Apple II europlus gemacht und damit funktionierts natürlich. Alle Disketten, die ich gebackupt habe, waren mit DOS 3.3 formatiert und hatten dementsprechend 16 Sektoren und 35 Spuren. Disketten mit Versionen vor 3.3 haben nur 13 Sektoren. Ich habs nicht getestet, aber prinzipiell sollte alles auch mit ProDOS- und DOS <3.3-Disketten klappen.

Abgesehen für den hier geschilderten Backup-Zweck kann mit dem "a2audioup"-Tool prinzipiell jegliches Programm über eine Audioverbindung in den Speicher des Apples geladen werden, vielleicht findet das der eine oder die andere (unwahrscheinlich) praktisch.

Übersicht

So werden wir vorgehen:

Details

PC und Apple verbinden

Das Line-Out der Soundkarte wird mit "CASSETTE IN" am Apple und das Line-In bzw. der Mikrophon-Eingang wird mit "CASSETTE OUT" verbunden. Falls du nur ein Kabel hast, ist das auch ok, weil wir Zeug immer nur in eine Richtung schicken. Du musst halt dann jeweils umstecken, was etwas lästig sein könnte.

Wem das zu wenig Anleitung war, kann hier genauer nachlesen.

Das diskdump-Tool "disk2cassette.bin" auf dem Apple starten

Schalte den Apple an und boote von einer DOS-formatierten Diskette. In den ROM-Monitor gelangt man, indem man

CALL -151

eingibt. Um das Programm vom Kassetten-Port zu lesen, folgendes eintippen (das sind Nullen, keine Ohs):

C00.CFFR

Danach wartet der Apple schon auf Daten. Von der PC-Seite senden wir die Daten, indem wir "a2audioup" folgendermaßen starten:

a2audioup -i disk2cassette.bin

Nachdem die Daten übertragen worden sind (dauert nur ein paar Sekunden), sollte der Apple biepen und zum Prompt zurückkehren. Wenns einen Fehler gegeben hat (oder gar nix passiert ist), gibts dazu ein paar Tipps auf der ADTPro-Seite.

Nun sitzt das Programm im Speicher und wartet nur drauf, gestartet zu werden. Davor aber starten wir am PC unseren Lieblings-Wave-Editor (Audacity, Wavelab, ...) und fangen an mit 44100Hz, 8 bit und mono aufzunehmen. Dann starten wir so das Programm am Apple:

C00G

Sobald es rennt, fängt es an, die eingelegte Diskette in den Speicher zu lesen. Wenn kein Platz mehr im Speicher ist, werden die Daten über den Kassetten-Port geschickt. Das dauert eine Weile, hier ist etwas Geduld gefragt. Danach wird das Prozedere wiederholt, bis die komplette Diskette übertragen wurde. Die Ausgabe sollte so aussehen:

00 00: 00 00 01: 00 00 02: 00 00 03: 00 00 04: 00 . . . 07 04: 00 -

Die erste Zahl ist die aktuelle Spur, die zweite der aktuelle Sektor und die Nummer nach dem Doppelpunkt ist der Fehlercode des Lesezugriffs. Im Normalfall kommen da lauter Nullen, bei einem (meist akustisch untermaltem ) Lesefehler steht hier was anderes als Null.

Nach jeweils etwa 120 Sektoren wird ein Bindestrich angezeigt. Das ist (wie oben geschildert) der Zeitpunkt, zu dem Daten beim Kassetten-Port rausgeschickt werden. Deswegen sollte hier im Wave-Editor auf jeden Fall was daherkommen!

Eine ganze Diskette dauert ca. 12 Minuten. Fertig ists dann, wenn der Apple ein paar mal biept und das Prompt wieder da ist.

Die Aufnahme stoppen. Das Resultat sollte in etwa so aussehen:

Result

Die Aufnahme dekodieren

Wir sind fast fertig! Im letzten Schritt müssen wir nur noch dem Tool "a2cassdecode" unsere Aufnahme geben. Die Aufnahme muss nicht unbedingt eine WAV-Datei sein, die Daten müssen nur 8bit unsigned sein.

So wirds dekodiert:

a2cassdecode recorded.wav image.dsk

Die Ausgabe sieht so aus:

Apple ][ Cassette Audio Decoder (c) 2008 seb at riot dot org $Rev: 20 $ DC=0.00 34.42 secs : sync found, period is 29, samplefreq is ~44615.38 44.59 secs : data starts 176.26 secs : data ends: 29952 bytes, checksum OK 205.11 secs : sync found, period is 28, samplefreq is ~43076.92 215.64 secs : data starts 337.04 secs : data ends: 29952 bytes, checksum OK 359.80 secs : sync found, period is 28, samplefreq is ~43076.92 370.34 secs : data starts 492.20 secs : data ends: 29952 bytes, checksum OK 515.04 secs : sync found, period is 28, samplefreq is ~43076.92 525.57 secs : data starts 646.97 secs : data ends: 29952 bytes, checksum OK 665.09 secs : sync found, period is 28, samplefreq is ~43076.92 675.62 secs : data starts 771.08 secs : data ends: 23552 bytes, checksum OK Total: 143360 bytes

Falls das Programm irgendwelche Fehler meldet (checksum FAIL etc.), ist höchstwahrscheinlich die Aufnahme schlecht. Überprüfe die Verkabelung und schau im Wave-Editor nach, ob die Aufnahme eine vernünftige Lautstärke hat. Es muss nicht permanent auf 0db sein (sollte es nicht einmal), aber etwas Rauschabstand sollte sie schon haben.

Das ist es schon! Die Ausgabedatei (DSK) kann von allen Apple II-Emulatoren verwendet werden.

Downloads

Die Tools sollten auch unter Linux und ev. anderen POSIX-Plattformen baubar sein, Makefiles sind dabei.

Referenzen

2012-01-22 16:37