Floppy-Interface
Nach oben / Up Waveterm Tastatur Waveterm Seriell Waveterm Kommunikation Floppy-Interface

 

Das Floppy-Interface im Waveterm A und B

Das ursprüngliche Waveterm A basierte auf 8"-Disketten. Der Eurocom-Rechner hat dafür einen 50poligen Anschluss nach dem Shugart 50-Standard. Als später die Waveterms auf 5,25"-Laufwerke umgerüstet wurden, gab es zwei konkurrierende Anschlussarten auf dem Markt:

bulletden Shugart 34-Anschluss, der in hohem Maße kompatibel zum Original-Shugart 50-Anschluss der alten 8"-Floppylaufwerke ist und
bulletden IBM PC 34-Anschluss... der das leider nicht ist.

Ich kann natürlich nur über die Beweggründe spekulieren, die PPG dazu bewogen haben, den Shugart 34-Anschluss zu wählen, nehme allerdings an, dass folgende Gründe ausschlaggebend waren:

bulletein Umstieg auf die IBM-Variante hätte einiges mehr an Redesign-Aufwand bedeutet
bulletder IBM AT mit den HD-Laufwerken war noch nicht so weit am Markt etabliert, dass selbige in breiter Masse auf dem Markt verfügbar gewesen wären

Fazit: PPG bastelte eine kleine Adapterplatine, die es mit minimalem Aufwand erlaubt, 5,25"-Laufwerke nach dem Shugart-Standard zu verwenden.

Pinbelegung Adapterplatine

DieTabelle orientiert sich am Ergebnis - sprich, am 34poligen Floppy-Anschluss. Eine Kurzbeschreibung der Signale kommt danach. Die Nomenklatur ist dem Floppy User Guide entnommen.

von Shugart 34 Shugart 50 Kommentar
  1,3,5...31,33   Gnd  1,3,5...47,49   Gnd  
Controller 2   DENSEL (2   DENSEL) nicht verbunden; PPG verwendet nur HD. Schlamperei?
Controller 4   INU 18  LSD sorgt dafür, dass die Köpfe nur dann auf der Diskette landen, wenn das notwendig ist.
Controller 6   DS4 32  DS4  
Laufwerk 8   IDX 20  IDX  
Controller 10  DS1 26  DS1  
Controller 12  DS2 28  DS2  
Controller 14  DS3 30  DS3  
Controller 16  MOT Gnd Motoren drehen dauernd!
Controller 18  DIR 34  DIR  
Controller 20  STP 36  STP  
Controller 22  WD 38  WD  
Controller 24  WG 40  WG  
Laufwerk 26  TK0 42  TK0  
Laufwerk 28  WP 44  WP  
Laufwerk 30  RD 46  RD  
Controller 32  SS 14  SS  
Laufwerk 34  RDY 22  RDY  

Beschreibung der Signale

Abkürzung Beschreibung
DENSEL wählt DD oder HD bzw. "reduced current"; diese beiden Einstellungen sind gekoppelt
INU "In Use"; teilt dem Laufwerk mit, dass es gerade in Verwendung ist. Bei den PPG-Laufwerken wird dieses Signal verwendet, um den Kopf auf die Floppy zu senken.
DS1..DS4 "Drive Select 1..4"; wählt eines der vier möglichen Laufwerke aus. Die Waveterm A-Software verwendet nur zwei Laufwerke, das zugrunde liegende FLEX-Betriebssystem könnte aber durchaus alle 4 ansprechen; die Waveterm B-Software kann nur 2 ansprechen.
IDX wird vom Laufwerk gesetzt, wenn das Indexloch gerade mal wieder vorbeisaust
MOT Motor Enable. Dieses Signal wird im Waveterm so gesetzt, dass die Motoren permanent drehen. Das ist bei den 8"-Laufwerken das Normalverhalten und wurde hier einfach beibehalten.
DIR Richtung, in die der Kopf bewegt werden soll (nach außen oder innen)
STP Signal, dass der Schreib-Lesekopf um eine Spur in die durch DIR angegebene Richtung bewegt werden soll
WD auf die Diskette zu schreibende Daten
WG gibt an, ob Daten geschrieben oder gelesen werden sollen
TK0 gibt zurück, ob das Laufwerk auf Track 0 angelangt ist
WP gibt an, ob die Diskette im Laufwerk schreibgeschützt ist
RD von der Diskette gelesene Daten
SS bestimmt den aktuellen Schreib-/Lesekopf
DC Disk Change; wird gesetzt, sobald keine Diskette im Laufwerk ist
RDY Ready; das Laufwerk ist betriebsbereit
DC / RDY IBM Mischform; hierbei wird vom Laufwerk, wenn ein Diskettenwechsel erfolgt, "Not Ready" signalisiert. Um herauszufinden, ob dieser Zustand das Ergebnis eines abgeschlossenen Diskettenwechsels ist, muß der Controller das Laufwerk zu einem Spurwechsel veranlassen, wodurch der Disk Change-Zustand zurückgesetzt wird und das "richtige" Ready-Signal wieder zurückgegeben wird.

