1 03/15/87 tape_mult_
  2 
  3 
  4 Syntax:
  5     tape_mult_ reelid {-control_args}
  6 
  7 
  8 Function: The tape_mult_ I/O module supports I/O to and from Multics
  9 standard tapes.
 10 
 11 
 12 Arguments:
 13 reelid
 14    is the name of the tape reel to be mounted for this attachment.
 15 
 16 
 17 Control arguments:
 18 -comment STR, -com STR
 19    specifies a comment string that is displayed to the operator.  It
 20    can be used to give the operator any special instructions that are
 21    relevant to this attachment.  The comment string must be enclosed
 22    within quotes if it contains blanks or other spacing characters.
 23 -density N, -den N
 24    specifies the density setting of the attached tape drive, where N
 25    can be 800, 1600, or 6250 bpi.  The defaults are 800 for 7-track,
 26    and 1600 for 9-track.  When opened for reading, the specified
 27    density is used only as a first guess.  If the tape cannot be read
 28    at that density, tape_mult_ tries the other density.
 29 
 30 
 31 -device TAPE_DRIVE, -dv TAPE_DRIVE
 32    specifies on which tape drive to mount the given tape volume.  The
 33    tape_mult_ attach operation will fail if RCP is unable to attach
 34    this tape drive to the process.  By default, RCP selects an
 35    appropriate tape drive from those reserved by or assigned to the
 36    process, or from the pool of available tape drives.
 37 -error_tally, -et
 38    when opened for stream_input, displays an error summary on the
 39    user_output stream upon closing the tape I/O switch. (See "Notes
 40    on error_tally" below).
 41 
 42 
 43 -speed S1{,S2,...,SN}, -ips S1{,S2,...,SN}
 44    specifies desired tape drive speeds in inches per second, where Si
 45    can be 75, 125, or 200 inches per second.  (See "Notes on device
 46    speed specification" below.)
 47 -track N, -tk N
 48    specifies the track type of the tape drive that is to be attached,
 49    where N may be either 9 or 7.  The default is 9.
 50 -write, -wrt
 51    mounts the tape reel with a write ring.  The default is to mount the
 52    tape reel without a write ring.
 53 -system, -sys
 54    increases tape performance by using more I/O buffers and other
 55    performance optimizations.  Access to
 56    >system_control_1>rcp>workspace.acs or rcp_sys_ is required to use
 57    this control argument.
 58 
 59 
 60 -volume_set_name STR, -vsn STR
 61    specifies the contents of the volume set name field located in the
 62    tape label record (see the Programmer's Reference Manual for a
 63    description of the standard Multics tape label record).  See ("Notes
 64    on volume_set_id" below).
 65 
 66 
 67 Notes on error_tally:
 68 
 69 The error summary produced by -error_tally includes the total number of
 70 read errors; number of errors that were successfully recovered for each
 71 of 1 to 7 backspace/re-read retries (each re-read using a different
 72 threshold and/or de-skew setting); number of errors that could not be
 73 recovered by backspace/re-reading but were successfully recovered by
 74 reading forward and finding a good copy of the original record in
 75 error; and the number of times that both backspace/re-read and read
 76 forward recovery failed, but successful recovery was accomplished by
 77 backspacing two files, forward-spacing two files (thus positioning the
 78 tape at the beginning of the current file after tape motion past the
 79 tape cleaner and head in both directions dislodges any buildup of oxide
 80 particles on the tape or head surface) and then reading forward until
 81 original record in error was read successfully.  This information is
 82 obtained from metering data kept in the tape_mult_ work segment,
 83 defined by tmdb.incl.pl1.
 84 
 85 
 86 Notes on device speed specification:
 87 
 88 The -speed control argument is used to specify acceptable tape device
 89 speeds in inches per second.  The module only attaches a device that
 90 matches a speed specified by this control argument.  If more than one
 91 speed is specified, the module attaches a device that matches one of
 92 the speeds.
 93 
 94 
 95 Notes on volume_set_id:
 96 
 97 When opened for writing, STR is written into the volume_set_id field of
 98 the tape label record.  If this control argument is not specified, the
 99 volume_set_id field will be set to blanks.  When opened for reading,
100 the volume_set_id field of the tape label is compared to STR.  If they
101 match or if the volume_set_id field is padded with blanks, the open
102 operation is allowed to be completed.  If the volume_set_id field and
103 STR do not match and the volume_set_id is not padded with blanks,
104 error_table_$bad_label is returned.  STR can be up to 32 characters in
105 length.
106 
107 
108 Notes on opening:
109 
110 The opening modes supported by tape_mult_ are stream_input and
111 stream_output.  If the opening mode is stream_output, the attach
112 description must have specified the -write control argument.
113 
114 
115 Notes on the read record operation:
116 
117 The get_chars operation reads Multics standard records until either the
118 caller's buffer is filled, or until the end of the tape volume is
119 encountered.  If not all the characters on a tape record fit into the
120 caller's buffer, they are saved by the I/O module for the next
121 get_chars call.
122 
123 
124 Notes on the write record operation:
125 
126 The put_chars operation formats the data into Multics standard records
127 of 1024 data words each.  Each record is written as it is filled.  A
128 partially filled record is not written onto the tape until it is filled
129 with a subsequent put_chars operation, an error_count order is done, or
130 the switch is closed.
131 
132 
133 List of control orders:
134    The tape_mult_ I/O module supports the control operation with three
135    orders.
136 error_count
137    This order is supported only for the stream_output opening mode.  It
138    causes all output currently buffered to be written.  An up-to-date
139    error count is returned in the (fixed bin) variable referenced by
140    the info_ptr argument.
141 
142 
143 boot_program
144    This order allows the specification of a boot program to
145    be written into the tape label record (see the programmer's
146    Reference Manual for a discussion of the bootable Multics tape label
147    record format and function).  The specified boot program must be
148    coded in absolute self-relocating ALM assembly language and must be
149    less than or equal to 832 (1500 octal) locations in length.  The
150    specified boot program is overlayed starting at absolute location
151    300 (octal) in the tape label record.  When a Multics tape
152    containing a bootable label record is bootloaded, control is
153    transferred to location 300 via the tape label record transfer
154    vector, the first 8 words of a bootable Multics tape label record.
155    The I/O switch must be closed when this control order is executed.
156    The specified boot program is written onto the tape label record
157    when the tape is subsequently opened for output.
158 
159 
160 The info_ptr must point to the boot_program_info structure as shown
161 below.
162 
163       dcl  1 boot_program_info           based (info_ptr),
164              2 version                   fixed bin,
165              2 boot_program_ptr          pointer,
166              2 boot_program_text_length  fixed bin (21),
167              2 boot_program_name         char (32) unaligned;
168 
169 
170    where:
171    version
172       is the version number of this structure, currently 1.
173    boot_program_ptr
174       is a pointer to the beginning of the text section of the
175       specified boot program.
176    boot_program_text_length
177       is the length in 36-bit words of the text section of the
178       specified boot program.
179    boot_program_name
180       if nonblank, is the name of the boot program that the user wants
181       recorded in the boot_pgm_path field of the label record.  If
182       boot_program_name is blank, then the absolute pathname of the
183       boot program is written into the boot_pgm_path field of the label
184       record.
185 
186 
187 get_boot_program
188    This order allows a boot program to be extracted from the tape label
189    when the tape is opened for input.  This control order must be
190    issued immediately after the tape is opened for input and before the
191    first read operation is begun.  If it is executed later, then
192    error_table_$no_operation is returned.  The info_ptr must point to
193    the boot_program_info structure defined above for the boot_program
194    control order.  The user must set the version number.  Then a
195    pointer to a buffer, containing the extracted boot_program, its
196    length, and the entryname portion of the boot_program_pathname, is
197    returned to the user.  If the get_boot_program control order is
198    executed on a tape that has a standard tape label record,
199    boot_program_ptr is set to null.
200 
201 
202 Notes on control operations from command level:
203 
204 All control operations can be performed using the io_call command.
205 
206 
207 List of io_call syntax and controls:
208 
209 io_call control switch order_arg
210 
211 
212 Arguments:
213 switch
214    is the name of the I/O switch.
215 order_arg
216    must be one of the following:
217 
218       error_count
219       boot_program PATH
220       get_boot_program