| |
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:
| den Shugart 34-Anschluss, der in hohem Maße kompatibel zum
Original-Shugart 50-Anschluss der alten 8"-Floppylaufwerke ist und |
| den 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:
| ein Umstieg auf die IBM-Variante hätte einiges mehr an Redesign-Aufwand
bedeutet |
| der 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:
| das 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.
|
| bei 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:
- wenn Drive Select & Not Ready, Motor für betreffendes Laufwerk
hochdrehen
- wenn irgendwelche Änderungen am IDX-Pin stattfinden (sprich, wenn da
eine neue Diskette rotiert), mal kurz einen Track rauf- und wieder runter
gehen
|
|
Stand:
03.04.04 |
|
|