HT(4) Kernel Interfaces Manual HT(4)
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 been tried.
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.