Eine genauere Beschreibung lässt sich hier nachlesen.

Implikationen

Die Verwendung des Shugart 34-Standards - und das, nebenbei bemerkt, in einer nicht absolut standardmäßigen Form - hat aus heutiger Sicht unangenehme Konsequenzen. Im Waveterm können dadurch nur Laufwerke verwendet werden, die diesem Standard entsprechen - und aufgrund des Erfolgs des IBM AT und der nachfolgenden Gerätegenerationen ist der IBM-Standard praktisch zum alleinigen Standard geworden. Laufwerke nach dem Shugart-Standard sind praktisch nur mehr gebraucht, und auch das eher schwierig, aufzutreiben.

Gut wäre es also, wenn man das Waveterm so umstricken könnte, dass auch IBM-kompatible 5.25"-Laufwerke (oder idealerweise gleich 3.5") verwendet werden können. Leider stehen dem ein paar Hindernisse entgegen:

bulletdas PPG-Verhalten, den Motor ständig zu drehen und den Kopf nur dann abzusenken, wenn das notwendig ist, lässt sich nach dem IBM-Standard nicht realisieren. Nach diesem ist der Schreib-/Lesekopf bei aktiviertem Motor dauernd abgesenkt, dafür wird der Motor nur bei Bedarf aktiviert.

Theoretisch besteht die Möglichkeit, das Verhalten dem IBM-Standard anzupassen, allerdings ändert sich dadurch das Verhalten - das Hochdrehen des Motors dauert länger als das Absenken des Kopfes, daher dauert es auch länger, bis das Laufwerk bereit ist.
Andreas Voigt hat sein damaliges Waveterm A auf 3.5" umgebaut und dahingehend angepaßt - allerdings musste er dann auch auf der Eurocom-Platine einen Kondensator (Hardware-Timeout!) wechseln, da das geänderte Zeitverhalten dazu führte, dass das Waveterm permanent Fehler produzierte.
 
bulletbei IBM-Laufwerken gibt es kein reines RDY-Signal; stattdessen wird das DC/RDY-Signal vom Laufwerk gesetzt. Das Waveterm erwartet aber nur ein RDY; das stattdessen erhaltene DC/RDY sorgt dafür, dass das Waveterm nach einem Diskettenwechsel annimmt, dass das Laufwerk noch nicht bereit ist. Nachdem es dabei allerdings den IBM-kompatiblen Check (Spurwechsel) nicht durchführt, bleibt dieser Zustand endlos erhalten. Manche Laufwerke erlauben es, ein reines RDY-Signal zurückzuliefern, allerdings sind das eher wenige.

Eine Änderung der Waveterm-Betriebssysteme würde es ermöglichen, dieses Verhalten korrekt abzubilden; allerdings stellt eine derartige Änderung ein ganz ordentliches Unterfangen dar.

Eine weitere Möglichkeit wäre, auf der Waveterm-Seite Pin 34 einfach an Masse zu legen, wodurch das Waveterm sich in der angenehmen Illusion sonnt, dass das Laufwerk immer bereit wäre. Gewaltiger Nachteil: das Betriebssystem bekommt es nicht mehr mit, wenn sich der Diskettenstatus ändert (z.B. durch Wechsel der Diskette), was zu bösartigen Fehlern beim Lesen und Schreiben führen kann.

Frei dahinfabuliert... theoretisch müsste es doch möglich sein, eine kleine Schaltung zu entwickeln, die das IBM-Verhalten simuliert. Diese müsste ggf. (wenn ein Drive Select eintrudelt und das Laufwerk "Not Ready" behauptet) den Kopf mal eins rauf, mal eins runter bewegen. Meiner Ansicht nach (die allerdings noch keinen Test erfahren hat) müsste es eigentlich funktionieren, in diesem Fall folgendes zu machen:
  1. wenn Drive Select & Not Ready, Motor für betreffendes Laufwerk hochdrehen
  2. wenn irgendwelche Änderungen am IDX-Pin stattfinden (sprich, wenn da eine neue Diskette rotiert), mal kurz einen Track rauf- und wieder runter gehen

 

Click here for the English version!

Stand: 03.04.04