[comp.os.cpm] Motor on and Drive Select

fekete@tnds05.tele.nokia.fi (Zoltan Fekete) (02/19/91)

Hi,

I was involved in developing floppy controller card for CP/M system and
also wrote floppy handlers. From that time I have bad experiences with 
using Drive Select as Motor On. The main problem is that the drives 
usually report Drive Ready before they reach their nominal speed. For 
example I've read in a NEC manual, that Ready will be active when the
motor reaches 50% of the nominal speed (and of course other conditions are
met too). In our system we used Western Digital WD2797 controller, and so
it had problems, sometimes it wrote faulty data to the disk. It happens
very easily when copying from one drive to another or rather when compi-
ling from one drive to the other. In this cases the two (or more) drives are
selected and deselected very often so the motor is also turned on and off 
completely. If the motor is spinning let's say 20% less than nominal speed
reading can be OK, but when you write the sector needs different amount of
space on the disk, and that can cause then not reliable operation. (At least
it caused with WD2797, although I tried the recommended track structure from
WD manual).
So I would *NOT* suggest using simple AND logic to generate Motor on, or
using Drive Select for that purpose. Rather I have two suggestions:
1. Tie Motor On to GND. Most of the drives are turning off their motors, 
   when there is no disk in them (of course not 8" drives). So the motor
   will spin when disk is in the drive and door is closed. From practice 
   I know that doesn't effect the lifetime too much, especially if you 
   have it in your home system. My home made system was working this way
   for years without any damages in drive or diskettes.

2. Use more sophisticated logic (or combine with SW too). The Motor On should
   work so, that when a drive is selected also Motor On becomes active, but
   a logic delays the Ready signal to be active for a while (depending on 
   drive type, but usually 1-2 seconds). The Motor On can be common for all
   the drives, and activation should start if any of the drives are selected.
   But then after deselecting the drives, the Motor On has to be active for 
   a while to eliminate the idle time if selected again. With my 4MHz Z80
   system by using different compilers and other programs I got to the 
   conclusion that 10-15 seconds delay to turn off Motor On is optimal.
   This solution needs for example some gates and a monostable multivibrator,
   but can be implemented with a programmable output and some software (typi-
   cally it should be a timer interrupt to work in the background.)

I hope that my ideas helped you to get less "BDOS Err On A: Bad Sector"
message. :-)

Zoltan Fekete
Nokia Telecommunications
fekete@tnds05.tele.nokia.fi
Voice: +358 0 5116293

syswtr@iowasp.physics.uiowa.edu (02/20/91)

  Most of the floppy varieties I have seen are jumperable to allow the
MOTOR-ON signal to control the motor without also using DS.  That is,
MOTOR-ON turns ALL motors on.  This should eliminate any problems
with motor spin-up delays when moving from drive-to-drive.
  In some of the older 8" systems we have about, I set the 8" drives
to all load the head at the same time (whenever head-load was asserted)
to eliminate head settling delay when moving from drive to drive.
Willy

fekete@tnds05.tele.nokia.fi (Zoltan Fekete) (02/21/91)

In article <1991Feb19.133929.568@iowasp.physics.uiowa.edu> syswtr@iowasp.physics.uiowa.edu writes:
>   Most of the floppy varieties I have seen are jumperable to allow the
>   MOTOR-ON signal to control the motor without also using DS.  That is,
>   MOTOR-ON turns ALL motors on.  This should eliminate any problems
>   with motor spin-up delays when moving from drive-to-drive.
---more text is deleted----

Sorry, you've probably missed the article which made me to write my one. I
have also the experience, that you can always jumper a drive so, that it 
controls the motor only by Motor On. (But still most of them are not spinning
if no disk is inserted. But this is now out of our interest, I think.) The 
problem comes if you don't have signal to drive Motor On. Then you can 
set the drive to control the motor by DS, but that in my opinion is dangerous,
as I wrote it in my previous article. My ideas came for that case.
I'm sorry if you just simply misunderstood me, quite probable that I wasn't
clear enough.

Zoltan
fekete@tnds05.tele.nokia.fi
Voice: +358 0 5116293

sprague.wbst311@xerox.com (02/24/91)

I stand corrected.  The manual for the SA 455/465 says that is does indeed have
a READY signal.  In additon, the manual states that it takes 500 mS for the
drive motor to come up to speed.  READY becomes active 700 mS after the MOTOR
ON signal is generated (assuming all other signals are correct).  It stands to
reason that modern drives are at least as fast as the older SA 455/465, but
still a delay of 500 to 700 mS is in order, just to play it safe.

Better yet if I can use the drives READY signal.  Turns out that it's the 5.25"
READY signal I understand, not the 8".  I poked around with a logic probe this
morning, but didn't find anything out.  I suspect I'll need to have the drive
in a working system, with Drive Select active to find anything out.  I'll let
you all know what I find out.

Last, I think I found the jumper to connect Motor On with Drive Select on the
Chinon drives.  On the 360kb drive (which you can get for $49), you need to
remove the metal shield, and solder a jumper (no jumper pins here) onto J4.  It
is labeled on the circuit board, and has a box around it.  I know have a pair
of them running on my Xerox 820-II.

On the Chinon 1.2Mb drives ($59) I found one of the jumper blocks to be labeled
MS.  As the pins are jumpered together, I assume that if the jumper is
unplugged, then Drive Select and Motor On will be tied together.  I have yet to
test this out though.

I am interested in hearing more from those of you who have or are trying to
replace 8" drives with 3.5" drives.

Enjoy!

				~ Mike  (Sprague.Wbst311@Xerox.Com)