Floppy Interface
Nach oben / Up Waveterm Keyboard Waveterm Serial Waveterm Communication Floppy Interface

 

The Floppy Interface in Waveterm A und B

The original Waveterm A used 8" diskettes. The Eurocom computer has a 50-pin connector following the Shugart 50-pin standard for that. When the Waveterms were remodeled for 5.25" drives later on, there were 2 concurrent connection types available:

bulletthe Shugart 34-pin connection that is highly compatible to the original Shugart 50-pin style of the older 8" floppy drives and
bulletthe IBM PC 34-pin connector... that unfortunately isn't.

Of course, I can only speculate about the reasons that caused PPG to choose the Shugart 34-pin connection; I'd guess that the following ones were the most important:

bulleta move to the IBM variant would have meant a lot of redesign
bulletthe IBM AT with the HD drives wasn't yet really prominent; the IBM-compatible HD floppy drives weren't yet available in big quantities.

Outcome: PPG designed a small adapter board that allows it with just a minimum of work to use 5.25" floppy drives following the Shugart standard.

Adapter Board Pin Layout

The following table is oriented to the result - the 34-pin floppy connector. A short description of the signals follows. The signal names have been taken from the Floppy User Guide.

from Shugart 34 Shugart 50 Comment
  1,3,5...31,33   Gnd  1,3,5...47,49   Gnd  
Controller 2   DENSEL (2   DENSEL) not connected; PPG uses only HD.
Controller 4   INU 18  LSD assures that the heads only land on the diskette when that's necessary.
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 Motors rotate constantly!
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  

Signal Description

Abkürzung Beschreibung
DENSEL selects between DD/HD and normal/reduced current; these two settings are coupled
INU "In Use"; tells the drive that it's currently used. With the PPG drives, this signal is used to lower the heads onto the floppy disk.
DS1..DS4 "Drive Select 1..4"; selects one of the 4 possible drives. The Waveterm A software only uses 2 drives, but the underlying FLEX operating system could in theory use all 4; the Waveterm B operating system knows only 2.
IDX is set by the drive when the index hole becomes visible
MOT Motor Enable. In the Waveterm, this signal is always set, so the motors are continuously turning. This is the normal behaviour for 8" drives and was simply kept this way.
DIR Direction the heads are moved to (outwards or inwards)
STP Causes the heads to move a step into the direction given by DIR
WD data written to the diskette
WG determines whether data are read or written
TK0 reports whether the heads are over track 0
WP reports whether the diskette is write-protected
RD data read from the diskette
SS sets the current head
DC Disk Change; set as soon as no diskette is in the drive
RDY Drive Ready signal
DC / RDY IBM Mixture; the drive still signals "Not Ready" after the diskette is changed and a new one has been inserted. To find out whether this state is the result of a completed disk change, the controller has to cause the drive to change the current track; this resets the Disk Change flag and the "real" Drive Ready signal is reported.

A more detailed description can be found here.

Implications

Usage of the Shugart 34 Standard - and in a form that is not 100% standard - has some unpleasant consequences, from today's point of view. Because of that, you can only use some very special drives in the Waveterm that support this standard - and because of the success of the IBM AT and the following PC generations, the IBM standard has become the dominating standard. Drives that can be configured in a way that the Waveterm accepts are very hard to find by now.

It would be great if the Waveterm could be modified to accept IBM-compatible 5.25" (or, even better, 3.5") drives, too. Unfortunately, there are some obstacles:

bulletthe PPG behaviour to continuously turn the drive motors and only lower the heads when necessary can't be realised with the IBM standard, where the heads are always lowered when the motor is active, but the motor is only activated when necessary.
In theory, it's possible to change that to the IBM method, but this changes the drive behaviour, too - starting up the motor takes much longer than just lowering the heads, so it takes much longer before the drive is ready.
Andreas Voigt has modified his Waveterm A to use 3.5" disks - but to overcome this, he had to change a capacitor on the Eurocom motherboard (hardware timeout!), since the different timing lead to lots of runtime errors.
 
bulletthere's no RDY signal on IBM drives; instead, the DC/RDY signal is reported. The Waveterm expects only RDY; the received DC/RDY would cause the Waveterm to think that the drive is not ready after a disk change. Since it does not run through the IBM-compatible check (track change),  the drive stays in this state. Some drives allow to return only the RDY signal, but unfortunately not all.

Modification of the Waveterm operating systems might allow to correctly implement the IBM behaviour, but that would mean a lot of work.

Another possibility would be to simply connect pin 34 to ground, giving the Waveterm the pleasant illusion of a drive that's always ready. Big disadvantage: the operating system has no chance to find out about status changes (for example, if the diskette is changed), which can lead to grave read and write errors.

Just thinking loudly now... in theory, it should be possible to develop a little circuit that simulates the IBM behaviour. When necessary (as soon as a Drive Select is set and the drive reports "not ready"), it would have to move the head one track up/down. In my opinion (which hasn't been tested yet) it should work to do the following in such a case:
  1. if Drive Select & Not Ready, start motor for the drive
  2. if changes occur on the IDC pin (i.e., if there's a disk rotating in the drive), step up and down one track

 

Auch in Deutsch erhältlich!

Last update: 04/03/04