ht - RH-11/TU-16 magtape interface
The files mt0, mt1, ... refer to the DEC RH/TM/TU16 magtape. When opened for reading or
writing, the tape is not rewound. When closed, it is rewound (unless the 0200 bit is on,
see below). If the tape was open for writing, a double end-of-file is written. If the
tape is not to be rewound the tape is backspaced to just between the two tapemarks.
A standard tape consists of a series of 512 byte records terminated by a double end-of-
file. To the extent possible, the system makes it possible, if inefficient, to treat the
tape like any other file. Seeks have their usual meaning and it is possible to read or
write a byte at a time. Writing in very small units is inadvisable, however, because it
tends to create monstrous record gaps.
The last octal digit of the minor device number selects the drive. The middle digit
selects a controller. The initial digit is even to select 800 BPI, odd to select 1600
BPI. If the 0200 bit is on (initial digit 2 or 3), the tape is not rewound on close.
Note that the minor device number has no necessary connection with the file name, and in
fact tp(1) turns the short name x into `/dev/mtx'.
The mt files discussed above are useful when it is desired to access the tape in a way
compatible with ordinary files. When foreign tapes are to be dealt with, and especially
when long records are to be read or written, the `raw' interface is appropriate. The
associated files may be named rmt0, ..., rmt7, but the same minor-device considerations as
for the regular files still apply.
Each read or write call reads or writes the next record on the tape. In the write case
the record has the same length as the buffer given. During a read, the record size is
passed back as the number of bytes read, provided it is no greater than the buffer size;
if the record is long, an error is indicated. In raw tape I/O, the buffer must begin on a
word boundary and the count must be even. Seeks are ignored. A zero count is returned
when a tape mark is read; another read will fetch the first record of the next tape file.
The magtape system is supposed to be able to take 64 drives. Such addressing has never
Taking a drive off line, or running off the end of tape, while writing have been known to
hang the system.
If any non-data error is encountered, it refuses to do anything more until closed. In raw
I/O, there should be a way to perform forward and backward record and file spacing and to
write an EOF mark explicitly.