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 S1S2...SN, -ips S1S2...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