Date : Sun, 12 Nov 2006 07:02:52 -0000
From : dl.harper@... (David Harper)
Subject: 5 1/4" disc on PC
Richard Gellman wrote:
>> It sounds to me like a stepping-speed problem. A 5.25" drive cannot be
>> brand
>> new :-) and it might be that the stepper motor that moves the head cannot
>> cope with the speed it is being asked to move by the more modern BIOS.
> If I remember correctly, the controller simply asks the head to step in
> a particular direction; the amount of step is set in the drive itself,
> primarily by the stepper motor. Some drives have jumpers (or links in
> BBC Micro parlance) and a very fine stepper that allow the head step to
> be adjusted for differing disk formats.
The size of the step is determined by the drive. The speed of the stepping
is determined by the FDC under the control of the low-level software.
On the BBC Master, for instance, is can be set by the *CONFIGURE FDRIVE
parameter. At the FDC itself (WD1770 or WD1772) it is controlled by the
lowest two bits of the value written to the control register. (There is a
complication in that the 1770 and 1772 interpret the values differently. For
the 1770 the values 0, 1, 2 and 3 mean respectively 6, 12, 20 and 30 msec,
whereas on the 1770 the same numbers mean 6, 12, 2 and 3 msec. The common
value for BBC drives is 6 msec, which requires the same value to be written
in either case, though some 40-track drives might require 12 msec, but again
this is common.)
On the PC the same is set in the BIOS by the top 4 bits of the first byte of
the disk-base table for the drive. With the drive in use this will be
pointed to by vector 1Eh (at location 0000:0078). If you want to try a
different value, then set up your own disk-base table (11 bytes), point this
vector to it, and call INT 13h with AH=0 and the drive number in DL.
> When I tried using my drive with a PC, I had to change a jumper somewhat
> ironically marked "MS" to get it to work.
I remember this jumper on some drives, but I do not remember quite what it
does!
>> I do not know Omniflop well, and do not know whether this is an
>> adjustment
>> that can be made within it. If it is, then it would be worth trying.
>>
>> You probably won't be able to adjust the stepping speed from the BIOS
>> settings in the CMOS - PCs are just not that flexible.
>>
> Neither is the floppy interface. The connection is low level type, i.e.
> it doesn't take commands or return result codes, etc. It has simple
> control lines such as step, step direction, track 0 sense, index sense,
> etc. This is what leads me to believe head step is configured in the
> drive.
The is the interface between the FDC and the drive. The FDC itself does take
commands (from the BIOS or other low-level software). It does not control
the step size - that is indeed in the drive - but it does control the speed
by how quickly it sends the pulses to move the head.
> There is one thing that makes think this might not be true, and that is
> the FDrive setting on the Master 128 (or keyboard links on the model B).
> This adjusts a head step time, but I believe this only allows to
> configure the machine to wait a certain period after issuing a step
> before assuming its safe to being operation again. I may be wrong on
> that though.
You appear to be confusing the head step time and the head settle time. The
step time is the rate at which the head moves between tracks. The settle
time is how long it waits after it has stopped before trying to read
anything.
>>> If you can get hold of an older PC, possible one with an FDC that is a
>>> plugin board then that will be able to cope.
>>>
>>
>> I would agree that you should try it on an older PC (and if it won't work
>> on
>> an old one, then throw it!) But if it will work on an old one, then I
>> suspect it is a BIOS rather than an FDC problem.
>>
> Put OmniFlop to use. Once the driver is installed it does improve the
> chances of reading a disk dramatically (in my limited experience). But
> you *may* still need to adjust the drive itself before it'll play nice
> with a PC controller (or at least the BIOS/OS trying to initialize it).
I would certainly agree with this.
David Harper