COMPILATION LISTING OF SEGMENT tape_reader_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 07/16/87 1336.3 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(87-01-13,GDixon), approve(87-04-16,MCR7614), 17* audit(87-05-21,Farley), install(87-07-15,MR12.1-1040): 18* Add support for storing boot program as first segment of MST image stored 19* in a file. 20* END HISTORY COMMENTS */ 21 22 23 /* TAPE_READER_ - Procedure to Read MST Checker Input Tape. 24* iox'ed 11/3/76 by Noel I. Morris */ 25 26 /* Modified 8/82 BIM signal EOF, backup */ 27 28 /* format: style2 */ 29 30 tape_reader_: 31 proc (Data_ptr, N_words); 32 33 dcl Data_ptr ptr; 34 dcl N_words fixed bin (18); 35 36 dcl atd char (256); 37 dcl attach_descrip_ptr ptr; 38 dcl code fixed bin (35); 39 dcl 1 control_word aligned, 40 2 type fixed bin (17) unaligned, 41 2 count fixed bin (18) uns unal, 42 (name_len, seg_len) fixed bin (18); 43 44 dcl attach_descrip char (500) varying based (attach_descrip_ptr); 45 46 dcl checker_data_$buffer_ptr 47 ptr ext; 48 dcl checker_data_$input_iocbp 49 ptr ext; 50 dcl checker_data_$file_attachment 51 bit (1) aligned ext; 52 dcl error_table_$end_of_info 53 fixed bin (35) ext; 54 55 dcl (addr, char, divide, length, ltrim, min, null, rtrim, size, substr) 56 builtin; 57 58 dcl com_err_ entry () options (variable), 59 sub_err_ entry () options (variable); 60 61 dcl MST_tape_eof_ condition; 62 63 64 if N_words = 0 65 then return; 66 67 call iox_$get_chars (checker_data_$input_iocbp, Data_ptr, N_words * 4, (0), code); 68 69 if code = error_table_$end_of_info 70 then signal MST_tape_eof_; 71 else if code ^= 0 72 then call sub_err_ (code, "checker_tape", ACTION_CANT_RESTART, null (), (0), "Error reading MST."); 73 74 return; 75 76 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 77 /* */ 78 /* REWIND: */ 79 /* 1) Close I/O switch to which MST attached. */ 80 /* 2) Reopen the switch, thereby repositioning to beginning of MST. */ 81 /* 3) Read, skip-over boot program. On tape, boot program is in the tape */ 82 /* label, invisible to iox_$get_chars. In a file, boot program is the */ 83 /* first "segment" stored in MST file, and IS visible to iox_$get_chars. */ 84 /* */ 85 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 86 87 rewind: 88 entry (boot_prog_name, boot_prog_len); 89 90 dcl boot_prog_name char (32), 91 boot_prog_len fixed bin (21); 92 93 call iox_$close (checker_data_$input_iocbp, code); 94 if code ^= 0 95 then call sub_err_ (code, "checker_tape", ACTION_CANT_RESTART, null (), (0), "Error closing MST."); 96 call iox_$open (checker_data_$input_iocbp, Stream_input, ""b, code); 97 if code ^= 0 98 then call sub_err_ (code, "checker_tape", ACTION_CANT_RESTART, null (), (0), "Error reopening MST."); 99 100 bpi.version = BOOT_PROGRAM_INFO_VERSION_1; 101 bpi.boot_program_name = ""; 102 bpi.boot_program_text_length = 0; 103 bpi.boot_program_ptr = null; 104 if checker_data_$file_attachment 105 then do; /* file input */ 106 call tape_reader_ (addr (control_word), size (control_word)); 107 if control_word.type = -1 108 then do; /* bootload program control word */ 109 /* It is written as a name, followed by the pgm. */ 110 /* set version */ 111 name_len = divide (length (boot_program_info.boot_program_name), CHARS_PER_WORD, 18, 0); 112 seg_len = control_word.count - name_len; 113 /* set copy length */ 114 call tape_reader_ (addr (bpi.boot_program_name), name_len); 115 call tape_reader_ (checker_data_$buffer_ptr, seg_len); 116 /* copy boot program in to temp seg */ 117 bpi.boot_program_text_length = seg_len; 118 end; 119 else do; 120 call iox_$close (checker_data_$input_iocbp, (0)); 121 call iox_$open (checker_data_$input_iocbp, Stream_input, ""b, (0)); 122 end; 123 end; 124 else do; /* tape input */ 125 call iox_$control (checker_data_$input_iocbp, "get_boot_program", addr (boot_program_info), code); 126 if code ^= 0 127 then do; /* can't do it */ 128 call sub_err_ (code, "checker_tape", ACTION_CANT_RESTART, null (), (0), 129 "Error getting boot program info from MST."); 130 return; 131 end; 132 end; 133 boot_prog_name = bpi.boot_program_name; 134 boot_prog_len = bpi.boot_program_text_length; 135 136 return; 137 138 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 139 /* */ 140 /* INITIALIZATION: */ 141 /* 1) If generate_mst -hold was given, then the mst_tape I/O switch remains */ 142 /* attached to the MST. Use it if it is attached. */ 143 /* 2) Otherwise, make our own attachment to appropriate tape or file. For */ 144 /* files, remember to skip over the boot program. */ 145 /* 3) Record in checker_data_$file_attachment whether we are dealing with */ 146 /* an MST tape or a tape image stored in a file. */ 147 /* */ 148 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 149 150 init: 151 entry (CALLER, name, density, file, Acode); 152 153 dcl CALLER char (*), 154 name char (*), 155 density fixed bin, 156 file bit (1) aligned, 157 Acode fixed bin (35); 158 159 checker_data_$file_attachment = "0"b; 160 call iox_$look_iocb ("mst_tape", checker_data_$input_iocbp, Acode); 161 if Acode = 0 162 then call iox_$open (checker_data_$input_iocbp, Stream_input, ""b, Acode); 163 if Acode = 0 164 then do; /* ALREADY THERE */ 165 attach_descrip_ptr = checker_data_$input_iocbp -> iocb.actual_iocb_ptr -> iocb.attach_descrip_ptr; 166 if substr (attach_descrip, 1, min (length (attach_descrip), length ("vfile_ "))) = "vfile_ " 167 then checker_data_$file_attachment = "1"b; 168 end; 169 else do; /* not yet attached */ 170 if file 171 then do; 172 atd = "vfile_ " || rtrim (name) || " -old"; 173 checker_data_$file_attachment = "1"b; 174 end; 175 else do; 176 atd = "tape_mult_ " || rtrim (name); 177 if density ^= 0 178 then atd = rtrim (atd) || " -density " || ltrim (char (density)); 179 end; 180 181 call iox_$attach_name ("mst_tape", checker_data_$input_iocbp, atd, null (), Acode); 182 if Acode ^= 0 183 then do; 184 call com_err_ (Acode, CALLER, "Attaching ^a.", atd); 185 return; 186 end; 187 188 call iox_$open (checker_data_$input_iocbp, Stream_input, "0"b, Acode); 189 if Acode ^= 0 190 then do; 191 call com_err_ (Acode, CALLER, "Opening mst tape input."); 192 return; 193 end; 194 end; 195 call rewind (bpi.boot_program_name, bpi.boot_program_text_length); 196 /* position beyond boot pgm*/ 197 return; 198 199 200 201 final: 202 entry; 203 204 if checker_data_$input_iocbp ^= null 205 then do; 206 call iox_$close (checker_data_$input_iocbp, code); 207 call iox_$detach_iocb (checker_data_$input_iocbp, code); 208 checker_data_$input_iocbp = null; 209 end; 210 211 return; 212 1 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 1 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 1 3* version number to IOX2. */ 1 4 /* format: style2 */ 1 5 1 6 dcl 1 iocb aligned based, /* I/O control block. */ 1 7 2 version character (4) aligned, /* IOX2 */ 1 8 2 name char (32), /* I/O name of this block. */ 1 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 1 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 1 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 1 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 1 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 1 14 2 reserved bit (72), /* Reserved for future use. */ 1 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 1 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 1 17 /* open(p,mode,not_used,s) */ 1 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 1 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 20 /* get_line(p,bufptr,buflen,actlen,s) */ 1 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 1 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 1 24 /* put_chars(p,bufptr,buflen,s) */ 1 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 1 26 /* modes(p,newmode,oldmode,s) */ 1 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 1 28 /* position(p,u1,u2,s) */ 1 29 2 control entry (ptr, char (*), ptr, fixed (35)), 1 30 /* control(p,order,infptr,s) */ 1 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 32 /* read_record(p,bufptr,buflen,actlen,s) */ 1 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 1 34 /* write_record(p,bufptr,buflen,s) */ 1 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 1 36 /* rewrite_record(p,bufptr,buflen,s) */ 1 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 1 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 39 /* seek_key(p,key,len,s) */ 1 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 41 /* read_key(p,key,len,s) */ 1 42 2 read_length entry (ptr, fixed (21), fixed (35)), 1 43 /* read_length(p,len,s) */ 1 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 1 45 /* open_file(p,mode,desc,not_used,s) */ 1 46 2 close_file entry (ptr, char (*), fixed bin (35)), 1 47 /* close_file(p,desc,s) */ 1 48 2 detach entry (ptr, char (*), fixed bin (35)); 1 49 /* detach(p,desc,s) */ 1 50 1 51 declare iox_$iocb_version_sentinel 1 52 character (4) aligned external static; 1 53 1 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 213 214 2 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 2 2 2 3 /* Written 05/04/78 by C. D. Tavares */ 2 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 2 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 2 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 2 7 2 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 2 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 2 10 iox_$close entry (pointer, fixed bin (35)), 2 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 2 12 iox_$delete_record entry (pointer, fixed bin (35)), 2 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 2 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 2 15 iox_$err_not_attached entry options (variable), 2 16 iox_$err_not_closed entry options (variable), 2 17 iox_$err_no_operation entry options (variable), 2 18 iox_$err_not_open entry options (variable), 2 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 2 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 2 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 2 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 2 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 2 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 2 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 2 28 iox_$propagate entry (pointer), 2 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 2 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 2 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 2 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 2 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 2 40 2 41 dcl (iox_$user_output, 2 42 iox_$user_input, 2 43 iox_$user_io, 2 44 iox_$error_output) external static pointer; 2 45 2 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 215 216 3 1 /* Begin include file ..... iox_modes.incl.pl1 */ 3 2 3 3 /* Written by C. D. Tavares, 03/17/75 */ 3 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 3 5 3 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 3 7 ("stream_input", "stream_output", "stream_input_output", 3 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 3 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 3 10 "direct_input", "direct_output", "direct_update"); 3 11 3 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 3 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 3 14 3 15 dcl (Stream_input initial (1), 3 16 Stream_output initial (2), 3 17 Stream_input_output initial (3), 3 18 Sequential_input initial (4), 3 19 Sequential_output initial (5), 3 20 Sequential_input_output initial (6), 3 21 Sequential_update initial (7), 3 22 Keyed_sequential_input initial (8), 3 23 Keyed_sequential_output initial (9), 3 24 Keyed_sequential_update initial (10), 3 25 Direct_input initial (11), 3 26 Direct_output initial (12), 3 27 Direct_update initial (13)) fixed bin int static options (constant); 3 28 3 29 /* End include file ..... iox_modes.incl.pl1 */ 217 218 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 219 220 5 1 /* BEGIN INCLUDE FILE ... system_constants.incl.pl1 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-11-12,GWMay), approve(86-11-12,MCR7445), audit(86-11-19,GDixon), 5 5* install(86-11-21,MR12.0-1223): 5 6* created. 5 7* END HISTORY COMMENTS */ 5 8 5 9 /* format: off */ 5 10 5 11 /* ************************************************************************ */ 5 12 /* */ 5 13 /* Function: Provides constants for commonly used Multics system values. */ 5 14 /* */ 5 15 /* Usage: These values are available for use in place of "magic" numbers */ 5 16 /* (unexplained numbers) in programming applications. */ 5 17 /* */ 5 18 /* Definitions: */ 5 19 /* */ 5 20 /* PER bit character/byte word page segment */ 5 21 /* */ 5 22 /* bits 1 9 36 36864 9400320 */ 5 23 /* characters/bytes 1 4 4096 1044480 */ 5 24 /* words 1 1024 261120 */ 5 25 /* pages 1 255 */ 5 26 /* segments 1 */ 5 27 /* */ 5 28 /* The base values for a bit, char, word and page are determined by the */ 5 29 /* Multics hardware implementation. The other values are calculated from */ 5 30 /* their relation to one another as shown in the matrix above. */ 5 31 /* */ 5 32 /* BITS_PER_CHAR = 9 (defined by the hardware) */ 5 33 /* BITS_PER_WORD = BITS_PER_CHAR * CHARS_PER_WORD */ 5 34 /* = 9 * 4 */ 5 35 /* = 36 */ 5 36 /* BITS_PER_PAGE = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE */ 5 37 /* = 9 * 4 * 1024 */ 5 38 /* = 36864 */ 5 39 /* BITS_PER_SEGMENT = BITS_PER_CHAR * CHARS_PER_WORD * CHARS_PER_PAGE * */ 5 40 /* PAGES_PER_SEGMENT */ 5 41 /* = 9 * 4 * 1024 * 255 */ 5 42 /* = 9400320 */ 5 43 /* */ 5 44 /* CHARS_PER_WORD = 4 (defined by the hardware) */ 5 45 /* CHARS_PER_PAGE = CHARS_PER_WORD * WORDS_PER_PAGE */ 5 46 /* = 4 * 1024 */ 5 47 /* = 4096 */ 5 48 /* CHARS_PER_SEGMENT = CHARS_PER_WORD * WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 5 49 /* = 4 * 1024 * 255 */ 5 50 /* = 1044480 */ 5 51 /* */ 5 52 /* WORDS_PER_PAGE = 1024 (defined by the hardware) */ 5 53 /* WORDS_PER_SEGMENT = WORDS_PER_PAGE * PAGES_PER_SEGMENT */ 5 54 /* = 1024 * 255 */ 5 55 /* = 261120 */ 5 56 /* */ 5 57 /* PAGES_PER_SEGMENT = 255 (defined by system standard) */ 5 58 /* */ 5 59 /* ************************************************************************ */ 5 60 5 61 declare BITS_PER_CHAR fixed bin (4) internal static 5 62 options (constant) initial (9); 5 63 5 64 declare BITS_PER_WORD fixed bin (6) internal static 5 65 options (constant) initial (36); 5 66 5 67 declare BITS_PER_PAGE fixed bin (16) internal static 5 68 options (constant) initial (36864); 5 69 5 70 declare BITS_PER_SEGMENT fixed bin (24) internal static 5 71 options (constant) initial (9400320); 5 72 5 73 declare CHARS_PER_WORD fixed bin (3) internal static 5 74 options (constant) initial (4); 5 75 5 76 declare CHARS_PER_PAGE fixed bin (13) internal static 5 77 options (constant) initial (4096); 5 78 5 79 declare CHARS_PER_SEGMENT fixed bin (21) internal static 5 80 options (constant) initial (1044480); 5 81 5 82 /* Note: WORDS_PER_PAGE should be equal to sys_info$max_page_size */ 5 83 5 84 declare WORDS_PER_PAGE fixed bin (11) internal static 5 85 options (constant) initial (1024); 5 86 5 87 /* Note: WORDS_PER_SEGMENT should be equal to sys_info$max_seg_size */ 5 88 5 89 declare WORDS_PER_SEGMENT fixed bin (21) internal static 5 90 options (constant) initial (261120); 5 91 5 92 declare PAGES_PER_SEGMENT fixed bin (8) internal static 5 93 options (constant) initial (255); 5 94 5 95 /* END INCLUDE FILE ... system_constants.incl.pl1 */ 5 96 221 222 6 1 /* BEGIN INCLUDE FILE tape_mult_boot_info.incl.pl1 */ 6 2 /* Written by J. A. Bush 6/27/81 */ 6 3 6 4 dcl 1 boot_program_info aligned, 6 5 2 version fixed bin, /* Currently 1 */ 6 6 2 boot_program_ptr pointer, /* Pointer to text section of boot program */ 6 7 2 boot_program_text_length fixed bin (21), /* Length of the text section in words */ 6 8 2 boot_program_name char (32) unaligned; /* Name for recording in label */ 6 9 6 10 dcl BOOT_PROGRAM_INFO_VERSION_1 fixed bin internal static options 6 11 (constant) init (1); 6 12 6 13 /* END INCLUDE FILE tape_mult_boot_info.incl.pl1 */ 223 224 225 dcl 1 bpi aligned like boot_program_info; 226 227 end tape_reader_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/15/87 1602.4 tape_reader_.pl1 >special_ldd>install>MR12.1-1040>tape_reader_.pl1 213 1 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 215 2 05/23/83 0916.6 iox_entries.incl.pl1 >ldd>include>iox_dcls.incl.pl1 217 3 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 219 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 221 5 11/24/86 1243.9 system_constants.incl.pl1 >ldd>include>system_constants.incl.pl1 223 6 03/27/82 0429.7 tape_mult_boot_info.incl.pl1 >ldd>include>tape_mult_boot_info.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. ACTION_CANT_RESTART 000003 constant bit(36) initial dcl 4-7 set ref 71* 94* 97* 128* Acode parameter fixed bin(35,0) dcl 153 set ref 150 160* 161 161* 163 181* 182 184* 188* 189 191* BOOT_PROGRAM_INFO_VERSION_1 constant fixed bin(17,0) initial dcl 6-10 ref 100 CALLER parameter char unaligned dcl 153 set ref 150 184* 191* CHARS_PER_WORD constant fixed bin(3,0) initial dcl 5-73 ref 111 Data_ptr parameter pointer dcl 33 set ref 30 67* MST_tape_eof_ 000206 stack reference condition dcl 61 ref 69 N_words parameter fixed bin(18,0) dcl 34 ref 30 64 67 Stream_input 000023 constant fixed bin(17,0) initial dcl 3-15 set ref 96* 121* 161* 188* actual_iocb_ptr 12 based pointer level 2 dcl 1-6 ref 165 addr builtin function dcl 55 ref 106 106 114 114 125 125 atd 000100 automatic char(256) unaligned dcl 36 set ref 172* 176* 177* 177 181* 184* attach_descrip based varying char(500) dcl 44 ref 166 166 attach_descrip_ptr 14 based pointer level 2 in structure "iocb" dcl 1-6 in procedure "tape_reader_" ref 165 attach_descrip_ptr 000200 automatic pointer dcl 37 in procedure "tape_reader_" set ref 165* 166 166 boot_prog_len parameter fixed bin(21,0) dcl 90 set ref 87 134* boot_prog_name parameter char(32) unaligned dcl 90 set ref 87 133* boot_program_info 000214 automatic structure level 1 dcl 6-4 set ref 125 125 boot_program_name 5 000214 automatic char(32) level 2 packed unaligned dcl 6-4 set ref 111 bpi 000232 automatic structure level 1 dcl 225 char builtin function dcl 55 ref 177 checker_data_$buffer_ptr 000010 external static pointer dcl 46 set ref 115* checker_data_$file_attachment 000014 external static bit(1) dcl 50 set ref 104 159* 166* 173* checker_data_$input_iocbp 000012 external static pointer dcl 48 set ref 67* 93* 96* 120* 121* 125* 160* 161* 165 181* 188* 204 206* 207* 208* code 000202 automatic fixed bin(35,0) dcl 38 set ref 67* 69 71 71* 93* 94 94* 96* 97 97* 125* 126 128* 206* 207* com_err_ 000020 constant entry external dcl 58 ref 184 191 control_word 000203 automatic structure level 1 dcl 39 set ref 106 106 106 106 count 0(18) 000203 automatic fixed bin(18,0) level 2 packed unsigned unaligned dcl 39 set ref 112 density parameter fixed bin(17,0) dcl 153 ref 150 177 177 divide builtin function dcl 55 ref 111 error_table_$end_of_info 000016 external static fixed bin(35,0) dcl 52 ref 69 file parameter bit(1) dcl 153 ref 150 170 iocb based structure level 1 dcl 1-6 iox_$attach_name 000024 constant entry external dcl 2-8 ref 181 iox_$close 000026 constant entry external dcl 2-8 ref 93 120 206 iox_$control 000030 constant entry external dcl 2-8 ref 125 iox_$detach_iocb 000032 constant entry external dcl 2-8 ref 207 iox_$get_chars 000034 constant entry external dcl 2-8 ref 67 iox_$look_iocb 000036 constant entry external dcl 2-8 ref 160 iox_$open 000040 constant entry external dcl 2-8 ref 96 121 161 188 length builtin function dcl 55 ref 111 166 166 ltrim builtin function dcl 55 ref 177 min builtin function dcl 55 ref 166 name parameter char unaligned dcl 153 ref 150 172 176 name_len 000204 automatic fixed bin(18,0) dcl 39 set ref 111* 112 114* null builtin function dcl 55 ref 71 71 94 94 97 97 103 128 128 181 181 204 208 rtrim builtin function dcl 55 ref 172 176 177 seg_len 000205 automatic fixed bin(18,0) dcl 39 set ref 112* 115* 117 size builtin function dcl 55 ref 106 106 sub_err_ 000022 constant entry external dcl 58 ref 71 94 97 128 substr builtin function dcl 55 ref 166 type 000203 automatic fixed bin(17,0) level 2 packed unaligned dcl 39 set ref 107 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 BITS_PER_CHAR internal static fixed bin(4,0) initial dcl 5-61 BITS_PER_PAGE internal static fixed bin(16,0) initial dcl 5-67 BITS_PER_SEGMENT internal static fixed bin(24,0) initial dcl 5-70 BITS_PER_WORD internal static fixed bin(6,0) initial dcl 5-64 CHARS_PER_PAGE internal static fixed bin(13,0) initial dcl 5-76 CHARS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 5-79 Direct_input internal static fixed bin(17,0) initial dcl 3-15 Direct_output internal static fixed bin(17,0) initial dcl 3-15 Direct_update internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 3-15 PAGES_PER_SEGMENT internal static fixed bin(8,0) initial dcl 5-92 Sequential_input internal static fixed bin(17,0) initial dcl 3-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 3-15 Sequential_output internal static fixed bin(17,0) initial dcl 3-15 Sequential_update internal static fixed bin(17,0) initial dcl 3-15 Stream_input_output internal static fixed bin(17,0) initial dcl 3-15 Stream_output internal static fixed bin(17,0) initial dcl 3-15 WORDS_PER_PAGE internal static fixed bin(11,0) initial dcl 5-84 WORDS_PER_SEGMENT internal static fixed bin(21,0) initial dcl 5-89 iox_$attach_loud 000000 constant entry external dcl 2-8 iox_$attach_ptr 000000 constant entry external dcl 2-8 iox_$close_file 000000 constant entry external dcl 2-8 iox_$delete_record 000000 constant entry external dcl 2-8 iox_$destroy_iocb 000000 constant entry external dcl 2-8 iox_$detach 000000 constant entry external dcl 2-8 iox_$err_no_operation 000000 constant entry external dcl 2-8 iox_$err_not_attached 000000 constant entry external dcl 2-8 iox_$err_not_closed 000000 constant entry external dcl 2-8 iox_$err_not_open 000000 constant entry external dcl 2-8 iox_$error_output external static pointer dcl 2-41 iox_$find_iocb 000000 constant entry external dcl 2-8 iox_$find_iocb_n 000000 constant entry external dcl 2-8 iox_$get_line 000000 constant entry external dcl 2-8 iox_$iocb_version_sentinel external static char(4) dcl 1-51 iox_$modes 000000 constant entry external dcl 2-8 iox_$move_attach 000000 constant entry external dcl 2-8 iox_$open_file 000000 constant entry external dcl 2-8 iox_$position 000000 constant entry external dcl 2-8 iox_$propagate 000000 constant entry external dcl 2-8 iox_$put_chars 000000 constant entry external dcl 2-8 iox_$read_key 000000 constant entry external dcl 2-8 iox_$read_length 000000 constant entry external dcl 2-8 iox_$read_record 000000 constant entry external dcl 2-8 iox_$rewrite_record 000000 constant entry external dcl 2-8 iox_$seek_key 000000 constant entry external dcl 2-8 iox_$user_input external static pointer dcl 2-41 iox_$user_io external static pointer dcl 2-41 iox_$user_output external static pointer dcl 2-41 iox_$write_record 000000 constant entry external dcl 2-8 iox_modes internal static char(24) initial array dcl 3-6 short_iox_modes internal static char(4) initial array dcl 3-12 NAMES DECLARED BY EXPLICIT CONTEXT. final 001362 constant entry external dcl 201 init 000674 constant entry external dcl 150 rewind 000245 constant entry external dcl 87 ref 195 tape_reader_ 000127 constant entry external dcl 30 ref 106 114 115 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1620 1662 1425 1630 Length 2210 1425 42 312 172 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tape_reader_ 220 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tape_reader_ 000100 atd tape_reader_ 000200 attach_descrip_ptr tape_reader_ 000202 code tape_reader_ 000203 control_word tape_reader_ 000204 name_len tape_reader_ 000205 seg_len tape_reader_ 000214 boot_program_info tape_reader_ 000232 bpi tape_reader_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_in call_ext_out_desc call_ext_out return_mac signal_op shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ iox_$attach_name iox_$close iox_$control iox_$detach_iocb iox_$get_chars iox_$look_iocb iox_$open sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. checker_data_$buffer_ptr checker_data_$file_attachment checker_data_$input_iocbp error_table_$end_of_info LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000123 64 000134 67 000137 69 000160 71 000170 74 000240 87 000241 93 000252 94 000263 96 000337 97 000356 100 000427 101 000431 102 000434 103 000435 104 000437 106 000442 107 000456 111 000462 112 000465 114 000471 115 000503 117 000514 118 000516 120 000517 121 000531 123 000551 125 000552 126 000605 128 000607 130 000656 133 000657 134 000664 136 000666 150 000667 159 000714 160 000716 161 000741 163 000763 165 000766 166 000774 168 001006 170 001007 172 001012 173 001053 174 001057 176 001060 177 001110 179 001200 181 001201 182 001235 184 001240 185 001274 188 001275 189 001314 191 001317 192 001347 195 001350 197 001360 201 001361 204 001367 206 001374 207 001404 208 001415 211 001420 ----------------------------------------------------------- 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