Einbau eines 3,5"/720K-Laufwerks

Die Motivation

Es gab zwei Gründe für mich, ein 3,5"-Laufwerk in diesen Rechner einzubauen:

  1. Experimente mit Windows: sehr viel Software aus der Zeit von Windows 2 gab es nur auf 3,5"/720K, dementsprechend sind auch die meisten Images in diesem Format. Man könnte das zwar irgendwie umkopieren oder sich sonstwie anders behelfen, aber der eigentlich richtige Schritt (also das, was man damals auch getan hätte) ist der Einbau eines passenden Laufwerks.
  2. Die hässliche Lücke im Gehäuse; zwar ist meine Abdeckung aus Sperrholz ganz gut geraten, aber so ein beige-vergilbtes Laufwerk macht sich da einfach noch ein bisschen besser drin.

Allerdings stand für mich fest, dass das 5,25"-Laufwerk weiterhin das charaktergebende Hauptlaufwerk bleiben und somit als Laufwerk A: angesprochen werden sollte. Das verlangt mir ein bisschen Umdenken ab, weil in allen meinen anderen PCs schon immer Laufwerk A: mit 3,5"/HD und Laufwerk B: mit 5,25"/HD besetzt war, also Laufwerk B: für "die großen Disketten" zuständig war, was sich recht nachhaltig in mein Hirn eingebrannt hat. Aber zum Glück ist das nicht weiter schlimm, außer dass man bei einem versehentlichen Zugriff auf ein leeres 5,25"-Laufwerk unter DOS mit einer erheblichen Wartezeit bestraft wird, bevor die erlösende Frage nach "Abort, Retry, Fail?" kommt.

Das Laufwerk

Meine Bastelkiste hatte noch zwei beige 3,5"-Laufwerke zu bieten. Zwar waren beide für High Density (also 1,44M) ausgelegt, aber bei 3,5" ist das nicht schlimm: diese Laufwerke können alle auch 720K. Das ist sogar das einzige, das man ihnen in einem XT entlocken kann -- für die höheren Kapazitäten bedarf es eines neueren Floppy-Controllers bzw. BIOS. Jedenfalls habe ich 3,5"/1,44M bisher nur in ATs bzw. 286ern und aufwärts gesehen.

Eine wesentliche weitere Eigenschaft der 3,5"-Laufwerke ist der Steckverbinder für das Datenkabel: während bei 5,25"-Laufwerken ein Platinenstecker zum Einsatz kommt (also die Leiterplatte der Stecker ist und die Buchse dort aufgesteckt wird), findet man an 3,5"-Laufwerken einen zweireihigen Pfostenstecker (bzw. eine Stiftleiste) vor, auf den eine Pfostenbuchse gesteckt wird.

Platinenbuchse für 5,25"-Laufwerke Pfostenbuchse für 3,5"-Laufwerke

In moderneren Rechnern findet man üblicherweise gemischte Kabel, bei denen an einem Ende eine Pfostenbuchse für die Controller-Karte bzw. das Mainboard vorhanden ist, dann eine Platinenbuchse für ein 5,25"-Laufwerk folgt und am anderen Ende wieder eine Pfostenbuchse für ein 3,5"-Laufwerk sitzt. Nicht so in meinem XT, dort sind alle Steckverbinder als Platinenbuchse ausgeführt, denn etwas anderes gab es zu der Zeit nicht. Bleiben also drei Optionen:

  1. Ein anderes Kabel finden
  2. Ein anderes Kabel basteln
  3. Einen Adapter beschaffen

Option 1 ist schwierig, weil alle gemischten Kabel, die ich bisher in den Fingern hatte, auf der Controller-Seite auch eine Pfostenbuchse hatten, mein XT-Floppy-Controller aber nunmal einen Platinenstecker hat (weil: gab ja noch nichts anderes).

Option 2 wäre machbar gewesen; einfach eine Pfostenbuchse auf das Flachkabel pressen, fertig. Verändert aber das Original-Kabel.

