COMPILATION LISTING OF SEGMENT alm_include_file_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1009.6 mst Mon 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-04-28,JRGray), approve(87-07-03,MCR7689), 17* audit(87-07-09,RWaters), install(87-11-02,MR12.2-1001): 18* Modified to remember more source file info (alm 19). 19* 2) change(87-04-28,JRGray), approve(87-07-03,MCR7689), 20* audit(87-07-09,RWaters), install(87-11-02,MR12.2-1001): 21* Fixed to calculate bit_count correctly (srclen is in chars not words). 22* END HISTORY COMMENTS */ 23 24 25 /* This module keeps track of include files for ALM so that it can properly expand source programs by itself. */ 26 /* modified on 08/10/72 at 19:48:21 by R F Mabee. */ 27 /* Modified for macro processing 3/22/77 by Noel I. Morris */ 28 /* Created new on 05/20/72 at 11:13:19 by R F Mabee. */ 29 30 alm_include_file_: procedure; /* Main entry never referenced. */ 31 32 1 1 /* Begin include file varcom.incl.pl1. */ 1 2 /* RHG added new variables 9/7/70. */ 1 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 1 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 1 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 1 6 1 7 declare 1 eb_data_$varcom external aligned, 1 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 1 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 1 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 1 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 1 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 1 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 1 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 1 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 1 16 2 source_printed bit(1) aligned, 1 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 1 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 1 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 1 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 1 21 text_section_length) fixed binary (26), 1 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 1 23 2 symbol_tree_rel fixed binary (26); 1 24 1 25 /* End of the include file varcom.incl.pl1. */ 33 34 2 1 /* BEGIN INCLUDE FILE segnfo.incl.pl1 for alm (see also segnfo.incl.alm) */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 2 6* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 2 7* Modified to keep a ptr to the list FCB. This is part of the fix that 2 8* removes PAD characters from the listing segment. 2 9* END HISTORY COMMENTS */ 2 10 2 11 declare 1 eb_data_$segnfo ext aligned, 2 12 2 (text, source, list, list_fcb, scrtch) ptr aligned, 2 13 2 (txtlen, srclen, lstlen) fixed bin (26) aligned; 2 14 2 15 /* END INCLUDE FILE segnfo.incl.pl1 */ 35 36 3 1 /* Begin include file alm_include_file_info.incl.pl1. 3 2* Created on 06/16/72 at 00:18:27 by R F Mabee. 3 3* Modified 4/13/77 by Noel I. Morris 3 4* 3 5* This structure is used for the nodes of a linked list describing the source and 3 6*include files processed by the assembler. Its primary purpose is to save this 3 7*information from pass one to pass two to save searching for the include files again. 3 8*Enough information is saved to create the standard object segment source file map. 3 9*The list nodes are also temporarily threaded (by the stack_back_pointer item) to form 3 10*a stack of suspended input files for nested include file use. */ 3 11 3 12 3 13 3 14 3 15 /****^ HISTORY COMMENTS: 3 16* 1) change(87-04-28,JRGray), approve(87-07-03,MCR7689), 3 17* audit(87-07-09,RWaters), install(87-11-02,MR12.2-1001): 3 18* Modified to track more info, (fix for alm 19). 3 19* END HISTORY COMMENTS */ 3 20 3 21 3 22 declare 1 source_info aligned based, 3 23 2 first_word fixed bin (71), /* Forces even alignment. */ 3 24 3 25 /* Threading items. */ 3 26 3 27 2 names_list_pointer pointer, /* List of file nodes, oldest first. */ 3 28 2 stack_back_pointer pointer, /* Push-down list for nested files, newest first. */ 3 29 3 30 /* File info passed for pass two. */ 3 31 3 32 2 source_pointer pointer, /* Base of include file. */ 3 33 2 source_length fixed bin (26), /* Character count. */ 3 34 2 search_name char (32), /* File name called for (with ".incl.alm"). */ 3 35 3 36 /* Source map information. */ 3 37 3 38 2 source_number fixed bin (26), /* Main source 0, first include 1 ... */ 3 39 2 uid bit (36), /* From segment branch. */ 3 40 2 dtm fixed bin (71), /* Watch for alignment. */ 3 41 2 pathname char (256), /* Actual pathname. */ 3 42 2 source_map_offset fixed bin (26), /* Used only in alm_source_map_. */ 3 43 2 source_map_length fixed bin (26), /* Ditto. Saves stuff from pre-counting for later use. */ 3 44 3 45 /* The rest of this node stores position in this file when another 3 46* level of include file is invoked. */ 3 47 3 48 2 curr_char_no fixed bin (26), /* eb_data_$curr_char_no. */ 3 49 2 line_begin_offset fixed bin (26), /* begin_line. */ 3 50 2 line_number fixed bin (26), /* binlin. */ 3 51 2 savep ptr unal, /* saved source pointer */ 3 52 2 savel fixed bin (24), /* saved source length */ 3 53 3 54 2 last_word fixed bin (26); /* Need [fixed (rel (last), 18) - 3 55* fixed (rel (first), 18))] words. */ 3 56 3 57 3 58 /* End of include file alm_include_file_info.incl.pl1. */ 37 38 4 1 4 2 4 3 4 4 /* the include file LSTCOM */ 4 5 4 6 declare 1 eb_data_$lstcom ext aligned, 4 7 2 tnolst fixed bin (17) ; 4 8 4 9 4 10 /* end of the include file LSTCOM */ 4 11 39 40 41 42 declare segment_pointer pointer, error_code fixed binary(35), 43 bit_count fixed binary, file_name char (256); 44 45 declare 1 eb_data_$tsym external static aligned, /* This is the name of the desired input file. */ 46 2 acc_length bit (9) unaligned, 47 2 acc_string char (32) unaligned; 48 49 dcl eb_data_$macro_depth fixed bin ext, 50 eb_data_$include_number fixed bin ext, 51 eb_data_$include_control bit (110) aligned ext; 52 53 dcl source_file_number fixed bin static; /* Main source = 0, first include = 1 */ 54 55 dcl 1 eb_data_$macro_stack (100) aligned ext, 56 2 source_pointer ptr unal, 57 2 source_length fixed bin (26), 58 2 curr_char_no fixed bin (26), 59 2 macro bit (1) unal, 60 2 begin_offset fixed bin (15), 61 2 count fixed bin (18) unal; 62 63 64 declare null builtin, addr builtin, rel builtin, fixed builtin, 65 divide builtin, mod builtin, pointer builtin, substr builtin; 66 67 declare eb_data_$curr_char_no fixed binary external static, 68 eb_data_$lavptr pointer external static, 69 eb_data_$who_am_I char (12) external static; 70 71 declare find_include_file_$initiate_count external entry (char (*), pointer, char (*), fixed binary, 72 pointer, fixed binary (35)), 73 translator_info_$component_get_source_info external entry (ptr, char (*), char (*), char(*), 74 fixed binary (71), bit (36) aligned, fixed binary), 75 mexp_$reset_macro external entry, 76 com_err_ external entry options(variable), 77 prlst_ external entry (char (*)), 78 prwrd_$source_only ext entry, 79 prnter_ external entry (char (*)), 80 prnter_$abort1 external entry, 81 glpl_$setblk external entry (fixed binary, fixed binary) returns (fixed binary), 82 prnter_$no_end_card external entry; 83 84 85 86 first_file: entry (main_program_name); 87 declare main_program_name char (*); 88 89 /* first_file is called at the beginning of each pass to cause the initial name node 90* to be created (pass one) and pointers reset generally. */ 91 92 include_index = 0; 93 eb_data_$macro_depth = 0; 94 eb_data_$include_number = 0; 95 source_file_number = 0; 96 eb_data_$include_control = "0"b; 97 if tpass1 ^= 0 then do; /* First pass, make base node for main source. */ 98 /* On second pass, base of name list is still available. */ 99 include_info_stack = null (); 100 segment_pointer = source; 101 bit_count = srclen * 9; /* srclen is in chars */ 102 call make_new_node (); 103 include_info_stack -> source_info.search_name = main_program_name || ".alm"; 104 include_name_list_base = include_info_stack; 105 end; 106 else do; 107 source = include_name_list_base -> source_info.source_pointer; 108 srclen = include_name_list_base -> source_info.source_length; 109 end; 110 111 /* Set other list pointers to base node in either pass. */ 112 113 include_name_list_top, include_info_stack = include_name_list_base; 114 begin_line = 0; 115 return; 116 117 alm_include_file_$pass1: entry; 118 119 /* This entry is called by pass1_ to find an include file whose name is lying in tsym. */ 120 /* It must do a full search to find the segment. */ 121 122 123 /* Stop accidental recursion by placing an upper limit on depth of nested include files. */ 124 125 if include_index > 10 then do; 126 call prnter_ (" 127 Include file nesting depth limit (10) exceeded. 128 "); 129 call prnter_$abort1 (); 130 end; 131 132 include_index = include_index + 1; 133 134 135 /* Generate full entry name, find file in libraries. */ 136 137 file_name = substr (acc_string, 1, fixed (acc_length, 9)) || ".incl.alm"; 138 call find_include_file_$initiate_count ("alm", source, file_name, bit_count, segment_pointer, error_code); 139 if error_code ^= 0 then do; 140 call com_err_ (error_code, eb_data_$who_am_I, file_name); 141 call prlst_ (" 142 Include file missing: " || file_name || " 143 "); 144 call prnter_$abort1 (); 145 end; 146 147 /* Stack per-file information and thread in new filename node. */ 148 149 source_file_number = source_file_number + 1; 150 eb_data_$include_number = source_file_number; 151 call make_new_node (); 152 source = segment_pointer; 153 srclen = divide (bit_count, 9, 17, 0); 154 include_name_list_top -> source_info.names_list_pointer = include_info_stack; 155 include_name_list_top = include_info_stack; 156 include_info_stack -> source_info.search_name = file_name; 157 158 return; 159 160 161 alm_include_file_$pass2: entry; 162 163 /* This entry is called by pass2_ to find an include file. */ 164 /* It can use segment pointer and length saved by alm_include_file_$pass1. */ 165 166 167 /* Step along name thread to get entry for next input file. */ 168 /* Update stacked info for old input file. */ 169 170 include_name_list_top = include_name_list_top -> source_info.names_list_pointer; 171 include_name_list_top -> source_info.stack_back_pointer = include_info_stack; 172 eb_data_$include_number = include_name_list_top -> source_info.source_number; 173 include_info_stack = include_name_list_top; 174 include_index = include_index + 1; 175 176 call safe_store (); 177 178 /* Verify that this is the right file. */ 179 180 file_name = substr (acc_string, 1, fixed (acc_length, 9)) || ".incl.alm"; 181 if include_name_list_top -> source_info.search_name ^= file_name then do; 182 call prnter_ (" 183 Phase error in include file processing. 184 "); 185 call prnter_$abort1 (); 186 end; 187 188 source = include_name_list_top -> source_info.source_pointer; 189 srclen = include_name_list_top -> source_info.source_length; 190 191 return; 192 193 194 alm_include_file_$macro: entry (macp, maclen); 195 196 /* Called with macro expansion to be inserted in source. */ 197 198 dcl macp ptr, 199 maclen fixed bin; 200 201 if eb_data_$curr_char_no ^= begin_line & tpass2 = 1 then 202 call prwrd_$source_only; 203 204 call macro_safestore; 205 eb_data_$macro_stack (eb_data_$macro_depth).macro = "1"b; 206 eb_data_$macro_stack (eb_data_$macro_depth).count = 1; 207 208 return; 209 210 211 alm_include_file_$insert: entry (macp, maclen, iters); 212 213 /* Called with other than macro expansion to be inserted in source. */ 214 215 dcl iters fixed bin; 216 217 call macro_safestore; 218 eb_data_$macro_stack (eb_data_$macro_depth).macro = "0"b; 219 eb_data_$macro_stack (eb_data_$macro_depth).count = iters; 220 221 return; 222 223 224 alm_include_file_$pop: entry; 225 226 /* Called because current input segment is exhausted. Returns having reset pointers etc. to previous input. */ 227 /* If there is no more input data, the END card must be missing. That is cause enough to abort. */ 228 229 230 if substr (eb_data_$include_control, 1, 1) then do; /* If macro processing ... */ 231 eb_data_$macro_stack (eb_data_$macro_depth).count = eb_data_$macro_stack (eb_data_$macro_depth).count - 1; 232 if eb_data_$macro_stack (eb_data_$macro_depth).count > 0 then do; 233 eb_data_$curr_char_no = 0; 234 begin_line = 0; 235 end; 236 else do; 237 source = eb_data_$macro_stack (eb_data_$macro_depth).source_pointer; 238 srclen = eb_data_$macro_stack (eb_data_$macro_depth).source_length; 239 eb_data_$curr_char_no = eb_data_$macro_stack (eb_data_$macro_depth).curr_char_no; 240 begin_line = eb_data_$curr_char_no - eb_data_$macro_stack (eb_data_$macro_depth).begin_offset; 241 if eb_data_$macro_stack (eb_data_$macro_depth).macro then 242 call mexp_$reset_macro; 243 244 eb_data_$macro_depth = eb_data_$macro_depth - 1; 245 if eb_data_$macro_depth = 0 then 246 binlin = binlin + 1; 247 eb_data_$include_control = substr (eb_data_$include_control, 2) || "0"b; 248 end; 249 source_printed = (eb_data_$curr_char_no ^= begin_line); 250 end; 251 else if include_index <= 0 then call prnter_$no_end_card (); 252 else do; 253 254 source = include_info_stack -> source_info.savep; 255 srclen = include_info_stack -> source_info.savel; 256 eb_data_$curr_char_no = include_info_stack -> source_info.curr_char_no; 257 binlin = include_info_stack -> source_info.line_number; 258 begin_line = include_info_stack -> source_info.line_begin_offset; 259 source_printed = (eb_data_$curr_char_no ^= begin_line); 260 261 /* Retrieve old input state from push-down list. */ 262 263 include_info_stack = include_info_stack -> source_info.stack_back_pointer; 264 eb_data_$include_number = include_info_stack -> source_info.source_number; 265 include_index = include_index - 1; 266 eb_data_$include_control = substr (eb_data_$include_control, 2) || "0"b; 267 268 end; 269 270 return; 271 272 273 make_new_node: procedure; 274 275 /* This internal procedure creates a new source_info node for the current input segment. */ 276 277 278 declare errcode fixed binary, rel_pointer fixed binary, words_needed fixed binary, new_pointer pointer; 279 280 declare map_entry_work_space (100); /* Copied into new block by glpl_$setblk. */ 281 282 declare dirname char(256), 283 (entname, compname) char(32); 284 285 286 /* Get space for node. */ 287 288 new_pointer = addr (map_entry_work_space); /* For address arithmetic to be defined. */ 289 words_needed = fixed (rel (addr (new_pointer -> source_info.last_word)), 18) - fixed (rel (addr (new_pointer -> source_info.first_word)), 18) + 2; 290 rel_pointer = glpl_$setblk (map_entry_work_space (1), words_needed); 291 292 /* Make sure block address is even. */ 293 294 if mod (rel_pointer, 2) ^= 0 then rel_pointer = rel_pointer + 1; 295 296 /* Start filling in structure. */ 297 298 new_pointer = pointer (eb_data_$lavptr, rel_pointer); 299 new_pointer -> source_info.source_number = source_file_number; 300 301 call translator_info_$component_get_source_info (segment_pointer, dirname, entname, compname, 302 new_pointer -> source_info.dtm, new_pointer -> source_info.uid, errcode); 303 if errcode ^= 0 then do; 304 call com_err_ (errcode, eb_data_$who_am_I, "Unable to get source file status. Assembly will continue."); 305 tfatal = 1; 306 end; 307 308 if compname = "" then new_pointer -> source_info.pathname = rtrim (dirname, "> ") || ">" || entname; 309 else new_pointer -> source_info.pathname = rtrim (dirname, "> ") || ">" || before (entname, ".archive") || 310 "::" || compname; 311 new_pointer -> source_info.source_pointer = segment_pointer; 312 new_pointer -> source_info.source_length = divide (bit_count, 9, 17); 313 314 new_pointer -> source_info.names_list_pointer = null (); 315 new_pointer -> source_info.stack_back_pointer = include_info_stack; 316 317 include_info_stack = new_pointer; 318 319 call safe_store (); 320 321 return; 322 end; 323 324 325 safe_store: procedure; 326 327 /* This internal procedure puts current location in current file into current stack node, 328* and resets the current position to the beginning of the (next) file. */ 329 330 331 include_info_stack -> source_info.savep = source; 332 include_info_stack -> source_info.savel = srclen; 333 include_info_stack -> source_info.curr_char_no = eb_data_$curr_char_no; 334 include_info_stack -> source_info.line_number = binlin; 335 include_info_stack -> source_info.line_begin_offset = begin_line; 336 337 eb_data_$curr_char_no = 0; 338 339 binlin = 1; 340 begin_line = 0; 341 source_printed = "0"b; 342 343 eb_data_$include_control = "0"b || eb_data_$include_control; 344 345 return; 346 end; 347 348 349 macro_safestore: proc; 350 351 /* This internal procedure pushes info onto the macro stack and 352* prepares to handle insertion of expanded macro. */ 353 354 if eb_data_$macro_depth = 0 then 355 binlin = binlin - 1; 356 eb_data_$macro_depth = eb_data_$macro_depth + 1; 357 if eb_data_$macro_depth > 100 then do; 358 call prnter_ (" 359 Macro depth limit (100) exceeded. 360 "); 361 call prnter_$abort1 (); 362 end; 363 364 eb_data_$macro_stack (eb_data_$macro_depth).source_pointer = source; 365 eb_data_$macro_stack (eb_data_$macro_depth).source_length = srclen; 366 eb_data_$macro_stack (eb_data_$macro_depth).curr_char_no = eb_data_$curr_char_no; 367 eb_data_$macro_stack (eb_data_$macro_depth).begin_offset = eb_data_$curr_char_no - begin_line; 368 369 source = macp; 370 srclen = maclen; 371 eb_data_$curr_char_no = 0; 372 begin_line = 0; 373 source_printed = "0"b; 374 375 eb_data_$include_control = "1"b || eb_data_$include_control; 376 377 return; 378 379 380 end; 381 382 383 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0929.4 alm_include_file_.pl1 >spec>install>1170>alm_include_file_.pl1 33 1 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 35 2 11/12/86 1103.0 segnfo.incl.pl1 >ldd>include>segnfo.incl.pl1 37 3 11/02/87 1305.6 alm_include_file_info.incl.pl1 >ldd>include>alm_include_file_info.incl.pl1 39 4 05/06/74 1742.2 lstcom.incl.pl1 >ldd>include>lstcom.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. acc_length 000016 external static bit(9) level 2 packed packed unaligned dcl 45 ref 137 180 acc_string 0(09) 000016 external static char(32) level 2 packed packed unaligned dcl 45 ref 137 180 addr builtin function dcl 64 ref 288 289 289 begin_line 60 000012 external static fixed bin(26,0) level 2 dcl 1-7 set ref 114* 201 234* 240* 249 258* 259 335 340* 367 372* begin_offset 4 000026 external static fixed bin(15,0) array level 2 dcl 55 set ref 240 367* binlin 101 000012 external static fixed bin(26,0) level 2 dcl 1-7 set ref 245* 245 257* 334 339* 354* 354 bit_count 000103 automatic fixed bin(17,0) dcl 42 set ref 101* 138* 153 312 com_err_ 000044 constant entry external dcl 71 ref 140 304 compname 000474 automatic char(32) packed unaligned dcl 282 set ref 301* 308 309 count 5 000026 external static fixed bin(18,0) array level 2 packed packed unaligned dcl 55 set ref 206* 219* 231* 231 232 curr_char_no 130 based fixed bin(26,0) level 2 in structure "source_info" dcl 3-22 in procedure "alm_include_file_" set ref 256 333* curr_char_no 2 000026 external static fixed bin(26,0) array level 2 in structure "eb_data_$macro_stack" dcl 55 in procedure "alm_include_file_" set ref 239 366* dirname 000364 automatic char(256) packed unaligned dcl 282 set ref 301* 308 309 divide builtin function dcl 64 ref 153 312 dtm 24 based fixed bin(71,0) level 2 dcl 3-22 set ref 301* eb_data_$curr_char_no 000030 external static fixed bin(17,0) dcl 67 set ref 201 233* 239* 240 249 256* 259 333 337* 366 367 371* eb_data_$include_control 000024 external static bit(110) dcl 49 set ref 96* 230 247* 247 266* 266 343* 343 375* 375 eb_data_$include_number 000022 external static fixed bin(17,0) dcl 49 set ref 94* 150* 172* 264* eb_data_$lavptr 000032 external static pointer dcl 67 ref 298 eb_data_$macro_depth 000020 external static fixed bin(17,0) dcl 49 set ref 93* 205 206 218 219 231 231 232 237 238 239 240 241 244* 244 245 354 356* 356 357 364 365 366 367 eb_data_$macro_stack 000026 external static structure array level 1 dcl 55 eb_data_$segnfo 000014 external static structure level 1 dcl 2-11 eb_data_$tsym 000016 external static structure level 1 dcl 45 eb_data_$varcom 000012 external static structure level 1 dcl 1-7 eb_data_$who_am_I 000034 external static char(12) packed unaligned dcl 67 set ref 140* 304* entname 000464 automatic char(32) packed unaligned dcl 282 set ref 301* 308 309 errcode 000212 automatic fixed bin(17,0) dcl 278 set ref 301* 303 304* error_code 000102 automatic fixed bin(35,0) dcl 42 set ref 138* 139 140* file_name 000104 automatic char(256) packed unaligned dcl 42 set ref 137* 138* 140* 141 156 180* 181 find_include_file_$initiate_count 000036 constant entry external dcl 71 ref 138 first_word based fixed bin(71,0) level 2 dcl 3-22 set ref 289 fixed builtin function dcl 64 ref 137 180 289 289 glpl_$setblk 000056 constant entry external dcl 71 ref 290 include_index 456 000012 external static fixed bin(26,0) level 2 dcl 1-7 set ref 92* 125 132* 132 174* 174 251 265* 265 include_info_stack 462 000012 external static pointer level 2 dcl 1-7 set ref 99* 103 104 113* 154 155 156 171 173* 254 255 256 257 258 263* 263 264 315 317* 331 332 333 334 335 include_name_list_base 464 000012 external static pointer level 2 dcl 1-7 set ref 104* 107 108 113 include_name_list_top 466 000012 external static pointer level 2 dcl 1-7 set ref 113* 154 155* 170* 170 171 172 173 181 188 189 iters parameter fixed bin(17,0) dcl 215 ref 211 219 last_word 135 based fixed bin(26,0) level 2 dcl 3-22 set ref 289 line_begin_offset 131 based fixed bin(26,0) level 2 dcl 3-22 set ref 258 335* line_number 132 based fixed bin(26,0) level 2 dcl 3-22 set ref 257 334* maclen parameter fixed bin(17,0) dcl 198 ref 194 211 370 macp parameter pointer dcl 198 ref 194 211 369 macro 3 000026 external static bit(1) array level 2 packed packed unaligned dcl 55 set ref 205* 218* 241 main_program_name parameter char packed unaligned dcl 87 ref 86 103 map_entry_work_space 000220 automatic fixed bin(17,0) array dcl 280 set ref 288 290* mexp_$reset_macro 000042 constant entry external dcl 71 ref 241 mod builtin function dcl 64 ref 294 names_list_pointer 2 based pointer level 2 dcl 3-22 set ref 154* 170 314* new_pointer 000216 automatic pointer dcl 278 set ref 288* 289 289 298* 299 301 301 308 309 311 312 314 315 317 null builtin function dcl 64 ref 99 314 pathname 26 based char(256) level 2 dcl 3-22 set ref 308* 309* pointer builtin function dcl 64 ref 298 prlst_ 000046 constant entry external dcl 71 ref 141 prnter_ 000052 constant entry external dcl 71 ref 126 182 358 prnter_$abort1 000054 constant entry external dcl 71 ref 129 144 185 361 prnter_$no_end_card 000060 constant entry external dcl 71 ref 251 prwrd_$source_only 000050 constant entry external dcl 71 ref 201 rel builtin function dcl 64 ref 289 289 rel_pointer 000213 automatic fixed bin(17,0) dcl 278 set ref 290* 294 294* 294 298 savel 134 based fixed bin(24,0) level 2 dcl 3-22 set ref 255 332* savep 133 based pointer level 2 packed packed unaligned dcl 3-22 set ref 254 331* search_name 11 based char(32) level 2 dcl 3-22 set ref 103* 156* 181 segment_pointer 000100 automatic pointer dcl 42 set ref 100* 138* 152 301* 311 source 2 000014 external static pointer level 2 dcl 2-11 set ref 100 107* 138* 152* 188* 237* 254* 331 364 369* source_file_number 000010 internal static fixed bin(17,0) dcl 53 set ref 95* 149* 149 150 299 source_info based structure level 1 dcl 3-22 source_length 1 000026 external static fixed bin(26,0) array level 2 in structure "eb_data_$macro_stack" dcl 55 in procedure "alm_include_file_" set ref 238 365* source_length 10 based fixed bin(26,0) level 2 in structure "source_info" dcl 3-22 in procedure "alm_include_file_" set ref 108 189 312* source_number 21 based fixed bin(26,0) level 2 dcl 3-22 set ref 172 264 299* source_pointer 000026 external static pointer array level 2 in structure "eb_data_$macro_stack" packed packed unaligned dcl 55 in procedure "alm_include_file_" set ref 237 364* source_pointer 6 based pointer level 2 in structure "source_info" dcl 3-22 in procedure "alm_include_file_" set ref 107 188 311* source_printed 433 000012 external static bit(1) level 2 dcl 1-7 set ref 249* 259* 341* 373* srclen 13 000014 external static fixed bin(26,0) level 2 dcl 2-11 set ref 101 108* 153* 189* 238* 255* 332 365 370* stack_back_pointer 4 based pointer level 2 dcl 3-22 set ref 171* 263 315* substr builtin function dcl 64 ref 137 180 230 247 266 tfatal 75 000012 external static fixed bin(26,0) level 2 dcl 1-7 set ref 305* tpass1 61 000012 external static fixed bin(26,0) level 2 dcl 1-7 ref 97 tpass2 62 000012 external static fixed bin(26,0) level 2 dcl 1-7 ref 201 translator_info_$component_get_source_info 000040 constant entry external dcl 71 ref 301 uid 22 based bit(36) level 2 dcl 3-22 set ref 301* words_needed 000214 automatic fixed bin(17,0) dcl 278 set ref 289* 290* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. eb_data_$lstcom external static structure level 1 dcl 4-6 NAMES DECLARED BY EXPLICIT CONTEXT. alm_include_file_ 000120 constant entry external dcl 30 alm_include_file_$insert 000635 constant entry external dcl 211 alm_include_file_$macro 000574 constant entry external dcl 194 alm_include_file_$pass1 000237 constant entry external dcl 117 alm_include_file_$pass2 000463 constant entry external dcl 161 alm_include_file_$pop 000662 constant entry external dcl 224 first_file 000131 constant entry external dcl 86 macro_safestore 001437 constant entry internal dcl 349 ref 204 217 make_new_node 001053 constant entry internal dcl 273 ref 102 151 safe_store 001371 constant entry internal dcl 325 ref 176 319 NAMES DECLARED BY CONTEXT OR IMPLICATION. before builtin function ref 309 rtrim builtin function ref 308 309 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2332 2414 1755 2342 Length 2752 1755 62 321 355 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME alm_include_file_ 532 external procedure is an external procedure. make_new_node internal procedure shares stack frame of external procedure alm_include_file_. safe_store internal procedure shares stack frame of external procedure alm_include_file_. macro_safestore internal procedure shares stack frame of external procedure alm_include_file_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 source_file_number alm_include_file_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME alm_include_file_ 000100 segment_pointer alm_include_file_ 000102 error_code alm_include_file_ 000103 bit_count alm_include_file_ 000104 file_name alm_include_file_ 000212 errcode make_new_node 000213 rel_pointer make_new_node 000214 words_needed make_new_node 000216 new_pointer make_new_node 000220 map_entry_work_space make_new_node 000364 dirname make_new_node 000464 entname make_new_node 000474 compname make_new_node THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp alloc_bit_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry ext_entry_desc set_chars_eis index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ find_include_file_$initiate_count glpl_$setblk mexp_$reset_macro prlst_ prnter_ prnter_$abort1 prnter_$no_end_card prwrd_$source_only translator_info_$component_get_source_info THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$curr_char_no eb_data_$include_control eb_data_$include_number eb_data_$lavptr eb_data_$macro_depth eb_data_$macro_stack eb_data_$segnfo eb_data_$tsym eb_data_$varcom eb_data_$who_am_I LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000117 86 000125 92 000144 93 000146 94 000147 95 000150 96 000151 97 000155 99 000157 100 000161 101 000164 102 000170 103 000171 104 000213 105 000216 107 000217 108 000223 113 000227 114 000234 115 000235 117 000236 125 000244 126 000251 129 000264 132 000271 137 000274 138 000313 139 000352 140 000354 141 000375 144 000424 149 000432 150 000434 151 000436 152 000437 153 000443 154 000446 155 000453 156 000455 158 000461 161 000462 170 000470 171 000476 172 000500 173 000503 174 000504 176 000505 180 000506 181 000526 182 000535 185 000550 188 000555 189 000563 191 000567 194 000570 201 000601 204 000615 205 000616 206 000624 208 000630 211 000631 217 000642 218 000643 219 000651 221 000660 224 000661 230 000667 231 000673 232 000706 233 000712 234 000713 235 000715 237 000716 238 000721 239 000723 240 000725 241 000734 244 000743 245 000746 247 000752 248 000767 249 000770 250 000775 251 000776 254 001006 255 001012 256 001015 257 001017 258 001021 259 001023 263 001026 264 001030 265 001032 266 001034 268 001051 270 001052 273 001053 288 001054 289 001056 290 001070 294 001105 298 001112 299 001120 301 001122 303 001161 304 001163 305 001207 308 001213 309 001260 311 001351 312 001354 314 001357 315 001361 317 001365 319 001367 321 001370 325 001371 331 001372 332 001400 333 001403 334 001405 335 001407 337 001411 339 001412 340 001414 341 001415 343 001416 345 001435 349 001437 354 001440 356 001446 357 001447 358 001452 361 001465 364 001472 365 001501 366 001505 367 001507 369 001512 370 001517 371 001521 372 001522 373 001524 375 001525 377 001544 ----------------------------------------------------------- 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