1 02/13/84  tape_nstd_
  2 
  3 
  4 Syntax for attach description:
  5      tape_nstd_ reel_num {-control_args}
  6 
  7 
  8 Function: The tape_nstd_ I/O module supports I/O to/from tapes in
  9 nonstandard or unknown formats.  This module makes no assumptions
 10 about the format of the tape and returns one logical record for each
 11 physical record on the tape.  Since the information upon the tape,
 12 including tape marks, is not interpreted by this I/O module, the user
 13 must detect the logical end of information on the reel.  This I/O
 14 module functionally replaces ntape_.
 15 
 16 Entry points in the module are not called directly by users; rather,
 17 the module is accessed through the iox_ subroutine.
 18 
 19 
 20 Arguments:
 21 reel_num
 22    is the tape reel number.
 23 
 24 
 25 Control arguments:
 26 block N, -bk N
 27    specifies the maximum record length, in bytes, for this attachment.
 28    The default value for N is 11200.  Values of N greater than 11888
 29    require access to either the >system_library_1>rcp_sys_ gate or
 30    >sc1>rcp>workspace.acs (see "Buffer Size" below).
 31 -comment STR -com STR
 32    specifies a comment string that is displayed to the operator.  It
 33    can be used to give the operator any special instructions that are
 34    relevant to this attachment.  The comment string must be enclosed
 35    within quotes if it contains blanks or other spacing characters.
 36 -density N, -den N
 37    specifies the initial density to be used for this attachment.
 38    Acceptable values for N are 200, 556, 800, 1600 and 6250; the
 39    default is 800 bpi.
 40 
 41 
 42 -speed S1{,S2,...,SN}, -ips S1{,S2,...,SN}
 43    specifies desired tape drive speeds in inches per second, where Si
 44    can be 75, 125, or 200 inches per second.  (See "Device speed
 45    specification" below.)
 46 -track N, -tk N
 47    means that the tape is N track.  Acceptable values for N are 7 and
 48    9.  If no track argument is supplied then 9 track is assumed.
 49 -write
 50    means that the tape is to be mounted with a write ring.  This
 51    argument must occur if the I/O switch is to be opened for output or
 52    input/output.
 53 
 54 
 55 Device speed specification:  The -speed control argument is used to
 56 specify acceptable tape device speeds in inches per second.  The module
 57 only attaches a device that matches a speed specified by this control
 58 argument.  If more than one speed is specified, the module attaches a
 59 device that matches one of the speeds.
 60 
 61 
 62 Open operation:  The opening modes supported are sequential_input,
 63 sequential_output, and sequential_input_output.  If an I/O switch
 64 attached via the tape_nstd_ I/O module is to be opened for output or
 65 input_output, the -write control argument must occur in the attach
 66 description.
 67 
 68 
 69 List of control orders:
 70 backspace_file
 71    positions the tape before the file mark next encountered while
 72    rewinding the tape (if no file mark is encountered then the tape is
 73    left at load point).
 74 backspace_record
 75    positions the tape before the previous record on the tape (or file
 76    mark if the current record is preceded by a file mark).
 77 bcd
 78    sets hardware mode to binary coded decimal (BCD).  See "Hardware
 79    modes" below.
 80 binary
 81    sets hardware mode to binary (this is the default).  See "Hardware
 82    modes" below.
 83 
 84 
 85 data_security_erase
 86    erases the tape media from its current position to the end of tape
 87    (EOT) reflective marker.  Additional "erase" control orders can be
 88    issued to erase any data written beyond the EOT reflective marker.
 89    No more than 40 additional erase control orders should be issued
 90    since the tape volume could run off the supply reel.
 91 d200
 92    sets density to 200 bpi.
 93 d556
 94    sets density to 556 bpi.
 95 d800
 96    sets density to 800 bpi.  This is the default.
 97 d1600
 98    sets density to 1600 bpi.
 99 
100 
101 d6250
102    sets density to 6250 bpi.
103 erase
104    erases tape for a distance of three inches from the current
105    position.
106 fixed_record_length
107    specifies that no record length information is expected by the
108    caller since all data records are of a fixed length specified by a
109    fixed bin(21) value.  The record length is specified in bytes.
110 forward_file
111    positions the tape past the next file mark encountered on the tape.
112 forward_record
113    positions the tape after the next record (or file mark if one
114    follows the current record) encountered on the tape.
115 
116 
117 io_call
118    supports the io_call command protocol for orders that expect nonnull
119    info pointers.  This order is prepared to interpret and print the
120    status returned by the saved_status and request_status orders.
121 nine
122    sets hardware mode to eight/nine bit conversion.  See "Hardware
123    modes" below.
124 protect
125    sets write inhibit regardless of the presence of a write permit ring
126    in the tape reel.  The tape unit will remain write inhibited until
127    the tape is detached.
128 request_status
129    interrogates the tape controller and returns its status as a bit(12)
130    aligned quantity.
131 
132 
133 reset_status
134    causes all resettable statuses of the tape unit to be reset.
135 retry_count
136    specifies a fixed bin(17) value which is the number of times an
137    operation is to be retried before returning an error to the caller.
138    The default value for the retry count is 10.
139 rewind
140    rewinds the tape to load point.
141 saved_status
142    returns the last status returned from the tape controller as a
143    bit(12) aligned quantity.
144 unload
145    rewinds the tape and unloads it (done automatically when the tape is
146    detached).
147 write_eof
148    writes an end of file mark (EOF).
149 
150 
151 Hardware modes:  In BCD mode, allowed only for 7-track drives, 6-bit
152 characters are translated and then put on tape one character per frame.
153 The translation is reversed on input.
154 
155 In nine mode, on output four 8-bit bytes are written from each word
156 ignoring the high order bit of each 9-bit byte (by truncating it).  On
157 input, 8-bit characters are converted to 9-bit characters by forcing
158 the high order bit to zero (by appending a zero-bit).  This mode should
159 be used to put ASCII or EBCDIC data on tape for transfer to other
160 systems with 8-bit bytes.
161 
162 
163 In binary mode, all 36 bits of each word are read or written.  This
164 mode should be used for native Multics applications where binary data
165 is written to tape.
166 
167     9-track write  9 8-bit bytes (2 words) are written to 9 frames
168                    on tape.
169     9-track read   9 frames are read into 9 8-bit bytes (2 words).
170 
171     7-track write  6 6-bit frames from each word.
172     7-track read   6 frames on tape are read into 6 6-bit characters
173                    (1 word).
174 
175     7-track is 6 data + 1 parity track.
176     9-track is 8 data + 1 parity track.
177 
178 
179 Close operation:  The close operation rewinds the tape reel.  The tape
180 remains mounted, and positioned at the load point.  No further I/O
181 operations may be performed unless the I/O switch is opened again.
182 
183 
184 Detach operation:  The detach operation unloads the tape.
185 
186 
187 Read_record operation:  The logical record returned by the read_record
188 operation contains m=ceil(n/36) words, where n is the number of data
189 bits in the physical record.  The first n bits of the input record are
190 the data bits, the last m-n bits are 0's.  The buffer supplied to the
191 read_record operation must be word aligned.  Read requests are retried
192 10 times before reporting an error unless a retry_count control order
193 has been used to change the retry count.
194 
195 
196 Write_record operation:  The logical record supplied to the
197 write_record operation must be word aligned, and must contain 0 mod 36
198 data bits.
199 
200 
201 Notes:  This I/O module violates those iox_ conventions that seem ill
202 suited to processing raw tapes.  In particular, read_record and skip
203 record operations may pass file marks.  For example, if a tape contains
204 two records, A and B, separated by a file mark, then the first read
205 request would read record A, a second read request would return
206 error_table_$end_of_info, and a third read request would return
207 record B.
208 
209 
210 Buffer size:  The maximum number of bytes that may be transmitted on a
211 read_record or write_record operation is 180224, less overhead.  This
212 limit may be administratively restricted to a lower value.  To use the
213 full capability, the caller may need access to
214 >system_library_1>rcp_sys_ or >sc1>rcp>workspace.acs.