SCSI tape question
wilson at dbit.com
Sat Dec 13 01:36:22 CST 2014
On Fri, Dec 12, 2014 at 11:04:20PM -0600, Jon Elson wrote:
>I worked with some Exabyte
>drives and others that had a lot of constraints on what you could do,
>and you could do some interesting things.
My recollection with the Exabyte 8mm drives was that they would let you
write new data after the last thing written, but you couldn't backspace and
write over existing data, unless you were rewinding all the way to BOT. So
they were lousy at emulating 9-tracks (but some controllers fixed that by
wrapping everything in headers and writing their own suffix records that
said when to disregard the last N blocks, and they'd read ahead by some
known amount looking for that, to at least handle the common case of going
to LEOT, backspacing between the two tape marks, and writing a new file).
SCSI annoyances that I remember from the drivers I've written: when a
space with a negative count (so I mean a backspace) gets terminated early
(by a tape mark or BOT), the residual count returned can be positive *or*
negative, depending on the brand of the drive. Can't blame the mfgr
because the wording in the spec could arguably be read either way, but the
point is, take the absolute value before using it (e.g. to find the length
of a file you just skipped past).
Also some drives lose their minds (not necessarily giving a sane error
in the process) if you try to backspace past BOT, so if you're writing a
general driver where that might be attempted (as opposed to a single-purpose
utility that's only going to read the entire tape in one forward pass),
keep track of the tape position and don't let yourself do this.
And if you care about the DEC TK50Z-GA or TZ30 drives, their INQUIRY
commands return short/blank data (but with one of the reserved fields set
to ^X50 or ^X30, which is a useful clue). So a plain vanilla SCSI tape
driver might gag on them, but they work OK once you get past that (I
think you have to enable buffering on one model and/or the other before
writes work, or something, but that's it).
More information about the cctalk