[comp.unix.microport] Drivers for Floppy Tapes

ned@h-three.UUCP (ned) (09/27/88)

In article <4@cpro.UUCP>, asgard@cpro.UUCP (J.R. Stoner) writes:
> From article <433@dragos.UUCP>, by ruiu@dragos.UUCP (Dragos Ruiu):
> ,   It strikes me that a driver that talks to a tape drive that looks like a
> , floppy should be easy. Can anyone help me ?
> 
> I can't help you on specifics, but I can tell you from long and sad
> experience a floppy-tape is not an easy task.  How do I know?  I wrote the

[gory details deleted]

Amen!  I modified a floppy driver to support an Irwin tape drive on
a '186 UNIX box using a Western Digital floppy controller (WD2793).
It was far from easy.

It's misleading to say that a floppy tape (at least, an Irwin)
looks like a floppy drive to a controller.  It's more accurate
to say that a floppy tape is (awkwardly) manipulated via a
floppy controller.

For example, to position a real floppy drive's head one loads the
2793's data register with the desired track number.  The 2793 then
sends the floppy drive the appropriate number of step pulses
(in the right direction) to actually position the head.  Well,
commands are sent to the Irwin floppy tape with step pulses.
So, to send the Irwin a command, you 0 the floppy controller's
track register, load the floppy tape command number in the data
register, and issue the seek track command.  The 2793 then sends
the step pulses to the Irwin.  The Irwin knows when a command
has been sent when another step pulse hasn't arrived within a certain
amount of time.  Elegant, right? :-)

But that's just one example of the special interface, and one that's
relatively easy to deal with.  The real headaches are in positioning
the tape and responding to interrupts fast enough during reads and
writes (even with DMA, which my machine had).  I'll email details
if requested (with condolences).

-- Ned Robie		uunet!h-three!ned