COMPILATION LISTING OF SEGMENT pass1_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1006.2 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-09-30,Oke), approve(86-09-30,MCR7543), audit(86-09-30,JRGray), 17* install(86-10-08,MR12.0-1180): 18* Allow ALM to support double word constants. 19* 2) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 20* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 21* Modified to support severity, *heap references, the "init_link" pseudo, 22* and joining to the symbol section. 23* 3) change(86-11-14,JRGray), approve(86-11-14,MCR7568), 24* audit(86-11-21,RWaters), install(86-11-26,MR12.0-1228): 25* Also MCR7572. Modified to add support for the three new pseudo-ops: ext_entry, 26* oct_unal, and dec_unal. 27* 4) change(88-03-21,JRGray), approve(88-08-05,MCR7952), 28* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 29* Changed for symbol table support. Add labels for 12 new pseudos that are 30* ignored in pass1. 31* END HISTORY COMMENTS */ 32 33 34 pass1_: 35 procedure(decor,target_value,no_target_given,first_time_thru); /* decor is initialized and passed from alm_6180_ ; 36* target_value, no_target_given come from alm_ via alm_6180_ */ 37 38 /* 39* pass1 is the first pass of the Multics assembler . 40* 41* pass1 is primarily concerned with assigning symbol definitions 42* so that pass2 of the assembler can generate the binary output. 43* pass1 causes several tables to be generated and maintained, 44* including the assignment table (for internal symbols) and 45* the external name table, segment name table, trap word 46* table, link table, literal table, etc. no collation tape 47* is written, but the pc at the end of each statement is 48* recorded in a list for comparison in pass2, any discrepancy 49* is a phase error. 50* multiple location counters added 51* by J. D. Mills, 1 June 1967. 52* 53* 54* Modified to support *heap links by R Gray and W Anderson on 2/05/86. 55* Modified for changes to decor processing requested by MTR 175 on 3/25/81 by EBush. 56* Modified to implement -target on 2/5/81 by EBush. 57* Modified for decor processing 12/30/80 by E Bush 58* Modified for macro processing 3/23/77 by Noel I. Morris 59* Modified for prelinking on 06/15/75 by Eugene E Wiatrowski 60* Modified 740905 by PG and ARD to extend ACC/ACI/BCI to 167/168/252 characters. 61* Modified on 07/28/73 at 23:48:28 by R F Mabee. 62* by RFM in June 1973 to add EIS instructions including multi-word operands. 63* by RFM on 9 November 1972 to avoid reserving space for text entry sequence in old object format. 64* by RFM on 21 July 1972 to fix R error on call to internal symbol. 65* by RFM on 21 March 1972 for new object segment format. 66* by RFM on 4 March to add new call/save/return operators. 67* by RHG on 2 June 1971 to suppress "N" flag for undefined op code (should be "O") 68* by RHG on 2 April 1971 to make rem=null if there was a label 69* to allow "bss ,exp" with no label specified 70* by RHG on 17 Sept 1970 for new listing package 71* by RHG on 7 August 1970 at 0545 for new sthead (name pseudo-op) 72* by NA on July 14, 1970 at 1710 for the proper use of search_return 73* and to call expevl_ as a function not a regular subroutine 74* */ 75 76 /* "Common" variables initialized in eb_data_ */ 77 78 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. */ 79 2 1 2 2 2 3 2 4 /* include file for CONCOM */ 2 5 2 6 declare 1 eb_data_$concom ext aligned, 2 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 2 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 2 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 2 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 2 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 2 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 2 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 2 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 2 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 2 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 2 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 2 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 2 19 2 20 /* end of the include file for CONCOM */ 80 3 1 3 2 /* Last modified by EBush on 2/5/81 to add prnta */ 3 3 3 4 3 5 declare 1 eb_data_$erflgs ext aligned, 3 6 2 flgvec (36) fixed bin (17) aligned ; 3 7 3 8 3 9 declare 1 eb_data_$erflgs_overlay ext aligned, /* overlays the FLGVEC */ 3 10 2 (prnte, prntf, prntm, prntn, prnto, prntp, 3 11 prntr, prnts, prntt, prntu, prntx, prntb, 3 12 prntc, prntd, prnta, prnt5, prnt6, prnt7, 3 13 tstsw(18) ) fixed bin (17) aligned ; 3 14 3 15 81 4 1 4 2 4 3 4 4 /* include file for CODTAB */ 4 5 4 6 declare 1 eb_data_$codtab ext aligned, 4 7 2 ( inul, isoh, istx, ietx, ieot, ienq, iack, ibel, 4 8 ibs, iht, inl, ivt, iff, icr, irrs, ibrs, 4 9 idle, irht, ihlf, irvt, ihlr, inak, isyn, ietb, 4 10 ican, iem, iss, iesc, ifs, igs, irs, ius, 4 11 isp, ixclm, iquot, ilb, idolr, ipcnt, iampr, iapos, 4 12 ilpar, irpar, istar, iplus, icomma, iminus, ipoint, islash, 4 13 inum, inum_pad(9), icol, isc, ilpb, iequal, irpb, iques, iat, 4 14 ilet, ilet_pad(25), ilsb, irslsh, irsb, icflx, iulin, igrv, illet,illet_pad(25), 4 15 ilbrc, ivlin, irbrc, itldf, idel ) fixed bin (17) ; 4 16 /* NA on June 26, 1970 at 1344 for padded arrays */ 82 5 1 /* Include file sthedr.incl.pl1. 5 2* This file declares old and new versions of symbol table headers. 5 3* Last modified on 06/20/72 at 18:51:18 by R F Mabee. */ 5 4 5 5 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(88-08-02,JRGray), approve(88-08-05,MCR7952), 5 9* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 5 10* Modified to make area_offset externally available. This is part of 5 11* Symbol Table Support. 5 12* END HISTORY COMMENTS */ 5 13 5 14 5 15 /* Declarations for old object segment format symbol table header. */ 5 16 5 17 declare sthedr_$sthedr_ ext aligned; 5 18 5 19 declare (sthedr_$alm_creation_date, sthedr_$time_of_translation) ext fixed bin (71) aligned; 5 20 5 21 declare sthedr_$seg_name ext char (32) aligned; 5 22 5 23 declare 1 sthedr_$text_and_link_lengths ext aligned, 5 24 2 text_length bit (18) unaligned, 5 25 2 link_length bit (18) unaligned; 5 26 5 27 declare sthedr_$hdrlen ext fixed bin (26) aligned; 5 28 5 29 /* Declarations for new object segment format symbol table header. */ 5 30 5 31 declare new_sthedr_$new_sthedr_ ext aligned; 5 32 5 33 declare (new_sthedr_$alm_creation_date, new_sthedr_$time_of_translation) ext fixed bin (71) aligned; 5 34 5 35 declare new_sthedr_$alm_version_name ext char (32) aligned; 5 36 5 37 declare new_sthedr_$user_id ext char (32) aligned; 5 38 5 39 declare new_sthedr_$comment ext char (64) aligned; 5 40 5 41 declare 1 new_sthedr_$text_and_link_boundaries ext aligned, 5 42 2 text_boundary bit (18) unaligned, 5 43 2 link_boundary bit (18) unaligned; 5 44 5 45 declare 1 new_sthedr_$source_and_area ext aligned, 5 46 2 source_map_offset bit (18) unaligned, 5 47 2 area_offset bit (18) unaligned; 5 48 5 49 declare 1 new_sthedr_$block_size ext aligned, 5 50 2 padding bit (18) unaligned, 5 51 2 block_size bit (18) unaligned; 5 52 5 53 declare 1 new_sthedr_$rel_bits_ptrs ext aligned, 5 54 2 padding bit (18) unaligned, 5 55 2 rel_text bit (18) unaligned, 5 56 2 rel_def bit (18) unaligned, 5 57 2 rel_link bit (18) unaligned, 5 58 2 rel_symbol bit (18) unaligned, 5 59 2 other_bits bit (18) unaligned; 5 60 5 61 declare 1 new_sthedr_$truncate_info ext aligned, 5 62 2 padding bit (18) unaligned, 5 63 2 default_truncate bit (18) unaligned, 5 64 2 optional_truncate bit (18) unaligned, 5 65 2 other_bits bit (18) unaligned; 5 66 5 67 declare new_sthedr_$hdrlen ext fixed bin (26) aligned; 5 68 5 69 declare new_sthedr_$relocinfo ext aligned; 5 70 5 71 /* End of the include file sthedr.incl.pl1 */ 83 6 1 6 2 6 3 6 4 /* the include file MXPRO */ 6 5 6 6 declare 1 eb_data_$mxpro ext aligned, 6 7 2 (nmxpro, mxpro(2) ) fixed bin (17) aligned ; 6 8 6 9 6 10 /* end of the include file MXPRO */ 84 7 1 7 2 7 3 7 4 /* the include file LSTCOM */ 7 5 7 6 declare 1 eb_data_$lstcom ext aligned, 7 7 2 tnolst fixed bin (17) ; 7 8 7 9 7 10 /* end of the include file LSTCOM */ 7 11 85 8 1 8 2 8 3 8 4 /* the include file for LABARG */ 8 5 8 6 declare 1 eb_data_$labarg ext aligned, 8 7 2 labarg fixed bin (26) aligned ; 8 8 8 9 8 10 /* end of the include file labarg */ 8 11 86 9 1 /* Begin include file alm_lc.incl.pl1. */ 9 2 9 3 /****^ HISTORY COMMENTS: 9 4* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 9 5* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 9 6* Modified to add definition lc used to join blocks to the definition 9 7* section. 9 8* END HISTORY COMMENTS */ 9 9 9 10 /* Edited from several separate files, 4 November 1970, R H Campbell. */ 9 11 /* Modified 23 November 1970, R H Campbell. */ 9 12 /* Added location counter "lpentries" for new object segment format, 27 March 1972, R F Mabee. */ 9 13 /* Last modified on 03/27/72 at 23:16:58 by R F Mabee. */ 9 14 9 15 declare 1 eb_data_$curlc external, 9 16 2 curlc fixed bin (26); 9 17 9 18 declare 1 eb_data_$lccall external, 9 19 2 lpcall fixed bin (26), 9 20 2 lccall (2) fixed bin (26); 9 21 9 22 declare 1 eb_data_$lccom external, 9 23 2 ulclst fixed bin (26), 9 24 2 ulcend fixed bin (26), 9 25 2 tlclst fixed bin (26), 9 26 2 llclst fixed bin (26), 9 27 2 slclst fixed bin (26), 9 28 2 dlclst fixed bin (26); 9 29 9 30 declare 1 eb_data_$lcdefs external, 9 31 2 lpdefs fixed bin (26), 9 32 2 lcdefs (2) fixed bin (26); 9 33 9 34 declare 1 eb_data_$lcentries external, 9 35 2 lpentries fixed bin(26), 9 36 2 lcentries (2) fixed bin (26); 9 37 9 38 declare 1 eb_data_$lchead external, 9 39 2 lphead fixed bin (26), 9 40 2 lchead (2) fixed bin (26); 9 41 9 42 declare 1 eb_data_$lclit external, 9 43 2 lplit fixed bin (26), 9 44 2 lclit (2) fixed bin (26); 9 45 9 46 declare 1 eb_data_$lcrlk external, 9 47 2 lprlk fixed bin (26), 9 48 2 lcrlk (2) fixed bin (26); 9 49 9 50 declare 1 eb_data_$lcrst external, 9 51 2 lprst fixed bin (26), 9 52 2 lcrst (2) fixed bin (26); 9 53 9 54 declare 1 eb_data_$lcrtx external, 9 55 2 lprtx fixed bin (26), 9 56 2 lcrtx (2) fixed bin (26); 9 57 9 58 declare 1 eb_data_$lcsect external, 9 59 2 lpsect fixed bin(26), 9 60 2 lcsect (2) fixed bin(26); 9 61 9 62 declare 1 eb_data_$lcst external, 9 63 2 lpst fixed bin (26), 9 64 2 lcst (2) fixed bin (26); 9 65 9 66 declare 1 eb_data_$lctext external, 9 67 2 lptext fixed bin (26), 9 68 2 lctext (2) fixed bin (26); 9 69 9 70 declare 1 eb_data_$lctv external, 9 71 2 lptv fixed bin (26), 9 72 2 lctv (2) fixed bin (26); 9 73 9 74 /* End of include file alm_lc.incl.pl1. */ 87 10 1 /* Begin include file alm_options.incl.pl1. 10 2* This file defines the external cells used to pass options to the various modules of the assembler. 10 3* Created on 03/17/72 at 01:39:44 by R F Mabee. 10 4* Last modified on 07/23/72 at 22:02:34 by R F Mabee. */ 10 5 10 6 declare 1 eb_data_$alm_options external static aligned, 10 7 2 tnewcall fixed binary, /* Use new call/save/return operators. */ 10 8 2 tnewmachine fixed binary, /* Use followon hardware instruction set. */ 10 9 2 tnewobject fixed binary, /* Use new object segment format. */ 10 10 2 tcheckcompatibility fixed binary, /* Check for instructions changed in followon. */ 10 11 2 tquietsw fixed binary, /* Suppress online printout of error messages. */ 10 12 2 tfirstreftrap fixed binary, /* A first reference trap procedure was given. */ 10 13 2 tnoxref fixed binary; /* Zero if cross reference if to be produced. */ 10 14 10 15 /* End of include file alm_options.incl.pl1 */ 88 11 1 /* BEGIN INCLUDE FILE ...alm_data.incl.pl1 11 2*written 7/14/81 by EBush */ 11 3 11 4 dcl alm_data1$structure external static; 11 5 11 6 dcl data1_ptr ptr; 11 7 11 8 dcl 1 data1 based(data1_ptr), 11 9 2 extent fixed bin, 11 10 2 decor(1 refer(data1.extent)), 11 11 3 name char(24) varying, 11 12 3 number fixed bin(35); 11 13 11 14 dcl alm_data2$structure external static; 11 15 11 16 dcl data2_ptr ptr; 11 17 11 18 dcl 1 data2 based(data2_ptr), 11 19 2 num_of_classes_less_1 fixed bin, 11 20 2 num_of_decors fixed bin, 11 21 2 compatible(0:1 refer(data2.num_of_classes_less_1),1 refer(data2.num_of_decors)) bit(1); 11 22 11 23 data1_ptr = addr(alm_data1$structure); 11 24 data2_ptr = addr(alm_data2$structure); 11 25 11 26 /* END OF INCLUDE FILE ...alm_data.incl.pl1 */ 90 /* */ 91 /* EXTERNAL ENTRIES CALLED BY PASS1 */ 92 93 dcl getid_ ext entry, 94 getid_$getnam ext entry, 95 inputs_$next ext entry, 96 inputs_$next_statement ext entry, 97 inputs_$nxtnb ext entry, 98 utils_$pckflg ext entry ( fixed bin (26) ), 99 alm_include_file_$pass1 ext entry, 100 alm_include_file_$insert ext entry (ptr, fixed bin (26), fixed bin (26)), 101 alm_include_file_$pop ext entry, 102 inputs_$get_ptr ext entry (ptr, fixed bin (26), fixed bin (26), bit (1) aligned), 103 mexp_ ext entry (char (*), fixed bin (26), fixed bin(17), bit(1), bit(1)), 104 mexp_$define_macro ext entry (char (*)), 105 oplook_$reset ext entry, 106 oplook_$redefine ext entry, 107 getid_$setid ext entry ( fixed bin (26)), 108 glpl_$slwrd ext entry ( fixed bin (26), fixed bin (26), fixed bin (26)), 109 glpl_$storl ext entry ( fixed bin (26), fixed bin (26)), 110 glpl_$storr ext entry ( fixed bin (26), fixed bin (26)), 111 system_type_ ext entry ( char(*), char(*), fixed bin, fixed bin(35)); 112 113 /* EXTERNAL FUNCTIONS CALLED BY PASS1 */ 114 115 dcl ( ascevl_$accevl ext entry (fixed bin (26)), 116 ascevl_$acievl ext entry (fixed bin (26)), 117 ascevl_$ac4evl ext entry (fixed bin (26)), 118 ascevl_$bcdevl ext entry (fixed bin (26)), 119 expevl_ ext entry ( fixed bin (26), fixed bin (26), fixed bin (26)), 120 lstman_$blkasn ext entry ( fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)), 121 glpl_$cwrd ext entry ( fixed bin (26)), 122 glpl_$glwrd ext entry ( fixed bin (26), fixed bin(26)), 123 decevl_ ext entry ( fixed bin (26), fixed bin (26))) returns (fixed bin (26)); 124 dcl ( utils_$exadrs ext entry ( fixed bin (26), fixed bin (26)), 125 lstman_$lnkasn ext entry ( fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)), 126 lstman_$outasn ext entry ( fixed bin (26), fixed bin (26), fixed bin (26)), 127 utils_$ls ext entry (fixed bin (26), fixed bin (26)), 128 utils_$rs ext entry ( fixed bin (26), fixed bin (26)), 129 lstman_$namasn ext entry ( fixed bin (26)), 130 utils_$nswrds ext entry ( fixed bin )) returns (fixed bin (26)); 131 dcl ( octevl_ ext entry ( fixed bin (26)), 132 oplook_$oplook_ ext entry ( fixed bin (26), fixed bin (26)), 133 glpl_$setblk ext entry ( fixed bin (26), fixed bin (26) ), 134 table_ ext entry ( fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26), 135 fixed bin (26)), 136 lstman_$trpasn ext entry ( fixed bin (26), fixed bin (26)), 137 varevl_ ext entry ( fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26), 138 fixed bin (26), fixed bin (26)), 139 vfdevl_$vfdcnt ext entry ( fixed bin (26), fixed bin (26)) 140 ) returns ( fixed bin (26)); 141 142 143 144 /* AUTOMATIC VARIABLES USED BY PASS1 */ 145 dcl (binop, flags, i, iaddr, iflag, itype, iwhat, j, junk, k, link, mul, n, newrho, nwrds, option, 146 basno, value, b29, admod, pcblk (3), class, type, xnlnk, ptrcal, ptrarg, trplnk, blklnk, symlnk, 147 rslts (42), newval, oldval, tbss, tderr, stat_or_link ) fixed bin (26); 148 dcl label_flag bit (1) aligned; 149 dcl end_statement_flag bit (1) aligned; 150 dcl dup_ptr ptr init (null ()), 151 temp_ptr ptr, 152 dup_count fixed bin (26), 153 dup_start fixed bin (26), 154 dup_string (0:262143) char (1) unal based (dup_ptr); 155 dcl operand char(32) varying; 156 dcl canonical_operand char(24); 157 dcl code fixed bin(35); 158 dcl (stkclst, stkctop) fixed bin(26); /* used to remember stackframe sizes */ 159 dcl ext_entry_count fixed bin; 160 dcl remember_sym(8) fixed bin(26); /* used to remember sym */ 161 162 /* LABEL VARIABLE */ 163 dcl search_return label local; 164 165 dcl static_in_linkage bit(1) initial("0"b); 166 167 168 169 170 171 /* EXTERNAL DATA USED BY PASS1 */ 172 dcl (eb_data_$itext, eb_data_$ilink, eb_data_$isym, eb_data_$istatic, eb_data_$idefs, eb_data_$ioff, eb_data_$ion, 173 eb_data_$nertls, eb_data_$nmxcal, eb_data_$nmxclb, eb_data_$nmxsav, eb_data_$nretls, 174 eb_data_$nslcal, eb_data_$nslsav, 175 eb_data_$new_nslcal, eb_data_$new_nslsav, eb_data_$new_nretls, eb_data_$short_nretls, 176 eb_data_$new_nentls, eb_data_$short_nslcal, eb_data_$new_ngetlp, 177 eb_data_$atext2 (2), eb_data_$alink2 (2), eb_data_$asym2 (2), eb_data_$astatic2 (2), eb_data_$asystem2 (2), 178 eb_data_$adef2 (2), 179 eb_data_$tsym, eb_data_$atext (2), eb_data_$alink (2), eb_data_$asym (2), eb_data_$asys (2), eb_data_$aheap(2), 180 eb_data_$astat (2)) ext fixed bin (26); 181 182 dcl eb_data_$separate_static ext bit(1); 183 dcl eb_data_$entrybound_bit ext bit(1); 184 dcl eb_data_$macro_depth fixed bin (26) ext; 185 186 187 /* PARAMETERS */ 188 189 dcl decor fixed bin(35); /* passed from alm_6180_ */ 190 dcl target_value fixed bin(17); /* ditto */ 191 dcl (no_target_given,first_time_thru) bit(1); /* likewise */ 192 193 194 195 /* OVERLAY FOR SETTING HALF WORDS */ 196 197 dcl 1 word based aligned, 198 2 (left,right) bit (18) unaligned; 199 200 dcl 1 glpl_words (0:262143) based (eb_data_$lavptr) aligned, 201 2 left bit (18) unaligned, 202 2 right bit (18) unaligned; 203 204 dcl 1 acc aligned based, 205 2 length bit (9) unaligned, 206 2 string char (32) unaligned; 207 208 dcl eb_data_$lavptr external pointer; 209 dcl eb_data_$per_process_static_sw fixed bin external; 210 211 212 213 /* entry to subroutine, set up variables before main loop. */ 214 215 216 label_100: 217 pc = 0; 218 labarg = 0; 219 tfirstreftrap = 0; 220 ext_entry_count = 0; 221 eb_data_$separate_static, 222 eb_data_$entrybound_bit, 223 static_in_linkage = "0"b; 224 225 226 227 /* Initialize system location counters. */ 228 229 junk = table_ (iassgn, lctext (1), 0, fmlcrf, iaddr); 230 ulclst, ulcend, curlc, lptext = iaddr; 231 232 junk = table_ (iassgn, lcst (1), 0, fmlcrf, iaddr); 233 call glpl_$storr (iaddr+2, ulclst); 234 call glpl_$storl (ulclst+2, iaddr); 235 ulclst, lpst = iaddr; 236 call glpl_$storr (lpst+4, eb_data_$isym); 237 238 junk = table_ (iassgn, lcdefs (1), 0, fmlcrf, iaddr); 239 tlclst, dlclst, lpdefs = iaddr; 240 241 junk = table_ (iassgn, lclit (1), 0, fmlcrf, iaddr); 242 call glpl_$storr (iaddr+2, tlclst); 243 call glpl_$storl (tlclst+2, iaddr); 244 tlclst, lplit = iaddr; 245 call glpl_$storl (lplit+4, 2); 246 247 junk = table_ (iassgn, lcentries (1), 0, fmlcrf, iaddr); 248 call glpl_$storr (iaddr + 2, tlclst); 249 call glpl_$storl (tlclst + 2, iaddr); 250 tlclst, lpentries = iaddr; 251 252 junk = table_ (iassgn, lccall (1), 0, fmlcrf, iaddr); 253 call glpl_$storr (iaddr+2, tlclst); 254 call glpl_$storl (tlclst+2, iaddr); 255 tlclst, lpcall = iaddr; 256 257 junk = table_ (iassgn, lctv (1), 0, fmlcrf, iaddr); 258 call glpl_$storr (iaddr+2, tlclst); 259 call glpl_$storl (tlclst+2, iaddr); 260 tlclst, lptv = iaddr; 261 262 junk = table_ (iassgn, lcsect (1), 0, fmlcrf, iaddr); 263 llclst, lpsect = iaddr; 264 call glpl_$slwrd (lpsect+4, 2, eb_data_$ilink); 265 266 junk = table_ (iassgn, lchead (1), 0, fmlcrf, iaddr); 267 call glpl_$storr (iaddr+2, llclst); 268 call glpl_$storl (llclst+2, iaddr); 269 llclst, lphead = iaddr; 270 call glpl_$storr (lphead+4, eb_data_$ilink); 271 272 junk = table_ (iassgn, lcrst (1), 0, fmlcrf, iaddr); 273 slclst, lprst = iaddr; 274 call glpl_$storr (lprst+4, eb_data_$isym); 275 276 junk = table_ (iassgn, lcrlk (1), 0, fmlcrf, iaddr); 277 call glpl_$storr (iaddr+2, slclst); 278 call glpl_$storl (slclst+2, iaddr); 279 slclst, lprlk = iaddr; 280 call glpl_$storr (lprlk+4, eb_data_$isym); 281 282 junk = table_ (iassgn, lcrtx (1), 0, fmlcrf, iaddr); 283 call glpl_$storr (iaddr+2, slclst); 284 call glpl_$storl (slclst+2, iaddr); 285 slclst, lprtx = iaddr; 286 call glpl_$storr (lprtx+4, eb_data_$isym); 287 288 /* make stackframe_size list */ 289 stkctop = glpl_$setblk(0, 1); 290 stkclst = stkctop; 291 292 binlin = 1; 293 call oplook_$reset; 294 295 /* main loop re-entry, assign any symbols in location field. */ 296 297 label_200: 298 label_flag = "0"b; 299 label_210: 300 spc = pc; 301 brk (1) = isp; 302 call getid_; 303 if (brk (1) ^= icol) then goto label_300; 304 if (eb_data_$tsym ^= 0) then junk = table_ (iassgn,sym (1),spc,flocrf,curlc); 305 label_flag = "1"b; 306 goto label_210; 307 308 /* get operator and test for pseudo-operation. */ 309 310 label_300: 311 if sym (1) ^= 0 then goto label_302; 312 if brk (1) = inl then goto label_870; 313 if brk (1) = iquot then goto label_870; 314 label_302: 315 binop = oplook_$oplook_ ( iflag, itype ); 316 if iflag ^= 0 then do; 317 call mexp_ (substr (addr (sym (1)) -> acc.string, 1, bin (addr (sym (1)) -> acc.length, 9)), iflag, target_value, no_target_given,first_time_thru); 318 if iflag ^= 0 then go to label_3200; 319 else go to label_3030; 320 end; 321 if (brk (1) = isp /*iht ditto*/ | brk (1) =inl /* icr and isc ditto*/ ) then goto label_305; 322 323 /* then there is an error in this statement. */ 324 goto label_3200; 325 326 label_305: 327 328 goto label_vector (itype); 329 330 331 /* control group of pseudo operations. */ 332 333 /* end card, simply return to caller of pass1. 334* reset inhibit flag for pass2 first. */ 335 336 337 label_vector (1): /* end */ 338 label_450: 339 tinhib = 0; /* FALSE */ 340 341 /* check for lpst at head of unjoined lc list. if there, move 342* to head of symbol segment lc list. */ 343 if (ulclst ^= lpst) then goto label_460; 344 ulclst = fixed (glpl_words (ulclst + 2).right, 18); 345 if (ulclst ^= 0) then call glpl_$storl (ulclst + 2,0); 346 call glpl_$storr (lpst + 2,slclst); 347 call glpl_$storl (slclst + 2,lpst); 348 slclst = lpst; 349 350 /* set up system location counter maximum lengths for 351* absolutizing in postp1. */ 352 353 label_460: 354 355 if (tprot ^= 0 ) then call glpl_$storr (lptv + 3,tvlth); 356 if (tcall ^= 0 ) then call glpl_$storr (lpcall + 3,eb_data_$nslcal + 1); 357 358 /* length of header is 8. */ 359 call glpl_$storr (lphead + 3, 8); 360 361 /* Likewise update entry count into entries section. */ 362 if tnewobject ^= 0 then call glpl_$storr (lpentries + 3, (tvlth - ext_entry_count) * eb_data_$new_nentls); 363 /* ext_entry already adjusts text section length */ 364 365 /* remember amount of stack space currently allocated */ 366 call glpl_$slwrd(stkclst, stkc, 0); 367 stkc = stkctop; /* stkc is used to transmit top of stkclst to pass2 */ 368 369 /* save the current value of pc in curlc. */ 370 call glpl_$storr (curlc + 1,pc); 371 372 return; 373 374 375 /* include statement, use new source file. */ 376 377 label_vector (50): /* include */ 378 label_include: 379 if dup_ptr ^= null () then go to label_3100; 380 call getid_ (); 381 if eb_data_$tsym = 0 then goto label_3100; 382 call inputs_$next_statement (); 383 call alm_include_file_$pass1 (); 384 goto label_200; 385 386 /* use pseudo-operation, use new location counter. */ 387 388 label_vector (2): /* use */ 389 label_500: 390 call getid_; 391 if ( eb_data_$tsym = 0) then goto label_3100; 392 393 /* save current value of old location counter. */ 394 call glpl_$storr (curlc + 1,pc); 395 396 /* use new lc as the current lc. */ 397 if (table_ (iserch,sym (1),pc,fmlcrf,curlc) ^= 0) then goto label_3010; 398 399 400 /* not found so initialize a new location counter. */ 401 pc = 0; 402 junk = table_ (iassgn,sym (1),pc,fmlcrf,curlc); 403 404 405 /* put new lc at end of ulclst. no problems with empty 406* list since list initialized with some system lc's. */ 407 call glpl_$storr (ulcend + 2,curlc); 408 call glpl_$storl (curlc + 2,ulcend); 409 ulcend = curlc; 410 goto label_3010; 411 412 /* org pseudo-operation. set the pc to the value of the expression. */ 413 414 label_vector (3): /* org */ 415 label_525: 416 if varevl_ (invrvl,basno,value,admod,b29,iaddr) = 0 then goto label_3110; 417 if (iaddr ^= 0) then goto label_3300; 418 if pc > fixed (glpl_words (curlc + 3).right, 18) then call glpl_$storr (curlc + 3, pc); 419 pc = value; 420 goto label_3010; 421 422 /* join pseudo-op. move lc nodes from unjoined 423* lc list to one of the joined lc lists. */ 424 425 label_vector (4): /* join */ 426 label_550: 427 call inputs_$nxtnb; 428 if (brk (1) ^= islash) then goto label_3100; 429 430 label_555: 431 call getid_; 432 if (brk (1) ^= islash | eb_data_$tsym = 0) then goto label_3100; 433 if (sym (1) = eb_data_$atext2 (1) & sym (2) = eb_data_$atext2 (2)) then goto label_565; 434 if (sym (1) = eb_data_$alink2 (1) & sym (2) = eb_data_$alink2 (2)) 435 then do; 436 static_in_linkage = "1"b; 437 goto label_570; 438 end; 439 if (sym (1) = eb_data_$asym2 (1) & sym (2) = eb_data_$asym2 (2)) then goto label_575; 440 if (sym (1) = eb_data_$astatic2 (1) & sym (2) = eb_data_$astatic2 (2)) 441 then do; 442 eb_data_$separate_static = "1"b; 443 goto label_570; 444 end; 445 if (sym (1) = eb_data_$adef2 (1) & sym (2) = eb_data_$adef2 (2)) then goto label_593; 446 447 prntu = 1; /* TRUE */ 448 449 label_560: 450 call inputs_$next; 451 if (brk (1) = islash) then goto label_555; /* parse join */ 452 if (brk (1) = isp | brk (1) = inl) then goto label_3020; /* next statement */ 453 goto label_560; 454 455 /* join text location counters. */ 456 457 label_565: 458 call getid_; 459 search_return = label_566; 460 goto label_580; 461 462 label_566: 463 if (iaddr = 0) then goto label_569; 464 call glpl_$storr (iaddr + 4,eb_data_$itext); 465 call glpl_$storl (iaddr + 2, fixed (glpl_words (lptv + 2).left, 18)); 466 call glpl_$storr (iaddr + 2,lptv); 467 if (tlclst ^= lptv) then goto label_567; 468 tlclst = iaddr; 469 goto label_568; 470 471 label_567: 472 473 call glpl_$storr (fixed (glpl_words (lptv + 2).left, 18) + 2, iaddr); 474 475 label_568: 476 477 call glpl_$storl (lptv + 2,iaddr); 478 479 label_569: 480 if (brk (1) = icomma) then goto label_565; 481 if (brk (1) = islash) then goto label_555; /* parse join */ 482 goto label_3020; /* next statement */ 483 484 /* join link location counters. */ 485 486 label_570: 487 call getid_; 488 search_return = label_571; 489 goto label_580; 490 491 label_571: 492 if (iaddr = 0) then goto label_574; 493 if eb_data_$separate_static 494 then stat_or_link = eb_data_$istatic; 495 else stat_or_link = eb_data_$ilink; 496 call glpl_$storr (iaddr + 4,stat_or_link); 497 call glpl_$storl (iaddr + 2, fixed (glpl_words (lpsect + 2).left, 18)); 498 call glpl_$storr (iaddr + 2,lpsect); 499 500 /* since lphead is alsays left of lpsect we 501* do not need to test for llclst = lpsect. */ 502 call glpl_$storr (fixed (glpl_words (lpsect + 2).left, 18) + 2, iaddr); 503 call glpl_$storl (lpsect + 2,iaddr); 504 505 label_574: 506 if (brk (1) = icomma) then goto label_570; 507 if (brk (1) = islash) then goto label_555; /* parse join */ 508 goto label_3020; /* next statement */ 509 510 /* join symbol location counters. */ 511 512 label_575: 513 call getid_; 514 search_return = label_576; 515 goto label_580; 516 517 label_576: 518 if (iaddr = 0) then goto label_579; 519 call glpl_$storr (iaddr + 4,eb_data_$isym); 520 call glpl_$storl (iaddr + 2, fixed (glpl_words (lprtx + 2).left, 18)); 521 call glpl_$storr (iaddr + 2,lprtx); 522 if (slclst ^= lprtx) then goto label_577; 523 slclst = iaddr; 524 goto label_578; 525 526 label_577: 527 528 call glpl_$storr (fixed (glpl_words (lprtx + 2).left, 18) + 2, iaddr); 529 530 label_578: 531 532 call glpl_$storl (lprtx + 2,iaddr); 533 534 label_579: 535 if (brk (1) = icomma) then goto label_575; 536 if (brk (1) = islash) then goto label_555; /* parse join */ 537 goto label_3020; /* next statement */ 538 539 /* join definition location counters. */ 540 541 label_593: 542 call getid_; 543 search_return = label_594; 544 goto label_580; 545 546 label_594: 547 if (iaddr = 0) then goto label_597; 548 call glpl_$storr (iaddr + 4,eb_data_$idefs); 549 call glpl_$storl (iaddr + 2, fixed (glpl_words (lpdefs + 2).left, 18)); 550 call glpl_$storr (iaddr + 2,lpdefs); 551 if (dlclst ^= lpdefs) then goto label_595; 552 dlclst = iaddr; 553 goto label_596; 554 555 label_595: 556 557 call glpl_$storr (fixed (glpl_words (lpdefs + 2).left, 18) + 2, iaddr); 558 559 label_596: 560 561 call glpl_$storl (lpdefs + 2,iaddr); 562 563 label_597: 564 if (brk (1) = icomma) then goto label_593; 565 if (brk (1) = islash) then goto label_555; /* parse join */ 566 goto label_3020; /* next statement */ 567 /* internal routine to search for a lc on the 568* unjoined location counter list. if found it is 569* disconnected from ulclst and a ptr (iaddr) to 570* it is returned. if not found iaddr = 1; TRUE, and prntu = 1; TRUE. */ 571 572 label_580: 573 j = ulclst; 574 if table_ (iserch, sym (1), junk, fmlcrf, i) = 0 then goto label_583; 575 576 label_582: 577 if (j ^= 0) then goto label_584; 578 label_583: 579 prntu = 1; /* TRUE */ 580 iaddr = 0; 581 goto search_return; 582 583 label_584: 584 if j ^= i then goto label_592; 585 586 iaddr = j; 587 if (iaddr = ulcend) then ulcend = fixed (glpl_words (iaddr + 2).left, 18); 588 if (j ^= ulclst) then goto label_588; 589 ulclst = fixed (glpl_words (j + 2).right, 18); 590 goto label_590; 591 592 label_588: 593 594 call glpl_$storr (fixed (glpl_words (j + 2).left, 18) + 2, fixed (glpl_words (j + 2).right, 18)); 595 596 label_590: 597 598 if fixed (glpl_words (j + 2).right, 18) = 0 then goto search_return; 599 call glpl_$storl (fixed (glpl_words (j + 2).right, 18) + 2, fixed (glpl_words (j + 2).left, 18)); 600 goto search_return; 601 602 603 label_592: 604 j = fixed (glpl_words (j + 2).right, 18); 605 goto label_582; 606 607 /* even pseudo-operation, force pc to even location. */ 608 609 label_vector (5): /* even */ 610 label_600: 611 pc = spc + mod (spc,2); 612 iflag = 2; 613 goto label_690; 614 615 /* odd pseudo-operation, force pc to odd location. */ 616 617 label_vector (6): /* odd */ 618 label_630: 619 pc = spc + mod (spc + 1,2); 620 iflag = 2; 621 goto label_690; 622 623 /* eight pseudo-operation, force pc to zero mod eight. */ 624 625 label_vector (7): /* eight */ 626 label_660: 627 pc = 8*divide ( (spc + 7),8,26,0); /* originally ==> pc = 8* ( (spc+7)/8); */ 628 iflag = 8; 629 goto label_690; 630 631 /* sixty-four pseudo-operation. set the pc to zero mod 64. */ 632 633 label_vector (8): /* sixtyfour */ 634 label_680: 635 pc = 64*divide ( (spc + 63),64,26,0); /* originally ==> pc = 64* ( (spc+63)/64); */ 636 iflag = 64; 637 638 label_690: 639 oldval = fixed (glpl_words (curlc + 4).left, 18); 640 newval = iflag; 641 if (oldval = 0) then goto label_699; 642 if (mod (newval,oldval) = 0) then goto label_699; 643 newval = oldval; 644 if (mod (newval,iflag) = 0) then goto label_699; 645 newval = oldval*iflag; 646 647 label_699: 648 call glpl_$storl (curlc + 4,newval); 649 goto label_3010; 650 651 /* movdef pseudo-operation. move the definitions to the link segment */ 652 653 label_vector (11): /* movdef */ 654 label_755: 655 tmvdef = 1; /* TRUE */ 656 tnewobject = 0; /* Can't move defs in new format. */ 657 goto label_3010; 658 659 660 661 /* decor pseudo-operation: claims that all intructions are compatible with the decor named by its operand */ 662 663 label_vector (62): /* decor */ 664 label_decor: 665 call getid_; 666 operand = substr(addr(sym(1)) -> acc.string,1,bin(addr(sym(1)) -> acc.length,9)); 667 call system_type_((operand),canonical_operand,(0),code); 668 if code ^=0 669 then prntf = 1; 670 else do; 671 /* a match is assured in this following lookup routine 672* only if the operand names supplied to alm_table_tool 673* (when it created the "data1" array) are a subset of 674* the canonical strings for system_type_. Alm_table_tool 675* will check for this correspondence for you. */ 676 677 678 do n = 1 to hbound(data1.decor,1) while(rtrim(canonical_operand) ^= data1.decor(n).name); 679 end; 680 decor = data1.decor(n).number; 681 end; 682 683 goto label_3010; 684 685 686 /* error pseudo-operation, sets fatal error flag, causing "Translation failed" message. */ 687 688 label_vector (63): /* error */ 689 label_error: 690 tfatal = 3; /* severity 3 error */ 691 goto label_3010; 692 693 694 /* firstref pseudo-operation, specifies trap procedure on first entry reference. */ 695 696 label_vector (48): /* firstref */ 697 label_firstref: 698 if tfirstreftrap ^= 0 then prntm = 1; 699 tfirstreftrap = 1; 700 if varevl_ (ixvrvl, basno, value, admod, b29, iaddr) = 0 then goto label_3120; 701 if b29 = 0 then value = lstman_$lnkasn (myblk, value, admod, iaddr); 702 first_ref_trap_proc_linkno = value; 703 if brk (1) = ilpar then do; 704 if varevl_ (ixvrvl, basno, value, admod, b29, iaddr) = 0 then goto label_3120; 705 if b29 = 0 then value = lstman_$lnkasn (myblk, value, admod, iaddr); 706 first_ref_trap_arg_linkno = value; 707 if brk (1) ^= irpar then goto label_3100; 708 end; 709 else first_ref_trap_arg_linkno = 0; 710 goto label_3010; 711 712 /* inhibit pseudo-operation, set inhibit mode on or off. */ 713 714 label_vector (12): /* inhibit */ 715 label_760: 716 call getid_; 717 if ( eb_data_$tsym = 0) then goto label_765; 718 if (sym (1) = eb_data_$ion) then goto label_770; 719 if (sym (1) = eb_data_$ioff) then goto label_775; 720 goto label_3010; 721 722 723 label_765: 724 tinhib = 1 - tinhib; /* tinhib = ^tinhib */ 725 goto label_3010; 726 727 728 label_770: 729 tinhib = 1; /* TRUE */ 730 goto label_3010; 731 732 733 label_775: 734 tinhib = 0; /* FALSE */ 735 goto label_3010; 736 737 /* name pseudo-operation, record the name of this segment. */ 738 739 label_vector (14): /* name */ 740 label_820: 741 if (mynam ^= 0) then goto label_3100; 742 call getid_$getnam; 743 if ( eb_data_$tsym = 0) then goto label_3100; 744 sthedr_$seg_name = substr (addr (sym (1)) -> acc.string, 1, fixed (addr (sym (1)) -> acc.length, 9)); 745 goto label_3010; 746 747 /* null pseudo-operation, do nothing. */ 748 749 label_vector (15): /* null */ 750 label_850: 751 goto label_3010; 752 753 /* rem pseudo-operation, same as null, if there was a label on the statement */ 754 755 label_vector (16): /* rem */ 756 label_870: 757 if label_flag then goto label_850; 758 call inputs_$next_statement; 759 goto label_200; 760 761 762 /* symbol defining pseudo-operations. */ 763 764 /* basref pseudo-operation, define external symbols. */ 765 766 767 label_vector (17): /* basref */ 768 label_900: 769 if ( eb_data_$tsym = 0) then goto label_910; 770 if (table_ (iserch,sym (1),value,clbas,junk) ^= 0) then goto label_915; 771 do i = 1 to 8; /* To label_905 */ 772 if (sym (1) ^= symbas (i)) then goto label_905; 773 value = i-1; 774 goto label_915; 775 776 label_905: 777 end; /* the do-group */ 778 if (table_ (iserch,sym (1),basno,clint,junk) ^= 0) then goto label_915; 779 goto label_3130; 780 781 782 label_910: 783 if (varevl_ (invrvp,basno,value,admod,b29,iaddr) = 0) then goto label_3120; 784 if (iaddr ^= 0) then goto label_3300; 785 786 787 label_915: 788 link = utils_$exadrs (value,0); 789 type = 2; 790 class = fbasrf; 791 792 /* re-entry from segref pseudo-operation. */ 793 794 label_920: 795 call getid_; 796 xnlnk = lstman_$namasn (sym (1)); 797 798 label_930: 799 ptrcal = 0; 800 ptrarg = 0; 801 trplnk = 0; 802 tderr = 0; /* FALSE */ 803 if (brk (1) ^= ilpar) then goto label_970; 804 if (varevl_ (ixvrvl,basno,ptrcal,admod,b29,iaddr) ^= 0) then goto label_935; 805 if (tprot = 1 & b29 = 0) then tvlth = tvlth + 1; 806 tderr = 1; /* TRUE */ 807 goto label_945; 808 809 label_935: 810 if (b29 ^= 0) then goto label_945; 811 if (tprot = 1 ) then goto label_940; 812 ptrcal = lstman_$lnkasn (myblk,ptrcal,admod,iaddr); 813 goto label_945; 814 815 label_940: 816 817 tvlth = tvlth + 1; 818 tderr = 1; /* TRUE */ 819 820 label_945: 821 if (brk (1) ^= ilpar) then goto label_960; 822 if (varevl_ (ixvrvl,basno,ptrarg,admod,b29,iaddr) ^= 0) then goto label_950; 823 tderr = 1; /* TRUE */ 824 goto label_955; 825 826 label_950: 827 828 if (b29 = 0) then ptrarg = lstman_$lnkasn (myblk,ptrarg,admod,iaddr); 829 830 831 label_955: 832 if (brk (1) = irpar) then call inputs_$next; 833 834 835 label_960: 836 if (brk (1) = irpar) then goto label_965; 837 tderr = 1; /* TRUE */ 838 goto label_980; 839 840 841 label_965: 842 call inputs_$next; 843 if (tderr = 1) then goto label_980; 844 trplnk = lstman_$trpasn (ptrcal,ptrarg); 845 846 label_970: 847 junk = table_ (iassgn, fixed (glpl_words (xnlnk).left, 18), lstman_$blkasn (type, link, xnlnk, trplnk), 848 class, junk); 849 850 851 label_980: 852 if (brk (1) = icomma) then goto label_920; 853 goto label_3010; 854 855 /* bool pseudo-operation, assign boolean equivalence to symbol. */ 856 857 label_vector (18): /* bool */ 858 label_1000: 859 call getid_$setid (symlnk); 860 if (brk (1) ^= icomma | symlnk = 0) then goto label_3100; 861 if (varevl_ (ibvrvl,basno,value,admod,b29,iaddr) = 0) then goto label_3120; 862 if (iaddr ^= 0) then goto label_3300; 863 junk = table_ (iassgn,symlnk,value,fbolrf,junk); 864 goto label_3010; 865 866 /* equ pseudo-operation, assign arithmetic equivalence to symbol. */ 867 868 label_vector (19): /* equ */ 869 label_1100: 870 call getid_$setid (symlnk); 871 if (brk (1) ^= icomma | symlnk = 0) then goto label_3100; 872 873 label_1110: 874 if (varevl_ (invrvl,basno,value,admod,b29,iaddr) = 0) then goto label_3120; 875 class = flocrf; 876 if (iaddr = 0) then class = fequrf; 877 junk = table_ (iassgn,symlnk,value,class,iaddr); 878 goto label_3010; 879 880 /* link pseudo-operation, define link number of external reference. */ 881 882 label_vector (20): /* link */ 883 label_1200: 884 call getid_$setid (symlnk); 885 if (brk (1) ^= icomma | symlnk = 0) then goto label_3100; 886 if (varevl_ (ixvrvl,basno,value,admod,b29,iaddr) = 0) then goto label_3120; 887 if (b29 = 0) then value = lstman_$lnkasn (myblk,value,admod,iaddr); 888 junk = table_ (iassgn,symlnk,value,flocrf,lpsect); 889 goto label_3010; 890 891 /* associate init info with link */ 892 label_vector (65): /* init_link */ 893 goto label_3010; /* skip in pass1 */ 894 895 /* set pseudo-operation, assign resettable_ equ type symbol. */ 896 897 label_vector (21): /* set */ 898 label_1250: 899 call getid_$setid (symlnk); 900 if (brk (1) ^= icomma | symlnk = 0) then goto label_3100; 901 if (varevl_ (invrvl,basno,value,admod,b29,iaddr) = 0) then goto label_3120; 902 if (iaddr ^= 0) then goto label_3300; 903 junk = table_ (iassgn,symlnk,value,fsetrf,junk); 904 goto label_3010; 905 906 /* segref pseudo-operation, define external symbols with pointers. */ 907 908 label_vector (22): /* segref */ 909 label_1300: 910 call getid_$getnam; 911 if (brk (1) ^= icomma) then goto label_3100; 912 class = fsegrf; 913 if (sym (1) ^= eb_data_$atext (1) | sym (2) ^= eb_data_$atext (2)) then goto label_1310; 914 type = 5; 915 link = 0; 916 goto label_920; 917 918 label_1310: 919 if (sym (1) ^= eb_data_$alink (1) | sym (2) ^= eb_data_$alink (2)) then goto label_1320; 920 type = 5; 921 link = 1; 922 goto label_920; 923 924 label_1320: 925 if (sym (1) ^= eb_data_$asym (1) | sym (2) ^= eb_data_$asym (2)) then goto label_1330; 926 type = 5; 927 link = 2; 928 goto label_920; 929 930 label_1330: 931 if (sym (1) ^= eb_data_$astat (1) | sym (2) ^= eb_data_$astat (2)) then goto label_1340; 932 type = 5; 933 link = 4; 934 goto label_920; 935 936 label_1340: 937 if (sym (1) ^= eb_data_$asys (1) | sym (2) ^= eb_data_$asys (2)) then goto label_1350; 938 type = 5; 939 link = 5; 940 goto label_920; 941 942 label_1350: 943 if (sym (1) ^= eb_data_$aheap (1) | sym (2) ^= eb_data_$aheap (2)) then goto label_1360; 944 type = 5; 945 link = 6; 946 goto label_920; 947 948 label_1360: 949 type = 4; 950 link = lstman_$namasn (sym (1)); 951 goto label_920; 952 953 /* temp and tempd pseudo-operations, define symbols in stack. */ 954 955 label_vector (23): /* temp */ 956 label_1400: 957 mul = 1; 958 goto label_1510; 959 960 961 label_vector (24): /* tempd */ 962 label_1500: 963 mul = 2; 964 stkc = stkc + mod (stkc,2); 965 goto label_1510; 966 967 968 label_vector (25): /* temp8 */ 969 label_1505: 970 mul = 8; 971 stkc = 8*divide ( (stkc + 7),8,26,0); /* originally ==> stkc = 8* ( (stkc + 7)/8); */ 972 973 974 label_1510: 975 call getid_$setid (symlnk); 976 if (symlnk ^= 0) then goto label_1520; 977 prntf = 1; /* TRUE */ 978 goto label_1550; 979 980 label_1520: 981 value = 1; 982 if (brk (1) ^= ilpar) then goto label_1540; 983 if (varevl_ (invrvp,basno,value,admod,b29,iaddr) = 0) then goto label_1525; 984 if (iaddr = 0) then goto label_1530; 985 prntr = 1; /* TRUE */ 986 987 label_1525: 988 prnts = 1; /* TRUE */ 989 goto label_1550; 990 991 label_1530: 992 if (brk (1) = irpar) then call inputs_$next; 993 994 label_1540: 995 if (table_ (iassgn,symlnk,stkc,fstkrf,junk) = 0) then prnts = 1; /* TRUE */ 996 stkc = stkc + value*mul; 997 998 label_1550: 999 if (brk (1) = icomma) then goto label_1510; 1000 goto label_3010; 1001 1002 1003 1004 /* generative class of pseudo-operations. */ 1005 1006 /* acc and aci pseudo-operations, ascii code generators. */ 1007 /* also bci pseudo-operation to generate 6-bit codes. */ 1008 1009 label_vector (26): /* acc */ 1010 label_1600: 1011 n = ascevl_$accevl (rslts (1)); 1012 goto label_1710; 1013 1014 label_vector (27): /* aci */ 1015 label_1700: 1016 n = ascevl_$acievl (rslts (1)); 1017 goto label_1710; 1018 1019 1020 label_vector (13): /* bci */ 1021 label_bci: 1022 n = ascevl_$bcdevl (rslts (1)); 1023 go to label_1710; 1024 1025 1026 label_vector (59): /* ac4 */ 1027 label_ac4: 1028 n = ascevl_$ac4evl (rslts (1)); 1029 1030 1031 label_1710: 1032 pc = pc + n; 1033 goto label_3010; 1034 1035 /* dec pseudo-operation, integer, fixed, and floating point. */ 1036 1037 label_vector (28): /* dec */ 1038 label_1800: 1039 n = decevl_ (rslts (1),type); 1040 if (n >= 2) then pc = pc + mod (pc,2); 1041 pc = pc + n; 1042 if (brk (1) = icomma) then goto label_1800; 1043 /* verify the break character for dec pseudo-op */ 1044 goto label_1920; 1045 1046 /* dec_unal pseudo-operation, integer, fixed, and floating point unaligned. */ 1047 1048 label_vector (66): /* dec_unal */ 1049 label_1801: 1050 n = decevl_ (rslts (1),type); 1051 pc = pc + n; 1052 if (brk (1) = icomma) then goto label_1801; 1053 /* verify the break character for dec pseudo-op */ 1054 goto label_1920; 1055 1056 /* oct pseudo-operation, octal number generator. */ 1057 1058 label_vector (29): /* oct */ 1059 label_1900: 1060 n = octevl_ (rslts (1)); 1061 if (n >= 2) then pc = pc + mod (pc,2); 1062 pc = pc + n; 1063 if (brk (1) = icomma) then goto label_1900; 1064 /* verify the break characters */ 1065 goto label_1920; 1066 1067 /* oct_unal pseudo-operation, unaligned octal number generator. */ 1068 1069 label_vector (67): /* oct_unal */ 1070 label_1901: 1071 n = octevl_ (rslts (1)); 1072 pc = pc + n; 1073 if (brk (1) = icomma) then goto label_1901; 1074 /* verify that the break characters for dec and oct 1075* are legitimate at this point */ 1076 1077 label_1920: 1078 if ( brk (1) = inl | brk (1) = isp ) then goto label_3010; 1079 goto label_3100; 1080 1081 /* vfd pseudo-operation, variable field data generator. */ 1082 1083 label_vector (30): /* vfd */ 1084 label_2000: 1085 pc = pc + vfdevl_$vfdcnt (rslts (1),flags); 1086 goto label_3010; 1087 1088 /* mod pseudo-operation. force location counter mod expression. */ 1089 1090 label_vector (31): /* mod */ 1091 label_2020: 1092 call getid_; 1093 junk = expevl_ (0,value,iaddr); /* 0 ==> FALSE */ 1094 if (iaddr ^= 0) then prntr = 1; /* TRUE */ 1095 iflag = value; 1096 pc = value*divide ( (spc + value-1),value,26,0); /* originally ==> pc = value* ( (spc + value-1)/value); */ 1097 goto label_690; 1098 1099 1100 /* storage allocating pseudo-operations. */ 1101 1102 /* bfs pseudo-operation, block followed by symbol. */ 1103 1104 label_vector (32): /* bfs */ 1105 label_2100: 1106 tbss = 0; /* FALSE */ 1107 goto label_2210; 1108 1109 /* bss pseudo-operation, block started by symbol. */ 1110 1111 label_vector (33): /* bss */ 1112 label_2200: 1113 tbss = 1; /* TRUE */ 1114 1115 label_2210: 1116 call getid_$setid (symlnk); 1117 if (brk (1) ^= icomma) then goto label_3100; 1118 if (varevl_ (invrvl,basno,value,admod,b29,iaddr) = 0) then goto label_3110; 1119 if (iaddr = 0) then goto label_2220; 1120 prntr = 1; /* TRUE */ 1121 goto label_3120; 1122 1123 label_2220: 1124 pc = pc + value; 1125 if (b29 ^= 0 ) then goto label_3100; 1126 if symlnk = 0 then goto label_3010; /* allow bss ,exp with no symbol specified */ 1127 value = pc; 1128 if (tbss = 1) then value = spc; 1129 junk = table_ (iassgn,symlnk,value,flocrf,curlc); 1130 goto label_3010; 1131 1132 /* zero pseudo-operation, ignore in pass1. */ 1133 1134 label_vector (34): /* zero */ 1135 label_2350: 1136 pc = spc + 1; 1137 goto label_3010; 1138 1139 /* its and itb pseudo-operations, set pc even, and add two. */ 1140 1141 label_vector (35): /* itb */ 1142 label_2400: 1143 1144 1145 label_vector (36): /* its */ 1146 label_2450: 1147 pc = (spc + mod (spc,2)) + 2; 1148 1149 /* correction here 3/12/69 */ 1150 iflag = 2; 1151 goto label_690; 1152 1153 1154 /* subroutine linkage pseudo-operations. */ 1155 1156 /* call pseudo-operation, call subroutine with args and returns. */ 1157 1158 label_vector (37): /* call */ 1159 label_2500: 1160 junk = varevl_ (ixvrvl,basno,value,admod,b29,iaddr); 1161 prntr = 0; 1162 if (tprot = 1 & b29 ^= 0) then goto label_2510; 1163 if tnewcall ^= 0 then pc = spc + eb_data_$new_nslcal; 1164 else pc = spc + eb_data_$nslcal; 1165 goto label_3010; 1166 1167 label_2510: 1168 junk = lstman_$outasn (spc,spc + eb_data_$nmxcal,curlc); 1169 tcall = 1; /* TRUE */ 1170 tstsw (1) = 1; /* TRUE */ 1171 tvlth = tvlth + 1; 1172 pc = spc + eb_data_$nmxcal + eb_data_$nmxclb; 1173 goto label_3010; 1174 1175 /* short_call pseudo-operation, call without save. */ 1176 1177 label_vector (51): /* short_call */ 1178 label_short_call: 1179 pc = spc + eb_data_$short_nslcal; 1180 goto label_3010; 1181 1182 /* entry pseudo-operation, count symbols in pass1. */ 1183 1184 label_vector (38): /* entry */ 1185 label_2600: 1186 call getid_; 1187 if ( eb_data_$tsym = 0) then goto label_3100; 1188 tvlth = tvlth + 1; 1189 if (brk (1) = icomma) then goto label_2600; 1190 /* this entry statement is processed. */ 1191 goto label_3010; 1192 1193 /* ext_entry pseudo_operation Usage: ext_entry elabel,stackframe_size,clabel,dlabel,function */ 1194 1195 label_vector (64): 1196 label_2610: 1197 /* first arg, entrypoint label */ 1198 call getid_; 1199 if eb_data_$tsym = 0 then goto label_3100; /* field error */ 1200 1201 /* remember amount of stack space currently allocated */ 1202 i = stkclst; 1203 stkclst = glpl_$setblk(0, 1); 1204 call glpl_$slwrd(i, stkc, stkclst); 1205 1206 stkc = 64; /* initial ext_entry stackframe size */ 1207 ext_entry_count = ext_entry_count + 1; 1208 tvlth = tvlth + 1; 1209 pc = pc + 7; /* leave room for entry seq and entry code */ 1210 if brk(1) ^= icomma then goto label_3010; 1211 /* second arg stacksize */ 1212 junk = varevl_(invrvl, basno, i, admod, b29, iaddr); 1213 if brk(1) ^= icomma then goto label_3010; 1214 /* third arg code_sequence label */ 1215 call getid_; 1216 remember_sym = sym; 1217 if brk(1) = icomma then do; 1218 /* fourth argument dlabel */ 1219 call getid_; 1220 if sym(1) ^= 0 then pc = pc + 1; /* has descriptors */ 1221 end; 1222 /* set value of optional internal label */ 1223 if remember_sym(1) > 0 then junk = table_(iassgn, remember_sym(1), pc-6, flocrf, curlc); 1224 goto label_3010; /* done */ 1225 1226 /* return pseudo-operation, return control to caller. */ 1227 1228 label_vector (39): /* return */ 1229 label_2700: 1230 if tnewcall ^= 0 then pc = spc + eb_data_$new_nretls; 1231 else pc = spc + eb_data_$nretls; 1232 call inputs_$nxtnb; 1233 if (brk (1) ^= iques) then goto label_3010; 1234 pc = spc + eb_data_$nertls; 1235 if (labarg ^= 0) then goto label_3010; 1236 stkc = stkc + mod (stkc,2); 1237 labarg = stkc; 1238 stkc = stkc + 4; 1239 goto label_3010; 1240 1241 /* short_return pseudo-operation, return from entry that did no save. */ 1242 1243 label_vector (46): /* short_return */ 1244 label_short_return: 1245 if tnewcall = 0 then prnto = 1; 1246 pc = spc + eb_data_$short_nretls; 1247 goto label_3010; 1248 1249 /* save pseudo-operation, stack setup for subroutine call. */ 1250 1251 label_vector (41): /* save/push */ 1252 label_2800: 1253 if tnewcall ^= 0 then pc = spc + eb_data_$new_nslsav; 1254 else pc = spc + eb_data_$nslsav; 1255 if (tprot = 1) then pc = pc + eb_data_$nmxsav; 1256 goto label_3010; 1257 1258 /* segdef pseudo-operation, ignored in pass1. */ 1259 1260 label_vector (42): /* segdef */ 1261 label_2900: 1262 goto label_3010; 1263 1264 /* setlp pseudo-op.... ignored in pass1. */ 1265 1266 label_vector (45): /* setlp */ 1267 label_2970: 1268 pc = pc + 1; 1269 goto label_3010; 1270 1271 /* getlp pseudo-operation, calculate linkage pointer using lot (new call/save/return). */ 1272 1273 label_vector (49): /* getlp */ 1274 label_getlp: 1275 pc = spc + eb_data_$new_ngetlp; 1276 goto label_3010; 1277 1278 label_vector (58): 1279 label_entrybound: 1280 eb_data_$entrybound_bit = "1"b; 1281 goto label_3010; 1282 1283 label_vector (9): /* dup */ 1284 label_dup: 1285 if dup_ptr ^= null () then go to label_3120; 1286 if varevl_ (invrvl, basno, value, admod, b29, iaddr) = 0 then go to label_3120; 1287 if iaddr ^= 0 then go to label_3300; 1288 if value <= 0 then go to label_3120; 1289 dup_count = value - 1; 1290 call inputs_$next_statement; 1291 call inputs_$get_ptr (dup_ptr, dup_start, junk, end_statement_flag); 1292 go to label_3030; 1293 1294 label_vector (10): /* dupend */ 1295 label_dupend: 1296 if dup_ptr = null () then go to label_3120; 1297 call inputs_$get_ptr (temp_ptr, i, j, end_statement_flag); 1298 if temp_ptr ^= dup_ptr then go to label_3100; 1299 i = begin_line; /* Really want beginning of line. */ 1300 call inputs_$next_statement; 1301 if dup_count > 0 then 1302 call alm_include_file_$insert (addr (dup_string (dup_start)), i - dup_start, dup_count); 1303 dup_ptr = null (); 1304 go to label_3020; 1305 1306 label_vector (61): 1307 label_ppstatic: 1308 eb_data_$per_process_static_sw = 1; 1309 go to label_3020; 1310 1311 label_vector (68): /* block */ 1312 label_vector (69): /* end_block */ 1313 label_vector (70): /* enum */ 1314 label_vector (71): /* end_enum */ 1315 label_vector (72): /* source */ 1316 label_vector (73): /* end_source */ 1317 label_vector (74): /* statement */ 1318 label_vector (75): /* structure */ 1319 label_vector (76): /* end_structure */ 1320 label_vector (77): /* symbol */ 1321 label_vector (78): /* union */ 1322 label_vector (79): /* end_union */ 1323 1324 goto label_3010; /* ignored in pass1_ */ 1325 1326 1327 label_vector (60): 1328 label_macro: 1329 call getid_; 1330 if eb_data_$tsym = 0 then goto label_3100; 1331 call oplook_$redefine; 1332 call inputs_$next_statement; 1333 call mexp_$define_macro (substr (addr (sym (1)) -> acc.string, 1, bin (addr (sym (1)) -> acc.length, 9))); 1334 go to label_3030; 1335 1336 label_vector (40): 1337 label_maclist: 1338 go to label_3020; 1339 1340 1341 /* INSTRUCTION PROCESSING BEGINS HERE. */ 1342 1343 label_vector (52): /* rpt, rpd, rpl */ 1344 label_repeat: 1345 label_vector (53): /* awd, swd, abd, sbd, etc. */ 1346 label_eis_single: 1347 label_vector (54): /* mvn, cmpb, ad2d, etc. */ 1348 label_eis_multiple: 1349 label_vector (55): /* desc9a, desc6a, desc4a */ 1350 label_eis_desca: 1351 label_vector (56): /* descb */ 1352 label_eis_descb: 1353 label_vector (57): /* desc9ts, desc4ls, etc. */ 1354 label_eis_descn: 1355 label_vector (43): /* eax, canx, etc. */ 1356 label_get_index: 1357 label_vector (44): /* eap, sprp, etc. */ 1358 label_get_base: 1359 1360 /* normal instructions. */ 1361 1362 label_vector (0): /* Normal instruction. */ 1363 label_3000: 1364 pc = spc + 1; 1365 /* pseudo-operation re-entry to reset u flag. */ 1366 1367 label_3010: 1368 prntu = 0; /* FALSE */ 1369 /* pseudo-operation re-entry with u flag not reset. */ 1370 1371 label_3020: 1372 call inputs_$next_statement; 1373 1374 label_3030: 1375 pcblk (1) = utils_$ls (pc,18); 1376 call utils_$pckflg (pcblk (2)); 1377 pcblk (3) = utils_$ls (curlc,18); 1378 link = glpl_$setblk (pcblk (1),3); 1379 ndpcls -> word.right = addr (link) -> word.right; 1380 ndpcls = ptr (eb_data_$lavptr,link); 1381 1382 goto label_200; 1383 1384 1385 /* error return for pseudo-operations. */ 1386 1387 /* field (f) error. */ 1388 1389 label_3100: 1390 prntf = 1; /* TRUE */ 1391 goto label_3010; 1392 1393 /* phase (p) error. */ 1394 1395 label_3110: 1396 prntp = 1; /* TRUE */ 1397 goto label_3010; 1398 1399 /* symbol (s) definition error. */ 1400 1401 label_3120: 1402 prnts = 1; /* TRUE */ 1403 goto label_3010; 1404 1405 /* undefined (u) symbol error. */ 1406 1407 label_3130: 1408 prntu = 1; /* TRUE */ 1409 goto label_3020; /* next statement */ 1410 1411 1412 /* re-entry for undefined pseudo-operations. */ 1413 1414 label_3200: 1415 prnto = 1; /* TRUE */ 1416 goto label_3010; 1417 1418 /* re-entry for relocation (r) error. */ 1419 1420 label_3300: 1421 prntr = 1; /* TRUE */ 1422 goto label_3010; 1423 1424 end pass1_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0929.5 pass1_.pl1 >spec>install>1170>pass1_.pl1 79 1 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 80 2 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.incl.pl1 81 3 07/17/81 1911.5 erflgs.incl.pl1 >ldd>include>erflgs.incl.pl1 82 4 05/06/74 1741.0 codtab.incl.pl1 >ldd>include>codtab.incl.pl1 83 5 10/17/88 0926.0 sthedr.incl.pl1 >ldd>include>sthedr.incl.pl1 84 6 05/06/74 1742.5 mxpro.incl.pl1 >ldd>include>mxpro.incl.pl1 85 7 05/06/74 1742.2 lstcom.incl.pl1 >ldd>include>lstcom.incl.pl1 86 8 10/21/74 1242.9 labarg.incl.pl1 >ldd>include>labarg.incl.pl1 87 9 11/12/86 1103.0 alm_lc.incl.pl1 >ldd>include>alm_lc.incl.pl1 88 10 05/06/74 1740.2 alm_options.incl.pl1 >ldd>include>alm_options.incl.pl1 89 11 07/17/81 1911.6 alm_data.incl.pl1 >ldd>include>alm_data.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 based structure level 1 dcl 204 admod 000122 automatic fixed bin(26,0) dcl 145 set ref 414* 700* 701* 704* 705* 782* 804* 812* 822* 826* 861* 873* 886* 887* 901* 983* 1118* 1158* 1212* 1286* alm_data1$structure 000062 external static fixed bin(17,0) dcl 11-4 set ref 11-23 alm_data2$structure 000064 external static fixed bin(17,0) dcl 11-14 set ref 11-24 alm_include_file_$insert 000104 constant entry external dcl 93 ref 1301 alm_include_file_$pass1 000102 constant entry external dcl 93 ref 383 ascevl_$ac4evl 000136 constant entry external dcl 115 ref 1026 ascevl_$accevl 000132 constant entry external dcl 115 ref 1009 ascevl_$acievl 000134 constant entry external dcl 115 ref 1014 ascevl_$bcdevl 000140 constant entry external dcl 115 ref 1020 b29 000121 automatic fixed bin(26,0) dcl 145 set ref 414* 700* 701 704* 705 782* 804* 805 809 822* 826 861* 873* 886* 887 901* 983* 1118* 1125 1158* 1162 1212* 1286* basno 000117 automatic fixed bin(26,0) dcl 145 set ref 414* 700* 704* 778* 782* 804* 822* 861* 873* 886* 901* 983* 1118* 1158* 1212* 1286* begin_line 60 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 1299 binlin 101 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 292* binop 000104 automatic fixed bin(26,0) dcl 145 set ref 314* brk 000010 external static fixed bin(26,0) array level 2 dcl 1-7 set ref 301* 303 312 313 321 321 428 432 451 452 452 479 481 505 507 534 536 563 565 703 707 803 820 831 835 851 860 871 885 900 911 982 991 998 1042 1052 1063 1073 1077 1077 1117 1189 1210 1213 1217 1233 canonical_operand 000235 automatic char(24) packed unaligned dcl 156 set ref 667* 678 class 000126 automatic fixed bin(26,0) dcl 145 set ref 790* 846* 875* 876* 877* 912* clbas 13 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 770* clint 11 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 778* code 000243 automatic fixed bin(35,0) dcl 157 set ref 667* 668 curlc 000024 external static fixed bin(26,0) level 2 dcl 9-15 set ref 230* 304* 370 394 397* 402* 407* 408 409 418 418 638 647 1129* 1167* 1223* 1377* data1 based structure level 1 unaligned dcl 11-8 data1_ptr 000100 automatic pointer dcl 11-6 set ref 11-23* 678 678 680 data2_ptr 000102 automatic pointer dcl 11-16 set ref 11-24* decevl_ 000146 constant entry external dcl 115 ref 1037 1048 decor 1 based structure array level 2 in structure "data1" unaligned dcl 11-8 in procedure "pass1_" ref 678 decor parameter fixed bin(35,0) dcl 189 in procedure "pass1_" set ref 34 680* dlclst 5 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 239* 551 552* dup_count 000222 automatic fixed bin(26,0) dcl 150 set ref 1289* 1301 1301* dup_ptr 000216 automatic pointer initial dcl 150 set ref 150* 377 1283 1291* 1294 1298 1301 1301 1303* dup_start 000223 automatic fixed bin(26,0) dcl 150 set ref 1291* 1301 1301 1301 dup_string based char(1) array packed unaligned dcl 150 set ref 1301 1301 eb_data_$adef2 000262 external static fixed bin(26,0) array dcl 172 ref 445 445 eb_data_$aheap 000276 external static fixed bin(26,0) array dcl 172 ref 942 942 eb_data_$alink 000270 external static fixed bin(26,0) array dcl 172 ref 918 918 eb_data_$alink2 000254 external static fixed bin(26,0) array dcl 172 ref 434 434 eb_data_$alm_options 000060 external static structure level 1 dcl 10-6 eb_data_$astat 000300 external static fixed bin(26,0) array dcl 172 ref 930 930 eb_data_$astatic2 000260 external static fixed bin(26,0) array dcl 172 ref 440 440 eb_data_$asym 000272 external static fixed bin(26,0) array dcl 172 ref 924 924 eb_data_$asym2 000256 external static fixed bin(26,0) array dcl 172 ref 439 439 eb_data_$asys 000274 external static fixed bin(26,0) array dcl 172 ref 936 936 eb_data_$atext 000266 external static fixed bin(26,0) array dcl 172 ref 913 913 eb_data_$atext2 000252 external static fixed bin(26,0) array dcl 172 ref 433 433 eb_data_$codtab 000016 external static structure level 1 dcl 4-6 eb_data_$concom 000012 external static structure level 1 dcl 2-6 eb_data_$curlc 000024 external static structure level 1 unaligned dcl 9-15 eb_data_$entrybound_bit 000304 external static bit(1) packed unaligned dcl 183 set ref 221* 1278* eb_data_$erflgs_overlay 000014 external static structure level 1 dcl 3-9 eb_data_$idefs 000210 external static fixed bin(26,0) dcl 172 set ref 548* eb_data_$ilink 000202 external static fixed bin(26,0) dcl 172 set ref 264* 270* 495 eb_data_$ioff 000212 external static fixed bin(26,0) dcl 172 ref 719 eb_data_$ion 000214 external static fixed bin(26,0) dcl 172 ref 718 eb_data_$istatic 000206 external static fixed bin(26,0) dcl 172 ref 493 eb_data_$isym 000204 external static fixed bin(26,0) dcl 172 set ref 236* 274* 280* 286* 519* eb_data_$itext 000200 external static fixed bin(26,0) dcl 172 set ref 464* eb_data_$labarg 000022 external static structure level 1 dcl 8-6 eb_data_$lavptr 000306 external static pointer dcl 208 ref 344 418 465 465 471 497 497 502 520 520 526 549 549 555 587 589 592 592 592 596 599 599 599 603 638 846 846 1380 eb_data_$lccall 000026 external static structure level 1 unaligned dcl 9-18 eb_data_$lccom 000030 external static structure level 1 unaligned dcl 9-22 eb_data_$lcdefs 000032 external static structure level 1 unaligned dcl 9-30 eb_data_$lcentries 000034 external static structure level 1 unaligned dcl 9-34 eb_data_$lchead 000036 external static structure level 1 unaligned dcl 9-38 eb_data_$lclit 000040 external static structure level 1 unaligned dcl 9-42 eb_data_$lcrlk 000042 external static structure level 1 unaligned dcl 9-46 eb_data_$lcrst 000044 external static structure level 1 unaligned dcl 9-50 eb_data_$lcrtx 000046 external static structure level 1 unaligned dcl 9-54 eb_data_$lcsect 000050 external static structure level 1 unaligned dcl 9-58 eb_data_$lcst 000052 external static structure level 1 unaligned dcl 9-62 eb_data_$lctext 000054 external static structure level 1 unaligned dcl 9-66 eb_data_$lctv 000056 external static structure level 1 unaligned dcl 9-70 eb_data_$nertls 000216 external static fixed bin(26,0) dcl 172 ref 1234 eb_data_$new_nentls 000244 external static fixed bin(26,0) dcl 172 ref 362 eb_data_$new_ngetlp 000250 external static fixed bin(26,0) dcl 172 ref 1273 eb_data_$new_nretls 000240 external static fixed bin(26,0) dcl 172 ref 1228 eb_data_$new_nslcal 000234 external static fixed bin(26,0) dcl 172 ref 1163 eb_data_$new_nslsav 000236 external static fixed bin(26,0) dcl 172 ref 1251 eb_data_$nmxcal 000220 external static fixed bin(26,0) dcl 172 ref 1167 1172 eb_data_$nmxclb 000222 external static fixed bin(26,0) dcl 172 ref 1172 eb_data_$nmxsav 000224 external static fixed bin(26,0) dcl 172 ref 1255 eb_data_$nretls 000226 external static fixed bin(26,0) dcl 172 ref 1231 eb_data_$nslcal 000230 external static fixed bin(26,0) dcl 172 ref 356 1164 eb_data_$nslsav 000232 external static fixed bin(26,0) dcl 172 ref 1254 eb_data_$per_process_static_sw 000310 external static fixed bin(17,0) dcl 209 set ref 1306* eb_data_$separate_static 000302 external static bit(1) packed unaligned dcl 182 set ref 221* 442* 493 eb_data_$short_nretls 000242 external static fixed bin(26,0) dcl 172 ref 1246 eb_data_$short_nslcal 000246 external static fixed bin(26,0) dcl 172 ref 1177 eb_data_$tsym 000264 external static fixed bin(26,0) dcl 172 ref 304 381 391 432 717 743 767 1187 1199 1330 eb_data_$varcom 000010 external static structure level 1 dcl 1-7 end_statement_flag 000215 automatic bit(1) dcl 149 set ref 1291* 1297* expevl_ 000142 constant entry external dcl 115 ref 1093 ext_entry_count 000246 automatic fixed bin(17,0) dcl 159 set ref 220* 362 1207* 1207 extent based fixed bin(17,0) level 2 dcl 11-8 ref 678 fbasrf 34 000012 external static fixed bin(26,0) level 2 dcl 2-6 ref 790 fbolrf 32 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 863* fequrf 31 000012 external static fixed bin(26,0) level 2 dcl 2-6 ref 876 first_ref_trap_arg_linkno 460 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 706* 709* first_ref_trap_proc_linkno 457 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 702* first_time_thru parameter bit(1) packed unaligned dcl 191 set ref 34 317* flags 000105 automatic fixed bin(26,0) dcl 145 set ref 1083* flocrf 30 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 304* 875 888* 1129* 1223* fmlcrf 40 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 229* 232* 238* 241* 247* 252* 257* 262* 266* 272* 276* 282* 397* 402* 574* fsegrf 35 000012 external static fixed bin(26,0) level 2 dcl 2-6 ref 912 fsetrf 33 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 903* fstkrf 36 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 994* getid_ 000066 constant entry external dcl 93 ref 302 380 388 430 457 486 512 541 663 714 794 1090 1184 1195 1215 1219 1327 getid_$getnam 000070 constant entry external dcl 93 ref 742 908 getid_$setid 000120 constant entry external dcl 93 ref 857 868 882 897 974 1115 glpl_$setblk 000166 constant entry external dcl 131 ref 289 1203 1378 glpl_$slwrd 000122 constant entry external dcl 93 ref 264 366 1204 glpl_$storl 000124 constant entry external dcl 93 ref 234 243 245 249 254 259 268 278 284 345 347 408 465 475 497 503 520 530 549 559 599 647 glpl_$storr 000126 constant entry external dcl 93 ref 233 236 242 248 253 258 267 270 274 277 280 283 286 346 353 356 359 362 370 394 407 418 464 466 471 496 498 502 519 521 526 548 550 555 592 glpl_words based structure array level 1 dcl 200 i 000106 automatic fixed bin(26,0) dcl 145 set ref 574* 583 771* 772 773* 1202* 1204* 1212* 1297* 1299* 1301 iaddr 000107 automatic fixed bin(26,0) dcl 145 set ref 229* 230 232* 233 234* 235 238* 239 241* 242 243* 244 247* 248 249* 250 252* 253 254* 255 257* 258 259* 260 262* 263 266* 267 268* 269 272* 273 276* 277 278* 279 282* 283 284* 285 414* 417 462 464 465 466 468 471* 475* 491 496 497 498 502* 503* 517 519 520 521 523 526* 530* 546 548 549 550 552 555* 559* 580* 586* 587 587 700* 701* 704* 705* 782* 784 804* 812* 822* 826* 861* 862 873* 876 877* 886* 887* 901* 902 983* 984 1093* 1094 1118* 1119 1158* 1212* 1286* 1287 iassgn 75 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 229* 232* 238* 241* 247* 252* 257* 262* 266* 272* 276* 282* 304* 402* 846* 863* 877* 888* 903* 994* 1129* 1223* ibvrvl 103 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 861* icol 72 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 303 icomma 54 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 479 505 534 563 851 860 871 885 900 911 998 1042 1052 1063 1073 1117 1189 1210 1213 1217 iflag 000110 automatic fixed bin(26,0) dcl 145 set ref 314* 316 317* 318 612* 620* 628* 636* 640 644 645 1095* 1150* ilpar 50 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 703 803 820 982 inl 12 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 312 321 452 1077 inputs_$get_ptr 000106 constant entry external dcl 93 ref 1291 1297 inputs_$next 000072 constant entry external dcl 93 ref 449 831 841 991 inputs_$next_statement 000074 constant entry external dcl 93 ref 382 758 1290 1300 1332 1371 inputs_$nxtnb 000076 constant entry external dcl 93 ref 425 1232 invrvl 101 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 414* 873* 901* 1118* 1212* 1286* invrvp 102 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 782* 983* iques 77 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 1233 iquot 42 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 313 irpar 51 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 707 831 835 991 iserch 76 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 397* 574* 770* 778* islash 57 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 428 432 451 481 507 536 565 isp 40 000016 external static fixed bin(17,0) level 2 dcl 4-6 ref 301 321 452 1077 itype 000111 automatic fixed bin(26,0) dcl 145 set ref 314* 326 ixvrvl 77 000012 external static fixed bin(26,0) level 2 dcl 2-6 set ref 700* 704* 804* 822* 886* 1158* j 000112 automatic fixed bin(26,0) dcl 145 set ref 572* 576 583 586 588 589 592 592 592 596 599 599 599 603* 603 1297* junk 000113 automatic fixed bin(26,0) dcl 145 set ref 229* 232* 238* 241* 247* 252* 257* 262* 266* 272* 276* 282* 304* 402* 574* 770* 778* 846* 846* 863* 863* 877* 888* 903* 903* 994* 1093* 1129* 1158* 1167* 1212* 1223* 1291* labarg 000022 external static fixed bin(26,0) level 2 dcl 8-6 set ref 218* 1235 1237* label_flag 000214 automatic bit(1) dcl 148 set ref 297* 305* 755 lccall 1 000026 external static fixed bin(26,0) array level 2 dcl 9-18 set ref 252* lcdefs 1 000032 external static fixed bin(26,0) array level 2 dcl 9-30 set ref 238* lcentries 1 000034 external static fixed bin(26,0) array level 2 dcl 9-34 set ref 247* lchead 1 000036 external static fixed bin(26,0) array level 2 dcl 9-38 set ref 266* lclit 1 000040 external static fixed bin(26,0) array level 2 dcl 9-42 set ref 241* lcrlk 1 000042 external static fixed bin(26,0) array level 2 dcl 9-46 set ref 276* lcrst 1 000044 external static fixed bin(26,0) array level 2 dcl 9-50 set ref 272* lcrtx 1 000046 external static fixed bin(26,0) array level 2 dcl 9-54 set ref 282* lcsect 1 000050 external static fixed bin(26,0) array level 2 dcl 9-58 set ref 262* lcst 1 000052 external static fixed bin(26,0) array level 2 dcl 9-62 set ref 232* lctext 1 000054 external static fixed bin(26,0) array level 2 dcl 9-66 set ref 229* lctv 1 000056 external static fixed bin(26,0) array level 2 dcl 9-70 set ref 257* left based bit(18) array level 2 packed packed unaligned dcl 200 ref 465 465 471 497 497 502 520 520 526 549 549 555 587 592 599 599 638 846 846 length based bit(9) level 2 packed packed unaligned dcl 204 ref 317 317 666 744 1333 1333 link 000114 automatic fixed bin(26,0) dcl 145 set ref 787* 846* 846* 915* 921* 927* 933* 939* 945* 950* 1378* 1379 1380 llclst 3 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 263* 267* 268 269* lpcall 000026 external static fixed bin(26,0) level 2 dcl 9-18 set ref 255* 356 lpdefs 000032 external static fixed bin(26,0) level 2 dcl 9-30 set ref 239* 549 549 550* 551 555 559 lpentries 000034 external static fixed bin(26,0) level 2 dcl 9-34 set ref 250* 362 lphead 000036 external static fixed bin(26,0) level 2 dcl 9-38 set ref 269* 270 359 lplit 000040 external static fixed bin(26,0) level 2 dcl 9-42 set ref 244* 245 lprlk 000042 external static fixed bin(26,0) level 2 dcl 9-46 set ref 279* 280 lprst 000044 external static fixed bin(26,0) level 2 dcl 9-50 set ref 273* 274 lprtx 000046 external static fixed bin(26,0) level 2 dcl 9-54 set ref 285* 286 520 520 521* 522 526 530 lpsect 000050 external static fixed bin(26,0) level 2 dcl 9-58 set ref 263* 264 497 497 498* 502 503 888* lpst 000052 external static fixed bin(26,0) level 2 dcl 9-62 set ref 235* 236 343 346 347* 348 lptext 000054 external static fixed bin(26,0) level 2 dcl 9-66 set ref 230* lptv 000056 external static fixed bin(26,0) level 2 dcl 9-70 set ref 260* 353 465 465 466* 467 471 475 lstman_$blkasn 000144 constant entry external dcl 115 ref 846 846 lstman_$lnkasn 000152 constant entry external dcl 124 ref 701 705 812 826 887 lstman_$namasn 000160 constant entry external dcl 124 ref 796 950 lstman_$outasn 000154 constant entry external dcl 124 ref 1167 lstman_$trpasn 000172 constant entry external dcl 131 ref 844 mexp_ 000110 constant entry external dcl 93 ref 317 mexp_$define_macro 000112 constant entry external dcl 93 ref 1333 mul 000115 automatic fixed bin(26,0) dcl 145 set ref 955* 961* 968* 996 myblk 430 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 701* 705* 812* 826* 887* mynam 427 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 739 n 000116 automatic fixed bin(26,0) dcl 145 set ref 678* 678* 680 1009* 1014* 1020* 1026* 1031 1037* 1040 1041 1048* 1051 1058* 1061 1062 1069* 1072 name 1 based varying char(24) array level 3 dcl 11-8 ref 678 ndpcls 434 000010 external static pointer level 2 dcl 1-7 set ref 1379 1380* newval 000207 automatic fixed bin(26,0) dcl 145 set ref 640* 642 643* 644 645* 647* no_target_given parameter bit(1) packed unaligned dcl 191 set ref 34 317* number 10 based fixed bin(35,0) array level 3 dcl 11-8 ref 680 octevl_ 000162 constant entry external dcl 131 ref 1058 1069 oldval 000210 automatic fixed bin(26,0) dcl 145 set ref 638* 641 642 643 645 operand 000224 automatic varying char(32) dcl 155 set ref 666* 667 oplook_$oplook_ 000164 constant entry external dcl 131 ref 314 oplook_$redefine 000116 constant entry external dcl 93 ref 1331 oplook_$reset 000114 constant entry external dcl 93 ref 293 pc 25 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 216* 299 370* 394* 397* 401* 402* 418 418* 419* 609* 617* 625* 633* 1031* 1031 1040* 1040 1040 1041* 1041 1051* 1051 1061* 1061 1061 1062* 1062 1072* 1072 1083* 1083 1096* 1123* 1123 1127 1134* 1141* 1163* 1164* 1172* 1177* 1209* 1209 1220* 1220 1223 1228* 1231* 1234* 1246* 1251* 1254* 1255* 1255 1266* 1266 1273* 1343* 1374* pcblk 000123 automatic fixed bin(26,0) array dcl 145 set ref 1374* 1376* 1377* 1378* prntf 1 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 668* 977* 1389* prntm 2 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 696* prnto 4 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 1243* 1414* prntp 5 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 1395* prntr 6 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 985* 1094* 1120* 1161* 1420* prnts 7 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 987* 994* 1401* prntu 11 000014 external static fixed bin(17,0) level 2 dcl 3-9 set ref 447* 578* 1367* 1407* ptrarg 000132 automatic fixed bin(26,0) dcl 145 set ref 800* 822* 826* 826* 844* ptrcal 000131 automatic fixed bin(26,0) dcl 145 set ref 798* 804* 812* 812* 844* remember_sym 000247 automatic fixed bin(26,0) array dcl 160 set ref 1216* 1223 1223* right 0(18) based bit(18) array level 2 in structure "glpl_words" packed packed unaligned dcl 200 in procedure "pass1_" ref 344 418 589 592 592 596 599 603 right 0(18) based bit(18) level 2 in structure "word" packed packed unaligned dcl 197 in procedure "pass1_" set ref 1379* 1379 rslts 000135 automatic fixed bin(26,0) array dcl 145 set ref 1009* 1014* 1020* 1026* 1037* 1048* 1058* 1069* 1083* search_return 000260 automatic label variable local dcl 163 set ref 459* 488* 514* 543* 581 596 600 slclst 4 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 273* 277* 278 279* 283* 284 285* 346* 347 348* 522 523* spc 26 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 299* 304* 609 609 617 617 625 633 1096 1128 1134 1141 1141 1163 1164 1167* 1167 1172 1177 1228 1231 1234 1246 1251 1254 1273 1343 stat_or_link 000213 automatic fixed bin(26,0) dcl 145 set ref 493* 495* 496* static_in_linkage 000264 automatic bit(1) initial packed unaligned dcl 165 set ref 165* 221* 436* sthedr_$seg_name 000020 external static char(32) dcl 5-21 set ref 744* stkc 43 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 366* 367* 964* 964 964 971* 971 994* 996* 996 1204* 1206* 1236* 1236 1236 1237 1238* 1238 stkclst 000244 automatic fixed bin(26,0) dcl 158 set ref 290* 366* 1202 1203* 1204* stkctop 000245 automatic fixed bin(26,0) dcl 158 set ref 289* 290 367 string 0(09) based char(32) level 2 packed packed unaligned dcl 204 ref 317 317 666 744 1333 1333 sym 4 000010 external static fixed bin(26,0) array level 2 dcl 1-7 set ref 304* 310 317 317 317 317 397* 402* 433 433 434 434 439 439 440 440 445 445 574* 666 666 718 719 744 744 770* 772 778* 796* 913 913 918 918 924 924 930 930 936 936 942 942 950* 1216 1220 1333 1333 1333 1333 symbas 50 000012 external static fixed bin(26,0) array level 2 dcl 2-6 ref 772 symlnk 000134 automatic fixed bin(26,0) dcl 145 set ref 857* 860 863* 868* 871 877* 882* 885 888* 897* 900 903* 974* 976 994* 1115* 1126 1129* system_type_ 000130 constant entry external dcl 93 ref 667 table_ 000170 constant entry external dcl 131 ref 229 232 238 241 247 252 257 262 266 272 276 282 304 397 402 574 770 778 846 863 877 888 903 994 1129 1223 target_value parameter fixed bin(17,0) dcl 190 set ref 34 317* tbss 000211 automatic fixed bin(26,0) dcl 145 set ref 1104* 1111* 1128 tcall 72 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 356 1169* tderr 000212 automatic fixed bin(26,0) dcl 145 set ref 802* 806* 818* 823* 837* 843 temp_ptr 000220 automatic pointer dcl 150 set ref 1297* 1298 tfatal 75 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 688* tfirstreftrap 5 000060 external static fixed bin(17,0) level 2 dcl 10-6 set ref 219* 696 699* tinhib 64 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 337* 723* 723 728* 733* tlclst 2 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 239* 242* 243 244* 248* 249 250* 253* 254 255* 258* 259 260* 467 468* tmvdef 73 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 653* tnewcall 000060 external static fixed bin(17,0) level 2 dcl 10-6 ref 1163 1228 1243 1251 tnewobject 2 000060 external static fixed bin(17,0) level 2 dcl 10-6 set ref 362 656* tprot 71 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 353 805 811 1162 1255 trplnk 000133 automatic fixed bin(26,0) dcl 145 set ref 801* 844* 846* 846* tstsw 22 000014 external static fixed bin(17,0) array level 2 dcl 3-9 set ref 1170* tvlth 35 000010 external static fixed bin(26,0) level 2 dcl 1-7 set ref 353* 362 805* 805 815* 815 1171* 1171 1188* 1188 1208* 1208 type 000127 automatic fixed bin(26,0) dcl 145 set ref 789* 846* 846* 914* 920* 926* 932* 938* 944* 948* 1037* 1048* ulcend 1 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 230* 407 408* 409* 587 587* ulclst 000030 external static fixed bin(26,0) level 2 dcl 9-22 set ref 230* 233* 234 235* 343 344* 344 345 345 572 588 589* utils_$exadrs 000150 constant entry external dcl 124 ref 787 utils_$ls 000156 constant entry external dcl 124 ref 1374 1377 utils_$pckflg 000100 constant entry external dcl 93 ref 1376 value 000120 automatic fixed bin(26,0) dcl 145 set ref 414* 419 700* 701* 701* 702 704* 705* 705* 706 770* 773* 782* 787* 861* 863* 873* 877* 886* 887* 887* 888* 901* 903* 980* 983* 996 1093* 1095 1096 1096 1096 1118* 1123 1127* 1128* 1129* 1158* 1286* 1288 1289 varevl_ 000174 constant entry external dcl 131 ref 414 700 704 782 804 822 861 873 886 901 983 1118 1158 1212 1286 vfdevl_$vfdcnt 000176 constant entry external dcl 131 ref 1083 word based structure level 1 dcl 197 xnlnk 000130 automatic fixed bin(26,0) dcl 145 set ref 796* 846 846 846* 846* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. alm_include_file_$pop 000000 constant entry external dcl 93 blklnk automatic fixed bin(26,0) dcl 145 data2 based structure level 1 unaligned dcl 11-18 eb_data_$asystem2 external static fixed bin(26,0) array dcl 172 eb_data_$erflgs external static structure level 1 dcl 3-5 eb_data_$lstcom external static structure level 1 dcl 7-6 eb_data_$macro_depth external static fixed bin(26,0) dcl 184 eb_data_$mxpro external static structure level 1 dcl 6-6 glpl_$cwrd 000000 constant entry external dcl 115 glpl_$glwrd 000000 constant entry external dcl 115 iwhat automatic fixed bin(26,0) dcl 145 k automatic fixed bin(26,0) dcl 145 new_sthedr_$alm_creation_date external static fixed bin(71,0) dcl 5-33 new_sthedr_$alm_version_name external static char(32) dcl 5-35 new_sthedr_$block_size external static structure level 1 dcl 5-49 new_sthedr_$comment external static char(64) dcl 5-39 new_sthedr_$hdrlen external static fixed bin(26,0) dcl 5-67 new_sthedr_$new_sthedr_ external static fixed bin(17,0) dcl 5-31 new_sthedr_$rel_bits_ptrs external static structure level 1 dcl 5-53 new_sthedr_$relocinfo external static fixed bin(17,0) dcl 5-69 new_sthedr_$source_and_area external static structure level 1 dcl 5-45 new_sthedr_$text_and_link_boundaries external static structure level 1 dcl 5-41 new_sthedr_$time_of_translation external static fixed bin(71,0) dcl 5-33 new_sthedr_$truncate_info external static structure level 1 dcl 5-61 new_sthedr_$user_id external static char(32) dcl 5-37 newrho automatic fixed bin(26,0) dcl 145 nwrds automatic fixed bin(26,0) dcl 145 option automatic fixed bin(26,0) dcl 145 sthedr_$alm_creation_date external static fixed bin(71,0) dcl 5-19 sthedr_$hdrlen external static fixed bin(26,0) dcl 5-27 sthedr_$sthedr_ external static fixed bin(17,0) dcl 5-17 sthedr_$text_and_link_lengths external static structure level 1 dcl 5-23 sthedr_$time_of_translation external static fixed bin(71,0) dcl 5-19 utils_$nswrds 000000 constant entry external dcl 124 utils_$rs 000000 constant entry external dcl 124 NAMES DECLARED BY EXPLICIT CONTEXT. label_100 000151 constant label dcl 216 label_1000 004437 constant label dcl 857 label_1100 004525 constant label dcl 868 label_1110 004542 constant label dcl 873 label_1200 004620 constant label dcl 882 label_1250 004730 constant label dcl 897 label_1300 005016 constant label dcl 908 label_1310 005046 constant label dcl 918 ref 913 label_1320 005062 constant label dcl 924 ref 918 label_1330 005076 constant label dcl 930 ref 924 label_1340 005112 constant label dcl 936 ref 930 label_1350 005125 constant label dcl 942 ref 936 label_1360 005141 constant label dcl 948 ref 942 label_1400 005154 constant label dcl 955 label_1500 005157 constant label dcl 961 label_1505 005167 constant label dcl 968 label_1510 005177 constant label dcl 974 ref 958 965 998 label_1520 005215 constant label dcl 980 ref 976 label_1525 005257 constant label dcl 987 ref 983 label_1530 005264 constant label dcl 991 ref 984 label_1540 005275 constant label dcl 994 ref 982 label_1550 005334 constant label dcl 998 ref 978 989 label_1600 005341 constant label dcl 1009 label_1700 005352 constant label dcl 1014 label_1710 005404 constant label dcl 1031 ref 1012 1017 1023 label_1800 005411 constant label dcl 1037 ref 1042 label_1801 005446 constant label dcl 1048 ref 1052 label_1900 005472 constant label dcl 1058 ref 1063 label_1901 005525 constant label dcl 1069 ref 1073 label_1920 005546 constant label dcl 1077 ref 1044 1054 1065 label_200 001314 constant label dcl 297 ref 384 759 1382 label_2000 005554 constant label dcl 1083 label_2020 005573 constant label dcl 1090 label_210 001315 constant label dcl 299 ref 306 label_2100 005635 constant label dcl 1104 label_2200 005637 constant label dcl 1111 label_2210 005641 constant label dcl 1115 ref 1107 label_2220 005710 constant label dcl 1123 ref 1119 label_2350 005751 constant label dcl 1134 label_2400 005756 constant label dcl 1141 label_2450 005756 constant label dcl 1141 label_2500 005770 constant label dcl 1158 label_2510 006036 constant label dcl 1167 ref 1162 label_2600 006077 constant label dcl 1184 ref 1189 label_2610 006116 constant label dcl 1195 label_2700 006301 constant label dcl 1228 label_2800 006356 constant label dcl 1251 label_2900 006377 constant label dcl 1260 label_2970 006400 constant label dcl 1266 label_300 001364 constant label dcl 310 ref 303 label_3000 006632 constant label dcl 1343 label_3010 006636 constant label dcl 1367 ref 397 410 420 649 657 683 691 710 720 725 730 735 745 749 853 864 878 889 892 904 1000 1033 1077 1086 1126 1130 1137 1165 1173 1180 1191 1210 1213 1224 1233 1235 1239 1247 1256 1260 1269 1276 1281 1311 1391 1397 1403 1416 1422 label_302 001374 constant label dcl 314 ref 310 label_3020 006641 constant label dcl 1371 ref 452 482 508 537 566 1304 1309 1336 1409 label_3030 006646 constant label dcl 1374 ref 319 1292 1334 label_305 001467 constant label dcl 326 ref 321 label_3100 006740 constant label dcl 1389 ref 377 381 391 428 432 707 739 743 860 871 885 900 911 1079 1117 1125 1187 1199 1298 1330 label_3110 006745 constant label dcl 1395 ref 414 1118 label_3120 006752 constant label dcl 1401 ref 700 704 782 861 873 886 901 1121 1283 1286 1288 1294 label_3130 006757 constant label dcl 1407 ref 779 label_3200 006764 constant label dcl 1414 ref 318 324 label_3300 006771 constant label dcl 1420 ref 417 784 862 902 1287 label_450 001471 constant label dcl 337 label_460 001556 constant label dcl 353 ref 343 label_500 001742 constant label dcl 388 label_525 002075 constant label dcl 414 label_550 002155 constant label dcl 425 label_555 002166 constant label dcl 430 ref 451 481 507 536 565 label_560 002257 constant label dcl 449 ref 453 label_565 002276 constant label dcl 457 ref 433 479 label_566 002307 constant label dcl 462 ref 459 label_567 002372 constant label dcl 471 ref 467 label_568 002411 constant label dcl 475 ref 469 label_569 002425 constant label dcl 479 ref 462 label_570 002435 constant label dcl 486 ref 437 443 505 label_571 002446 constant label dcl 491 ref 488 label_574 002565 constant label dcl 505 ref 491 label_575 002575 constant label dcl 512 ref 439 534 label_576 002606 constant label dcl 517 ref 514 label_577 002671 constant label dcl 526 ref 522 label_578 002710 constant label dcl 530 ref 524 label_579 002724 constant label dcl 534 ref 517 label_580 003073 constant label dcl 572 ref 460 489 515 544 label_582 003122 constant label dcl 576 ref 605 label_583 003124 constant label dcl 578 ref 574 label_584 003132 constant label dcl 583 ref 576 label_588 003160 constant label dcl 592 ref 588 label_590 003203 constant label dcl 596 ref 590 label_592 003237 constant label dcl 603 ref 583 label_593 002734 constant label dcl 541 ref 445 563 label_594 002745 constant label dcl 546 ref 543 label_595 003030 constant label dcl 555 ref 551 label_596 003047 constant label dcl 559 ref 553 label_597 003063 constant label dcl 563 ref 546 label_600 003247 constant label dcl 609 label_630 003260 constant label dcl 617 label_660 003272 constant label dcl 625 label_680 003303 constant label dcl 633 label_690 003313 constant label dcl 638 ref 613 621 629 1097 1151 label_699 003342 constant label dcl 647 ref 641 642 644 label_755 003356 constant label dcl 653 label_760 003670 constant label dcl 714 label_765 003706 constant label dcl 723 ref 717 label_770 003712 constant label dcl 728 ref 718 label_775 003715 constant label dcl 733 ref 719 label_820 003717 constant label dcl 739 label_850 003741 constant label dcl 749 ref 755 label_870 003742 constant label dcl 755 ref 312 313 label_900 003751 constant label dcl 767 label_905 004020 constant label dcl 776 ref 772 label_910 004050 constant label dcl 782 ref 767 label_915 004077 constant label dcl 787 ref 770 774 778 label_920 004121 constant label dcl 794 ref 851 916 922 928 934 940 946 951 label_930 004140 constant label dcl 798 label_935 004211 constant label dcl 809 ref 804 label_940 004237 constant label dcl 815 ref 811 label_945 004242 constant label dcl 820 ref 807 809 813 label_950 004277 constant label dcl 826 ref 822 label_955 004321 constant label dcl 831 ref 824 label_960 004332 constant label dcl 835 ref 820 label_965 004342 constant label dcl 841 ref 835 label_970 004364 constant label dcl 846 ref 803 label_980 004431 constant label dcl 851 ref 838 843 label_ac4 005374 constant label dcl 1026 label_bci 005363 constant label dcl 1020 label_decor 003364 constant label dcl 663 label_dup 006413 constant label dcl 1283 label_dupend 006475 constant label dcl 1294 label_eis_desca 006632 constant label dcl 1343 label_eis_descb 006632 constant label dcl 1343 label_eis_descn 006632 constant label dcl 1343 label_eis_multiple 006632 constant label dcl 1343 label_eis_single 006632 constant label dcl 1343 label_entrybound 006410 constant label dcl 1278 label_error 003513 constant label dcl 688 label_firstref 003517 constant label dcl 696 label_get_base 006632 constant label dcl 1343 label_get_index 006632 constant label dcl 1343 label_getlp 006403 constant label dcl 1273 label_include 001715 constant label dcl 377 label_maclist 006631 constant label dcl 1336 label_macro 006564 constant label dcl 1327 label_ppstatic 006560 constant label dcl 1306 label_repeat 006632 constant label dcl 1343 label_short_call 006072 constant label dcl 1177 label_short_return 006344 constant label dcl 1243 label_vector 000000 constant label array(0:79) dcl 337 ref 326 pass1_ 000135 constant entry external dcl 34 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 11-23 11-24 317 317 317 317 666 666 744 744 1301 1301 1333 1333 1333 1333 1379 bin builtin function ref 317 317 666 1333 1333 divide builtin function ref 625 633 971 1096 fixed builtin function ref 344 418 465 465 471 497 497 502 520 520 526 549 549 555 587 589 592 592 592 596 599 599 599 603 638 744 846 846 hbound builtin function ref 678 mod builtin function ref 609 617 642 644 964 1040 1061 1141 1236 null builtin function ref 150 377 1283 1294 1303 ptr builtin function ref 1380 rtrim builtin function ref 678 substr builtin function ref 317 317 666 744 1333 1333 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10056 10370 6777 10066 Length 11422 6777 312 1015 1057 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pass1_ 222 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pass1_ 000100 data1_ptr pass1_ 000102 data2_ptr pass1_ 000104 binop pass1_ 000105 flags pass1_ 000106 i pass1_ 000107 iaddr pass1_ 000110 iflag pass1_ 000111 itype pass1_ 000112 j pass1_ 000113 junk pass1_ 000114 link pass1_ 000115 mul pass1_ 000116 n pass1_ 000117 basno pass1_ 000120 value pass1_ 000121 b29 pass1_ 000122 admod pass1_ 000123 pcblk pass1_ 000126 class pass1_ 000127 type pass1_ 000130 xnlnk pass1_ 000131 ptrcal pass1_ 000132 ptrarg pass1_ 000133 trplnk pass1_ 000134 symlnk pass1_ 000135 rslts pass1_ 000207 newval pass1_ 000210 oldval pass1_ 000211 tbss pass1_ 000212 tderr pass1_ 000213 stat_or_link pass1_ 000214 label_flag pass1_ 000215 end_statement_flag pass1_ 000216 dup_ptr pass1_ 000220 temp_ptr pass1_ 000222 dup_count pass1_ 000223 dup_start pass1_ 000224 operand pass1_ 000235 canonical_operand pass1_ 000243 code pass1_ 000244 stkclst pass1_ 000245 stkctop pass1_ 000246 ext_entry_count pass1_ 000247 remember_sym pass1_ 000260 search_return pass1_ 000264 static_in_linkage pass1_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. alm_include_file_$insert alm_include_file_$pass1 ascevl_$ac4evl ascevl_$accevl ascevl_$acievl ascevl_$bcdevl decevl_ expevl_ getid_ getid_$getnam getid_$setid glpl_$setblk glpl_$slwrd glpl_$storl glpl_$storr inputs_$get_ptr inputs_$next inputs_$next_statement inputs_$nxtnb lstman_$blkasn lstman_$lnkasn lstman_$namasn lstman_$outasn lstman_$trpasn mexp_ mexp_$define_macro octevl_ oplook_$oplook_ oplook_$redefine oplook_$reset system_type_ table_ utils_$exadrs utils_$ls utils_$pckflg varevl_ vfdevl_$vfdcnt THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. alm_data1$structure alm_data2$structure eb_data_$adef2 eb_data_$aheap eb_data_$alink eb_data_$alink2 eb_data_$alm_options eb_data_$astat eb_data_$astatic2 eb_data_$asym eb_data_$asym2 eb_data_$asys eb_data_$atext eb_data_$atext2 eb_data_$codtab eb_data_$concom eb_data_$curlc eb_data_$entrybound_bit eb_data_$erflgs_overlay eb_data_$idefs eb_data_$ilink eb_data_$ioff eb_data_$ion eb_data_$istatic eb_data_$isym eb_data_$itext eb_data_$labarg eb_data_$lavptr eb_data_$lccall eb_data_$lccom eb_data_$lcdefs eb_data_$lcentries eb_data_$lchead eb_data_$lclit eb_data_$lcrlk eb_data_$lcrst eb_data_$lcrtx eb_data_$lcsect eb_data_$lcst eb_data_$lctext eb_data_$lctv eb_data_$nertls eb_data_$new_nentls eb_data_$new_ngetlp eb_data_$new_nretls eb_data_$new_nslcal eb_data_$new_nslsav eb_data_$nmxcal eb_data_$nmxclb eb_data_$nmxsav eb_data_$nretls eb_data_$nslcal eb_data_$nslsav eb_data_$per_process_static_sw eb_data_$separate_static eb_data_$short_nretls eb_data_$short_nslcal eb_data_$tsym eb_data_$varcom sthedr_$seg_name LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 34 000130 150 000142 165 000144 11 23 000145 11 24 000147 216 000151 218 000153 219 000154 220 000156 221 000157 229 000162 230 000205 232 000214 233 000237 234 000253 235 000267 236 000273 238 000305 239 000331 241 000337 242 000362 243 000377 244 000414 245 000421 247 000435 248 000461 249 000476 250 000513 252 000520 253 000543 254 000560 255 000575 257 000602 258 000625 259 000642 260 000657 262 000664 263 000707 264 000714 266 000732 267 000756 268 000773 269 001010 270 001015 272 001027 273 001053 274 001060 276 001072 277 001116 278 001133 279 001150 280 001155 282 001167 283 001213 284 001230 285 001245 286 001252 289 001264 290 001302 292 001304 293 001310 297 001314 299 001315 301 001321 302 001324 303 001330 304 001335 305 001361 306 001363 310 001364 312 001367 313 001372 314 001374 316 001406 317 001410 318 001453 319 001456 321 001457 324 001466 326 001467 337 001471 343 001473 344 001476 345 001503 346 001520 347 001535 348 001552 353 001556 356 001574 359 001616 362 001634 366 001660 367 001675 370 001701 372 001714 377 001715 380 001721 381 001725 382 001730 383 001734 384 001741 388 001742 391 001746 394 001751 397 001765 401 002012 402 002015 407 002036 408 002053 409 002070 410 002074 414 002075 417 002122 418 002124 419 002150 420 002154 425 002155 428 002161 430 002166 432 002173 433 002202 434 002212 436 002221 437 002223 439 002224 440 002233 442 002242 443 002244 445 002245 447 002254 449 002257 451 002264 452 002271 453 002275 457 002276 459 002303 460 002306 462 002307 464 002311 465 002324 466 002346 467 002362 468 002367 469 002371 471 002372 475 002411 479 002425 481 002432 482 002434 486 002435 488 002442 489 002445 491 002446 493 002450 495 002456 496 002460 497 002473 498 002515 502 002531 503 002551 505 002565 507 002572 508 002574 512 002575 514 002602 515 002605 517 002606 519 002610 520 002623 521 002645 522 002661 523 002666 524 002670 526 002671 530 002710 534 002724 536 002731 537 002733 541 002734 543 002741 544 002744 546 002745 548 002747 549 002762 550 003004 551 003020 552 003025 553 003027 555 003030 559 003047 563 003063 565 003070 566 003072 572 003073 574 003076 576 003122 578 003124 580 003130 581 003131 583 003132 586 003135 587 003136 588 003147 589 003152 590 003157 592 003160 596 003203 599 003214 600 003236 603 003237 605 003246 609 003247 612 003255 613 003257 617 003260 620 003267 621 003271 625 003272 628 003300 629 003302 633 003303 636 003311 638 003313 640 003322 641 003324 642 003326 643 003332 644 003334 645 003337 647 003342 649 003355 653 003356 656 003361 657 003363 663 003364 666 003370 667 003403 668 003440 678 003450 679 003503 680 003505 683 003512 688 003513 691 003516 696 003517 699 003525 700 003527 701 003554 702 003576 703 003602 704 003606 705 003633 706 003655 707 003661 708 003665 709 003666 710 003667 714 003670 717 003674 718 003677 719 003703 720 003705 723 003706 725 003711 728 003712 730 003714 733 003715 735 003716 739 003717 742 003722 743 003726 744 003731 745 003740 749 003741 755 003742 758 003744 759 003750 767 003751 770 003753 771 003777 772 004005 773 004014 774 004017 776 004020 778 004022 779 004047 782 004050 784 004075 787 004077 789 004113 790 004115 794 004121 796 004126 798 004140 800 004141 801 004142 802 004143 803 004144 804 004151 805 004176 806 004206 807 004210 809 004211 811 004213 812 004220 813 004236 815 004237 818 004240 820 004242 822 004247 823 004274 824 004276 826 004277 831 004321 835 004332 837 004337 838 004341 841 004342 843 004346 844 004351 846 004364 851 004431 853 004436 857 004437 860 004445 861 004454 862 004501 863 004503 864 004524 868 004525 871 004533 873 004542 875 004567 876 004573 877 004577 878 004617 882 004620 885 004626 886 004635 887 004662 888 004704 889 004726 892 004727 897 004730 900 004736 901 004745 902 004772 903 004774 904 005015 908 005016 911 005022 912 005027 913 005032 914 005042 915 005044 916 005045 918 005046 920 005055 921 005057 922 005061 924 005062 926 005071 927 005073 928 005075 930 005076 932 005105 933 005107 934 005111 936 005112 938 005121 939 005123 940 005124 942 005125 944 005134 945 005136 946 005140 948 005141 950 005143 951 005153 955 005154 958 005156 961 005157 964 005161 965 005166 968 005167 971 005171 974 005177 976 005206 977 005210 978 005214 980 005215 982 005217 983 005224 984 005251 985 005253 987 005257 989 005263 991 005264 994 005275 996 005326 998 005334 1000 005340 1009 005341 1012 005351 1014 005352 1017 005362 1020 005363 1023 005373 1026 005374 1031 005404 1033 005410 1037 005411 1040 005424 1041 005435 1042 005441 1044 005445 1048 005446 1051 005461 1052 005465 1054 005471 1058 005472 1061 005503 1062 005514 1063 005520 1065 005524 1069 005525 1072 005536 1073 005542 1077 005546 1079 005553 1083 005554 1086 005572 1090 005573 1093 005577 1094 005615 1095 005623 1096 005625 1097 005634 1104 005635 1107 005636 1111 005637 1115 005641 1117 005647 1118 005654 1119 005701 1120 005703 1121 005707 1123 005710 1125 005714 1126 005716 1127 005720 1128 005722 1129 005727 1130 005750 1134 005751 1137 005755 1141 005756 1150 005765 1151 005767 1158 005770 1161 006013 1162 006016 1163 006024 1164 006032 1165 006035 1167 006036 1169 006055 1170 006061 1171 006064 1172 006065 1173 006071 1177 006072 1180 006076 1184 006077 1187 006104 1188 006107 1189 006111 1191 006115 1195 006116 1199 006122 1202 006125 1203 006127 1204 006144 1206 006160 1207 006164 1208 006165 1209 006166 1210 006170 1212 006174 1213 006217 1215 006224 1216 006230 1217 006235 1219 006241 1220 006245 1223 006252 1224 006300 1228 006301 1231 006310 1232 006314 1233 006320 1234 006325 1235 006331 1236 006333 1237 006337 1238 006341 1239 006343 1243 006344 1246 006351 1247 006355 1251 006356 1254 006365 1255 006371 1256 006376 1260 006377 1266 006400 1269 006402 1273 006403 1276 006407 1278 006410 1281 006412 1283 006413 1286 006417 1287 006444 1288 006446 1289 006450 1290 006452 1291 006457 1292 006474 1294 006475 1297 006501 1298 006515 1299 006521 1300 006525 1301 006531 1303 006555 1304 006557 1306 006560 1309 006562 1311 006563 1327 006564 1330 006570 1331 006573 1332 006577 1333 006604 1334 006627 1336 006631 1343 006632 1367 006636 1371 006641 1374 006646 1376 006664 1377 006673 1378 006710 1379 006725 1380 006732 1382 006737 1389 006740 1391 006744 1395 006745 1397 006751 1401 006752 1403 006756 1407 006757 1409 006763 1414 006764 1416 006770 1420 006771 1422 006775 ----------------------------------------------------------- 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