Option 3 habe ich gewählt: es gibt hübsche kleine Adapter-Platinen, die auf der einen Seite eine Pfostenbuchse haben und auf der anderen Seite die nackte Leiterplatte als Stecker bieten, genau wie ein 5,25"-Laufwerk. Ich habe meinen Adapter via eBay für 6,95 EUR erstanden.

Meine Wahl fiel dann auch auf ein bestimmtes Laufwerk: normalerweise ist neben der Pfostenleiste eine Aussparung, in die bei Pfostenbuchsen mit Kodierung die Nase greift; bei einem der beiden Laufwerke war das nicht der Fall, ergo konnte ich es bisher nie mit kodierten Kabeln benutzen. Der Adapter hingegen hat keine Kodierung und war somit wie geschaffen für dieses Laufwerk (bzw. andersherum).

Einbau und erster Funktionstest

Ich wollte das Laufwerk zunächst nur provisorisch anschließen und testen, bevor ich mich mit der richtigen Befestigung auseinandersetze. Allerdings war es gar nicht so leicht eine Stelle zu finden, bei der das Laufwerk nicht mit beweglichen Teilen aufliegt. Am Ende habe ich die Kabelei nach oben durchgezogen und das Laufwerk auf das Netzteil gelegt; nicht, ohne unterwegs eine hauchdünne Schicht der Isolierung an den scharfen Blechkanten des Gehäuses zu verlieren...
Als nächstes folgte ein kurzer Testlauf, immer mit dem Finger am Schalter der Mehrfachsteckdosenleiste um zur Not schnell abschalten zu können. Ich hatte mal ein 3,5"-Laufwerk, das beim ersten Einschalten nach längerer Ruhezeit tatsächlich Rauch ausgespuckt und eine Induktivität durchgebraten hatte.

Erste Hürde genommen, doch: DOS wollte das Laufwerk nicht ansprechen; weder kamen Geräusche aus dem Laufwerk, noch hat die Status-LED geleuchtet. Stattdessen meldete sich sowohl für A: als auch für B: das 5,25"-Laufwerk zu Wort.
Eine kurze Google-Recherche verriet mir dann, dass auch Diskettenlaufwerke per Jumper konfiguriert werden. Kannte ich bis dahin nur von Festplatten (Master/Slave/Cable Select), bei Diskettenlaufwerken wusste ich nur vom "Twist" im Kabel zur Auswahl zwischen A und B.
Also: bei Diskettenlaufwerken gibt es Jumper mit der Bezeichnung "DS0", "DS1", "DS2" und "DS3", was für Drive Select steht und die vier möglichen Laufwerkeinheiten unterscheidet, die vom IBM PC unterstützt wurden. Aber das war zu früh gefreut: beide Laufwerke standen bereits auf DS1, was bedeutet, dass der Twist im Kabel entscheidet wer A und wer B ist: von Controller- bzw. Mainboard-Sicht aus vor dem Twist ist Laufwerk B, hinter dem Twist (also endständig) ist Laufwerk A.

Als nächstes habe ich das 5,25"-Laufwerk ausgebaut und nur das 3,5"-Laufwerk angeschlossen, wieder an Position B. Auch hier tat sich nichts, weder A: noch B: waren vorhanden.
Danach habe ich das 3,5"-Laufwerk auf Position A gesetzt und siehe da: die LED ging jetzt an, aber ich konnte immer noch keinerlei Motorgeräusche hören. Um ein Hardware-Problem am Laufwerk selbst auszuschließen habe ich das andere 3,5"-Laufwerk probiert, mit dem gleichen Ergebnis (lautlos, aber LED an).
Irgendwann kam ich mangels anderer Optionen auf die Idee, eine Diskette einzulegen, und habe nicht schlecht gestaunt, als ein DIR A: den Inhalt der Diskette ausspuckte; quasi lautlos. Das Laufwerk hat also funktioniert, war nur völlig unerwartet leise. Daraufhin habe ich wieder auf das erste Laufwerk zurückgebaut, was mit eingelegter Diskette dann auch funktioniert hat. Aber: weiterhin nur auf Position A, nicht auf Position B.

