COMPILATION LISTING OF SEGMENT table_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 0943.4 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 table_: 19 procedure (dowhat, xsym, xval, xflags, xaddr) returns (fixed binary (17)); 20 /* assignment table routine for symbols in the program being assembled */ 21 22 /* 23* Modified for new hashing schema on 02/10/76 by Eugene E Wiatrowski. 24* Modified on 11/28/72 at 19:21:37 by R F Mabee. 25* by RFM on 28 August and 22 November 1972 to fix little bugs. 26* by RFM on 23 July 1972 to keep referencing line numbers for each name. 27* This makes it possible for ALM to produce a cross reference table. 28* by RHG on 3 June 1971 to fix flagging of multiply defined symbols 29* and to let multiply defined symbols keep the first value given them 30* by RHG on 22 Sept 1970 to submit an unexpanded copy (source got expanded accidentally) 31* by RHG on 17 August 1970 at 1842 to spot multiply defined symbols of different classes 32**/ 33 34 35 36 /* for entering and searching for symbols in table. 37* the table consists of a list structure in 211 parallel 38* lists, one entry for each item in the table. each entry 39* consists of a pointer block containing the symbol value and 40* flags, and a pointer to the symbol stored in a variable 41* length ascii type string. Both search and assign entries 42* are contained in this program. */ 43 1 1 /* Begin include file alm_xref_nodes.incl.pl1. 1 2* This file defines the structures of the two nodes which make up the symbol tree 1 3* maintained by ALM (table_) for use in generating the cross-reference. 1 4* First written on 07/23/72 at 14:54:03 by R F Mabee. 1 5* Last modified on 07/27/72 at 08:48:06 by R F Mabee. */ 1 6 1 7 declare 1 symbol_tree_node based aligned, /* Binary name tree, sorted alphabetically. */ 1 8 2 high_sublist fixed binary, /* Relative pointer to symbol_tree_node.name_rel. */ 1 9 2 low_sublist fixed binary, 1 10 2 line_list_forward_rel bit (18) unaligned, /* Thread of line number nodes. */ 1 11 2 line_list_backward_rel bit (18) unaligned, /* They are doubly threaded. */ 1 12 /* Above prefix must occupy three words, as pointers all point at next item. */ 1 13 2 name_rel bit (18) unaligned, /* Relative pointer to ACC symbol name. */ 1 14 2 next_rel bit (18) unaligned, /* Hash bucket thread. */ 1 15 2 flags bit (18) unaligned, /* Used by table_. */ 1 16 2 value bit (18) unaligned, /* Value associated with symbol. */ 1 17 2 location_counter bit (18) unaligned, /* Relative pointer to l.c. bead. */ 1 18 2 filler bit (18) unaligned, /* Probably used, not needed for xref. */ 1 19 2 origin bit (18) unaligned, /* Origin for a location counter node. */ 1 20 2 padding bit (18) unaligned; /* So PL/I does right thing with above. */ 1 21 /* The format of the rest of the node depends on what kind of symbol it is, 1 22* which is why the line list is put before the visible part of the node. */ 1 23 1 24 declare 1 line_node based aligned, /* Sorted list of referencing line numbers. */ 1 25 2 forward_rel bit (18) unaligned, /* Thread of line_nodes. */ 1 26 2 backward_rel bit (18) unaligned, /* Doubly threaded. */ 1 27 2 line_no fixed binary; /* Combined line number and relative address of file name node. */ 1 28 1 29 /* End of include file alm_xref_nodes.incl.pl1. */ 44 45 2 1 /* Begin include file alm_options.incl.pl1. 2 2* This file defines the external cells used to pass options to the various modules of the assembler. 2 3* Created on 03/17/72 at 01:39:44 by R F Mabee. 2 4* Last modified on 07/23/72 at 22:02:34 by R F Mabee. */ 2 5 2 6 declare 1 eb_data_$alm_options external static aligned, 2 7 2 tnewcall fixed binary, /* Use new call/save/return operators. */ 2 8 2 tnewmachine fixed binary, /* Use followon hardware instruction set. */ 2 9 2 tnewobject fixed binary, /* Use new object segment format. */ 2 10 2 tcheckcompatibility fixed binary, /* Check for instructions changed in followon. */ 2 11 2 tquietsw fixed binary, /* Suppress online printout of error messages. */ 2 12 2 tfirstreftrap fixed binary, /* A first reference trap procedure was given. */ 2 13 2 tnoxref fixed binary; /* Zero if cross reference if to be produced. */ 2 14 2 15 /* End of include file alm_options.incl.pl1 */ 46 47 3 1 /* Begin include file varcom.incl.pl1. */ 3 2 /* RHG added new variables 9/7/70. */ 3 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 3 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 3 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 3 6 3 7 declare 1 eb_data_$varcom external aligned, 3 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 3 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 3 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 3 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 3 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 3 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 3 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 3 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 3 16 2 source_printed bit(1) aligned, 3 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 3 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 3 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 3 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 3 21 text_section_length) fixed binary (26), 3 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 3 23 2 symbol_tree_rel fixed binary (26); 3 24 3 25 /* End of the include file varcom.incl.pl1. */ 48 49 4 1 4 2 4 3 4 4 /* include file for CONCOM */ 4 5 4 6 declare 1 eb_data_$concom ext aligned, 4 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 4 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 4 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 4 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 4 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 4 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 4 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 4 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 4 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 4 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 4 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 4 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 4 19 4 20 /* end of the include file for CONCOM */ 50 51 5 1 5 2 /* Last modified by EBush on 2/5/81 to add prnta */ 5 3 5 4 5 5 declare 1 eb_data_$erflgs ext aligned, 5 6 2 flgvec (36) fixed bin (17) aligned ; 5 7 5 8 5 9 declare 1 eb_data_$erflgs_overlay ext aligned, /* overlays the FLGVEC */ 5 10 2 (prnte, prntf, prntm, prntn, prnto, prntp, 5 11 prntr, prnts, prntt, prntu, prntx, prntb, 5 12 prntc, prntd, prnta, prnt5, prnt6, prnt7, 5 13 tstsw(18) ) fixed bin (17) aligned ; 5 14 5 15 52 53 6 1 6 2 6 3 6 4 /* include file for CODTAB */ 6 5 6 6 declare 1 eb_data_$codtab ext aligned, 6 7 2 ( inul, isoh, istx, ietx, ieot, ienq, iack, ibel, 6 8 ibs, iht, inl, ivt, iff, icr, irrs, ibrs, 6 9 idle, irht, ihlf, irvt, ihlr, inak, isyn, ietb, 6 10 ican, iem, iss, iesc, ifs, igs, irs, ius, 6 11 isp, ixclm, iquot, ilb, idolr, ipcnt, iampr, iapos, 6 12 ilpar, irpar, istar, iplus, icomma, iminus, ipoint, islash, 6 13 inum, inum_pad(9), icol, isc, ilpb, iequal, irpb, iques, iat, 6 14 ilet, ilet_pad(25), ilsb, irslsh, irsb, icflx, iulin, igrv, illet,illet_pad(25), 6 15 ilbrc, ivlin, irbrc, itldf, idel ) fixed bin (17) ; 6 16 /* NA on June 26, 1970 at 1344 for padded arrays */ 54 55 56 57 declare (dowhat, xsym (8), xval, xflags, xcls, xslink, 58 words (-2:5), boxno, tval, tflags, yflags, tcls, xaddr, 59 l, k, link, nwrds) fixed binary (26), 60 result fixed binary, line_no fixed binary (35), 61 tree_rel fixed binary, tree_ptr pointer, 62 line_list_rel bit (18), line_list_ptr pointer, 63 last_line_rel bit (18), last_line_ptr pointer; 64 declare internal_return label local; 65 66 /* EXTERNAL FUNCTIONS */ 67 declare glpl_$clh external entry (fixed binary (26)) returns (fixed binary (26)), 68 glpl_$crh external entry (fixed binary (26)) returns (fixed binary (26)), 69 glpl_$cwrd external entry (fixed binary (26)) returns (fixed binary (26)), 70 utils_$rs external entry (fixed binary (26), fixed binary (26)) returns (fixed binary (26)), 71 glpl_$glwrd external entry (fixed binary (26), fixed binary (26)) returns (fixed binary (26)), 72 glpl_$setblk external entry (fixed binary(26), fixed binary(26)) returns (fixed binary(26)), 73 utils_$nswrds external entry (fixed binary (26)) returns (fixed binary (26)), 74 utils_$compare_acc external entry (fixed binary (26), fixed binary (26)) returns (fixed binary (26)); 75 76 /* EXTERNAL ENTRIES */ 77 declare prnter_$prnter_ external entry (char (*)), 78 glpl_$slwrd external entry (fixed binary (26), fixed binary (26), fixed binary (26)), 79 glpl_$storl external entry (fixed binary (26), fixed binary (26)), 80 glpl_$storr external entry (fixed binary (26), fixed binary (26)), 81 utils_$abort external entry; 82 83 declare (eb_data_$rho, eb_data_$twop18) external fixed binary (35) aligned; 84 85 declare eb_data_$lavptr external pointer; 86 87 declare (slink, xslink_ptr) pointer; 88 89 dcl mod_2_sum bit(36) aligned; 90 91 dcl bit_array(8) bit(36) aligned based; 92 93 declare 1 bsym based aligned, 94 2 nc fixed bin (8) unal, 95 2 ch char (0 refer (bsym.nc)) unal; 96 97 declare 1 word based aligned, 98 2 left bit (18) unaligned, 99 2 right bit (18) unaligned; 100 101 declare twop18 fixed binary (20) internal static initial (262144); 102 103 declare (abs, addr, addrel, bit, fixed, mod, pointer, rel) builtin; 104 105 106 label_0100: 107 result = 1; /* Preset for happy return. */ 108 109 if (dowhat = iassgn) then goto label_1000; 110 if (dowhat = iserch) then goto label_2000; 111 call prnter_$prnter_ ("fatal error in the assembler (TABLE)"); call utils_$abort; 112 113 114 /* assign entry, first search table. */ 115 label_1000: 116 117 internal_return = label_1010; 118 goto label_3000; 119 120 /* analyze result of table search. */ 121 label_1010: 122 123 if (link = 0) then goto label_1020; 124 goto label_1030; 125 126 /* not now in table, hence assign directly. */ 127 label_1020: 128 129 130 if xsym (1) > eb_data_$twop18 then xslink = glpl_$setblk (xsym (1),nwrds); /* assign symbol if there is one in SYM */ 131 132 words (0), words (-1), words (-2) = 0; 133 words (1) = glpl_$glwrd (xslink, box (boxno)); 134 words (2) = glpl_$glwrd (xflags,xval); 135 if (xflags = fmlcrf) then goto label_1026; 136 words (3) = glpl_$glwrd (xaddr, fixed (addr (xval) -> word.left, 18)); 137 l = 3; 138 if xflags = 0 then l = 5; 139 label_1022: 140 141 link = glpl_$setblk (words (-2), l + 3) + 3; 142 box (boxno) = link; 143 if (xflags = fmlcrf) then xaddr = link; 144 145 /* Insert new symbol into tree as well as hash table. */ 146 147 if tnoxref ^= 0 then goto all_done; /* Don't bother unless user wants result. */ 148 149 tree_ptr = addr (symbol_tree_rel); 150 tree_loop: tree_rel = tree_ptr -> symbol_tree_node.high_sublist; /* Which must be the first word. */ 151 if tree_rel = 0 then goto tree_done; 152 tree_ptr = pointer (eb_data_$lavptr, tree_rel); 153 if utils_$compare_acc (xslink, fixed (tree_ptr -> symbol_tree_node.name_rel, 18)) < 0 then tree_ptr = addrel (tree_ptr, 1); 154 goto tree_loop; 155 tree_done:tree_ptr -> symbol_tree_node.high_sublist = link - 3; 156 goto make_line_node; 157 158 /* set up entry for multiple location counters. */ 159 label_1026: 160 161 words (3) = 0; 162 words (4) = xval; 163 words (5) = 0; 164 l = 5; 165 goto label_1022; 166 167 /* entry found table, check for consistency and redefinition. */ 168 label_1030: 169 170 if (unspec (tflags) & unspec (fdef)) = "0"b then goto label_1040; 171 if unspec (tflags) & unspec (fset) then goto label_1070; 172 if unspec (tflags) & unspec (fmul) then goto label_1062; 173 if tcls = xcls then if tval = xval then goto label_1050; 174 if unspec (xflags) & unspec (fdef) then goto label_1060; 175 goto label_1050; 176 177 /* assign new value and flags to undefined symbol. */ 178 label_1040: 179 unspec (yflags) = unspec (tflags) | unspec (xflags); 180 call glpl_$slwrd (link+1, yflags, xval); 181 182 if xflags = fmlcrf then do; 183 call glpl_$slwrd (link + 2, 0, 0); 184 call glpl_$slwrd (link + 3, 0, xval); 185 call glpl_$slwrd (link + 4, 0, 0); 186 end; 187 else call glpl_$slwrd (link + 2, xaddr, fixed (addr (xval) -> word.left, 18)); 188 189 /* simple return for equivalent assignments. */ 190 label_1050: 191 192 goto make_line_node; 193 194 /* error if multiple non-equivalent assignment. */ 195 label_1060: 196 unspec (yflags) = unspec (tflags) | unspec (fmul); 197 call glpl_$storl (link+1, yflags); 198 label_1062: 199 prntm = 1; 200 result = 0; 201 goto make_line_node; 202 203 label_1070: 204 205 call glpl_$slwrd (link+1,xflags,xval); 206 call glpl_$storr (link + 2, fixed (addr (xval) -> word.left, 18)); 207 goto make_line_node; 208 209 210 /* search entry, first search table. */ 211 label_2000: 212 213 internal_return = label_2010; 214 goto label_3000; 215 216 /* analyze search results. */ 217 label_2010: 218 219 if xcls ^= 0 then if xcls ^= tcls then goto label_2020; 220 if link ^= 0 then if unspec (tflags) & unspec (fdef) then goto label_2030; 221 222 /* value not found, give bad return. */ 223 label_2020: 224 225 xval = 0; 226 xaddr = 0; 227 return (0); 228 229 /* found in table, check for errors and return value. */ 230 label_2030: 231 232 if unspec (tflags) & unspec (fmul) then prntm = 1; 233 if unspec (tflags) & unspec (fphs) then prntp = 1; 234 xval = tval; 235 xaddr = 0; 236 if (unspec (tflags) & unspec (flocrf)) = unspec (flocrf) then xaddr = glpl_$clh (link+2); 237 if (unspec (tflags) & unspec (fmlcrf)) = unspec (fmlcrf) then xaddr = link; 238 239 /* Come here on both search and assign entries, to append line number node to list for symbol. */ 240 241 make_line_node: 242 if tnoxref ^= 0 then goto all_done; /* Skip this extra work if xref not needed. */ 243 if binlin = 0 then goto all_done; /* Initialization reference (probably). */ 244 245 line_no = binlin + fixed (rel (include_info_stack), 18) * twop18; 246 line_list_ptr, tree_ptr = pointer (eb_data_$lavptr, link - 1); 247 line_loop:line_list_rel = line_list_ptr -> line_node.backward_rel; 248 if line_list_rel = "0"b then do; 249 line_list_ptr = tree_ptr; 250 goto line_end; 251 end; 252 line_list_ptr = pointer (eb_data_$lavptr, line_list_rel); 253 if line_list_ptr -> line_node.line_no > line_no then goto line_loop; 254 if line_list_ptr -> line_node.line_no = line_no then goto all_done; 255 256 line_end: last_line_rel = line_list_ptr -> line_node.forward_rel; 257 if last_line_rel = "0"b then last_line_ptr = tree_ptr; 258 else last_line_ptr = pointer (eb_data_$lavptr, last_line_rel); 259 260 addr (words (1)) -> line_node.line_no = line_no; 261 addr (words (1)) -> line_node.forward_rel = last_line_rel; 262 addr (words (1)) -> line_node.backward_rel = line_list_rel; 263 link = glpl_$setblk (words (1), 2); 264 line_list_ptr -> line_node.forward_rel, last_line_ptr -> line_node.backward_rel = bit (fixed (link, 18)); 265 266 all_done: return (result); 267 268 269 /* table search routine, reached by assign goto linkage. */ 270 label_3000: 271 272 273 274 nwrds = utils_$nswrds (xsym (1)); 275 276 if xsym (1) > eb_data_$twop18 then xslink_ptr = addr (xsym (1)); 277 278 else do; 279 xslink = xsym (1); 280 xslink_ptr = pointer (eb_data_$lavptr, xslink); 281 end; 282 283 mod_2_sum = xslink_ptr -> bit_array(1); 284 285 do k = 2 to nwrds; 286 mod_2_sum = bool(mod_2_sum,xslink_ptr -> bit_array(k),"0110"b); 287 end; 288 289 boxno = mod(binary(mod_2_sum,35),nboxes); 290 291 link = box (boxno); 292 label_3010: 293 if link = 0 then goto search_done; 294 slink = pointer (eb_data_$lavptr,glpl_$clh (link)); 295 label_3020: 296 if (xslink_ptr -> bsym.ch ^= slink -> bsym.ch) then goto label_3030; 297 298 tflags = glpl_$clh (link + 1); 299 tval = glpl_$crh (link + 1); 300 if tflags ^= fmlcrf then tval = tval + glpl_$crh (link + 2) * twop18; 301 xcls = utils_$rs (xflags,15); 302 tcls = utils_$rs (tflags,15); 303 search_done: 304 goto internal_return; 305 label_3030: 306 307 link = glpl_$crh (link); 308 goto label_3010; 309 310 311 end table_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0938.3 table_.pl1 >spec>install>1170>table_.pl1 44 1 05/06/74 1740.3 alm_xref_nodes.incl.pl1 >ldd>include>alm_xref_nodes.incl.pl1 46 2 05/06/74 1740.2 alm_options.incl.pl1 >ldd>include>alm_options.incl.pl1 48 3 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 50 4 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.incl.pl1 52 5 07/17/81 1911.5 erflgs.incl.pl1 >ldd>include>erflgs.incl.pl1 54 6 05/06/74 1741.0 codtab.incl.pl1 >ldd>include>codtab.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. addr builtin function dcl 103 ref 136 136 149 187 187 206 206 260 261 262 276 addrel builtin function dcl 103 ref 153 backward_rel 0(18) based bit(18) level 2 packed packed unaligned dcl 1-24 set ref 247 262* 264* binlin 101 000012 external static fixed bin(26,0) level 2 dcl 3-7 ref 243 245 bit builtin function dcl 103 ref 264 bit_array based bit(36) array dcl 91 ref 283 286 box 103 000012 external static fixed bin(26,0) array level 2 dcl 3-7 set ref 133* 142* 291 boxno 000112 automatic fixed bin(26,0) dcl 57 set ref 133 142 289* 291 bsym based structure level 1 dcl 93 ch 0(09) based char level 2 packed packed unaligned dcl 93 ref 295 295 dowhat parameter fixed bin(26,0) dcl 57 ref 18 109 110 eb_data_$alm_options 000010 external static structure level 1 dcl 2-6 eb_data_$concom 000014 external static structure level 1 dcl 4-6 eb_data_$erflgs_overlay 000016 external static structure level 1 dcl 5-9 eb_data_$lavptr 000052 external static pointer dcl 85 ref 152 246 252 258 280 294 eb_data_$twop18 000050 external static fixed bin(35,0) dcl 83 ref 127 276 eb_data_$varcom 000012 external static structure level 1 dcl 3-7 fdef 17 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 168 174 220 fixed builtin function dcl 103 ref 136 136 153 153 187 187 206 206 245 264 flocrf 30 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 236 236 fmlcrf 40 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 135 143 182 237 237 300 fmul 20 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 172 195 230 forward_rel based bit(18) level 2 packed packed unaligned dcl 1-24 set ref 256 261* 264* fphs 21 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 233 fset 22 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 171 glpl_$clh 000020 constant entry external dcl 67 ref 236 294 298 glpl_$crh 000022 constant entry external dcl 67 ref 299 300 305 glpl_$glwrd 000026 constant entry external dcl 67 ref 133 134 136 glpl_$setblk 000030 constant entry external dcl 67 ref 127 139 263 glpl_$slwrd 000040 constant entry external dcl 77 ref 180 183 184 185 187 203 glpl_$storl 000042 constant entry external dcl 77 ref 197 glpl_$storr 000044 constant entry external dcl 77 ref 206 high_sublist based fixed bin(17,0) level 2 dcl 1-7 set ref 150 155* iassgn 75 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 109 include_info_stack 462 000012 external static pointer level 2 dcl 3-7 ref 245 internal_return 000140 automatic label variable local dcl 64 set ref 115* 211* 303 iserch 76 000014 external static fixed bin(26,0) level 2 dcl 4-6 ref 110 k 000120 automatic fixed bin(26,0) dcl 57 set ref 285* 286* l 000117 automatic fixed bin(26,0) dcl 57 set ref 137* 138* 139 164* last_line_ptr 000136 automatic pointer dcl 57 set ref 257* 258* 264 last_line_rel 000134 automatic bit(18) packed unaligned dcl 57 set ref 256* 257 258 261 left based bit(18) level 2 packed packed unaligned dcl 97 ref 136 136 187 187 206 206 line_list_ptr 000132 automatic pointer dcl 57 set ref 246* 247 249* 252* 253 254 256 264 line_list_rel 000130 automatic bit(18) packed unaligned dcl 57 set ref 247* 248 252 262 line_no 000124 automatic fixed bin(35,0) dcl 57 in procedure "table_" set ref 245* 253 254 260 line_no 1 based fixed bin(17,0) level 2 in structure "line_node" dcl 1-24 in procedure "table_" set ref 253 254 260* line_node based structure level 1 dcl 1-24 link 000121 automatic fixed bin(26,0) dcl 57 set ref 121 139* 142 143 155 180 183 184 185 187 197 203 206 220 236 237 246 263* 264 291* 292 294* 298 299 300 305* 305* mod builtin function dcl 103 ref 289 mod_2_sum 000150 automatic bit(36) dcl 89 set ref 283* 286* 286 289 name_rel 3 based bit(18) level 2 packed packed unaligned dcl 1-7 ref 153 153 nboxes 102 000012 external static fixed bin(26,0) level 2 dcl 3-7 ref 289 nc based fixed bin(8,0) level 2 packed packed unaligned dcl 93 ref 295 295 nwrds 000122 automatic fixed bin(26,0) dcl 57 set ref 127* 270* 285 pointer builtin function dcl 103 ref 152 246 252 258 280 294 prnter_$prnter_ 000036 constant entry external dcl 77 ref 111 prntm 2 000016 external static fixed bin(17,0) level 2 dcl 5-9 set ref 198* 230* prntp 5 000016 external static fixed bin(17,0) level 2 dcl 5-9 set ref 233* rel builtin function dcl 103 ref 245 result 000123 automatic fixed bin(17,0) dcl 57 set ref 106* 200* 266 slink 000144 automatic pointer dcl 87 set ref 294* 295 symbol_tree_node based structure level 1 dcl 1-7 symbol_tree_rel 470 000012 external static fixed bin(26,0) level 2 dcl 3-7 set ref 149 tcls 000116 automatic fixed bin(26,0) dcl 57 set ref 173 217 302* tflags 000114 automatic fixed bin(26,0) dcl 57 set ref 168 171 172 178 195 220 230 233 236 237 298* 300 302* tnoxref 6 000010 external static fixed bin(17,0) level 2 dcl 2-6 ref 147 241 tree_ptr 000126 automatic pointer dcl 57 set ref 149* 150 152* 153 153 153* 153 155 246* 249 257 tree_rel 000125 automatic fixed bin(17,0) dcl 57 set ref 150* 151 152 tval 000113 automatic fixed bin(26,0) dcl 57 set ref 173 234 299* 300* 300 twop18 constant fixed bin(20,0) initial dcl 101 ref 245 300 utils_$abort 000046 constant entry external dcl 77 ref 111 utils_$compare_acc 000034 constant entry external dcl 67 ref 153 utils_$nswrds 000032 constant entry external dcl 67 ref 270 utils_$rs 000024 constant entry external dcl 67 ref 301 302 word based structure level 1 dcl 97 words 000102 automatic fixed bin(26,0) array dcl 57 set ref 132* 132* 132* 133* 134* 136* 139* 159* 162* 163* 260 261 262 263* xaddr parameter fixed bin(26,0) dcl 57 set ref 18 136* 143* 187* 226* 235* 236* 237* xcls 000100 automatic fixed bin(26,0) dcl 57 set ref 173 217 217 301* xflags parameter fixed bin(26,0) dcl 57 set ref 18 134* 135 138 143 174 178 182 203* 301* xslink 000101 automatic fixed bin(26,0) dcl 57 set ref 127* 133* 153* 279* 280 xslink_ptr 000146 automatic pointer dcl 87 set ref 276* 280* 283 286 295 xsym parameter fixed bin(26,0) array dcl 57 set ref 18 127 127* 270* 276 276 279 xval parameter fixed bin(26,0) dcl 57 set ref 18 134* 136 136 162 173 180* 184* 187 187 203* 206 206 223* 234* yflags 000115 automatic fixed bin(26,0) dcl 57 set ref 178* 180* 195* 197* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abs builtin function dcl 103 eb_data_$codtab external static structure level 1 dcl 6-6 eb_data_$erflgs external static structure level 1 dcl 5-5 eb_data_$rho external static fixed bin(35,0) dcl 83 glpl_$cwrd 000000 constant entry external dcl 67 NAMES DECLARED BY EXPLICIT CONTEXT. all_done 000751 constant label dcl 266 ref 147 241 243 254 label_0100 000033 constant label dcl 106 label_1000 000064 constant label dcl 115 ref 109 label_1010 000070 constant label dcl 121 ref 115 label_1020 000073 constant label dcl 127 ref 121 label_1022 000200 constant label dcl 139 ref 165 label_1026 000300 constant label dcl 159 ref 135 label_1030 000307 constant label dcl 168 ref 124 label_1040 000334 constant label dcl 178 ref 168 label_1050 000461 constant label dcl 190 ref 173 175 label_1060 000462 constant label dcl 195 ref 174 label_1062 000500 constant label dcl 198 ref 172 label_1070 000506 constant label dcl 203 ref 171 label_2000 000544 constant label dcl 211 ref 110 label_2010 000550 constant label dcl 217 ref 211 label_2020 000563 constant label dcl 223 ref 217 label_2030 000570 constant label dcl 230 ref 220 label_3000 000755 constant label dcl 270 ref 118 214 label_3010 001033 constant label dcl 292 ref 308 label_3020 001054 constant label dcl 295 label_3030 001175 constant label dcl 305 ref 295 line_end 000701 constant label dcl 256 ref 250 line_loop 000661 constant label dcl 247 ref 253 make_line_node 000635 constant label dcl 241 ref 156 190 201 207 search_done 001174 constant label dcl 303 ref 292 table_ 000026 constant entry external dcl 18 tree_done 000274 constant label dcl 155 ref 151 tree_loop 000241 constant label dcl 150 ref 154 NAMES DECLARED BY CONTEXT OR IMPLICATION. binary builtin function ref 289 bool builtin function ref 286 unspec builtin function set ref 168 168 171 171 172 172 174 174 178* 178 178 195* 195 195 220 220 230 230 233 233 236 236 236 237 237 237 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1374 1450 1206 1404 Length 1770 1206 54 303 165 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME table_ 126 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME table_ 000100 xcls table_ 000101 xslink table_ 000102 words table_ 000112 boxno table_ 000113 tval table_ 000114 tflags table_ 000115 yflags table_ 000116 tcls table_ 000117 l table_ 000120 k table_ 000121 link table_ 000122 nwrds table_ 000123 result table_ 000124 line_no table_ 000125 tree_rel table_ 000126 tree_ptr table_ 000130 line_list_rel table_ 000132 line_list_ptr table_ 000134 last_line_rel table_ 000136 last_line_ptr table_ 000140 internal_return table_ 000144 slink table_ 000146 xslink_ptr table_ 000150 mod_2_sum table_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac mdfx1 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. glpl_$clh glpl_$crh glpl_$glwrd glpl_$setblk glpl_$slwrd glpl_$storl glpl_$storr prnter_$prnter_ utils_$abort utils_$compare_acc utils_$nswrds utils_$rs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$alm_options eb_data_$concom eb_data_$erflgs_overlay eb_data_$lavptr eb_data_$twop18 eb_data_$varcom LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000020 106 000033 109 000035 110 000042 111 000044 111 000057 115 000064 118 000067 121 000070 124 000072 127 000073 132 000112 133 000115 134 000132 135 000146 136 000154 137 000171 138 000173 139 000200 142 000221 143 000225 147 000234 149 000237 150 000241 151 000243 152 000244 153 000251 154 000273 155 000274 156 000277 159 000300 162 000301 163 000303 164 000304 165 000306 168 000307 171 000314 172 000316 173 000320 174 000327 175 000333 178 000334 180 000337 182 000353 183 000361 184 000400 185 000420 186 000440 187 000441 190 000461 195 000462 197 000465 198 000500 200 000504 201 000505 203 000506 206 000523 207 000543 211 000544 214 000547 217 000550 220 000554 223 000563 226 000565 227 000566 230 000570 233 000575 234 000602 235 000605 236 000606 237 000624 241 000635 243 000641 245 000644 246 000651 247 000661 248 000664 249 000665 250 000667 252 000670 253 000675 254 000700 256 000701 257 000704 258 000710 260 000715 261 000717 262 000720 263 000723 264 000740 266 000751 270 000755 276 000767 279 000777 280 001000 283 001004 285 001006 286 001015 287 001020 289 001022 291 001031 292 001033 294 001035 295 001054 298 001066 299 001101 300 001115 301 001141 302 001157 303 001174 305 001175 308 001205 ----------------------------------------------------------- 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