tm - TM-11/TU-10 magtape interface
The files mt0, ..., mt7 refer to the DEC TU10/TM11 magtape. When closed it can be rewound
or not, see below. If it was open for writing, two end-of-files are written. If the tape
is not to be rewound it is positioned with the head between the two tapemarks.
If the 0200 bit is on in the minor device number the tape is not rewound when closed.
A standard tape consists of a series of 512 byte records terminated by an 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 cre-
ate monstrous record gaps.
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 are named rmt0, ..., rmt7. 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, pro-
vided 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 byte count is returned when a tape mark is read, but another
read will fetch the first record of the new tape file.
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.