Pertec Tape Drive Interface Musings

Dennis Boone drb at
Wed Jun 10 09:55:16 CDT 2015

 > According to my Kennedy manual, issuing a read command causes the
 > drive to return one block of data. I can see how that would be used
 > in block-oriented applications in which blocks may be randomly read,
 > written and re-written on the tape. But most of my magtape experience
 > has been using the tapes in a streaming mode, such as when
 > reading/writing one or more tar archives separated by file marks.

The Cipher manuals have some nice diagrams of tape layouts and tape
movement that might be useful to you.

Rewriting blocks on tape doesn't usually work; the spacing and such
isn't quite repeatable enough.  That said, I _have_ seen VMS rename
files on tape.  Yes, I was abusing it to see if it would work. :)

 > When writing a tar archive on a magtape from a Unix system, is the
 > archive written as a sequence of fixed-size blocks? Or is the entire
 > tar archive effectively written as one continuous block which must be
 > streamed with no repositioning?

Tar will assemble blocks and write them.  You can control the block size
it uses.  For 9-track, max block size depends a bit on system, but won't
be above 64k.  Some systems may only support up to 32k, or even 16k
(Prime until the mid 80s).  On ANSI or IBM labeled tapes, it's common to
see records as short as 80 bytes (VOL1/HDR1 records), and shorter will
work.  I can't recall if there's a minimum.

Terminology may be key to understanding all of this.  On the 9-track
tape, there are only a few kinds of objects: records containing data,
inter-record gaps, erased areas, file marks, maybe noise records.  The
drive doesn't really care how much data is in a data record as long as
it's shorter than the max size.  There is no "fixed size record" on a
9-track tape.  The distinction between "record" and "block" really
exists in the host.  For example, tar will gather up data from a file in
file system sized units, e.g. 512 byte disk sectors.  It thinks of those
as records, and it assembles a block (-b option, say 5120 bytes) of a
given size, and writes that to the tape.  On tape, that block is just a
5120 byte record.


More information about the cctalk mailing list