Date : Mon, 24 Oct 2005 23:24:47 +0100 (BST)
From : Pete Turnbull <pete@...>
Subject: Re: Collected notes on floppy drive butchery?
On Oct 24 2005, 10:10, Richard Gellman wrote:
> To clarify on the twist/untwist scenario:
>
> The twist concerns the 4 lines Drive Select A, B, and Motor Enable
A,B.
> There are 7 lines twisted, not six. Twisting 6 will result in
problems,
> as you will connect all the control lines to ground, and vice-versa
(all
> odd numbers pins are ground). Twisting 7 ensures the grounds stay
matched.
>
> Conventionally, if you have two drives on the cable, one as drive ID
0,
> and one as drive ID 1, then a twist before both of them inverts their
> drive IDs - in the case of the BBC, 0 becomes 1, 1 becomes 0.
Er, no. The twist is over pins 10-16, which get reversed. I think you
are confusing the IBM PC select numbering with the Beebs. They don't
use quite the same pins.
The select lines swapped are 1 and 2, not 0 and 1. Drive Select 0 (pin
10) gets swapped with the Motor On signal (pin 16). Drive Select 1
(pin 12) gets swapped with Drive Select 2 (pin 14). This is where one
of the problems arises; if you twist the cable before the drives, an
attempt to select Drive 0 may still work because instead of "selecting
drive 0 and enabling the motor", the system "enables the motor and
selects drive 0". However, an attempt to select drive 1 fails, because
the Beeb attempts to enable the motor, thus selecting drive 0 (Motor On
being conected to DS0) but the drive motor doesn't get turned on
because the DS1 signal isn't connected to anything useful (it is routed
to DS2, and nothing on a normal Beeb system uses that).
> If you twist -between- the drives, the drive after the twist
> (non-computer end) is inverted, the other is not. This is the
> configuration for PCs. Floppy drives for PCs are sold configured as
> drive ID 1,
All correct so far...
> the twist in the cable causes drive ID 0 (on the cable after
> the real drive B:) to become drive ID 1
Er, no, that's not quite right, at least not for Beebs -- see above.
Unless of course you're referring to the drive IDs (or selects) as a
PC does; in which case the two signals which in a PC are the first and
second drive selects are actually what would be the second and third
selects in an SA400-style system (which is what most non-PC things,
like Beebs, use).
> BBC Floppy drives are invariably configured as drive ID 0
Well, the first/only drive is :-) The second drive wouldn't be!
> - which
> conflicts with PC floppies always being drive ID 1. Either way around
> we put the drives, we end up with two drives on the same ID.
No, you don't.
> In the
> solution where we don't change drive IDs on the drives themselves, we
> *must* use an untwisted cable.
Well, yes, or maybe. Certainly for reliable operation of two drives,
but...
Providing the BBC drive is set to respond to DS0 and to use MotorOn, as
normal, it will, perhaps counter-intuitively, work either before the
twist, or after it. On the other hand, the PC-configured drive will
work as drive 1 providing it's before the twist, because to select
Drive 1, the Beeb will activate DS1 (pin 12) and MotorOn (pin 16); the
PC drive is configured to respond to a drive select on pin 12 and a
MotorOn signal on pin 16, as the second drive.
Ah, but what if you have both drives connected at the same time?
Suppose the Beeb attempts to access drive 0. It activates pins 10 and
16 (DS0, and MotorOn), thus activating the Beeb drive configured as
drive 0. The PC drive sees pin 10 active as a motor signal, but it
gets no drive select. No problem so far; the Beeb drive is activated
and the PC drive isn't.
What about the other half of the story? Suppose the Beeb attempts to
access drive 1. The BBC drive sees pin 10 active (MotorOn gets swapped
over from pin 16 to pin 10) which is its drive select, but it gets no
motor signal; however the PC drive, before the twist sees the MotorOn
signal on pin 16 and DS1 on pin 12, which is what it wants. That
probably still won't work, because the BBC drive may conflict with the
PC drive. In some cases, it might be OK, if the Beeb drive is not on
track zero and not forcing the Read Data or Index lines low. Not
recommended, however.
So for reliable operation of two drives, you do indeed need a
straight-though cable and properly-configured (BBC-style or
SA400-style) drives. Or a specially wired cable, but that's another
story.
--
Pete Peter Turnbull
Network Manager
University of York