1 Copyright (c) 1999 Massachusetts Institute of Technology
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3 of the License, or (at
6 your option) any later version.
8 This program is distributed in the hope that it will be useful, but
9 WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16 ------------------------------
19 Copied from memo from S.Cutler 2/23/72
20 THIS MEMO CONTAINS MANY LOWER-CASE CHARS
22 Bits in left half word of .OPEN call:
36 0=> Ignore record gaps,treat them as part of the hardware
37 1=> "Chunk mode." [does not appear to be implemented any more]
38 If output then write an EOR gap after each .IOT.
39 If input, if user defined block IOT pointer is big enough
40 one record is read. See .IOT for details. Must be
44 0=> Skip to EOF on last close on read
45 1=> Don't " " " " " " "
52 00=> default (800 or 1600 BPI depending on drive type)
53 01=> 800 BPI (used to be 200 BPI)
54 10=> 1600 BPI (used to be 556 BPI)
55 11=> 6250 BPI (used to be 800 BPI)
57 3.9=400,,0 Only meaningful for 9 track tapes
58 0=> Core dump mode, 36 bit words, any density allowed.
59 1=> IBM Character Mode, 32 bit words, doesn't allow 200/556 BPI
62 0=> 2000=1024. words per record
72 1) Open for writing and
73 a) Open for reading on another channel
74 b) Tape write locked (i.e. no ring)
75 c) IBM mode and less than 800 BPI
76 2) Open for reading and already open for writing on another
78 3) Transport not on line
79 4) Chunk mode and not block mode
85 For standard .OPEN, this works as a standard .IOT. If open
86 in chunk mode input [not implemented any more], loc has
90 where count is a number greater than the possible number of words to
91 be written into core. The .IOT causes words to be read into core
92 starting at loc2. For each word read, the count in decreased by one.
93 An IOC error occurs if the count is too small to contain the
96 On chunk mode output, an EOR gap is written after each .IOT,
97 and the tape is written after each .IOT instead of waiting for
98 system buffers to fill or the channel closed. [not implemented any more]
106 Closes the channel, releases the transport if not open on another
107 channel. Writes out all buffers in the system and writes 2 EOF
108 marks if open for writing, and backs up over second one.
116 1.1-1.6=> physical device code (15)
120 2.1=> System buffering capacity empty (i.e. 0=> data read from
121 tape and not yet transferred to user by a .IOT or data
122 .IOTed from the user to the system but not actually
123 written onto tape or user core image.)
125 2.2=> System buffering capacity full (i.e. no core in which to
126 allocate buffers for reading from tape. Also too many
127 buffers resident in system but not yet written onto either
128 tape or users core image.)
130 2.3=> 1=> Beginning of tape
132 2.4=> 1=> End of tape
134 2.5=> 1=> 9 track, 0=> 7 track
136 2.6=> 1=>IBM mode, 0=> core dump mode
138 2.7=> Transport idle (no pending command)
140 2.8=> EOF (last thing seen was a tape mark)
152 LOC: 0) 0,,(SIXBIT /MTn/)
166 COMAND/ COUNT,,FUNCTION
169 0=> Hang until all tape motions finish
171 2=> Rewind and unload (also shreds tape leader)
172 3=> Write EOR. Writes out current system buffers even if
173 less than record size and writes an EOR gap.
174 4=> Write 3 inches of blank tape
175 5=> Write EOF. (Two EOF's are written automatically
176 after a close on a channel open for writing.)
177 6=> Space forward COUNT records. COUNT=0 implies 1
178 record. COUNT negative implies space reverse. Stops
180 7=> Space forward +- COUNT files. (Stops at BOT or
182 8.=> Space forward to logical EOT, back up over second
184 9.=> Stop and reset the tape system.
185 10.=> Set write record size to COUNT words.
186 11.=> Read into AC write record size or size of last record
187 gobbled by an input IOT.
191 Rewind and space only if open for reading.
193 Write EOR, 3 inch, EOF writing only.
195 Stop and hang for both read and write.
200 Transport State Notes
201 --------- ----- -----
203 A transport turned off or off line is equivalent to not being there.
205 Tape can not be written unless the write enable ring is in the hub
208 A transport can be opened by an arbitrary number of channels in
209 different modes, but can not be opened by more than one user, or in
210 both input and output. The device dependent bits (3.4-4.9) must be
211 the same for all channels with the exception of chunk mode.
214 The logical end of tape (EOT) is located after two EOF's in a
215 row. A close on a channel open for writing writes two EOF's and
216 then backspaces over one of them. The .MTAPE command to go to
217 the end of the tape also backspaces over the second EOF.
219 If the physical end of tape mark is reached while writing a record,
220 the record is finished being output (there is always room for a few
221 records after the reflective strip) and an IOC error is raised