COMPILATION LISTING OF SEGMENT gm_util1_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 05/17/85 1457.9 mst Fri Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 /* Modified 9/79 by R.J.C. Kissel to handle 6250 bpi tapes. */ 11 /* Modified 3 February 1980, M. R. Jordan, to use parse_tape_reel_name_. */ 12 /* Modified 1 April 1981, W. Olin Sibert, to fix bug in above, and convert for strings as error messages */ 13 /* Modified 31 July 1981, WOS, to always detach mst_tape even if errors occurred in closing it */ 14 /* Modified 1985-05-16, BIM: set async mode on tape attachment, clean up 15* some of the archaisms. */ 16 17 /* format: style3,ind3,dclind6,idind32 */ 18 gm_util1_: 19 procedure; 20 21 dcl a_ptr ptr, /* pointer to array of directories to be searched */ 22 a_path_list_name char (168) aligned, /* path name of list of directories */ 23 number_of_directories fixed bin (17), /* number of directories to be searched */ 24 header_path char (168), /* path name of driving header */ 25 header_dir char (168), /* directory porion of header path */ 26 header_ent char (32), /* entry portion of header path */ 27 header_ptr ptr, /* pointer to header */ 28 a_ioname2 char (32) aligned, /* ioname 2 for attaching tape */ 29 output_seg_name char (32) aligned, /* name of output listing */ 30 code fixed bin (35), /* error code */ 31 error_message char (*), /* error type */ 32 sysid char (8), /* system id */ 33 time char (256), /* time string */ 34 do_sw bit (1) aligned, /* discard output switch */ 35 db_sw bit (1) aligned, /* debug switch for file attachment */ 36 mst_tape_iocbp ptr, 37 gm_output_iocbp ptr; 38 39 40 dcl path_list_iocbp static ptr init (null); 41 42 43 dcl (list_has_been_attached, tape_has_been_attached, output_file_was_created) 44 fixed bin static; 45 46 dcl initial_state fixed bin static init (0), 47 attached_state fixed bin static init (1), 48 open_state fixed bin static init (2); 49 50 dcl atom char (32) aligned; 51 52 dcl atd char (256) varying; 53 54 dcl b_path_list_name char (168) int static,/* static copies of arguments for call to close */ 55 path_list_name char (length_pnl) based (addr (b_path_list_name)), 56 length_pnl fixed bin int static, 57 ioname2 char (32) int static; 58 59 dcl line_read char (168) aligned, /* buffer for ios_read */ 60 num_chars_read fixed bin (21); /* number of characters read into buffer */ 61 62 dcl i fixed bin (17); /* do loop index */ 63 dcl j fixed bin; 64 65 dcl path_array (number_of_directories) char (168) based (a_ptr); 66 /* for looking at path array */ 67 dcl t_err fixed bin (17); /* number of tape errors */ 68 dcl s_db_sw bit (1) aligned static; 69 70 /* external variables */ 71 72 dcl error_table_$short_record ext fixed bin (35); 73 dcl error_table_$end_of_info ext fixed bin (35); 74 75 /* external entries */ 76 77 1 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 1 2 1 3 /* Written 05/04/78 by C. D. Tavares */ 1 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 1 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 1 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 1 7 1 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 1 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 1 10 iox_$close entry (pointer, fixed bin (35)), 1 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 1 12 iox_$delete_record entry (pointer, fixed bin (35)), 1 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 1 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 1 15 iox_$err_not_attached entry options (variable), 1 16 iox_$err_not_closed entry options (variable), 1 17 iox_$err_no_operation entry options (variable), 1 18 iox_$err_not_open entry options (variable), 1 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 1 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 1 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 1 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 1 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 1 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 1 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 1 28 iox_$propagate entry (pointer), 1 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 1 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 1 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 1 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 1 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 1 40 1 41 dcl (iox_$user_output, 1 42 iox_$user_input, 1 43 iox_$user_io, 1 44 iox_$error_output) external static pointer; 1 45 1 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 78 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 79 80 81 declare absolute_pathname_ entry (character (*), character (*), fixed binary (35)); 82 declare expand_pathname_ entry (character (*), character (*), character (*), fixed binary (35)); 83 declare date_time_$format entry (character (*), fixed binary (71), character (*), character (*)) 84 returns (character (250) var); 85 86 dcl com_err_$suppress_name ext entry options (variable), 87 ioa_ entry options (variable), 88 ioa_$ioa_switch entry options (variable), 89 parse_file_$parse_file_init_name 90 entry (char (*), char (*), ptr, fixed bin (35)); 91 92 dcl (addr, before, clock, index, null, rtrim, substr) 93 builtin; /* */ 94 open: 95 entry (a_ptr, a_path_list_name, number_of_directories, header_path, header_ptr, a_ioname2, mst_tape_iocbp, 96 gm_output_iocbp, output_seg_name, code, error_message, db_sw, do_sw, sysid); 97 98 number_of_directories = 0; 99 error_message = ""; 100 101 length_pnl = index (a_path_list_name, " ") - 1; 102 if length_pnl < 0 103 then length_pnl = 168; 104 b_path_list_name = a_path_list_name; 105 ioname2 = a_ioname2; 106 107 s_db_sw = db_sw | do_sw; 108 109 110 list_has_been_attached, tape_has_been_attached, output_file_was_created = initial_state; 111 112 113 /* attach the path list */ 114 /* ---------------------- */ 115 116 call iox_$attach_name ("path_list", path_list_iocbp, "vfile_ " || path_list_name, null (), code); 117 if code ^= 0 118 then 119 do; 120 error_message = "Unable to reference search file"; 121 go to ERROR; 122 end; 123 else list_has_been_attached = attached_state; 124 125 call iox_$open (path_list_iocbp, Stream_input, "0"b, code); 126 if code ^= 0 127 then 128 do; 129 error_message = "Unable to reference search file"; 130 go to ERROR; 131 end; 132 133 else list_has_been_attached = open_state; 134 135 /* fill the path name array */ 136 /* -------------------------- */ 137 138 do i = 1 to 10; 139 call iox_$get_line (path_list_iocbp, addr (line_read), 168, num_chars_read, code); 140 if code ^= 0 141 then 142 do; 143 if code = error_table_$short_record 144 then 145 do; 146 num_chars_read = num_chars_read + 1; /* adjust for no new line character */ 147 code = 0; 148 end; 149 else if code = error_table_$end_of_info 150 then 151 do; 152 code = 0; 153 go to FINISHED_LIST; 154 end; 155 else 156 do; 157 error_message = "Unable to read path list"; 158 go to ERROR; 159 end; 160 end; 161 num_chars_read = num_chars_read - 1; 162 line_read = substr (line_read, 1, num_chars_read); /* strip off trailing CR */ 163 call absolute_pathname_ (substr (line_read, 1, num_chars_read), path_array (i), code); 164 if code ^= 0 165 then 166 do; 167 error_message = "Unable to expand pathname in path list"; 168 go to ERROR; 169 end; 170 number_of_directories = number_of_directories + 1; /* 171* if status.end_of_data = "1"b then go to FINISHED_LIST; 172* */ 173 end; 174 175 /* 176* if (^status.end_of_data) /* too many path names */ 177 /* 178* then do; 179* error_message = "Too many names in path list"; 180* go to ERROR; 181* end; 182**/ 183 184 FINISHED_LIST: /* initiate the header */ 185 /* --------------------- */ 186 call expand_pathname_ (header_path, header_dir, header_ent, code); 187 if code ^= 0 188 then 189 do; 190 error_message = "Unable to expand header pathname"; 191 go to ERROR; 192 end; 193 194 call parse_file_$parse_file_init_name (header_dir, header_ent, header_ptr, code); 195 if code ^= 0 196 then 197 do; 198 error_message = "Unable to initiate header"; 199 go to ERROR; 200 end; 201 202 /* attach the tape */ 203 /* ----------------- */ 204 205 atd = ""; 206 if do_sw 207 then atd = "discard_"; 208 else if db_sw 209 then atd = "vfile_ " || ioname2; 210 else 211 do; 212 atd = "tape_mult_ "; 213 i = index (ioname2, ","); 214 if i = 0 215 then atd = atd || rtrim (ioname2); 216 else 217 do; 218 atd = atd || before (ioname2, ","); 219 do while (i ^= 0); 220 j = index (substr (ioname2, i + 1), ","); 221 if j = 0 222 then atom = substr (ioname2, i + 1); 223 else 224 do; 225 j = j + i; 226 atom = substr (ioname2, i + 1, j - i - 1); 227 end; 228 if atom = "7track" 229 then atd = atd || " -tk 7"; 230 else if atom = "9track" 231 then atd = atd || " -tk 9"; 232 else if index (atom, "=800") ^= 0 233 then atd = atd || " -den 800"; 234 else if index (atom, "=1600") ^= 0 235 then atd = atd || " -den 1600"; 236 else if index (atom, "=6250") ^= 0 237 then atd = atd || " -den 6250"; 238 else if atom = "800" 239 then atd = atd || " -den 800"; 240 else if atom = "1600" 241 then atd = atd || " -den 1600"; 242 else if atom = "6250" 243 then atd = atd || " -den 6250"; 244 else atd = atd || " -com " || atom; 245 i = j; 246 end; 247 end; 248 if index (atd, " -den") = 0 249 then atd = atd || " -den 800"; 250 atd = atd || " -wrt"; 251 end; 252 253 call iox_$attach_name ("mst_tape", mst_tape_iocbp, (atd), null (), code); 254 if code ^= 0 255 then 256 do; 257 error_message = "Unable to attach tape"; 258 go to ERROR; 259 end; 260 else tape_has_been_attached = attached_state; 261 262 call iox_$open (mst_tape_iocbp, Stream_output, "0"b, code); 263 if code ^= 0 264 then 265 do; 266 error_message = "Unable to attach tape"; 267 go to ERROR; 268 end; 269 270 else tape_has_been_attached = open_state; 271 272 if ^(do_sw | db_sw) 273 then call iox_$modes (mst_tape_iocbp, "async", "", (0)); 274 /* Set tape to async mode */ 275 276 /* initiate the output file */ 277 /* -------------------------- */ 278 279 call iox_$attach_name ("gm_output", gm_output_iocbp, "vfile_ " || output_seg_name, null (), code); 280 if code ^= 0 281 then 282 do; 283 error_message = "Unable to create output file"; 284 go to ERROR; 285 end; 286 else output_file_was_created = attached_state; 287 288 call iox_$open (gm_output_iocbp, Stream_output, "0"b, code); 289 if code ^= 0 290 then 291 do; 292 error_message = "Unable to create output file"; 293 go to ERROR; 294 end; 295 296 else output_file_was_created = open_state; 297 298 time = date_time_$format ("date_time", clock (), "", ""); 299 300 call ioa_$ioa_switch (gm_output_iocbp, "^-^-Generation of System ^a on Tape ^a at ^a^/^/", sysid, ioname2, time); 301 302 call ioa_$ioa_switch (gm_output_iocbp, "^-NAME^-^- DATE CHANGED^- AUTHOR^- LANG^-PATHNAME^/^/"); 303 304 call ioa_ ("begin generation"); 305 306 ERROR: 307 return; 308 309 /* */ 310 311 close: 312 entry (gm_output_iocbp, mst_tape_iocbp, hold_sw); 313 314 dcl hold_sw bit (1) aligned; 315 316 dcl error_code fixed bin (35); 317 318 error_code = 0; 319 if output_file_was_created ^= initial_state 320 then 321 do; 322 if output_file_was_created = open_state 323 then call iox_$close (gm_output_iocbp, error_code); 324 output_file_was_created = attached_state; 325 if error_code = 0 326 then call iox_$detach_iocb (gm_output_iocbp, error_code); 327 output_file_was_created = initial_state; 328 if error_code ^= 0 329 then call com_err_$suppress_name (error_code, "gm_util1_", "detach ^a", path_list_name); 330 end; 331 332 if tape_has_been_attached ^= initial_state 333 then 334 do; 335 if s_db_sw = "0"b 336 then 337 do; 338 t_err = 0; 339 if tape_has_been_attached = open_state 340 then call iox_$control (mst_tape_iocbp, "error_count", addr (t_err), error_code); 341 call ioa_ ("tape errors = ^d", t_err); 342 end; 343 if tape_has_been_attached = open_state 344 then call iox_$close (mst_tape_iocbp, error_code); 345 tape_has_been_attached = attached_state; 346 if ^hold_sw 347 then if error_code = 0 348 then call iox_$detach_iocb (mst_tape_iocbp, error_code); 349 else call iox_$detach_iocb (mst_tape_iocbp, (0)); 350 /* If code is already nonzero, preserve it */ 351 tape_has_been_attached = initial_state; 352 if error_code ^= 0 353 then call com_err_$suppress_name (error_code, "gm_util1_", "detach tape"); 354 end; 355 356 if list_has_been_attached ^= initial_state 357 then 358 do; 359 if list_has_been_attached = open_state 360 then call iox_$close (path_list_iocbp, error_code); 361 list_has_been_attached = attached_state; 362 if error_code = 0 363 then call iox_$detach_iocb (path_list_iocbp, error_code); 364 list_has_been_attached = initial_state; 365 if error_code ^= 0 366 then call com_err_$suppress_name (error_code, "gm_util1_", "detach ^a", path_list_name); 367 end; 368 369 return; 370 371 end gm_util1_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/17/85 1447.7 gm_util1_.pl1 >spec>online>pbf-05/17/85>gm_util1_.pl1 78 1 05/23/83 0916.6 iox_entries.incl.pl1 >ldd>include>iox_dcls.incl.pl1 79 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.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. Stream_input 000033 constant fixed bin(17,0) initial dcl 2-15 set ref 125* Stream_output 000031 constant fixed bin(17,0) initial dcl 2-15 set ref 262* 288* a_ioname2 parameter char(32) dcl 21 ref 94 105 a_path_list_name parameter char(168) dcl 21 ref 94 101 104 a_ptr parameter pointer dcl 21 ref 94 163 absolute_pathname_ 000124 constant entry external dcl 81 ref 163 addr builtin function dcl 92 ref 116 139 139 328 339 339 365 atd 000272 automatic varying char(256) dcl 52 set ref 205* 206* 208* 212* 214* 214 218* 218 228* 228 230* 230 232* 232 234* 234 236* 236 238* 238 240* 240 242* 242 244* 244 248 248* 248 250* 250 253 atom 000262 automatic char(32) dcl 50 set ref 221* 226* 228 230 232 234 236 238 240 242 244 attached_state constant fixed bin(17,0) initial dcl 46 ref 123 260 286 324 345 361 b_path_list_name 000015 internal static char(168) unaligned dcl 54 set ref 104* 116 328 365 before builtin function dcl 92 ref 218 clock builtin function dcl 92 ref 298 298 code parameter fixed bin(35,0) dcl 21 set ref 94 116* 117 125* 126 139* 140 143 147* 149 152* 163* 164 184* 187 194* 195 253* 254 262* 263 279* 280 288* 289 com_err_$suppress_name 000132 constant entry external dcl 86 ref 328 352 365 date_time_$format 000130 constant entry external dcl 83 ref 298 db_sw parameter bit(1) dcl 21 ref 94 107 208 272 do_sw parameter bit(1) dcl 21 ref 94 107 206 272 error_code 000451 automatic fixed bin(35,0) dcl 316 set ref 318* 322* 325 325* 328 328* 339* 343* 346 346* 352 352* 359* 362 362* 365 365* error_message parameter char unaligned dcl 21 set ref 94 99* 120* 129* 157* 167* 190* 198* 257* 266* 283* 292* error_table_$end_of_info 000104 external static fixed bin(35,0) dcl 73 ref 149 error_table_$short_record 000102 external static fixed bin(35,0) dcl 72 ref 143 expand_pathname_ 000126 constant entry external dcl 82 ref 184 gm_output_iocbp parameter pointer dcl 21 set ref 94 279* 288* 300* 302* 311 322* 325* header_dir 000100 automatic char(168) unaligned dcl 21 set ref 184* 194* header_ent 000152 automatic char(32) unaligned dcl 21 set ref 184* 194* header_path parameter char(168) unaligned dcl 21 set ref 94 184* header_ptr parameter pointer dcl 21 set ref 94 194* hold_sw parameter bit(1) dcl 314 ref 311 346 i 000446 automatic fixed bin(17,0) dcl 62 set ref 138* 163* 213* 214 219 220 221 225 226 226 245* index builtin function dcl 92 ref 101 213 220 232 234 236 248 initial_state constant fixed bin(17,0) initial dcl 46 ref 110 319 327 332 351 356 364 ioa_ 000134 constant entry external dcl 86 ref 304 341 ioa_$ioa_switch 000136 constant entry external dcl 86 ref 300 302 ioname2 000070 internal static char(32) unaligned dcl 54 set ref 105* 208 213 214 218 220 221 226 300* iox_$attach_name 000106 constant entry external dcl 1-8 ref 116 253 279 iox_$close 000110 constant entry external dcl 1-8 ref 322 343 359 iox_$control 000112 constant entry external dcl 1-8 ref 339 iox_$detach_iocb 000114 constant entry external dcl 1-8 ref 325 346 349 362 iox_$get_line 000116 constant entry external dcl 1-8 ref 139 iox_$modes 000120 constant entry external dcl 1-8 ref 272 iox_$open 000122 constant entry external dcl 1-8 ref 125 262 288 j 000447 automatic fixed bin(17,0) dcl 63 set ref 220* 221 225* 225 226 245 length_pnl 000067 internal static fixed bin(17,0) dcl 54 set ref 101* 102 102* 116 328 328 365 365 line_read 000373 automatic char(168) dcl 59 set ref 139 139 162* 162 163 163 list_has_been_attached 000012 internal static fixed bin(17,0) dcl 43 set ref 110* 123* 133* 356 359 361* 364* mst_tape_iocbp parameter pointer dcl 21 set ref 94 253* 262* 272* 311 339* 343* 346* 349* null builtin function dcl 92 ref 116 116 253 253 279 279 num_chars_read 000445 automatic fixed bin(21,0) dcl 59 set ref 139* 146* 146 161* 161 162 163 163 number_of_directories parameter fixed bin(17,0) dcl 21 set ref 94 98* 170* 170 open_state constant fixed bin(17,0) initial dcl 46 ref 133 270 296 322 339 343 359 output_file_was_created 000014 internal static fixed bin(17,0) dcl 43 set ref 110* 286* 296* 319 322 324* 327* output_seg_name parameter char(32) dcl 21 ref 94 279 parse_file_$parse_file_init_name 000140 constant entry external dcl 86 ref 194 path_array based char(168) array unaligned dcl 65 set ref 163* path_list_iocbp 000010 internal static pointer initial dcl 40 set ref 116* 125* 139* 359* 362* path_list_name based char unaligned dcl 54 set ref 116 328* 365* rtrim builtin function dcl 92 ref 214 s_db_sw 000100 internal static bit(1) dcl 68 set ref 107* 335 substr builtin function dcl 92 ref 162 163 163 220 221 226 sysid parameter char(8) unaligned dcl 21 set ref 94 300* t_err 000450 automatic fixed bin(17,0) dcl 67 set ref 338* 339 339 341* tape_has_been_attached 000013 internal static fixed bin(17,0) dcl 43 set ref 110* 260* 270* 332 339 343 345* 351* time 000162 automatic char(256) unaligned dcl 21 set ref 298* 300* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 Sequential_input internal static fixed bin(17,0) initial dcl 2-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 iox_$attach_loud 000000 constant entry external dcl 1-8 iox_$attach_ptr 000000 constant entry external dcl 1-8 iox_$close_file 000000 constant entry external dcl 1-8 iox_$delete_record 000000 constant entry external dcl 1-8 iox_$destroy_iocb 000000 constant entry external dcl 1-8 iox_$detach 000000 constant entry external dcl 1-8 iox_$err_no_operation 000000 constant entry external dcl 1-8 iox_$err_not_attached 000000 constant entry external dcl 1-8 iox_$err_not_closed 000000 constant entry external dcl 1-8 iox_$err_not_open 000000 constant entry external dcl 1-8 iox_$error_output external static pointer dcl 1-41 iox_$find_iocb 000000 constant entry external dcl 1-8 iox_$find_iocb_n 000000 constant entry external dcl 1-8 iox_$get_chars 000000 constant entry external dcl 1-8 iox_$look_iocb 000000 constant entry external dcl 1-8 iox_$move_attach 000000 constant entry external dcl 1-8 iox_$open_file 000000 constant entry external dcl 1-8 iox_$position 000000 constant entry external dcl 1-8 iox_$propagate 000000 constant entry external dcl 1-8 iox_$put_chars 000000 constant entry external dcl 1-8 iox_$read_key 000000 constant entry external dcl 1-8 iox_$read_length 000000 constant entry external dcl 1-8 iox_$read_record 000000 constant entry external dcl 1-8 iox_$rewrite_record 000000 constant entry external dcl 1-8 iox_$seek_key 000000 constant entry external dcl 1-8 iox_$user_input external static pointer dcl 1-41 iox_$user_io external static pointer dcl 1-41 iox_$user_output external static pointer dcl 1-41 iox_$write_record 000000 constant entry external dcl 1-8 iox_modes internal static char(24) initial array dcl 2-6 short_iox_modes internal static char(4) initial array dcl 2-12 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 002043 constant label dcl 306 ref 121 130 158 168 191 199 258 267 284 293 FINISHED_LIST 000651 constant label dcl 184 ref 153 close 002050 constant entry external dcl 311 gm_util1_ 000265 constant entry external dcl 18 open 000305 constant entry external dcl 94 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2666 3030 2452 2676 Length 3310 2452 142 244 214 72 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gm_util1_ 424 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 path_list_iocbp gm_util1_ 000012 list_has_been_attached gm_util1_ 000013 tape_has_been_attached gm_util1_ 000014 output_file_was_created gm_util1_ 000015 b_path_list_name gm_util1_ 000067 length_pnl gm_util1_ 000070 ioname2 gm_util1_ 000100 s_db_sw gm_util1_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gm_util1_ 000100 header_dir gm_util1_ 000152 header_ent gm_util1_ 000162 time gm_util1_ 000262 atom gm_util1_ 000272 atd gm_util1_ 000373 line_read gm_util1_ 000445 num_chars_read gm_util1_ 000446 i gm_util1_ 000447 j gm_util1_ 000450 t_err gm_util1_ 000451 error_code gm_util1_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry ext_entry_desc set_cs_eis index_cs_eis clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ com_err_$suppress_name date_time_$format expand_pathname_ ioa_ ioa_$ioa_switch iox_$attach_name iox_$close iox_$control iox_$detach_iocb iox_$get_line iox_$modes iox_$open parse_file_$parse_file_init_name THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info error_table_$short_record LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000264 94 000272 98 000325 99 000327 101 000334 102 000345 104 000350 105 000353 107 000357 110 000366 116 000372 117 000444 120 000450 121 000455 123 000456 125 000461 126 000477 129 000502 130 000507 133 000510 138 000513 139 000521 140 000545 143 000550 146 000553 147 000554 148 000555 149 000556 152 000560 153 000561 157 000562 158 000567 161 000570 162 000572 163 000576 164 000634 167 000640 168 000645 170 000646 173 000647 184 000651 187 000676 190 000701 191 000706 194 000707 195 000734 198 000737 199 000744 205 000745 206 000746 208 000757 210 001000 212 001001 213 001006 214 001020 218 001046 219 001066 220 001070 221 001106 225 001114 226 001116 228 001124 230 001143 232 001162 234 001204 236 001226 238 001250 240 001267 242 001306 244 001325 245 001360 246 001363 248 001364 250 001405 253 001417 254 001464 257 001470 258 001475 260 001476 262 001501 263 001517 266 001522 267 001527 270 001530 272 001533 279 001570 280 001637 283 001642 284 001647 286 001650 288 001653 289 001671 292 001674 293 001701 296 001702 298 001705 300 001747 302 002004 304 002024 306 002043 311 002044 318 002062 319 002063 322 002066 324 002100 325 002103 327 002115 328 002120 332 002161 335 002164 338 002166 339 002167 341 002223 343 002246 345 002262 346 002265 349 002304 351 002315 352 002320 356 002353 359 002356 361 002370 362 002373 364 002405 365 002410 369 002451 ----------------------------------------------------------- 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