COMPILATION LISTING OF SEGMENT multics_tape_io_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/17/86 0849.8 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 multics_tape_io_: procedure; 7 8 /* format: style4 */ 9 10 /* * This program runs under control of the mtape_ I/O module and is meant 11* * to process data and file formats that are specific to Multics 12* * formated tapes, and is known as a Per-Format module. 13* * 14* * This Per-Format module is not fully implemented, and is only included 15* * so that if a Multics tape volume is mounted and recognized by 16* * mtape_/RCP, a linkage error will not result. When this module is 17* * called at its pfm_init entry, an error message is displayed 18* * explaining that the Multics Per-format module has not been 19* * implemented, and an error code is returned. 20* * 21* * Modification History: 22* * 23* * Dummy version created by J. A. Bush 07/10/83 24**/ 25 26 /* ARGUMENT DATA */ 27 28 dcl arg_mtdp ptr; /* Pointer to the mtape data structure */ 29 dcl arg_code fixed bin (35); /* Return error code */ 30 dcl arg_info_ptr ptr; /* Pointer to Order data from iox_$control call */ 31 dcl arg_io_call_infop ptr; /* Pointer to io_call control info structure */ 32 dcl arg_order_name char (*); /* Name of Control order to be processed */ 33 dcl arg_lr_ptr ptr; /* Pointer to current label record structure */ 34 dcl arg_labno fixed bin; /* label record within label group */ 35 dcl arg_type fixed bin; /* 1 => BOF; 2 => EOV; 3 => EOF */ 36 dcl arg_convert fixed bin; /* Label record conversion indicator */ 37 38 /* AUTOMATIC DATA */ 39 40 dcl code fixed bin (35); 41 dcl buf_ptr ptr; /* Auto copy of users buffer pointer */ 42 dcl buf_len fixed bin (21); /* Auto copy of users lrec buffer */ 43 dcl rec_len fixed bin (21); /* Auto copy of logical record length */ 44 45 /* CONSTANT DATA */ 46 47 /* EXTERNAL STATIC DATA */ 48 49 dcl error_table_$unimplemented_version fixed bin (35) ext static; 50 51 /* BUILTIN FUNCTIONS */ 52 53 /* EXTERNAL ENTRIES */ 54 55 /* BASED VARIABLES */ 56 57 /* pfm_init - entry to initialize the Per-Format module, setting up file and volume 58* processing parameters and determining correctness of current volume */ 59 60 pfm_init: entry (arg_mtdp, arg_code); 61 62 call SETUP; /* initialize our enviornment */ 63 code = error_table_$unimplemented_version; /* This is for the dummy PFM */ 64 call mtape_$error (mtdp, code, 65 "^/The mtape_ Multics Per-Format module has not been fully implemented."); 66 arg_code = code; 67 return; 68 69 /* file_open - entry to do format specific processing in opening the file 70* or file set (i.e. read and write file labels) */ 71 72 file_open: entry (arg_mtdp, arg_code); 73 74 call SETUP; /* initialize our enviornment */ 75 return; 76 77 /* file_close - entry to do format specific processing in closing the file 78* or file set (i.e. read and write file trailer labels) */ 79 80 file_close: entry (arg_mtdp, arg_code); 81 82 call SETUP; /* initialize our enviornment */ 83 return; 84 85 /* read - entry to read format specific logical records from the current file */ 86 87 read: entry (arg_mtdp, arg_code); 88 89 mtdp = arg_mtdp; /* copy arguments */ 90 buf_ptr = mtape_data.arg_buf_ptr; /* If = null, return length of next record */ 91 buf_len = mtape_data.arg_buf_len; 92 return; 93 94 /* write - entry to write format specific logical records into the current file */ 95 96 write: entry (arg_mtdp, arg_code); 97 98 mtdp = arg_mtdp; /* Copy arguments */ 99 buf_ptr = mtape_data.arg_buf_ptr; 100 buf_len = mtape_data.arg_buf_len; 101 return; 102 103 /* order - entry to process format specific control orders not recognized by mtape_ */ 104 105 order: entry (arg_mtdp, arg_order_name, arg_info_ptr, arg_io_call_infop, arg_code); 106 107 call SETUP; /* initialize our enviornment */ return; 108 109 /* decode_file_labels - entry to extract info contained in file labels, and fill in file_info structure */ 110 111 decode_file_labels: entry (arg_mtdp, arg_lr_ptr, arg_labno, arg_type, arg_code); 112 113 call SETUP; /* initialize our enviornment */ return; 114 115 /* encode_file_labels - entry to fill in file labels from info obtained from file_info structure */ 116 117 encode_file_labels: entry (arg_mtdp, arg_lr_ptr, arg_labno, arg_type, arg_convert, arg_code); 118 119 call SETUP; /* initialize our enviornment */ 120 return; 121 122 /* SETUP - internal procedure to set up enviornment for the external entries */ 123 124 SETUP: proc; 125 126 mtdp = arg_mtdp; /* get pointers to pertinient data */ 127 vs_ptr = mtape_data.vs_current; 128 fi_ptr = mtape_data.fi_current; 129 maip = mtape_data.attach_info_ptr; 130 moip = mtape_data.open_info_ptr; 131 mpfmip = mtape_data.pfm_info_ptr; 132 arg_code, code = 0; /* and reset error codes */ 133 134 end SETUP; 135 1 1 /* BEGIN INCLUDE FILE mtape_includes.incl.pl1. Created by J. A. Bush 07/29/83 */ 1 2 /* This include file contains all of the mtape_ include files necessary for a 1 3* Per-Format module to obtain the proper references */ 1 4 2 1 /* BEGIN INCLUDE FILE mtape_data.incl.pl1. Created by J. A. Bush 10/06/82 */ 2 2 /* format: style4 */ 2 3 2 4 dcl mtdp ptr; 2 5 2 6 dcl mtape_data_version_1 char (8) int static options (constant) init ("mtdv0001"); 2 7 2 8 dcl 1 mtape_data aligned based (mtdp), 2 9 2 version char (8), /* Current structure version */ 2 10 2 areap ptr, /* Pointer to an allocation area */ 2 11 2 iocb_ptr ptr, /* Pointer to our IO control block */ 2 12 2 atdp ptr, /* Pointer to the attach description string */ 2 13 2 opdp ptr, /* Pointer to the open description string */ 2 14 2 cldp ptr, /* Pointer to close description string */ 2 15 2 dtdp ptr, /* Pointer to detach description string */ 2 16 2 cmtdp ptr, /* If non-null, Ptr to allocated copy of mtape_data */ 2 17 2 vs_head ptr, /* Pointer to the first volume_set structure */ 2 18 2 vs_tail ptr, /* Pointer to the last volume_set structure */ 2 19 2 vs_current ptr, /* Pointer to the current volume_set structure */ 2 20 2 vs_mounted_tail ptr, /* Pointer to MRM volume_set member */ 2 21 2 fi_head ptr, /* Pointer to the first file_info structure */ 2 22 2 fi_tail ptr, /* Pointer to the last file_info structure */ 2 23 2 fi_current ptr, /* Pointer to the current file_info structure */ 2 24 2 tape_infop ptr, /* Pointer to rcp tape info structure */ 2 25 2 last_ur_status_ptr ptr, /* If non-null, Ptr to last unrecoverable status */ 2 26 2 io_echan fixed bin (71), /* Fast wait channel for I/O interrupts */ 2 27 2 mount_echan fixed bin (71), /* Regular wait channel for mount requests */ 2 28 2 data_xfer_args, /* Arguments for time critical (read/write) calls */ 2 29 3 arg_buf_ptr ptr, /* Pointer to users buffer */ 2 30 3 arg_buf_len fixed bin (21), /* Length of users buffer in bytes */ 2 31 3 arg_rec_len fixed bin (21), /* Length of record read in bytes */ 2 32 2 error_lock fixed bin (35), /* if ^= 0 = file locked error code */ 2 33 2 abs_ans char (3), /* Query answer (yes or no) for abs user */ 2 34 2 user_type bit (1), /* "1"b => interactive; "0"b => absentee */ 2 35 2 display_errors bit (1), /* "1"b => display verbose error messages */ 2 36 2 force_end_of_volume bit (1), /* "1"b => simulate EOV on next write */ 2 37 2 opd_len fixed bin (21), /* Allocated length of open description */ 2 38 2 drives_in_use fixed bin, /* Number of tape drives currently in use */ 2 39 2 data_buffers, /* Info about data buffers */ 2 40 3 buf_ptrs (8) ptr, /* Pointers to a subset of ioi buffers */ 2 41 3 blind_buf_ptrs (8) ptr, /* Pointers to other subset of buffers */ 2 42 3 buf_len (8) fixed bin (21), /* Length of buffers in 9 bit bytes */ 2 43 3 blind_buf_len (8) fixed bin (21), /* Lengths of other subset of buffers */ 2 44 3 nbufs fixed bin, /* Number of data buffers currently in use */ 2 45 3 buf_size fixed bin (21), /* Allocated size of data buffers in bytes */ 2 46 3 bufs_per_subset fixed bin, /* Number of buffers to write/read per I/O */ 2 47 3 cur_buf_idx fixed bin, /* Index into subset of current buffer */ 2 48 3 run bit (1), /* "1"b => wrt I/O queued thru tape_ioi_; "0"b => ^Queued */ 2 49 2 label_buffer, /* Info about label record buffer */ 2 50 3 lab_bufp ptr, /* Pointer to label I/O buffer */ 2 51 3 lab_buf_len fixed bin (21), /* Length of label buffer in 9 bit bytes */ 2 52 2 tlb ptr, /* Pointer to a temp label record structure */ 2 53 2 position, /* Position on current volume */ 2 54 3 phy_file fixed bin, /* physical file number */ 2 55 3 phy_block fixed bin, /* physical block within physical file */ 2 56 2 current_file, /* instantanious info about current file */ 2 57 3 cur_block, /* info about current block */ 2 58 4 cur_buf_ptr ptr, /* Pointer to the current data buffer */ 2 59 4 log_record_ptr ptr, /* Pointer to current logical record */ 2 60 4 length fixed bin (21), /* Length of current block in bytes */ 2 61 4 processed fixed bin (21), /* Number of chars processed already */ 2 62 4 remain fixed bin (21), /* Number of chars remaining to be processed */ 2 63 4 log_record fixed bin (21), /* Log. record within the current block */ 2 64 3 char_size fixed bin, /* Size in bits of the data chars of this file */ 2 65 3 padding_char char (1), /* To pad blocks to mod 4 on binary writes */ 2 66 3 length_mode fixed bin, /* 0 => W/R mod 4 blocks; 1 => W/R non-mod 4 blocks */ 2 67 3 hdw_mode fixed bin, /* Hardware recording mode: 2 68* 1 = binary; 2 = nine track; 3 = BCD */ 2 69 3 conversion fixed bin, /* File data conversion: 2 70* 0 = no conversion; 1 = ASCII<->EBCDIC; 2 = ASCII<->BCD */ 2 71 3 buffer_offset fixed bin, /* Number of bytes prior to data */ 2 72 3 block_size fixed bin (21), /* Maximum block size for this file */ 2 73 3 record_size fixed bin (21), /* Maximum record size for this file */ 2 74 3 prev_block_no fixed bin (21), /* Number of previous block read */ 2 75 3 ad_file_format fixed bin, /* 1 = U; 2 = F; 3 = D or V; 4 = S or VS */ 2 76 3 file_blocked bit (1), /* "1"b => file is blocked */ 2 77 3 native_file bit (1), /* "1"b => current file written by mtape_ PFM */ 2 78 3 write_after_read bit (1), /* "1"b => truncate file (and file_set) at this record */ 2 79 3 first_file bit (1), /* "1"b => first file has been processed */ 2 80 3 tot_bytes_processed fixed bin (35), /* total bytes in this file section */ 2 81 3 last_io fixed bin, /* Last I/O operation (1 = read; 2 = write) */ 2 82 3 lrec_rrcx fixed bin, /* current index of the lrec round robin counter */ 2 83 3 lrec_rrc, /* history of last n logical records */ 2 84 4 block_no (0:7) fixed bin (35), /* block (within file section) where lrec starts */ 2 85 4 block_len (0:7) fixed bin (35), /* block len of current block */ 2 86 4 lrec_no (0:7) fixed bin (35), /* logical record within currnt block */ 2 87 4 abs_byte (0:7) fixed bin (35), /* byte (within file section) where lrec starts */ 2 88 4 byte_offset (0:7) fixed bin, /* offset of 1st byte of lrec (within block) */ 2 89 3 blk_rrcx fixed bin, /* index into blk_rrrc array of last block */ 2 90 3 blk_rrrc (0:7) fixed bin (35), /* contains Lrec count of last n blocks */ 2 91 3 tot_lrec fixed bin (35), /* Total logical records processed in current file */ 2 92 2 tioi_id bit (36), /* Identifier used for calls to tape_ioi_ */ 2 93 2 attach_info_ptr ptr, /* Pointer to attach option info */ 2 94 2 open_info_ptr ptr, /* Pointer to open option info */ 2 95 2 close_info_ptr ptr, /* Pointer to close option info */ 2 96 2 detach_info_ptr ptr, /* Pointer to detach option info */ 2 97 2 pfm_info_ptr ptr, /* Pointer to PFM info block */ 2 98 2 saved_pfm_info_ptr ptr, /* Pointer to info for "change_module" control OP */ 2 99 2 pfm_name char (32), /* Name of Per-Format module */ 2 100 2 pfm_required_entries like pfm_entries, /* Required entry point declarations in PFM */ 2 101 2 pfm_work_area (32) fixed bin (35); /* PFM work buffer */ 2 102 2 103 dcl 1 pfm_entries based aligned, /* Entry declarations for PFM entries */ 2 104 2 pfm_init entry (ptr, fixed bin (35)), /* PFM initialization entry */ 2 105 2 file_open entry (ptr, fixed bin (35)), /* PFM file_open entry */ 2 106 2 file_close entry (ptr, fixed bin (35)), /* PFM file_close entry */ 2 107 2 read entry (ptr, fixed bin (35)), /* PFM read entry */ 2 108 2 write entry (ptr, fixed bin (35)), /* PFM write entry */ 2 109 2 order entry (ptr, char (*), ptr, ptr, fixed bin (35)), /* PFM control order entry */ 2 110 2 decode_file_labels entry (ptr, ptr, fixed bin, fixed bin, fixed bin (35)), 2 111 2 encode_file_labels entry (ptr, ptr, fixed bin, fixed bin, fixed bin, fixed bin (35)); 2 112 2 113 dcl all_buf_ptrs (16) ptr based (addr (mtape_data.buf_ptrs)); 2 114 dcl all_buf_lens (16) fixed bin (21) based (addr (mtape_data.buf_len)); 2 115 dcl tape_blk (mtape_data.length) char (1) unaligned based (mtape_data.cur_buf_ptr); /* template for a tape block */ 2 116 2 117 /* END INCLUDE FILE mtape_data.incl.pl1 */ 1 5 1 6 3 1 /* BEGIN INCLUDE FILE mtape_vol_set.incl.pl1. Created by J. A. Bush 10/13/82 */ 3 2 /* The include file mtape_err_stats.incl.pl1 is referenced by this include file */ 3 3 /* format: style4 */ 3 4 3 5 dcl vs_ptr ptr; 3 6 3 7 dcl mtape_vs_version_1 char (8) int static options (constant) init ("mtvsv001"); 3 8 3 9 dcl 1 mtape_vol_set aligned based (vs_ptr), 3 10 2 version char (8), /* Current version */ 3 11 2 prev_vs_ptr ptr, /* Pointer to previous volume set entry */ 3 12 2 next_vs_ptr ptr, /* Pointer to next volume set entry */ 3 13 2 mrm_vs_ptr ptr, /* Pointer to Most Recently Mounted VS member */ 3 14 2 lrm_vs_ptr ptr, /* Pointer to Least Recently Mounted VS member */ 3 15 2 first_vl_ptr ptr, /* Pointer to the first volume label record structure */ 3 16 2 last_vl_ptr ptr, /* Pointer to the last volume label record structure */ 3 17 2 volume_name char (32), /* Name specified in the attach description */ 3 18 2 volume_id char (32), /* Name as recorded in the volume label */ 3 19 2 mount_comment char (64), /* Mount comment from attach description */ 3 20 2 demount_comment char (64), /* Demount comment from detach description */ 3 21 2 device_name char (8), /* Device volume is currently or last mounted on */ 3 22 2 rcp_id bit (36), /* RCP activation for this volume */ 3 23 2 tioi_id bit (36), /* tape_ioi_ activation for this volume */ 3 24 2 volume_index fixed bin, /* Volume sequence number within volume set */ 3 25 2 volume_density fixed bin, /* Actual volume density determined by RCP */ 3 26 2 volume_type fixed bin, /* Use rcp_volume_formats.incl.pl1 for decode */ 3 27 2 volume_check fixed bin, /* Refer to named constants below for values */ 3 28 2 number_of_vol_labels fixed bin, /* # of volume label records on this volume */ 3 29 2 auth_required bit (1), /* "1"b => Operator authentication was required */ 3 30 2 mounted bit (1), /* "1"b => volume currently mounted */ 3 31 2 ever_mounted bit (1), /* "1"b => volume has been mounted */ 3 32 2 volume_end bit (1), /* "1"b => reached end of volume (EOT foil) on write */ 3 33 2 first_file_unexpired bit (1), /* "1"b => first file of volume is unexpired */ 3 34 2 dev_att_retry bit (1), /* "1"b => DEVICE ATTENTION recovery in progress */ 3 35 2 pwr_off_retry bit (1), /* "1"b => POWER OFF recovery in progress */ 3 36 2 mounts fixed bin, /* Number of times volume mounted during attachment */ 3 37 2 tot_error_stats like mtape_err_stats, /* Summation of error statistics for all mounts */ 3 38 2 rel_error_stats like mtape_err_stats; /* Summation of error statistics, this mount */ 3 39 3 40 /* Named constants applied to volume_check variable, when volume label read by PFMs pfm_init entry */ 3 41 3 42 dcl (MTAPE_VOLUME init (1), /* Volume recorded by mtape_ (desired type) */ 3 43 MULT_PRIOR_VOLUME init (2), /* Volume recorded by prior Multics software 3 44* (desired type) */ 3 45 NON_MULT_VOLUME init (3), /* Volume recorded by other vendor (desired type) */ 3 46 BLANK_VOLUME init (4), /* Volume is blank/unreadable */ 3 47 UNLABELED_VOLUME init (5), /* Volume is unlabeled or has unrecognized label */ 3 48 RECOG_FORMAT_VOLUME init (6) /* Volume has label of other recognized format */ 3 49 ) fixed bin int static options (constant); 3 50 3 51 /* END INCLUDE FILE mtape_vol_set.incl.pl1 */ 1 7 1 8 4 1 /* BEGIN INCLUDE FILE mtape_label_record.incl.pl1. Created by J. A. Bush 10/13/82 */ 4 2 /* format: style4 */ 4 3 4 4 dcl lr_ptr ptr; 4 5 4 6 dcl mtape_lr_version_1 char (8) int static options (constant) init ("mtlrv001"); 4 7 4 8 dcl 1 mtape_label_record aligned based (lr_ptr), 4 9 2 version char (8), /* Current version */ 4 10 2 prev_lab_ptr ptr, /* Pointer to previous label record structure */ 4 11 2 next_lab_ptr ptr, /* Pointer to next label record structure */ 4 12 2 lab_ptr ptr, /* Pointer to the actual format specific label record */ 4 13 2 lab_length fixed bin, /* Length in 9 bit bytes of the label record */ 4 14 2 mode fixed bin, /* Hardware recording mode: 4 15* 1 = binary 4 16* 2 = nine 4 17* 3 = bcd */ 4 18 2 conversion fixed bin; /* Character set conversion required: 4 19* 1 = no conversion 4 20* 2 = ASCII <==> EBCDIC (any case) 4 21* 3 = ASCII <==> BCD 4 22* 4 = ASCII ==> Upper case ASCII 4 23* 5 = ASCII ==> Upper case EBCDIC */ 4 24 4 25 /* END INCLUDE FILE mtape_label_record.incl.pl1 */ 1 9 1 10 5 1 /* BEGIN INCLUDE FILE mtape_err_stats.incl.pl1. Created by J. A. Bush 07/22/83. */ 5 2 /* format: style4 */ 5 3 5 4 dcl es_ptr ptr; 5 5 5 6 dcl 1 mtape_err_stats aligned based (es_ptr), /* Error statistics block */ 5 7 2 read like err_entry, /* For read operations */ 5 8 2 write like err_entry, /* For write operations */ 5 9 2 orders like err_entry, /* For non-data xfer operations */ 5 10 2 successful_retry (7) fixed bin (35); /* retrys that succeeded after 1-7 trys */ 5 11 5 12 dcl 1 err_entry aligned based, 5 13 2 errors fixed bin (35), 5 14 2 operations fixed bin (35); 5 15 5 16 /* END INCLUDE FILE mtape_err_stats.incl.pl1 */ 1 11 1 12 6 1 /* BEGIN INCLUDE FILE mtape_file_info.incl.pl1. Created by J. A. Bush 10/13/82 */ 6 2 /* format: style4 */ 6 3 6 4 dcl fi_ptr ptr; 6 5 6 6 dcl mtape_fi_version_1 char (8) int static options (constant) init ("mtfiv001"); 6 7 6 8 dcl 1 mtape_file_info aligned based (fi_ptr), 6 9 2 version char (8), /* Current version */ 6 10 2 prev_fi_ptr ptr, /* Pointer to the previous file info structure */ 6 11 2 next_fi_ptr ptr, /* Pointer to the next file info structure */ 6 12 2 first_file_lab_ptr ptr, /* Pointer to 1st label record struc. */ 6 13 2 last_file_lab_ptr ptr, /* Pointer to last label record struc. */ 6 14 2 first_file_trail_ptr ptr, /* Pointer to 1st trailer record struc. */ 6 15 2 last_file_trail_ptr ptr, /* Pointer to last trailer record struc. */ 6 16 2 first_file_section_ptr ptr, /* Pointer to file_info struct. of 1st file section */ 6 17 2 begin_vs_ptr ptr, /* Pointer to 1st volume set struct. containing this file */ 6 18 2 end_vs_ptr ptr, /* Pointer to last volume set struct. containing this file */ 6 19 2 position_within_file fixed bin, /* 0 = In HDR; 1 = In data file; 2 = In trailer; 6 20* 3 = Not positioned within this file 6 21* 4 = At beginning of data file; 5 = At EOF */ 6 22 2 per_file_info, /* Information pertaining to entire file */ 6 23 3 file_id char (32), /* File identifier or name */ 6 24 3 file_set_id char (32), /* Identifies the file set */ 6 25 3 creation_date char (6), /* File creation date in form " yyddd" */ 6 26 3 expiration_date char (6), /* File expiration date in form " yyddd" */ 6 27 3 file_code char (3), /* Printable file code */ 6 28 3 file_format fixed bin, /* Current file format: 6 29* 0 = unspecified; 1 = U; 2 = F; 3 = D or V; 6 30* 4 = S or VS; 5 = FB; 6 31* 6 = DB or VB; 7 = SB or VBS; */ 6 32 3 seq_number fixed bin, /* File sequence number */ 6 33 3 generation fixed bin, /* File generation number, if supported */ 6 34 3 gen_version fixed bin, /* File generation version number, if supported */ 6 35 3 char_size fixed bin, /* Size in bits of the data chars of this file */ 6 36 3 hdw_mode fixed bin, /* Hardware mode: 1 = binary; 2 = nine; 3 = BCD */ 6 37 3 conversion fixed bin, /* File data conversion: 6 38* 1 = no conversion; 2 = ASCII<->EBCDIC; 3 = ASCII<->BCD */ 6 39 3 buffer_offset fixed bin, /* Number of bytes prior to data */ 6 40 3 length_mode fixed bin, /* 0 => W/R mod 4 blocks; 1 => W/R non-mod 4 blocks */ 6 41 3 block_size fixed bin (21), /* Maximum block size for this file */ 6 42 3 record_size fixed bin (21), /* Maximum record size for this file */ 6 43 3 native_file bit (1), /* "1"b => current file written by mtape_ PFM */ 6 44 3 user_labels_present bit (1), /* "1"b => UHL/UTL are present */ 6 45 3 unlabeled_file bit (1), /* "1"b => this is unlabeled file */ 6 46 3 pfm_opt_sw (5) bit (1), /* PFM dependent */ 6 47 3 pfm_opt_value (5) fixed bin (35), /* PFM dependent */ 6 48 3 pfm_opt_str (5) char (32), /* PFM dependent */ 6 49 2 per_section_info, /* Information pertaining only to this file section */ 6 50 3 section fixed bin, /* File section number for multi-volume files */ 6 51 3 phy_file fixed bin, /* Phy. file of HDR label GRP, on the current volume */ 6 52 3 first_file_on_volume bit (1), /* "1"b => First file or file section on this volume */ 6 53 3 end_of_file_set bit (1), /* "1"b => This is last file of file set */ 6 54 3 block_count fixed bin (35), /* Number of blocks in this file section */ 6 55 3 read_errors fixed bin (35), /* of errors encountered reading this file */ 6 56 3 write_errors fixed bin (35); /* of errors encountered writing this file */ 6 57 6 58 /* END INCLUDE FILE mtape_file_info.incl.pl1 */ 1 13 1 14 7 1 /* BEGIN INCLUDE FILE mtape_attach_info.incl.pl1. Created by J. A. Bush 06/13/83 */ 7 2 /* format: style4 */ 7 3 7 4 dcl maip ptr; 7 5 7 6 dcl mtape_attach_info_version_1 char (8) int static options (constant) init ("maiv0001"); 7 7 7 8 dcl 1 mtape_attach_info aligned based (maip), 7 9 2 version char (8), /* Current structure version */ 7 10 2 density fixed bin (35), /* 200, 556, 800, 1600, 6250 BPI */ 7 11 2 tracks fixed bin (35), /* Number of tracks, 7 or 9 */ 7 12 2 speed bit (36), /* "000"b = any speed; "1xx"b = 75 IPS; 7 13* "x1x"b = 125 IPS; "xx1"b = 200 IPS */ 7 14 2 ndrives fixed bin (35), /* 0 = unspecified; 1 - 63 devices to be used */ 7 15 2 wait_time fixed bin (35), /* time to wait in minutes for available device */ 7 16 2 pfm_prefix char (21), /* if "-volume_type" was specified */ 7 17 2 default_pfm_prefix char (21), /* if no "-vt" specified and blank volume */ 7 18 2 display bit (1), /* Display attach description on user_output */ 7 19 2 labeled bit (1), /* "1"b => labeled; "0"b => unlabeled volume set */ 7 20 2 wait bit (1), /* "1"b => wait for available devices; "0"b => don't wait */ 7 21 2 system bit (1), /* "1"b => User wants to be a "system" process */ 7 22 2 ring bit (1); /* "1"b => write ring in; "0"b => no write ring */ 7 23 7 24 /* END INCLUDE FILE mtape_attach_info.incl.pl1 */ 1 15 1 16 8 1 /* BEGIN INCLUDE FILE mtape_pfm_info.incl.pl1. Created by J. A. Bush 06/16/83 */ 8 2 /* format: style4 */ 8 3 8 4 dcl mpfmip ptr; 8 5 8 6 dcl mtape_pfm_info_version_1 char (8) int static options (constant) init ("mpiv0001"); 8 7 8 8 dcl 1 mtape_pfm_info aligned based (mpfmip), /* PFM information block */ 8 9 2 version char (8), /* Current structure version */ 8 10 2 module_id char (21), /* For identification of PFM. (e.g. ANSI, IBM, GCOS) */ 8 11 2 open_modes_allowed (3) fixed bin, /* Allowable open modes for this PFM */ 8 12 2 bof_prefix char (3), /* For identification of BOF labels */ 8 13 2 eov_prefix char (3), /* For identification of EOV labels */ 8 14 2 eof_prefix char (3), /* For identification of EOF labels */ 8 15 2 no_labels_ok bit (1), /* "1"b => PFM processes unlabeled volumes */ 8 16 2 multi_volumes_ok bit (1), /* "1"b => PFM processes multi-volume sets */ 8 17 2 extended_error_recovery bit (1), /* "1"b => PFM will do error recovery after mtape_ gives up */ 8 18 2 pfm_open_options like pfm_options, /* open options common to this PFM */ 8 19 2 pfm_close_options like pfm_options; /* close options common to this PFM */ 8 20 8 21 dcl 1 pfm_options aligned based, /* common to open and close pfm options */ 8 22 2 pfm_opt_flags (5), /* identifies use of "pfm_opt_sw (1-5)" close flags */ 8 23 3 flag_name char (32), /* name of flag */ 8 24 3 flag_ant_name char (32), /* antonym name */ 8 25 2 pfm_opt_value_name (5) char (32), /* identifies use of "pfm_opt_value (1-5)" */ 8 26 2 pfm_opt_str_name (5) char (32); /* identifies use of "pfm_opt_str (1-5)" */ 8 27 8 28 /* END INCLUDE FILE mtape_pfm_info.incl.pl1 */ 1 17 1 18 9 1 /* BEGIN INCLUDE FILE mtape_open_close_info.incl.pl1. Created by J. A. Bush 06/13/83 */ 9 2 /* format: style4 */ 9 3 9 4 dcl moip ptr; /* Pointer to mtape_open_info structure */ 9 5 dcl mcip ptr; /* Pointer to mtape_close_info structure */ 9 6 9 7 dcl mtape_open_info_version_1 char (8) int static options (constant) init ("moiv0001"); 9 8 dcl mtape_close_info_version_1 char (8) int static options (constant) init ("mciv0001"); 9 9 9 10 dcl 1 mtape_open_info aligned based (moip), 9 11 2 version char (8), /* Current structure version */ 9 12 2 cs_ptr ptr, /* Pointer to arg processing control structure */ 9 13 2 cal_ptr ptr, /* Pointer to arg processing ctl arg list */ 9 14 2 so_ptr ptr, /* Pointer to last saved iox_ options */ 9 15 2 open_mode fixed bin, /* iox_ opening mode */ 9 16 2 comment char (80), /* Display on user_output after open */ 9 17 2 expiration char (24), /* File expiration date */ 9 18 2 file_format char (3), /* File format code */ 9 19 2 recording_mode char (6), /* Ascii, ebcdic, or binary */ 9 20 2 file_name char (32), /* Name of file to be recorded */ 9 21 2 replace_id char (32), /* Name of file to replace */ 9 22 2 init_to_zero, /* Enables clearing rest of structure */ 9 23 3 block_length fixed bin (35), /* Block size in bytes */ 9 24 3 record_length fixed bin (35), /* Record length specified by user */ 9 25 3 default_span_rlen fixed bin (35), /* Default record length for spanned records */ 9 26 3 default_var_rlen fixed bin (35), /* Default record length for variable records */ 9 27 3 default_fix_rlen fixed bin (35), /* Default record length for fixed records */ 9 28 3 seq_number fixed bin (35), /* File sequence number */ 9 29 3 append bit (1), /* "1"b => append file to end of file set */ 9 30 3 create bit (1), /* "1"b => create this file */ 9 31 3 display bit (1), /* "1"b => display the open description */ 9 32 3 extend bit (1), /* "1"b => extend the current file */ 9 33 3 force bit (1), /* "1"b => disregard file expiration when creating */ 9 34 3 last_file bit (1), /* "1"b => position to last file of file set */ 9 35 3 next_file bit (1), /* "1"b => position to next file of file set */ 9 36 3 modify bit (1), /* "1"b => modify the current file */ 9 37 3 label_entry_present bit (1), /* "1"b => user label entry is valid */ 9 38 3 user_label entry (ptr, char (*), fixed bin, fixed bin, fixed bin, fixed bin (35)), 9 39 3 pfm_args like pfm_arg_values; /* see structure below */ 9 40 9 41 dcl 1 mtape_close_info aligned based (mcip), 9 42 2 version char (8), /* Current structure version */ 9 43 2 cs_ptr ptr, /* Pointer to arg processing control structure */ 9 44 2 cal_ptr ptr, /* Pointer to arg processing ctl arg list */ 9 45 2 so_ptr ptr, /* Pointer to last saved iox_ options */ 9 46 2 comment char (80), /* Display on user_output after open */ 9 47 2 init_to_zero, /* Enables clearing rest of structure */ 9 48 3 display bit (1), /* Display open description for user */ 9 49 3 position fixed bin, /* For positioning on file closing: 9 50* 0 = Leave at current position; 9 51* 1 = Position to beginning of file; 9 52* 2 = Position to end of file; 9 53* 3 = Position to beginning of file section; 9 54* 4 = Position to end of file section */ 9 55 3 pfm_args like pfm_arg_values; /* see structure below */ 9 56 9 57 dcl 1 pfm_arg_values aligned based, /* Common to open and close_info */ 9 58 2 pfm_opt_sw (5) bit (1), /* PFM dependent */ 9 59 2 pfm_opt_value (5) fixed bin (35), /* PFM dependent */ 9 60 2 pfm_opt_str (5) char (32); /* PFM dependent */ 9 61 9 62 /* END INCLUDE FILE mtape_open_close_info.incl.pl1 */ 1 19 1 20 10 1 /* BEGIN INCLUDE FILE mtape_constants.incl.pl1. Created by J. A. Bush 10/07/82 */ 10 2 /* format: style4 */ 10 3 10 4 /* This include file defines various named constants used throughout mtape_ 10 5* and its associated Per-Format modules */ 10 6 10 7 /* Storage allocation constants, used to denote what type of storage to allocate */ 10 8 10 9 dcl (MTAPE_ALLOC_VS init (1), /* to allocate a volume_set structure */ 10 10 MTAPE_ALLOC_LR init (2), /* to allocate a label record structure */ 10 11 MTAPE_ALLOC_FI init (3), /* to allocate a file_info structure */ 10 12 MTAPE_ALLOC_STR init (4) /* to allocate a character string, or undefined block */ 10 13 ) fixed bin int static options (constant); 10 14 10 15 /* Volume density constants */ 10 16 10 17 dcl MTAPE_VALID_DENSITIES (5) init (200, 556, 800, 1600, 6250) 10 18 fixed bin int static options (constant); 10 19 10 20 /* Device speed constants */ 10 21 10 22 dcl MTAPE_SPEED_VALUES (4) init (0, 75, 125, 200) /* 0 is any speed device */ 10 23 fixed bin int static options (constant); 10 24 10 25 /* Hardware Mode constants */ 10 26 10 27 dcl (MTAPE_HWM_BIN init (1), /* For binary hardware mode */ 10 28 MTAPE_HWM_NINE init (2), /* For nine hardware mode */ 10 29 MTAPE_HWM_BCD init (3) /* For BCD hardware mode */ 10 30 ) fixed bin int static options (constant); 10 31 10 32 /* Data conversion constants */ 10 33 10 34 dcl (MTAPE_UNSPECIFIED init (0), /* attribute not specified */ 10 35 MTAPE_NO_CONVERSION init (1), /* No conversion on input or output */ 10 36 MTAPE_CV_EBCDIC init (2), /* Convert to/from EBCDIC (from/to ASCII) */ 10 37 MTAPE_CV_BCD init (3), /* Convert to/from BCD (from/to ASCII) */ 10 38 MTAPE_CV_UC_ASCII init (4), /* Convert to Upper case ASCII (from any case ASCII) */ 10 39 MTAPE_CV_UC_EBCDIC init (5) /* Convert to Upper case EBCDIC (from any case ASCII) */ 10 40 ) fixed bin int static options (constant); 10 41 10 42 /* File positioning constants */ 10 43 10 44 dcl (NOT_POSITIONED_IN_FILE init (0), /* Not currently positioned within this file */ 10 45 AT_BOFH init (1), /* Positioned at beginning of file hdr */ 10 46 AT_EOFH init (2), /* Positioned at end of file hdr */ 10 47 AT_BOFD init (3), /* Positioned at beginning of file data */ 10 48 AT_IFD init (4), /* Positioned in file data, not beginning */ 10 49 AT_EOFD init (5), /* Positioned prior to end of data file */ 10 50 AT_BOFT init (6), /* Positioned at beginning of trailer label file */ 10 51 AT_EOFT init (7), /* Positioned at end of trailer label file */ 10 52 AT_EOF init (8), /* Positioned after trailer labels at EOF */ 10 53 FILES_PER_FILE_GRP init (3) /* # of physical files per file (section) group */ 10 54 ) fixed bin int static options (constant); 10 55 10 56 dcl (BOF_LABEL init (1), /* indicates beginning of file label */ 10 57 EOV_LABEL init (2), /* indicates end of volume label */ 10 58 EOF_LABEL init (3) /* indicates end of file label */ 10 59 ) fixed bin int static options (constant); 10 60 10 61 /* user query constant codes */ 10 62 10 63 dcl (Q_NO_NEXT_VOLUME init (1), 10 64 Q_LABELED_VOLUME init (2), 10 65 Q_UNEXPIRED_VOLUME init (3), 10 66 Q_INCORRECT_VOLUME init (4), 10 67 Q_UNEXPIRED_FILE init (5), 10 68 Q_ABORT_FILE init (6) 10 69 ) fixed bin int static options (constant); 10 70 10 71 /* END INCLUDE FILE mtape_constants.incl.pl1 */ 1 21 1 22 11 1 /* BEGIN INCLUDE FILE mtape_dcls.incl.pl1. Created by J. A. Bush 04/20/83 */ 11 2 /* format: style4 */ 11 3 11 4 /* Usage: call mtape_$alloc (mtdp, type, link_tail, length, alloc_ptr); */ 11 5 dcl mtape_$alloc entry (ptr, fixed bin, ptr, fixed bin (21), ptr); 11 6 11 7 /* Usage: call mtape_$allocate_buffers (mtdp, block_size, code); */ 11 8 dcl mtape_$allocate_buffers entry (ptr, fixed bin (21), fixed bin (35)); 11 9 11 10 /* Usage: call mtape_$demount (mtdp, code); 11 11*dcl mtape_$demount entry (ptr, fixed bin (35)); 11 12* 11 13*/* Usage: call mtape_$error (mtdp, code, ioa_cntl_string, arguments); */ 11 14 dcl mtape_$error entry options (variable); 11 15 11 16 /* Usage: call mtape_$flush_buffers (mtdp, code); */ 11 17 dcl mtape_$flush_buffers entry (ptr, fixed bin (35)); 11 18 11 19 /* Usage: call mtape_$mount (mtdp, code); 11 20*dcl mtape_$mount entry (ptr, fixed bin (35)); 11 21*/* Usage: call mtape_$order (mtdp, mnemonic, repeat_count, info_ptr, code); */ 11 22 dcl mtape_$order entry (ptr, char (*), fixed bin, ptr, fixed bin (35)); 11 23 11 24 /* Usage: call mtape_$read_block (mtdp, code); */ 11 25 dcl mtape_$read_block entry (ptr, fixed bin (35)); 11 26 11 27 /* Usage: call mtape_$read_label (mtdp, lr_ptr, code); */ 11 28 dcl mtape_$read_label entry (ptr, ptr, fixed bin (35)); 11 29 11 30 /* Usage: call mtape_$set_mode (mtdp, mode, mode_index, mode_ptr, code); */ 11 31 dcl mtape_$set_mode entry (ptr, char (*), fixed bin, ptr, fixed bin (35)); 11 32 11 33 /* Usage: call mtape_$stop_tape (mtdp, code); */ 11 34 dcl mtape_$stop_tape entry (ptr, fixed bin (35)); 11 35 11 36 /* Usage: call mtape_$user_query (mtdp, query_code, code); */ 11 37 dcl mtape_$user_query entry (ptr, fixed bin, fixed bin (35)); 11 38 11 39 /* Usage: call mtape_$volume_switch (mtdp, new_vs_ptr, code); */ 11 40 dcl mtape_$volume_switch entry (ptr, ptr, fixed bin (35)); 11 41 11 42 /* Usage: call mtape_$write_block (mtdp, code); */ 11 43 dcl mtape_$write_block entry (ptr, fixed bin (35)); 11 44 11 45 /* Usage: call mtape_$write_label (mtdp, lr_ptr, code); */ 11 46 dcl mtape_$write_label entry (ptr, ptr, fixed bin (35)); 11 47 11 48 /* Usage: call pfm_utils_$file_search (mtdp, fi_ptr, vs_ptr, code); */ 11 49 dcl pfm_utils_$file_search entry (ptr, ptr, ptr, fixed bin (35)); 11 50 11 51 /* Usage: call pfm_utils_$init_label_record (mtdp, link_tail, link_head, lr_ptr, length); */ 11 52 dcl pfm_utils_$init_label_record entry (ptr, ptr, ptr, ptr, fixed bin (21)); 11 53 11 54 /* Usage: blk_yyddd = pfm_utils_$julian_date (date_time_string); */ 11 55 dcl pfm_utils_$julian_date entry (char (*)) returns (char (6)); 11 56 11 57 /* Usage: call pfm_utils_$position_in_file (mtdp, fi_ptr, vs_ptr, position_constant, code); */ 11 58 dcl pfm_utils_$position_in_file entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 11 59 11 60 /* Usage: call pfm_utils_$read_file_labels (mtdp, fi_ptr, vs_ptr, label_type, code); */ 11 61 dcl pfm_utils_$read_file_labels entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 11 62 11 63 /* Usage: call pfm_utils_$setup_file (mtdp, fi_ptr, new_section); */ 11 64 dcl pfm_utils_$setup_file entry (ptr, ptr, bit (1) aligned); 11 65 11 66 /* Usage: call pfm_utils_$truncate_file_set (mtdp); */ 11 67 dcl pfm_utils_$truncate_file_set entry (ptr); 11 68 11 69 /* Usage: call pfm_utils_$write_file_labels (mtdp, label_type, code); */ 11 70 dcl pfm_utils_$write_file_labels entry (ptr, fixed bin, fixed bin (35)); 11 71 11 72 /* END INCLUDE FILE mtape_dcls.incl.pl1 */ 1 23 1 24 1 25 /* END INCLUDE FILE mtape_includes.incl.pl1 */ 136 137 12 1 /* --------------- BEGIN include file rcp_volume_formats.incl.pl1 --------------- */ 12 2 12 3 12 4 12 5 /****^ HISTORY COMMENTS: 12 6* 1) change(86-12-08,GWMay), approve(86-12-08,PBF7552), 12 7* audit(86-12-08,Martinson), install(86-12-17,MR12.0-1250): 12 8* added array entry 0 to the volume format types to indicate that the tape 12 9* volume was not authenticated by rcp. 12 10* END HISTORY COMMENTS */ 12 11 12 12 12 13 /* General volume types */ 12 14 12 15 dcl (Volume_unauthenticated initial (0), 12 16 Volume_blank initial (1), 12 17 Volume_unknown_format initial (6), 12 18 Volume_unreadable initial (7), 12 19 12 20 /* Tape volume types */ 12 21 12 22 Volume_multics_tape initial (2), 12 23 Volume_gcos_tape initial (3), 12 24 Volume_ibm_tape initial (4), 12 25 Volume_ansi_tape initial (5)) fixed bin static options (constant); 12 26 12 27 /* Printable descriptions of volume types */ 12 28 12 29 dcl Tape_volume_types (0:7) char (16) static options (constant) initial 12 30 ("unauthenticated", 12 31 "blank", 12 32 "Multics", 12 33 "GCOS", 12 34 "IBM", 12 35 "ANSI", 12 36 "unrecognizable", 12 37 "unreadable"); 12 38 12 39 /* ---------------- END include file rcp_volume_formats.incl.pl1 ---------------- */ 138 139 140 end multics_tape_io_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/17/86 0832.4 multics_tape_io_.pl1 >special_ldd>install>MR12.0-1250>multics_tape_io_.pl1 136 1 02/16/84 1452.3 mtape_includes.incl.pl1 >ldd>include>mtape_includes.incl.pl1 1-5 2 02/16/84 1452.3 mtape_data.incl.pl1 >ldd>include>mtape_data.incl.pl1 1-7 3 02/16/84 1452.4 mtape_vol_set.incl.pl1 >ldd>include>mtape_vol_set.incl.pl1 1-9 4 02/16/84 1452.3 mtape_label_record.incl.pl1 >ldd>include>mtape_label_record.incl.pl1 1-11 5 02/16/84 1452.3 mtape_err_stats.incl.pl1 >ldd>include>mtape_err_stats.incl.pl1 1-13 6 02/16/84 1452.3 mtape_file_info.incl.pl1 >ldd>include>mtape_file_info.incl.pl1 1-15 7 02/16/84 1452.3 mtape_attach_info.incl.pl1 >ldd>include>mtape_attach_info.incl.pl1 1-17 8 02/16/84 1452.4 mtape_pfm_info.incl.pl1 >ldd>include>mtape_pfm_info.incl.pl1 1-19 9 06/11/85 1429.6 mtape_open_close_info.incl.pl1 >ldd>include>mtape_open_close_info.incl.pl1 1-21 10 02/16/84 1452.3 mtape_constants.incl.pl1 >ldd>include>mtape_constants.incl.pl1 1-23 11 06/11/85 1429.6 mtape_dcls.incl.pl1 >ldd>include>mtape_dcls.incl.pl1 138 12 12/17/86 0758.3 rcp_volume_formats.incl.pl1 >special_ldd>install>MR12.0-1250>rcp_volume_formats.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. arg_buf_len 50 based fixed bin(21,0) level 3 dcl 2-8 ref 91 100 arg_buf_ptr 46 based pointer level 3 dcl 2-8 ref 90 99 arg_code parameter fixed bin(35,0) dcl 29 set ref 60 66* 72 80 87 96 105 111 117 132* arg_convert parameter fixed bin(17,0) dcl 36 ref 117 arg_info_ptr parameter pointer dcl 30 ref 105 arg_io_call_infop parameter pointer dcl 31 ref 105 arg_labno parameter fixed bin(17,0) dcl 34 ref 111 117 arg_lr_ptr parameter pointer dcl 33 ref 111 117 arg_mtdp parameter pointer dcl 28 ref 60 72 80 87 89 96 98 105 111 117 126 arg_order_name parameter char unaligned dcl 32 ref 105 arg_type parameter fixed bin(17,0) dcl 35 ref 111 117 attach_info_ptr 274 based pointer level 2 dcl 2-8 ref 129 buf_len 000104 automatic fixed bin(21,0) dcl 42 set ref 91* 100* buf_ptr 000102 automatic pointer dcl 41 set ref 90* 99* code 000100 automatic fixed bin(35,0) dcl 40 set ref 63* 64* 66 132* data_xfer_args 46 based structure level 2 dcl 2-8 err_entry based structure level 1 dcl 5-12 error_table_$unimplemented_version 000010 external static fixed bin(35,0) dcl 49 ref 63 fi_current 34 based pointer level 2 dcl 2-8 ref 128 fi_ptr 000112 automatic pointer dcl 6-4 set ref 128* maip 000114 automatic pointer dcl 7-4 set ref 129* moip 000120 automatic pointer dcl 9-4 set ref 130* mpfmip 000116 automatic pointer dcl 8-4 set ref 131* mtape_$error 000012 constant entry external dcl 11-14 ref 64 mtape_data based structure level 1 dcl 2-8 mtape_err_stats based structure level 1 dcl 5-6 mtdp 000106 automatic pointer dcl 2-4 set ref 64* 89* 90 91 98* 99 100 126* 127 128 129 130 131 open_info_ptr 276 based pointer level 2 dcl 2-8 ref 130 pfm_arg_values based structure level 1 dcl 9-57 pfm_entries based structure level 1 dcl 2-103 pfm_info_ptr 304 based pointer level 2 dcl 2-8 ref 131 pfm_options based structure level 1 dcl 8-21 vs_current 24 based pointer level 2 dcl 2-8 ref 127 vs_ptr 000110 automatic pointer dcl 3-5 set ref 127* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AT_BOFD internal static fixed bin(17,0) initial dcl 10-44 AT_BOFH internal static fixed bin(17,0) initial dcl 10-44 AT_BOFT internal static fixed bin(17,0) initial dcl 10-44 AT_EOF internal static fixed bin(17,0) initial dcl 10-44 AT_EOFD internal static fixed bin(17,0) initial dcl 10-44 AT_EOFH internal static fixed bin(17,0) initial dcl 10-44 AT_EOFT internal static fixed bin(17,0) initial dcl 10-44 AT_IFD internal static fixed bin(17,0) initial dcl 10-44 BLANK_VOLUME internal static fixed bin(17,0) initial dcl 3-42 BOF_LABEL internal static fixed bin(17,0) initial dcl 10-56 EOF_LABEL internal static fixed bin(17,0) initial dcl 10-56 EOV_LABEL internal static fixed bin(17,0) initial dcl 10-56 FILES_PER_FILE_GRP internal static fixed bin(17,0) initial dcl 10-44 MTAPE_ALLOC_FI internal static fixed bin(17,0) initial dcl 10-9 MTAPE_ALLOC_LR internal static fixed bin(17,0) initial dcl 10-9 MTAPE_ALLOC_STR internal static fixed bin(17,0) initial dcl 10-9 MTAPE_ALLOC_VS internal static fixed bin(17,0) initial dcl 10-9 MTAPE_CV_BCD internal static fixed bin(17,0) initial dcl 10-34 MTAPE_CV_EBCDIC internal static fixed bin(17,0) initial dcl 10-34 MTAPE_CV_UC_ASCII internal static fixed bin(17,0) initial dcl 10-34 MTAPE_CV_UC_EBCDIC internal static fixed bin(17,0) initial dcl 10-34 MTAPE_HWM_BCD internal static fixed bin(17,0) initial dcl 10-27 MTAPE_HWM_BIN internal static fixed bin(17,0) initial dcl 10-27 MTAPE_HWM_NINE internal static fixed bin(17,0) initial dcl 10-27 MTAPE_NO_CONVERSION internal static fixed bin(17,0) initial dcl 10-34 MTAPE_SPEED_VALUES internal static fixed bin(17,0) initial array dcl 10-22 MTAPE_UNSPECIFIED internal static fixed bin(17,0) initial dcl 10-34 MTAPE_VALID_DENSITIES internal static fixed bin(17,0) initial array dcl 10-17 MTAPE_VOLUME internal static fixed bin(17,0) initial dcl 3-42 MULT_PRIOR_VOLUME internal static fixed bin(17,0) initial dcl 3-42 NON_MULT_VOLUME internal static fixed bin(17,0) initial dcl 3-42 NOT_POSITIONED_IN_FILE internal static fixed bin(17,0) initial dcl 10-44 Q_ABORT_FILE internal static fixed bin(17,0) initial dcl 10-63 Q_INCORRECT_VOLUME internal static fixed bin(17,0) initial dcl 10-63 Q_LABELED_VOLUME internal static fixed bin(17,0) initial dcl 10-63 Q_NO_NEXT_VOLUME internal static fixed bin(17,0) initial dcl 10-63 Q_UNEXPIRED_FILE internal static fixed bin(17,0) initial dcl 10-63 Q_UNEXPIRED_VOLUME internal static fixed bin(17,0) initial dcl 10-63 RECOG_FORMAT_VOLUME internal static fixed bin(17,0) initial dcl 3-42 Tape_volume_types internal static char(16) initial array unaligned dcl 12-29 UNLABELED_VOLUME internal static fixed bin(17,0) initial dcl 3-42 Volume_ansi_tape internal static fixed bin(17,0) initial dcl 12-15 Volume_blank internal static fixed bin(17,0) initial dcl 12-15 Volume_gcos_tape internal static fixed bin(17,0) initial dcl 12-15 Volume_ibm_tape internal static fixed bin(17,0) initial dcl 12-15 Volume_multics_tape internal static fixed bin(17,0) initial dcl 12-15 Volume_unauthenticated internal static fixed bin(17,0) initial dcl 12-15 Volume_unknown_format internal static fixed bin(17,0) initial dcl 12-15 Volume_unreadable internal static fixed bin(17,0) initial dcl 12-15 all_buf_lens based fixed bin(21,0) array dcl 2-114 all_buf_ptrs based pointer array dcl 2-113 es_ptr automatic pointer dcl 5-4 lr_ptr automatic pointer dcl 4-4 mcip automatic pointer dcl 9-5 mtape_$alloc 000000 constant entry external dcl 11-5 mtape_$allocate_buffers 000000 constant entry external dcl 11-8 mtape_$flush_buffers 000000 constant entry external dcl 11-17 mtape_$order 000000 constant entry external dcl 11-22 mtape_$read_block 000000 constant entry external dcl 11-25 mtape_$read_label 000000 constant entry external dcl 11-28 mtape_$set_mode 000000 constant entry external dcl 11-31 mtape_$stop_tape 000000 constant entry external dcl 11-34 mtape_$user_query 000000 constant entry external dcl 11-37 mtape_$volume_switch 000000 constant entry external dcl 11-40 mtape_$write_block 000000 constant entry external dcl 11-43 mtape_$write_label 000000 constant entry external dcl 11-46 mtape_attach_info based structure level 1 dcl 7-8 mtape_attach_info_version_1 internal static char(8) initial unaligned dcl 7-6 mtape_close_info based structure level 1 dcl 9-41 mtape_close_info_version_1 internal static char(8) initial unaligned dcl 9-8 mtape_data_version_1 internal static char(8) initial unaligned dcl 2-6 mtape_fi_version_1 internal static char(8) initial unaligned dcl 6-6 mtape_file_info based structure level 1 dcl 6-8 mtape_label_record based structure level 1 dcl 4-8 mtape_lr_version_1 internal static char(8) initial unaligned dcl 4-6 mtape_open_info based structure level 1 dcl 9-10 mtape_open_info_version_1 internal static char(8) initial unaligned dcl 9-7 mtape_pfm_info based structure level 1 dcl 8-8 mtape_pfm_info_version_1 internal static char(8) initial unaligned dcl 8-6 mtape_vol_set based structure level 1 dcl 3-9 mtape_vs_version_1 internal static char(8) initial unaligned dcl 3-7 pfm_utils_$file_search 000000 constant entry external dcl 11-49 pfm_utils_$init_label_record 000000 constant entry external dcl 11-52 pfm_utils_$julian_date 000000 constant entry external dcl 11-55 pfm_utils_$position_in_file 000000 constant entry external dcl 11-58 pfm_utils_$read_file_labels 000000 constant entry external dcl 11-61 pfm_utils_$setup_file 000000 constant entry external dcl 11-64 pfm_utils_$truncate_file_set 000000 constant entry external dcl 11-67 pfm_utils_$write_file_labels 000000 constant entry external dcl 11-70 rec_len automatic fixed bin(21,0) dcl 43 tape_blk based char(1) array unaligned dcl 2-115 NAMES DECLARED BY EXPLICIT CONTEXT. SETUP 000267 constant entry internal dcl 124 ref 62 74 82 107 113 119 decode_file_labels 000235 constant entry external dcl 111 encode_file_labels 000255 constant entry external dcl 117 file_close 000123 constant entry external dcl 80 file_open 000107 constant entry external dcl 72 multics_tape_io_ 000031 constant entry external dcl 6 order 000210 constant entry external dcl 105 pfm_init 000043 constant entry external dcl 60 read 000137 constant entry external dcl 87 write 000162 constant entry external dcl 96 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 444 460 311 454 Length 1120 311 14 423 133 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME multics_tape_io_ 123 external procedure is an external procedure. SETUP internal procedure shares stack frame of external procedure multics_tape_io_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME multics_tape_io_ 000100 code multics_tape_io_ 000102 buf_ptr multics_tape_io_ 000104 buf_len multics_tape_io_ 000106 mtdp multics_tape_io_ 000110 vs_ptr multics_tape_io_ 000112 fi_ptr multics_tape_io_ 000114 maip multics_tape_io_ 000116 mpfmip multics_tape_io_ 000120 moip multics_tape_io_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. mtape_$error THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000030 60 000036 62 000053 63 000054 64 000057 66 000102 67 000104 72 000105 74 000117 75 000120 80 000121 82 000133 83 000134 87 000135 89 000147 90 000153 91 000155 92 000157 96 000160 98 000172 99 000176 100 000200 101 000202 105 000203 107 000226 107 000227 111 000230 113 000245 113 000246 117 000247 119 000265 120 000266 124 000267 126 000270 127 000274 128 000276 129 000300 130 000302 131 000304 132 000306 134 000310 ----------------------------------------------------------- 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