Nachdem ich das 5,25"-Laufwerk auch wieder eingebaut hatte war eigentlich klar: beide Laufwerke funktionieren auf Position A, nicht jedoch auf Position B. Also sieht es so aus, als wäre "B" einfach nicht da. Nach einem kleinen Exkurs zum Thema Terminierung (was sich als Sackgasse entpuppte) habe ich meine Aufmerksamkeit dem DIP-Schalter auf dem XT-Mainboard gewidmet. Die Dokumentation auf minuszerodegrees.net verriet was ich schon vermutete: die Schalter 7 und 8 kodieren die Anzahl der Diskettenlaufwerke und standen beide auf ON.

DIP 7DIP 8Floppy drive count
ONON1
OFFON2
ONOFF3
OFFOFF4

Also flugs DIP 7 von ON auf OFF geschaltet und schon funktionierten beide Laufwerke. So einfach kann es sein...

Danach habe ich die Laufwerke final befestigt, wobei das bei dem 3,5"-Laufwerk ziemlich fummelig war: um an die abgewandte Seite des Laufwerkkäfigs zu gelangen muss der Zwischenboden mit dem Mainboard weichen, was wiederum den Ausbau sämtlicher Steckkarten erfordert. Aber was soll's, zu oft habe ich schon über nur einseitig befestigte Laufwerke geschimpft, als dass ich das jetzt selbst genauso hätte machen könnte.

Abschließend habe ich die vergilbte zweite Schachtabdeckung unterhalb des neuen Laufwerks wieder aufgesetzt, nur um festzustellen, dass irgendetwas nicht stimmte: da war eine weißliche Kante zu sehen, wenn man genau in den Spalt unterhalb des Laufwerks schaute. Tatsächlich hatte ich sie falschrum aufgesetzt, was vorher unten war (wo kein Licht hinfällt), war oben. Das habe ich noch korrigiert, sodass die sichtbaren Teile den gleichen Farbton hatten; manchmal sind es diese kleinen Details, die mich glücklich machen.

Gründlicherer Funktionstest

Nachdem alles eingebaut und zugeschraubt war konnte der spannende Teil kommen: was funktioniert, was nicht? Beim Mischen unterschiedlich alter Technik ergibt sich hier erfahrungsgemäß ein breites Spektrum. Auch will ich noch einmal drauf hinweisen, dass die Ergebnisse mit nur einer anderen Komponente (z.B. ein anderes Laufwerk) ganz anders aussehen können. Für Google: mein Laufwerk ist ein TEAC FD-235HF.

Unter MS-DOS 3.30 ließen sich als 720K angelegte Disketten vollständig lesen. Dies galt sowohl für "echte" 720K-Disketten als auch für 1,44M-Disketten die mit 720K formatiert wurden. Allerdings gelang das Formatieren selbst nicht, FORMAT erzeugte immer nur 360K-Medien. Auch die Parameter /N und /T konnten keine Abhilfe schaffen. Der Versuch mit DISKCOPY eine 720K-Diskette zu kopieren ergab die kuriose Meldung, dass Quell- und Ziellaufwerk nicht kompatibel seien, obwohl ich für beides das gleiche Laufwerk angegeben hatte...

Als nächstes wollte ich MS-DOS 5.0 probieren. Dabei habe ich festgestellt, dass PCs grundsätzlich nur von A: booten können. Das BIOS eines moderneren PCs hätte hier das Vertauschen von A und B erlaubt, aber ohne BIOS... angeschmiert. Da meine DOS-5-Installationsmedien alle auf 3,5"/720K-Datenträgern vorlagen, musste ich also neue 5,25"-Medien erzeugen; was dank WinWorld kein wirkliches Problem war.

Mit MS-DOS 5.0 konnte FORMAT Disketten mit 160K, 180K, 320K und 360K formatieren, jedoch nicht mit höherer Kapazität. Lesen von 720K-Disketten ging weiterhin. Interessanterweise war DISKCOPY (anders als bei DOS 3.30) in der Lage, 720K-Medien zu erzeugen. Hier kam die Meldung "formatting while copying", was scheinbar auch tatsächlich als zwei separate Schritte ausgeführt wurde. Da stellt sich die Frage: warum dann nicht auch einzeln, z.B. mit FORMAT??
Eine gerade per DISKCOPY mit 720K angelegte Diskette wurde durch FORMAT wieder zu einem 360K-Medium degradiert. Das gleiche gilt auch für 720K-Medien die ich per pc-serial-loader angelegt habe -- was für sich genommen auch funktioniert. Das Beschreiben der Tracks jenseits des 40. "Breitengrades" scheint also zu funktionieren, es ist nur FORMAT das zu schüchtern ist.

Nach etwas Recherche habe ich mit 2M-XBIOS experimentiert, ohne Erfolg. Den Durchbruch schaffte Markus mit dem Hinweis auf DRIVPARM, einem Befehl der in CONFIG.SYS eingetragen wird und mit dem man angibt, welche Eigenschaften ein bestimmtes Diskettenlaufwerk hat. Warum auch immer ich bei meiner Recherche nichts dazu fand, mit diesem Suchbegriff ist das Internet plötzlich wieder voll mit schlauen Ratschlägen.

Das Eintragen dieser Zeile in CONFIG.SYS hat mein Problem gelöst:
DRIVPARM=/D:1 /C /F:2 /H:2 /S:9 /T:80

Jedenfalls war damit das Formatieren von 720K-Disketten mit 720K möglich. Im gleichen Atemzug wurde jedoch das Formatieren mit 360K unmöglich, weder /T noch /N wurden noch akzeptiert, es erfolgt immer die Ausgabe "Parameters not supported". Auch war diese Lösung nicht hilfreich für MS-DOS 3.30, hier lautet die Meldung bereits beim Booten "Unrecognized command in CONFIG.SYS". Das hat mich sehr verwundert, weil das Internet steif und fest behauptet, dass DRIVPARM seit MS-DOS 3.2 dabei ist. Aber wie so oft liegt die Tücke im Detail.

DRIVPARM und MS-DOS 3.30

Es hat tatsächlich den Anschein, dass DRIVPARM ausgerechnet in MS-DOS 3.30 deaktiviert ist. Der offiziell gewollte Weg ist der Einsatz von DRIVER.SYS, was ziemlich exakt die gleichen Parameter nimmt und bei mir auch prima funktioniert hat. Ich hatte dabei folgende Zeile in CONFIG.SYS ausprobiert:
DEVICE=C:\DOS\DRIVER.SYS /D:1 /C /F:2 /H:2 /S:9 /T:80

Als Ergebnis habe ich ein neues Laufwerk E: erhalten (C: und D: sind Festplatten), das so etwas ähnliches wie ein Alias auf Laufwerk B: war, mit dem großen Unterschied, dass FORMAT E: nun endlich 720K-Medien erzeugen konnte. Laufwerk B: hat weiterhin wie zuvor funktioniert und 360K-Medien erzeugt.

Aber mich ließ das deaktivierte DRIVPARM nicht los, zumal eine weitere Seite auf minuszerodegrees.net andeutet, dass es doch eine Lösung gibt:
The Internet provides examples of how to overcome the DRIVPARM problem in DOS 3.3.

Tatsächlich habe ich sogar zwei gefunden:

  1. Das manuelle Patchen von IBMBIO.COM bzw. IO.SYS. Hier wird die Sequenz 3C 2F 74 03 durch 3C 2F EB 03 ersetzt, wodurch ein bedingter Sprung (JZ) zu einen unbedingten Sprung (JMP) wird. Außerdem muss in der DRIVPARM-Befehlszeile ein /D:1 durch ein /DD:1 ersetzt werden.
  2. Ein Workaround in CONFIG.SYS bei dem ein nicht-druckbares Sonderzeichen in die DRIVPARM-Befehlszeile eingefügt wird.

Der zweite Weg wirkte weit weniger invasiv und hat mir deshalb besser gefallen. Der Trick besteht darin, direkt hinter das Ist-gleich-Zeichen ein Zeichen mit einem ASCII-Wert kleiner 32 einzufügen. Auf der verlinkten Seite wird 0x01 benutzt (Start Of Heading, wird unter DOS als Smiley dargestellt) aber stichprobenhafte Tests haben gezeigt, dass auch andere Werte kleiner 32 funktionieren. Es gibt verschiedene Wege das zu erreichen, ich habe einfach ein X eingefügt und es danach mit einem Hex-Editor durch 0x01 ersetzt. In dem Fall habe ich das DEBUG.COM von DOS genommen (Befehle Dump, Edit, Write und Quit).

Ich weiß nicht genau, wieso das ganze funktioniert, aber ich kann bestätigen: mit der so manipulierten DRIVPARM-Zeile funktioniert das 3,5"-Laufwerk unter MS-DOS 3.30 genauso wie unter DOS 5.0.

Anschluss an die moderne Welt

Eine weitere Motivation für den Einbau des 3,5"-Laufwerks war die Hoffnung, eine weitere Brücke zwischen dem XT und der "modernen Welt", meinem Haupt-PC mit Internet-Zugang, schlagen zu können. Dieser hat zwar selbst kein Diskettenlaufwerk, aber ich habe ein USB-Diskettenlaufwerk das bei Bedarf angeschlossen werden kann. Um genau zu sein inzwischen sogar zwei.

Mein erstes Laufwerk ist von CSL Computer und meldet sich im Geräte-Manager von Windows 10 als Mitsumi Diskettenlaufwerk (USB). An sich ist es ein tolles Laufwerk, aber es akzeptiert keine 720K-Disketten. Unter Windows 10 rödelt das Laufwerk eine ganze Weile herum und bietet dann per Dialog an, die Diskette mit 1,44M zu formatieren. Über die Kommandozeile stehen dem FORMAT-Befehl wie gewohnt die Parameter /N und /T zur Verfügung, die jedoch auch nur zu einer Meldung "Parameter vom Laufwerk nicht unterstützt" führen.

Nach einem Hinweis von Markus habe ich mir noch ein anderes Laufwerk besorgt, ein TEAC FD-05PUB. Von diesem ist bekannt, dass es 720K-Disketten verträgt. Es meldet sich im Geräte-Manager als TEAC Diskettenlaufwerk (USB) und erscheint auch als normales Diskettenlaufwerk im Explorer. Allerdings behauptet Windows bei einer eingelegten 720K-Diskette, dass der Datenträger nicht formatiert werden könne. Über die Kommandozeile hingegen funktioniert es einwandfrei, auch ohne irgendwelche Parameter. Lesen und Schreiben funktioniert danach ganz normal über die GUI, auch die Interoperabilität mit dem XT ist gegeben. Allerdings passiert es schnell, dass Windows VFAT-Einträge mit langen Dateinamen erzeugt und auch sonst ungefragt Daten auf die Diskette schreibt (z.B. System Volume Information). Das führt u.a. dazu, dass CHKDSK unter DOS ziemlich laut schimpft. ;-)

Insgesamt funktioniert der Datenaustausch zwischen Windows und DOS mit dem TEAC-Laufwerk hervorragend und wird bei mir mit Sicherheit noch öfters Anwendung finden.

TODO: mit ufiformat unter Linux probieren.


Zurück zur Hauptseite