03/15/87 tape_mult_ Syntax: tape_mult_ reelid {-control_args} Function: The tape_mult_ I/O module supports I/O to and from Multics standard tapes. Arguments: reelid is the name of the tape reel to be mounted for this attachment. Control arguments: -comment STR, -com STR specifies a comment string that is displayed to the operator. It can be used to give the operator any special instructions that are relevant to this attachment. The comment string must be enclosed within quotes if it contains blanks or other spacing characters. -density N, -den N specifies the density setting of the attached tape drive, where N can be 800, 1600, or 6250 bpi. The defaults are 800 for 7-track, and 1600 for 9-track. When opened for reading, the specified density is used only as a first guess. If the tape cannot be read at that density, tape_mult_ tries the other density. -device TAPE_DRIVE, -dv TAPE_DRIVE specifies on which tape drive to mount the given tape volume. The tape_mult_ attach operation will fail if RCP is unable to attach this tape drive to the process. By default, RCP selects an appropriate tape drive from those reserved by or assigned to the process, or from the pool of available tape drives. -error_tally, -et when opened for stream_input, displays an error summary on the user_output stream upon closing the tape I/O switch. (See "Notes on error_tally" below). -speed S1{,S2,...,SN}, -ips S1{,S2,...,SN} specifies desired tape drive speeds in inches per second, where Si can be 75, 125, or 200 inches per second. (See "Notes on device speed specification" below.) -track N, -tk N specifies the track type of the tape drive that is to be attached, where N may be either 9 or 7. The default is 9. -write, -wrt mounts the tape reel with a write ring. The default is to mount the tape reel without a write ring. -system, -sys increases tape performance by using more I/O buffers and other performance optimizations. Access to >system_control_1>rcp>workspace.acs or rcp_sys_ is required to use this control argument. -volume_set_name STR, -vsn STR specifies the contents of the volume set name field located in the tape label record (see the Programmer's Reference Manual for a description of the standard Multics tape label record). See ("Notes on volume_set_id" below). Notes on error_tally: The error summary produced by -error_tally includes the total number of read errors; number of errors that were successfully recovered for each of 1 to 7 backspace/re-read retries (each re-read using a different threshold and/or de-skew setting); number of errors that could not be recovered by backspace/re-reading but were successfully recovered by reading forward and finding a good copy of the original record in error; and the number of times that both backspace/re-read and read forward recovery failed, but successful recovery was accomplished by backspacing two files, forward-spacing two files (thus positioning the tape at the beginning of the current file after tape motion past the tape cleaner and head in both directions dislodges any buildup of oxide particles on the tape or head surface) and then reading forward until original record in error was read successfully. This information is obtained from metering data kept in the tape_mult_ work segment, defined by tmdb.incl.pl1. Notes on device speed specification: The -speed control argument is used to specify acceptable tape device speeds in inches per second. The module only attaches a device that matches a speed specified by this control argument. If more than one speed is specified, the module attaches a device that matches one of the speeds. Notes on volume_set_id: When opened for writing, STR is written into the volume_set_id field of the tape label record. If this control argument is not specified, the volume_set_id field will be set to blanks. When opened for reading, the volume_set_id field of the tape label is compared to STR. If they match or if the volume_set_id field is padded with blanks, the open operation is allowed to be completed. If the volume_set_id field and STR do not match and the volume_set_id is not padded with blanks, error_table_$bad_label is returned. STR can be up to 32 characters in length. Notes on opening: The opening modes supported by tape_mult_ are stream_input and stream_output. If the opening mode is stream_output, the attach description must have specified the -write control argument. Notes on the read record operation: The get_chars operation reads Multics standard records until either the caller's buffer is filled, or until the end of the tape volume is encountered. If not all the characters on a tape record fit into the caller's buffer, they are saved by the I/O module for the next get_chars call. Notes on the write record operation: The put_chars operation formats the data into Multics standard records of 1024 data words each. Each record is written as it is filled. A partially filled record is not written onto the tape until it is filled with a subsequent put_chars operation, an error_count order is done, or the switch is closed. List of control orders: The tape_mult_ I/O module supports the control operation with three orders. error_count This order is supported only for the stream_output opening mode. It causes all output currently buffered to be written. An up-to-date error count is returned in the (fixed bin) variable referenced by the info_ptr argument. boot_program This order allows the specification of a boot program to be written into the tape label record (see the programmer's Reference Manual for a discussion of the bootable Multics tape label record format and function). The specified boot program must be coded in absolute self-relocating ALM assembly language and must be less than or equal to 832 (1500 octal) locations in length. The specified boot program is overlayed starting at absolute location 300 (octal) in the tape label record. When a Multics tape containing a bootable label record is bootloaded, control is transferred to location 300 via the tape label record transfer vector, the first 8 words of a bootable Multics tape label record. The I/O switch must be closed when this control order is executed. The specified boot program is written onto the tape label record when the tape is subsequently opened for output. The info_ptr must point to the boot_program_info structure as shown below. dcl 1 boot_program_info based (info_ptr), 2 version fixed bin, 2 boot_program_ptr pointer, 2 boot_program_text_length fixed bin (21), 2 boot_program_name char (32) unaligned; where: version is the version number of this structure, currently 1. boot_program_ptr is a pointer to the beginning of the text section of the specified boot program. boot_program_text_length is the length in 36-bit words of the text section of the specified boot program. boot_program_name if nonblank, is the name of the boot program that the user wants recorded in the boot_pgm_path field of the label record. If boot_program_name is blank, then the absolute pathname of the boot program is written into the boot_pgm_path field of the label record. get_boot_program This order allows a boot program to be extracted from the tape label when the tape is opened for input. This control order must be issued immediately after the tape is opened for input and before the first read operation is begun. If it is executed later, then error_table_$no_operation is returned. The info_ptr must point to the boot_program_info structure defined above for the boot_program control order. The user must set the version number. Then a pointer to a buffer, containing the extracted boot_program, its length, and the entryname portion of the boot_program_pathname, is returned to the user. If the get_boot_program control order is executed on a tape that has a standard tape label record, boot_program_ptr is set to null. Notes on control operations from command level: All control operations can be performed using the io_call command. List of io_call syntax and controls: io_call control switch order_arg Arguments: switch is the name of the I/O switch. order_arg must be one of the following: error_count boot_program PATH get_boot_program ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved