COMPILATION LISTING OF SEGMENT lstman_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1007.6 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* * 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(86-10-01,JRGray), approve(86-10-01,MCR7507), 17* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 18* Modified to support *heap exernal variables. 19* END HISTORY COMMENTS */ 20 21 22 lstman_: procedure (dummy); 23 24 /* Last modified on 08/28/72 at 18:24:08 by R F Mabee. 25* Made blkasn call table_ to enter names in xref tree, 27 July 1972, R F Mabee. 26* Modified to put new object format entry sequence in text, 21 March 1972, R F Mabee. 27* by Paul Green on June 23, 1970 at 2255 28* by Noel I. Morris on March 1, 1977 for *system links */ 29 30 /* list manipulating routines for eplbsa. 31* lstman has eight entries and handles reference lists for eplbsa. 32* 33* 34* the eight entries are as follows: 35* namasn(xsym) for assigning eplbsa names to definition region, 36* blkasn(type,snlnk,xnlnk,trptr) for assigning type-pairs, 37* trpasn(trpcal,trparg) for assigning trap words, 38* lnkasn(blklnk,inexp,admod) for assigning link pairs, 39* eptasn(eploc,epnlnk,epllnk) for assigning entry points, 40* sdfasn(sdloc,sdnlnk) for assigning segment definitions, 41* outasn(xspc,rtnpt) for mm or xo calls, 42* calser(calpc,outlnk) to search call list. 43* in addition, various counts are maintained by these routines 44* for use by postp2 in outputting the definitions. */ 45 46 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. */ 47 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 */ 48 3 1 /* Begin include file alm_lc.incl.pl1. */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 3 5* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 3 6* Modified to add definition lc used to join blocks to the definition 3 7* section. 3 8* END HISTORY COMMENTS */ 3 9 3 10 /* Edited from several separate files, 4 November 1970, R H Campbell. */ 3 11 /* Modified 23 November 1970, R H Campbell. */ 3 12 /* Added location counter "lpentries" for new object segment format, 27 March 1972, R F Mabee. */ 3 13 /* Last modified on 03/27/72 at 23:16:58 by R F Mabee. */ 3 14 3 15 declare 1 eb_data_$curlc external, 3 16 2 curlc fixed bin (26); 3 17 3 18 declare 1 eb_data_$lccall external, 3 19 2 lpcall fixed bin (26), 3 20 2 lccall (2) fixed bin (26); 3 21 3 22 declare 1 eb_data_$lccom external, 3 23 2 ulclst fixed bin (26), 3 24 2 ulcend fixed bin (26), 3 25 2 tlclst fixed bin (26), 3 26 2 llclst fixed bin (26), 3 27 2 slclst fixed bin (26), 3 28 2 dlclst fixed bin (26); 3 29 3 30 declare 1 eb_data_$lcdefs external, 3 31 2 lpdefs fixed bin (26), 3 32 2 lcdefs (2) fixed bin (26); 3 33 3 34 declare 1 eb_data_$lcentries external, 3 35 2 lpentries fixed bin(26), 3 36 2 lcentries (2) fixed bin (26); 3 37 3 38 declare 1 eb_data_$lchead external, 3 39 2 lphead fixed bin (26), 3 40 2 lchead (2) fixed bin (26); 3 41 3 42 declare 1 eb_data_$lclit external, 3 43 2 lplit fixed bin (26), 3 44 2 lclit (2) fixed bin (26); 3 45 3 46 declare 1 eb_data_$lcrlk external, 3 47 2 lprlk fixed bin (26), 3 48 2 lcrlk (2) fixed bin (26); 3 49 3 50 declare 1 eb_data_$lcrst external, 3 51 2 lprst fixed bin (26), 3 52 2 lcrst (2) fixed bin (26); 3 53 3 54 declare 1 eb_data_$lcrtx external, 3 55 2 lprtx fixed bin (26), 3 56 2 lcrtx (2) fixed bin (26); 3 57 3 58 declare 1 eb_data_$lcsect external, 3 59 2 lpsect fixed bin(26), 3 60 2 lcsect (2) fixed bin(26); 3 61 3 62 declare 1 eb_data_$lcst external, 3 63 2 lpst fixed bin (26), 3 64 2 lcst (2) fixed bin (26); 3 65 3 66 declare 1 eb_data_$lctext external, 3 67 2 lptext fixed bin (26), 3 68 2 lctext (2) fixed bin (26); 3 69 3 70 declare 1 eb_data_$lctv external, 3 71 2 lptv fixed bin (26), 3 72 2 lctv (2) fixed bin (26); 3 73 3 74 /* End of include file alm_lc.incl.pl1. */ 49 4 1 4 2 /* Last modified by EBush on 2/5/81 to add prnta */ 4 3 4 4 4 5 declare 1 eb_data_$erflgs ext aligned, 4 6 2 flgvec (36) fixed bin (17) aligned ; 4 7 4 8 4 9 declare 1 eb_data_$erflgs_overlay ext aligned, /* overlays the FLGVEC */ 4 10 2 (prnte, prntf, prntm, prntn, prnto, prntp, 4 11 prntr, prnts, prntt, prntu, prntx, prntb, 4 12 prntc, prntd, prnta, prnt5, prnt6, prnt7, 4 13 tstsw(18) ) fixed bin (17) aligned ; 4 14 4 15 50 5 1 5 2 5 3 5 4 /* include file for CONCOM */ 5 5 5 6 declare 1 eb_data_$concom ext aligned, 5 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 5 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 5 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 5 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 5 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 5 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 5 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 5 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 5 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 5 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 5 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 5 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 5 19 5 20 /* end of the include file for CONCOM */ 51 52 /* END OF THE INCLUDE FILES FOR LSTMAN */ 53 /* */ 54 55 dcl ( glpl_$clh ext entry ( fixed bin(26) ), 56 glpl_$crh ext entry ( fixed bin(26) ), 57 glpl_$cwrd ext entry ( fixed bin (26) ), 58 glpl_$glwrd ext entry ( fixed bin (26), fixed bin (26) ), 59 glpl_$setblk ext entry ( fixed bin(26), fixed bin(26) ), 60 table_ external entry (fixed binary (26), fixed binary, fixed binary, fixed binary, fixed binary), 61 utils_$nswrds ext entry ( fixed bin (26) ) 62 ) returns ( fixed bin(26)); 63 64 dcl ( words(5), xsym(8), type, nwrds, xnlnk, trptr, trpcal, trparg, blklnk, 65 inexp, admod, eploc, epnlnk, epllnk, sdloc, snlnk, xspc, rtnpt, 66 calpc, outlnk, explnk, tvrtn, tvno, tvlnk, epelnk, eptlc, sdlc, 67 rtnlc, etrap, eclass, sdtrap, sclass, k, j, iad, lc, 68 l, ii, lnkout, namlnk, link, sdnlnk, dummy ) fixed bin (26) ; 69 70 declare temp_ptr pointer; 71 72 dcl (eb_data_$l0r0, eb_data_$l1r0, eb_data_$l2r0, eb_data_$l3r0 ) ext fixed bin (17) ; 73 declare eb_data_$atext (2) fixed binary external static, 74 eb_data_$alink (2) fixed binary external static, 75 eb_data_$asym (2) fixed binary external static, 76 eb_data_$astat (2) fixed binary external static, 77 eb_data_$asys (2) fixed binary external static, 78 eb_data_$aheap (2) fixed binary external static; 79 80 declare eb_data_$new_nentls external fixed binary; 81 82 dcl eb_data_$lavptr ext pointer; 83 84 declare based_word fixed binary based aligned; 85 dcl 1 word based aligned, 86 2 left char(2) unaligned, 87 2 right char(2) unaligned; 88 89 declare twop18 fixed binary (26) internal static initial (1000000000000000000b); 90 91 /* The following variables are used to assign the return arguments for each routine, since PL/I 92* has a difficult time determining which position gets the returns value, since it has to figure 93* out which entry was entered, and how many args it had. We can do it much better this way */ 94 95 dcl ( namrtn, blkretn, trapretn, lnkretn, eptretn, sdfretn, outretn, calretn ) fixed bin (17); 96 97 98 /* 99* j = namasn, maintain list of external names with no duplications. 100* note possibility of entry x $, x lda .x.1.x. $, but resultant 101* x entry in table is unique. 102* */ 103 namasn: entry(xsym, namrtn); 104 105 label_1000: 106 nwrds = utils_$nswrds(xsym(1)) ; 107 if nwrds ^= 0 then go to label_1010 ; 108 prntf = 1 ; 109 namrtn = 0; 110 return; 111 112 label_1010: 113 j = namlst ; 114 115 116 label_1020: 117 if j = 0 then go to label_1050 ; 118 link = glpl_$clh(j) ; 119 120 label_1030: 121 do k = 1 to nwrds ; 122 if (xsym(k) ^= glpl_$cwrd(link+k-1)) then go to label_1040 ; 123 end label_1030 ; 124 125 namrtn = j; 126 return; 127 128 label_1040: 129 j = glpl_$crh(j) ; 130 go to label_1020 ; 131 132 label_1050: 133 namlnk = glpl_$setblk(xsym(1),nwrds) ; 134 words(1) = glpl_$glwrd(namlnk,namlst) ; 135 words(2) = 0 ; 136 namlst = glpl_$setblk(words(1),2) ; 137 namrtn = namlst; 138 return; 139 140 141 /* 142* j = blkasn, maintain list of type-pair blocks, note that 143* type 3 or 4 block with zero segment pointer refers to the text 144* segment associated with this block. */ 145 146 blkasn: entry( type, snlnk, xnlnk, trptr, blkretn ); 147 148 /* Put segname and entryname in cross reference tree. */ 149 if tnoxref ^= 0 then goto label_2000; 150 151 if type = 3 | type = 4 then ii = table_ (iassgn, glpl_$clh (snlnk), 0, 0, 0); /* Segname is valid. */ 152 else if type = 1 | type = 5 then do; /* Self-reference, fabricate name. */ 153 if snlnk = 0 then temp_ptr = addr (eb_data_$atext (1)); 154 else if snlnk = 1 then temp_ptr = addr (eb_data_$alink (1)); 155 else if snlnk = 2 then temp_ptr = addr (eb_data_$asym (1)); 156 else if snlnk = 4 then temp_ptr = addr (eb_data_$astat (1)); 157 else if snlnk = 5 then temp_ptr = addr (eb_data_$asys (1)); 158 else if snlnk = 6 then temp_ptr = addr (eb_data_$aheap (1)); 159 ii = table_ (iassgn, temp_ptr -> based_word, 0, 0, 0); 160 end; 161 162 if type = 2 | type = 4 | type = 5 then ii = table_ (iassgn, glpl_$clh (xnlnk), 0, 0, 0); /* Valid entry name. */ 163 164 label_2000: 165 words(2) = glpl_$glwrd(type,trptr) ; 166 words(3) = glpl_$glwrd(snlnk,xnlnk) ; 167 168 label_2010: 169 j = blklst; /* blklst is index of lastest "block" created. */ 170 171 label_2020: 172 if (j = 0) then go to label_2200 ; /* search blklst, if found, return index, if not, add it on. */ 173 /* ignore presence of trptr in search */ 174 if (type = glpl_$clh(j+1) & words(3) = glpl_$cwrd(j+2)) then go to label_2100 ; 175 j = glpl_$crh(j) ; 176 go to label_2020 ; 177 178 label_2100: 179 blkretn = j; 180 return; 181 182 label_2200: 183 words(1) = blklst ; 184 blklst = glpl_$setblk(words(1),3) ; 185 blkretn = blklst; 186 return; 187 188 189 /* 190* j = trpasn, maintain list of trap pointer words. */ 191 192 trpasn: entry (trpcal, trparg, trapretn ); 193 194 label_3000: 195 words(2) = glpl_$glwrd(trpcal,trparg) ; 196 197 label_3010: 198 j = trplst ; 199 200 label_3020: 201 if (j = 0) then go to label_3200 ; 202 if (words(2) = glpl_$cwrd(j+1)) then go to label_3100 ; 203 j = glpl_$crh(j) ; 204 go to label_3020 ; 205 206 label_3100: 207 trapretn = j; 208 return; 209 210 label_3200: 211 words(1) = trplst ; 212 trplst = glpl_$setblk(words(1),2) ; 213 trapretn = trplst; 214 return; 215 216 217 /* xlnkno = lnkasn, enter normal link pair words into link list. 218* 219* explst entries are of the form-- 220* 0,next 221* ptr to type-pair block,value of internal expressison 222* 0,ptr to location counter for inexp. 223* --the lh of first word is filled in during postp2 with the 224* absolute address of the internal expression word. this 225* address is then used in the second word of the link 226* pair. */ 227 228 lnkasn: entry (blklnk,inexp,admod,lc, lnkretn ) ; 229 230 label_4000: 231 words(2) = glpl_$glwrd(blklnk,inexp) ; 232 iad = lc ; 233 234 label_4010: 235 j = explst ; 236 237 label_4020: 238 if (j = 0) then go to label_4200 ; 239 if (words(2) = glpl_$cwrd(j+1) & glpl_$crh(j+2) = iad) then go to label_4100 ; 240 j = glpl_$crh(j) ; 241 go to label_4020 ; 242 243 label_4100: 244 explnk = j ; 245 go to label_4300 ; 246 247 label_4200: 248 words(1) = explst ; 249 words(3) = iad ; 250 explst = glpl_$setblk(words(1),3) ; 251 explnk = explst ; 252 words(2) = glpl_$glwrd(explnk,admod) ; 253 go to label_4500 ; 254 255 label_4300: 256 words(2) = glpl_$glwrd(explnk,admod) ; 257 258 label_4310: 259 j = lnklst ; 260 l = 0 ; 261 262 label_4320: 263 if j = 0 then go to label_4500 ; 264 265 ii = glpl_$clh(j) ; 266 if ( ii < 3) then go to label_4330 ; 267 l = l+2 ; 268 go to label_4340 ; 269 label_4330: 270 if ( words(2) = glpl_$cwrd(j+1) & ii = 1 ) then go to label_4400 ; 271 if ii = 1 then l = l+2 ; 272 if(ii ^= 2 ) then go to label_4340 ; 273 if tnewobject = 0 then l = l + 6 ; 274 label_4340: 275 j = glpl_$crh(j) ; 276 go to label_4320 ; 277 278 label_4400: 279 lnkretn = l; 280 return; 281 282 label_4500: 283 words(1) = eb_data_$l1r0 ; 284 link = glpl_$setblk(words(1),2) ; 285 ndlkls -> word.right = addr(link) -> word.right; 286 ndlkls = ptr( eb_data_$lavptr,link ); 287 lnkretn = lnkno; /* this saves having to subtract the 2 again */ 288 lnkno = lnkno+2 ; 289 return; 290 291 292 /* xlnkno = eptasn, enter entry points into link structure list. */ 293 294 eptasn: entry(eploc,epnlnk,epllnk,eptlc,etrap,eclass, eptretn ); 295 296 label_5000: 297 tvno = tvcnt ; /* add to transfer vector */ 298 tvcnt = tvcnt+1 ; 299 300 words(1) = eb_data_$l0r0 ; 301 words(2) = glpl_$glwrd(tvno,eploc) ; 302 words(3) = glpl_$glwrd(eptlc,tinhib) ; 303 tvlnk = glpl_$setblk(words(1),3) ; 304 ndtvls -> word.right = addr(tvlnk) -> word.right; 305 ndtvls = ptr( eb_data_$lavptr,tvlnk ); 306 307 label_5100: 308 words(1) = eb_data_$l2r0 ; 309 words(2) = glpl_$glwrd(epllnk,tvno) ; 310 words(3) = glpl_$glwrd(tvlnk,tinhib) ; 311 epelnk = glpl_$setblk(words(1),3) ; 312 ndlkls->word.right = addr(epelnk)->word.right; 313 ndlkls = ptr( eb_data_$lavptr, epelnk); 314 315 label_5200: 316 if epnlnk = 0 then go to label_5300 ; 317 words(1) = glpl_$glwrd(epnlnk,xdflst) ; 318 if tnewobject = 0 then do; 319 words(2) = glpl_$glwrd(lnkno,eclass) ; 320 words(3) = glpl_$glwrd(etrap,(lpsect)) ; 321 end; 322 else do; 323 words (2) = glpl_$glwrd (entrieslc + 1, 0); 324 words (3) = glpl_$glwrd (etrap, (lpentries)); 325 end; 326 words (4) = epelnk * twop18; 327 xdflst = glpl_$setblk (words (1), 4); 328 329 label_5300: 330 331 332 /* the length of the entry sequence is 6 words for both 333* mastermode and slave programs. */ 334 eptretn = lnkno; 335 if tnewobject = 0 then lnkno = lnkno + 6; 336 else entrieslc = entrieslc + eb_data_$new_nentls; 337 return; 338 339 340 /* j = sdfasn, enter segdef information into definition list. */ 341 342 sdfasn: entry( sdloc, sdnlnk, sdlc, sdtrap, sclass, sdfretn ); 343 344 label_6000: 345 if tprot ^= 0 then prntx = 1 ; 346 347 label_6100: 348 words(1) = glpl_$glwrd(sdnlnk,xdflst) ; 349 words(2) = glpl_$glwrd(sdloc,sclass) ; 350 words(3) = glpl_$glwrd(sdtrap,sdlc) ; 351 words (4) = 0; 352 xdflst = glpl_$setblk (words (1), 4) ; 353 sdfretn = xdflst ; 354 return; 355 356 357 /* j = outasn, enter information of mm or xo call into link list. */ 358 /* final format of block in link list is, 359* (3,next),(traout),(mylnk,tvno),(spc,lpaswd) */ 360 361 outasn: entry (xspc,rtnpt,rtnlc, outretn ); 362 363 label_7000: 364 tvno = tvcnt ; 365 tvcnt = tvcnt+1 ; 366 words(1) = eb_data_$l0r0 ; 367 words(2) = glpl_$glwrd(tvno,rtnpt) ; 368 words(3) = glpl_$glwrd(rtnlc,tinhib) ; 369 tvlnk = glpl_$setblk(words(1),3) ; 370 ndtvls -> word.right = addr( tvlnk ) -> word.right; 371 ndtvls = ptr( eb_data_$lavptr, tvlnk); 372 373 /* assign outlst block */ 374 label_7100: 375 words(1) = eb_data_$l3r0 ; 376 words(2) = eb_data_$l0r0 ; 377 words(3) = glpl_$glwrd(mylnk,tvno) ; 378 words(4) = glpl_$glwrd(xspc,0) ; 379 words(5) = tinhib ; 380 lnkout = glpl_$setblk(words(1),5) ; 381 ndlkls -> word.right = addr( lnkout ) -> word.right; 382 ndlkls = ptr( eb_data_$lavptr, lnkout); 383 lnkno = lnkno+2 ; 384 outretn = lnkout ; 385 return; 386 387 388 /* j = calser, search call list for calpc, return lstlnk and outlnk. */ 389 390 calser: entry (calpc,outlnk, calretn ); 391 392 label_8000: 393 j = lnklst ; 394 395 l = 0 ; 396 397 label_8010: 398 if j = 0 then go to label_8200 ; 399 if (glpl_$clh(j) ^= 3) then go to label_8020 ; 400 if (glpl_$clh(j+3) = calpc) then go to label_8100 ; 401 l = l+2 ; 402 go to label_8030 ; 403 404 label_8020: 405 ii = glpl_$clh(j) ; 406 if ( ii = 1 ) then l = l + 2 ; 407 if ii ^= 2 then go to label_8030 ; 408 l = l + 6 ; 409 410 label_8030: 411 j = glpl_$crh(j) ; 412 go to label_8010 ; 413 414 /* found, set lstman and outlnk, then return. */ 415 label_8100: 416 417 outlnk = l ; 418 calretn = j; 419 return; 420 421 /* not found, return with zeroes */ 422 label_8200: 423 outlnk = 0 ; 424 calretn = 0; 425 return; 426 427 428 end lstman_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0939.0 lstman_.pl1 >spec>install>1170>lstman_.pl1 47 1 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 48 2 05/06/74 1740.2 alm_options.incl.pl1 >ldd>include>alm_options.incl.pl1 49 3 11/12/86 1103.0 alm_lc.incl.pl1 >ldd>include>alm_lc.incl.pl1 50 4 07/17/81 1911.5 erflgs.incl.pl1 >ldd>include>erflgs.incl.pl1 51 5 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.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. admod parameter fixed bin(26,0) dcl 64 set ref 228 252* 255* based_word based fixed bin(17,0) dcl 84 set ref 159* blklnk parameter fixed bin(26,0) dcl 64 set ref 228 230* blklst 53 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 168 182 184* 185 blkretn parameter fixed bin(17,0) dcl 95 set ref 146 178* 185* calpc parameter fixed bin(26,0) dcl 64 ref 390 400 calretn parameter fixed bin(17,0) dcl 95 set ref 390 418* 424* dummy parameter fixed bin(26,0) dcl 64 ref 22 eb_data_$aheap 000064 external static fixed bin(17,0) array dcl 73 set ref 158 eb_data_$alink 000054 external static fixed bin(17,0) array dcl 73 set ref 154 eb_data_$alm_options 000012 external static structure level 1 dcl 2-6 eb_data_$astat 000060 external static fixed bin(17,0) array dcl 73 set ref 156 eb_data_$asym 000056 external static fixed bin(17,0) array dcl 73 set ref 155 eb_data_$asys 000062 external static fixed bin(17,0) array dcl 73 set ref 157 eb_data_$atext 000052 external static fixed bin(17,0) array dcl 73 set ref 153 eb_data_$concom 000022 external static structure level 1 dcl 5-6 eb_data_$erflgs_overlay 000020 external static structure level 1 dcl 4-9 eb_data_$l0r0 000042 external static fixed bin(17,0) dcl 72 ref 300 366 376 eb_data_$l1r0 000044 external static fixed bin(17,0) dcl 72 ref 282 eb_data_$l2r0 000046 external static fixed bin(17,0) dcl 72 ref 307 eb_data_$l3r0 000050 external static fixed bin(17,0) dcl 72 ref 374 eb_data_$lavptr 000070 external static pointer dcl 82 ref 286 305 313 371 382 eb_data_$lcentries 000014 external static structure level 1 unaligned dcl 3-34 eb_data_$lcsect 000016 external static structure level 1 unaligned dcl 3-58 eb_data_$new_nentls 000066 external static fixed bin(17,0) dcl 80 ref 336 eb_data_$varcom 000010 external static structure level 1 dcl 1-7 eclass parameter fixed bin(26,0) dcl 64 set ref 294 319* entrieslc 454 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 323 336* 336 epelnk 000111 automatic fixed bin(26,0) dcl 64 set ref 311* 312 313 326 epllnk parameter fixed bin(26,0) dcl 64 set ref 294 309* eploc parameter fixed bin(26,0) dcl 64 set ref 294 301* epnlnk parameter fixed bin(26,0) dcl 64 set ref 294 315 317* eptlc parameter fixed bin(26,0) dcl 64 set ref 294 302* eptretn parameter fixed bin(17,0) dcl 95 set ref 294 329* etrap parameter fixed bin(26,0) dcl 64 set ref 294 320* 324* explnk 000106 automatic fixed bin(26,0) dcl 64 set ref 243* 251* 252* 255* explst 52 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 234 247 250* 251 glpl_$clh 000024 constant entry external dcl 55 ref 118 151 151 162 162 174 265 399 400 404 glpl_$crh 000026 constant entry external dcl 55 ref 128 175 203 239 240 274 410 glpl_$cwrd 000030 constant entry external dcl 55 ref 122 174 202 239 269 glpl_$glwrd 000032 constant entry external dcl 55 ref 134 164 166 194 230 252 255 301 302 309 310 317 319 320 323 324 347 349 350 367 368 377 378 glpl_$setblk 000034 constant entry external dcl 55 ref 132 136 184 212 250 284 303 311 327 352 369 380 iad 000114 automatic fixed bin(26,0) dcl 64 set ref 232* 239 249 iassgn 75 000022 external static fixed bin(26,0) level 2 dcl 5-6 set ref 151* 159* 162* ii 000116 automatic fixed bin(26,0) dcl 64 set ref 151* 159* 162* 265* 266 269 271 272 404* 406 407 inexp parameter fixed bin(26,0) dcl 64 set ref 228 230* j 000113 automatic fixed bin(26,0) dcl 64 set ref 112* 116 118* 125 128* 128* 168* 171 174 174 175* 175* 178 197* 200 202 203* 203* 206 234* 237 239 239 240* 240* 243 258* 262 265* 269 274* 274* 392* 397 399* 400 404* 410* 410* 418 k 000112 automatic fixed bin(26,0) dcl 64 set ref 120* 122 122* l 000115 automatic fixed bin(26,0) dcl 64 set ref 260* 267* 267 271* 271 273* 273 278 395* 401* 401 406* 406 408* 408 415 lc parameter fixed bin(26,0) dcl 64 ref 228 232 link 000121 automatic fixed bin(26,0) dcl 64 set ref 118* 122 284* 285 286 lnklst 50 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 258 392 lnkno 45 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 287 288* 288 319* 329 335* 335 383* 383 lnkout 000117 automatic fixed bin(26,0) dcl 64 set ref 380* 381 382 384 lnkretn parameter fixed bin(17,0) dcl 95 set ref 228 278* 287* lpentries 000014 external static fixed bin(26,0) level 2 dcl 3-34 ref 324 lpsect 000016 external static fixed bin(26,0) level 2 dcl 3-58 ref 320 mylnk 431 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 377* namlnk 000120 automatic fixed bin(26,0) dcl 64 set ref 132* 134* namlst 54 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 112 134* 136* 137 namrtn parameter fixed bin(17,0) dcl 95 set ref 103 109* 125* 137* ndlkls 440 000010 external static pointer level 2 dcl 1-7 set ref 285 286* 312 313* 381 382* ndtvls 442 000010 external static pointer level 2 dcl 1-7 set ref 304 305* 370 371* nwrds 000105 automatic fixed bin(26,0) dcl 64 set ref 105* 107 120 132* outlnk parameter fixed bin(26,0) dcl 64 set ref 390 415* 422* outretn parameter fixed bin(17,0) dcl 95 set ref 361 384* prntf 1 000020 external static fixed bin(17,0) level 2 dcl 4-9 set ref 108* prntx 12 000020 external static fixed bin(17,0) level 2 dcl 4-9 set ref 344* right 0(18) based char(2) level 2 packed packed unaligned dcl 85 set ref 285* 285 304* 304 312* 312 370* 370 381* 381 rtnlc parameter fixed bin(26,0) dcl 64 set ref 361 368* rtnpt parameter fixed bin(26,0) dcl 64 set ref 361 367* sclass parameter fixed bin(26,0) dcl 64 set ref 342 349* sdfretn parameter fixed bin(17,0) dcl 95 set ref 342 353* sdlc parameter fixed bin(26,0) dcl 64 set ref 342 350* sdloc parameter fixed bin(26,0) dcl 64 set ref 342 349* sdnlnk parameter fixed bin(26,0) dcl 64 set ref 342 347* sdtrap parameter fixed bin(26,0) dcl 64 set ref 342 350* snlnk parameter fixed bin(26,0) dcl 64 set ref 146 151* 151* 153 154 155 156 157 158 166* table_ 000036 constant entry external dcl 55 ref 151 159 162 temp_ptr 000122 automatic pointer dcl 70 set ref 153* 154* 155* 156* 157* 158* 159 tinhib 64 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 302* 310* 368* 379 tnewobject 2 000012 external static fixed bin(17,0) level 2 dcl 2-6 ref 273 318 335 tnoxref 6 000012 external static fixed bin(17,0) level 2 dcl 2-6 ref 149 tprot 71 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 344 trapretn parameter fixed bin(17,0) dcl 95 set ref 192 206* 213* trparg parameter fixed bin(26,0) dcl 64 set ref 192 194* trpcal parameter fixed bin(26,0) dcl 64 set ref 192 194* trplst 55 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 197 210 212* 213 trptr parameter fixed bin(26,0) dcl 64 set ref 146 164* tvcnt 34 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 296 298* 298 363 365* 365 tvlnk 000110 automatic fixed bin(26,0) dcl 64 set ref 303* 304 305 310* 369* 370 371 tvno 000107 automatic fixed bin(26,0) dcl 64 set ref 296* 301* 309* 363* 367* 377* twop18 constant fixed bin(26,0) initial dcl 89 ref 326 type parameter fixed bin(26,0) dcl 64 set ref 146 151 151 152 152 162 162 162 164* 174 utils_$nswrds 000040 constant entry external dcl 55 ref 105 word based structure level 1 dcl 85 words 000100 automatic fixed bin(26,0) array dcl 64 set ref 134* 135* 136* 164* 166* 174 182* 184* 194* 202 210* 212* 230* 239 247* 249* 250* 252* 255* 269 282* 284* 300* 301* 302* 303* 307* 309* 310* 311* 317* 319* 320* 323* 324* 326* 327* 347* 349* 350* 351* 352* 366* 367* 368* 369* 374* 376* 377* 378* 379* 380* xdflst 56 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 317* 327* 347* 352* 353 xnlnk parameter fixed bin(26,0) dcl 64 set ref 146 162* 162* 166* xspc parameter fixed bin(26,0) dcl 64 set ref 361 378* xsym parameter fixed bin(26,0) array dcl 64 set ref 103 105* 122 132* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. eb_data_$curlc external static structure level 1 unaligned dcl 3-15 eb_data_$erflgs external static structure level 1 dcl 4-5 eb_data_$lccall external static structure level 1 unaligned dcl 3-18 eb_data_$lccom external static structure level 1 unaligned dcl 3-22 eb_data_$lcdefs external static structure level 1 unaligned dcl 3-30 eb_data_$lchead external static structure level 1 unaligned dcl 3-38 eb_data_$lclit external static structure level 1 unaligned dcl 3-42 eb_data_$lcrlk external static structure level 1 unaligned dcl 3-46 eb_data_$lcrst external static structure level 1 unaligned dcl 3-50 eb_data_$lcrtx external static structure level 1 unaligned dcl 3-54 eb_data_$lcst external static structure level 1 unaligned dcl 3-62 eb_data_$lctext external static structure level 1 unaligned dcl 3-66 eb_data_$lctv external static structure level 1 unaligned dcl 3-70 tvrtn automatic fixed bin(26,0) dcl 64 NAMES DECLARED BY EXPLICIT CONTEXT. blkasn 000224 constant entry external dcl 146 calser 002107 constant entry external dcl 390 eptasn 001255 constant entry external dcl 294 label_1000 000030 constant label dcl 105 label_1010 000052 constant label dcl 112 ref 107 label_1020 000056 constant label dcl 116 ref 130 label_1030 000071 constant label dcl 120 label_1040 000131 constant label dcl 128 ref 122 label_1050 000142 constant label dcl 132 ref 116 label_2000 000440 constant label dcl 164 ref 149 label_2010 000470 constant label dcl 168 label_2020 000474 constant label dcl 171 ref 176 label_2100 000550 constant label dcl 178 ref 174 label_2200 000553 constant label dcl 182 ref 171 label_3000 000612 constant label dcl 194 label_3010 000626 constant label dcl 197 label_3020 000632 constant label dcl 200 ref 204 label_3100 000663 constant label dcl 206 ref 202 label_3200 000667 constant label dcl 210 ref 200 label_4000 000724 constant label dcl 230 label_4010 000743 constant label dcl 234 label_4020 000747 constant label dcl 237 ref 241 label_4100 001022 constant label dcl 243 ref 239 label_4200 001025 constant label dcl 247 ref 237 label_4300 001067 constant label dcl 255 ref 245 label_4310 001103 constant label dcl 258 label_4320 001110 constant label dcl 262 ref 276 label_4330 001131 constant label dcl 269 ref 266 label_4340 001173 constant label dcl 274 ref 268 272 label_4400 001204 constant label dcl 278 ref 269 label_4500 001210 constant label dcl 282 ref 253 262 label_5000 001262 constant label dcl 296 label_5100 001350 constant label dcl 307 label_5200 001430 constant label dcl 315 label_5300 001562 constant label dcl 329 ref 315 label_6000 001613 constant label dcl 344 label_6100 001622 constant label dcl 347 label_7000 001724 constant label dcl 363 label_7100 002012 constant label dcl 374 label_8000 002114 constant label dcl 392 label_8010 002121 constant label dcl 397 ref 412 label_8020 002162 constant label dcl 404 ref 399 label_8030 002205 constant label dcl 410 ref 402 407 label_8100 002216 constant label dcl 415 ref 400 label_8200 002223 constant label dcl 422 ref 397 lnkasn 000717 constant entry external dcl 228 lstman_ 000011 constant entry external dcl 22 namasn 000023 constant entry external dcl 103 outasn 001717 constant entry external dcl 361 sdfasn 001606 constant entry external dcl 342 trpasn 000605 constant entry external dcl 192 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 153 154 155 156 157 158 285 304 312 370 381 ptr builtin function ref 286 305 313 371 382 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2532 2624 2227 2542 Length 3212 2227 72 352 302 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lstman_ 118 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lstman_ 000100 words lstman_ 000105 nwrds lstman_ 000106 explnk lstman_ 000107 tvno lstman_ 000110 tvlnk lstman_ 000111 epelnk lstman_ 000112 k lstman_ 000113 j lstman_ 000114 iad lstman_ 000115 l lstman_ 000116 ii lstman_ 000117 lnkout lstman_ 000120 namlnk lstman_ 000121 link lstman_ 000122 temp_ptr lstman_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. glpl_$clh glpl_$crh glpl_$cwrd glpl_$glwrd glpl_$setblk table_ utils_$nswrds THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$aheap eb_data_$alink eb_data_$alm_options eb_data_$astat eb_data_$asym eb_data_$asys eb_data_$atext eb_data_$concom eb_data_$erflgs_overlay eb_data_$l0r0 eb_data_$l1r0 eb_data_$l2r0 eb_data_$l3r0 eb_data_$lavptr eb_data_$lcentries eb_data_$lcsect eb_data_$new_nentls eb_data_$varcom LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000006 103 000016 105 000030 107 000041 108 000043 109 000047 110 000051 112 000052 116 000056 118 000060 120 000071 122 000101 123 000123 125 000125 126 000130 128 000131 130 000141 132 000142 134 000156 135 000172 136 000173 137 000211 138 000216 146 000217 149 000231 151 000235 152 000303 153 000307 154 000314 155 000321 156 000326 157 000333 158 000340 159 000344 162 000370 164 000440 166 000454 168 000470 171 000474 174 000476 175 000537 176 000547 178 000550 180 000552 182 000553 184 000557 185 000573 186 000600 192 000601 194 000612 197 000626 200 000632 202 000634 203 000652 204 000662 206 000663 208 000666 210 000667 212 000673 213 000707 214 000714 228 000715 230 000724 232 000740 234 000743 237 000747 239 000751 240 001011 241 001021 243 001022 245 001024 247 001025 249 001031 250 001033 251 001047 252 001053 253 001066 255 001067 258 001103 260 001107 262 001110 265 001112 266 001123 267 001126 268 001130 269 001131 271 001155 272 001162 273 001165 274 001173 276 001203 278 001204 280 001207 282 001210 284 001213 285 001227 286 001234 287 001241 288 001244 289 001246 294 001247 296 001262 298 001266 300 001267 301 001271 302 001304 303 001321 304 001336 305 001343 307 001350 309 001352 310 001365 311 001401 312 001416 313 001423 315 001430 317 001433 318 001445 319 001451 320 001465 321 001503 323 001504 324 001523 326 001541 327 001544 329 001562 335 001567 336 001575 337 001577 342 001600 344 001613 347 001622 349 001635 350 001651 351 001665 352 001666 353 001704 354 001711 361 001712 363 001724 365 001730 366 001731 367 001733 368 001746 369 001763 370 002000 371 002005 374 002012 376 002014 377 002016 378 002030 379 002045 380 002051 381 002065 382 002072 383 002077 384 002101 385 002104 390 002105 392 002114 395 002120 397 002121 399 002123 400 002137 401 002157 402 002161 404 002162 406 002173 407 002200 408 002203 410 002205 412 002215 415 002216 418 002220 419 002222 422 002223 424 002225 425 002226 ----------------------------------------------------------- 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