COMPILATION LISTING OF SEGMENT postp2_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1005.0 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 12* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 13* Modified to allow for joining to the definition section. 14* 2) change(88-08-02,JRGray), approve(88-08-05,MCR7952), 15* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 16* Modified to call alm_symtab_ as part of symbol table support. 17* END HISTORY COMMENTS */ 18 19 20 /* post pass2 processor for the eplbsa assembler. */ 21 22 /* ****************************************************** 23* * * 24* * * 25* * Copyright (c) 1972 by Massachusetts Institute of * 26* * Technology and Honeywell Information Systems, Inc. * 27* * * 28* * * 29* ****************************************************** */ 30 31 postp2_: 32 procedure; 33 34 /* Postp2 is called after pass two to generate non-source output. 35* There are three regions to this subroutine, 36* one to append information 37* to the text segment (literals, etc), one to put out the 38* symbolic definition region (to either text or link) and one to 39* put out the linkage file 40* (including entry and call interludes). 41* The arrangement of the output information is determined by the 42* two flags tprot (for transfer vector and error call) and 43* tmvdef (for moving definitions to the linkage file). 44* Tprot should imply tmvdef. 45* If the definitions are to go in the linkage file, 46* a pre-pass must be made to assign locations 47* before the information is put out 48* because the links must be assigned first. */ 49 /* Modified for separate static on 06/15/75 by Eugene E Wiatrowski */ 50 /* Modified on 07/25/72 at 04:13:13 by R F Mabee. 51* by RFM on 6 May 1972 to add definition pointer to entry point. 52* by RFM on 21 March 1972 for new object segment format. 53* by RHG on 15 May 1971 to fix last fix 54* by RHG on 1 April 1971 to fix making itxlen even. 55* November 1970, R H Campbell, for cleavage. 56* by RHG on 17 Sept 1970 for new listing package 57* by RHG on 11 August 1970 at 1345 to fix bug in rel_symbol link 58* by RHG on 7 August 1970 at 0107 for new symbol table header 59* */ 60 /* AUTOMATIC VARIABLES USED BY POST_PASS_2 */ 61 dcl (argout, calblk, iexp1, 62 ilc, ilnkno, ioffst, 63 isegno, ispc, itemp, itxlen, ival, l, 64 ldef, statlen, lnklen, 65 lword (4), nwrds, rblock (10), rleft, rlkdef, 66 rright, rsydef, val, words (4)) fixed bin (26) ; 67 dcl iaddr fixed bin (18); 68 dcl (ientlc, ientpc) pointer; 69 dcl iexp pointer; 70 dcl (ileft, iright) fixed bin (18); 71 dcl (isym, iname) pointer; 72 dcl (j, k) pointer; 73 dcl (lcl, lcptr, lcr) pointer; 74 dcl lnkorg fixed bin (26); 75 declare header_done bit (1) aligned; 76 /* Headings placed in listing (watch for form-feeds). */ 77 dcl SYMBOL_TABLE_HEADER_nl static character (25) aligned initial ("SYMBOL TABLE HEADER 78 "); 79 dcl ff_ERROR_RETURN_CALL_nl static character (23) aligned initial ("ERROR RETURN CALL 80 "); 81 dcl ff_LINKAGE_INFORMATION_nl static character (27) aligned initial (" LINKAGE INFORMATION 82 "); 83 dcl ff_LITERALS_nl static character (15) aligned initial (" LITERALS 84 "); 85 dcl nl_NO_LITERALS_nl static character (18) aligned initial (" 86 NO LITERALS 87 "); 88 dcl ff_SYMBOL_INFORMATION_nl static character (25) aligned initial (" SYMBOL INFORMATION 89 "); 90 dcl ff_TRANSFER_VECTOR_nl static character (22) aligned initial (" TRANSFER VECTOR 91 "); 92 dcl ff_ENTRY_SEQUENCES_nl internal static char (22) aligned initial (" ENTRY SEQUENCES 93 "); 94 dcl nl_FIRST_REFERENCE_TRAP_LIST_nl internal static char (32) aligned initial (" 95 FIRST REFERENCE TRAP LIST 96 "); 97 /* EXTERNAL DATA USED BY POST_PASS_2 */ 98 /* eb_data_$bases is overlayed with eb_data_$symbas */ 99 dcl (eb_data_$anames (0: 5), eb_data_$bases (0: 7), eb_data_$blanks (2), 100 eb_data_$calseq (4), eb_data_$entseq (5), 101 eb_data_$maos, eb_data_$meax0, 102 eb_data_$meax7) external fixed bin (26); 103 dcl eb_data_$lavptr external pointer; 104 dcl eb_data_$stat_len ext fixed bin(26); 105 dcl eb_data_$separate_static external bit(1); 106 /* EXTERNAL ENTRIES CALLED BY POST_PASS_2 */ 107 dcl alm_definitions_$assign_definitions entry; 108 declare alm_definitions_$fix_entries ext entry; 109 declare alm_symtab_$count_words ext entry(fixed bin(26)); 110 declare alm_symtab_$emit ext entry(fixed bin(26)); 111 112 dcl alm_definitions_$emit_definitions entry (fixed bin (26), fixed bin (26), fixed bin (26)); 113 dcl litevl_$litasn entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)); 114 dcl prlst_$prlst_ entry (character (*) aligned); 115 dcl prnam_$prnam2 entry (pointer, pointer); 116 dcl prnam_$prnam_ entry (pointer); 117 dcl prnter_$abort1 entry; 118 dcl prnter_$prnter_ entry (character (*) aligned); 119 dcl pulnk_$lnkcnt entry (fixed bin (26)); 120 dcl pulnk_$pulnk_ entry (fixed bin (26), fixed bin (26), fixed bin (26)); 121 dcl pudef_$pudef_ entry (fixed bin (26), fixed bin (26), fixed bin (26)); 122 dcl pudef_$defcnt entry (fixed bin (26)); 123 dcl pusmb_$symcnt entry (fixed bin (26)); 124 dcl putout_$putblk entry (fixed bin (26), pointer, fixed bin (26), fixed bin (26), pointer); 125 dcl putout_$putlst entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)); 126 dcl putout_$putwrd entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)); 127 dcl putxt_$putxt_ entry (fixed bin (26), fixed bin (26), fixed bin (26)); 128 dcl putxt_$txtcnt entry (fixed bin (26)); 129 /* EXTERNAL FUNCTIONS CALLED BY POST_PASS_2 */ 130 dcl (lstman_$blkasn entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)), 131 lstman_$lnkasn entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)), 132 lstman_$namasn entry (fixed bin (26)), 133 utils_$makins entry (fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26), fixed bin (26)) 134 ) returns (fixed bin); 135 /* LABEL VARIABLES USED IN POST_PASS_2 */ 136 dcl control_1020 (3) label local static; 137 dcl control_1030 (5) label local static; 138 dcl first_time bit (1) static initial ("1"b); 139 dcl twop18 static fixed bin (19) initial (1000000000000000000b); 140 dcl deforg fixed bin; 141 declare symtab_words fixed bin(26); 142 dcl (null, convert, fixed) builtin; 143 144 /* INCLUDE FILES */ 1 1 /* Begin include file alm_lc.incl.pl1. */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 1 5* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 1 6* Modified to add definition lc used to join blocks to the definition 1 7* section. 1 8* END HISTORY COMMENTS */ 1 9 1 10 /* Edited from several separate files, 4 November 1970, R H Campbell. */ 1 11 /* Modified 23 November 1970, R H Campbell. */ 1 12 /* Added location counter "lpentries" for new object segment format, 27 March 1972, R F Mabee. */ 1 13 /* Last modified on 03/27/72 at 23:16:58 by R F Mabee. */ 1 14 1 15 declare 1 eb_data_$curlc external, 1 16 2 curlc fixed bin (26); 1 17 1 18 declare 1 eb_data_$lccall external, 1 19 2 lpcall fixed bin (26), 1 20 2 lccall (2) fixed bin (26); 1 21 1 22 declare 1 eb_data_$lccom external, 1 23 2 ulclst fixed bin (26), 1 24 2 ulcend fixed bin (26), 1 25 2 tlclst fixed bin (26), 1 26 2 llclst fixed bin (26), 1 27 2 slclst fixed bin (26), 1 28 2 dlclst fixed bin (26); 1 29 1 30 declare 1 eb_data_$lcdefs external, 1 31 2 lpdefs fixed bin (26), 1 32 2 lcdefs (2) fixed bin (26); 1 33 1 34 declare 1 eb_data_$lcentries external, 1 35 2 lpentries fixed bin(26), 1 36 2 lcentries (2) fixed bin (26); 1 37 1 38 declare 1 eb_data_$lchead external, 1 39 2 lphead fixed bin (26), 1 40 2 lchead (2) fixed bin (26); 1 41 1 42 declare 1 eb_data_$lclit external, 1 43 2 lplit fixed bin (26), 1 44 2 lclit (2) fixed bin (26); 1 45 1 46 declare 1 eb_data_$lcrlk external, 1 47 2 lprlk fixed bin (26), 1 48 2 lcrlk (2) fixed bin (26); 1 49 1 50 declare 1 eb_data_$lcrst external, 1 51 2 lprst fixed bin (26), 1 52 2 lcrst (2) fixed bin (26); 1 53 1 54 declare 1 eb_data_$lcrtx external, 1 55 2 lprtx fixed bin (26), 1 56 2 lcrtx (2) fixed bin (26); 1 57 1 58 declare 1 eb_data_$lcsect external, 1 59 2 lpsect fixed bin(26), 1 60 2 lcsect (2) fixed bin(26); 1 61 1 62 declare 1 eb_data_$lcst external, 1 63 2 lpst fixed bin (26), 1 64 2 lcst (2) fixed bin (26); 1 65 1 66 declare 1 eb_data_$lctext external, 1 67 2 lptext fixed bin (26), 1 68 2 lctext (2) fixed bin (26); 1 69 1 70 declare 1 eb_data_$lctv external, 1 71 2 lptv fixed bin (26), 1 72 2 lctv (2) fixed bin (26); 1 73 1 74 /* End of include file alm_lc.incl.pl1. */ 145 146 2 1 /* Begin include file alm_list_beads.incl.pl1. */ 2 2 /* Created 19 November 1970, R H Campbell. */ 2 3 /* Modified 25 November 1970, R H Campbell. */ 2 4 /* Added entry_bead_ptr to external_definition_bead for new object segment format, 30 April 1972, R F Mabee. */ 2 5 /* Last modified on 04/30/72 at 23:40:00 by R F Mabee. */ 2 6 2 7 declare 1 acc based aligned, /* ACC format string for symbol name. */ 2 8 2 lg bit (9) unaligned, /* The length. */ 2 9 2 cs character (31) unaligned; /* The string. */ 2 10 2 11 declare 1 call_out_bead based aligned, /* Mastermode callout link list bead. */ 2 12 2 (kind, next) bit (18) unaligned, /* Kind of bead (3), rel ptr to next bead. */ 2 13 2 (expression, modifier) bit (18) unaligned, /* Rel ptr to expression bead, modifier. */ 2 14 2 (type_pair, transfer_vector_no) bit (18) unaligned, /* Rel ptr to type pair bead, ? */ 2 15 2 (call_pc, crh) bit (18) unaligned, /* Location of call, ? */ 2 16 2 (clh, inhibit) bit (18) unaligned; /* ? inhibit bit. */ 2 17 2 18 declare 1 entry_bead based aligned, /* Entry interlude link list bead. */ 2 19 2 (kind, next) bit (18) unaligned, /* Kind of bead (2), rel ptr to next bead. */ 2 20 2 (link_no, transfer_vector_no) bit (18) unaligned, /* ? */ 2 21 2 (transfer_vector, inhibit) bit (18) unaligned; /* Rel ptr to transfer vector bead, inhibit bit. */ 2 22 2 23 declare 1 expression_bead based aligned, /* Expression list bead. */ 2 24 2 (location, next) bit (18) unaligned, /* Location of output expression word, rel ptr to next bead. */ 2 25 2 (type_pair, expression) bit (18) unaligned, /* Rel ptr to type pair bead, expression value. */ 2 26 2 (clh, location_counter) bit (18) unaligned; /* ? */ 2 27 2 28 declare 1 external_definition_bead based aligned, /* External definition list bead. */ 2 29 2 (name, next) bit (18) unaligned, /* Rel ptr to name list bead, rel ptr to next bead. */ 2 30 2 (location, class) bit (18) unaligned, /* ? */ 2 31 2 (trap, location_counter) bit (18) unaligned, /* Rel ptr to trap list bead, ? */ 2 32 2 entry_bead_ptr bit (18) unaligned; /* Non-zero if defines entry. */ 2 33 2 34 declare 1 link_bead based aligned, /* Element of link list. */ 2 35 2 (kind, next) bit (18) unaligned, /* Kind of bead (1), rel ptr to next bead. */ 2 36 2 (expression, modifier) bit (18) unaligned; /* Rel ptr to expression bead, modifier field. */ 2 37 2 38 declare 1 literal_bead based aligned, /* Literal list bead. */ 2 39 2 (location, next) bit (18) unaligned, /* "Load address" of literal, rel ptr to next bead. */ 2 40 2 (location_counters, size) bit (18) unaligned, /* Rel ptr to location counter rel ptrs, size in words. */ 2 41 2 words (10), /* The literal. */ 2 42 3 (left, right) bit (18) unaligned; /* Separate relocatable halves. */ 2 43 2 44 declare 1 location_counter_bead based aligned, /* Symbol table bucket list bead for location counter name. */ 2 45 2 (symbol, next) bit (18) unaligned, /* Rel ptr to symbol name, rel ptr to next bead. */ 2 46 2 (flags, value) bit (18) unaligned, /* Symbol flags, current value. */ 2 47 2 (left_join, right_join) bit (18) unaligned, /* Rel ptrs to joined location counter beads. */ 2 48 2 (origin, max_value) bit (18) unaligned, /* Lowest value, highest value. */ 2 49 2 (mod_value, section) bit (18) unaligned; /* Indicator for rounding origin, section in which it occurs. */ 2 50 2 51 declare 1 location_counters (10) based aligned, /* Location counter rel ptrs for relocatable literals. */ 2 52 2 (left, right) bit (18) unaligned; /* One for each half word. */ 2 53 2 54 declare 1 name_bead based aligned, /* Name list bead. */ 2 55 2 (name, next) bit (18) unaligned, /* Rel ptr to name, rel ptr to next bead. */ 2 56 2 (section, location) bit (18) unaligned; /* ? */ 2 57 2 58 declare 1 statement_bead based aligned, /* "Collation tape" list bead. */ 2 59 2 (value, next) bit (18) unaligned, /* Value of current location counter, rel ptr to next bead. */ 2 60 2 flags bit (36), /* Flags for this statement. */ 2 61 2 location_counter bit (18); /* Rel ptr to active location counter bead. */ 2 62 2 63 declare 1 symbol_bead based aligned, /* Symbol table hashcode bucket list bead. */ 2 64 2 (symbol, next) bit (18) unaligned, /* Rel ptr to symbol name, rel ptr to next bead. */ 2 65 2 (flags, value) bit (18) unaligned, /* Symbol flags, symbol value. */ 2 66 2 location_counter bit (18); /* Rel ptr to related location counter bead. */ 2 67 2 68 declare 1 transfer_vector_bead based aligned, /* Transfer vector list bead. */ 2 69 2 (clh, next) bit (18) unaligned, /* ?, rel ptr to next bead. */ 2 70 2 (transfer_vector_no, location) bit (18) unaligned, /* ? */ 2 71 2 (location_counter, inhibit) bit (18) unaligned; /* ? inhibit bit. */ 2 72 2 73 declare 1 trap_bead based aligned, /* Trap list bead. */ 2 74 2 (location, next) bit (18) unaligned, /* Location of output trap word, rel ptr to next bead. */ 2 75 2 (call, argument) bit (18) unaligned; /* Rel ptr to call link bead, rel ptr to argument link bead. */ 2 76 2 77 declare 1 type_pair_bead based aligned, /* Type pair list bead. */ 2 78 2 (location, next) bit (18) unaligned, /* Location of output type pair words, rel ptr to next bead. */ 2 79 2 (type, trap) bit (18) unaligned, /* Type of link, rel ptr to trap list bead. */ 2 80 2 (segment, symbol) bit (18) unaligned; /* Rel ptrs to name list beads for segment, symbol. */ 2 81 2 82 /* End of include file alm_list_beads.incl.pl1. */ 147 148 149 /* multiple word bit patterns for standard sequences */ 3 1 /* Begin include file alm_prototypes.incl.pl1. */ 3 2 /* Edited from several separate files, 4 November 1970, R H Campbell. */ 3 3 /* Added prototypes for new call/save/return sequence and new object segment format, 27 March 1972, R F Mabee. */ 3 4 /* Last modified on 06/13/72 at 07:43:47 by R F Mabee. */ 3 5 3 6 declare 1 eb_data_$mxpro external, /* Impure. */ 3 7 2 nmxpro fixed bin (26), 3 8 2 mxpro (2) fixed bin (26); 3 9 3 10 declare 1 eb_data_$slcall external, /* Impure. */ 3 11 2 nslcal fixed bin (26), 3 12 2 slcall (5) fixed bin (26); 3 13 3 14 declare 1 eb_data_$new_slcall external, /* Impure. */ 3 15 2 new_nslcal fixed bin (26), 3 16 2 new_slcall (5) fixed bin (26); 3 17 3 18 declare 1 eb_data_$mxcall external, /* Impure. */ 3 19 2 nmxcal fixed bin (26), 3 20 2 mxcall (11) fixed bin (26); 3 21 3 22 declare 1 eb_data_$mxclbk external, /* Impure. */ 3 23 2 nmxclb fixed bin (26), 3 24 2 mxclbk (7) fixed bin (26); 3 25 3 26 declare 1 eb_data_$mxsave external, /* Pure. */ 3 27 2 nmsav fixed bin (26), 3 28 2 mxsave (2) fixed bin (26); 3 29 3 30 declare 1 eb_data_$slsave external, /* Impure. */ 3 31 2 nslsav fixed bin (26), 3 32 2 slsave (6) fixed bin (26); 3 33 3 34 declare 1 eb_data_$new_slsave external, /* Impure. */ 3 35 2 new_nslsav fixed bin (26), 3 36 2 new_slsave (6) fixed bin (26); 3 37 3 38 declare 1 eb_data_$retlst external, /* Pure. */ 3 39 2 nretls fixed bin (26), 3 40 2 retlst (3) fixed bin (26); 3 41 3 42 declare 1 eb_data_$new_retlst external, /* Pure. */ 3 43 2 new_nretls fixed bin (26), 3 44 2 new_retlst (3) fixed bin (26); 3 45 3 46 declare 1 eb_data_$short_retlst external, /* Pure. */ 3 47 2 short_nretls fixed bin (26), 3 48 2 short_retlst (3) fixed bin (26); 3 49 3 50 declare 1 eb_data_$new_entlst external, /* Impure. */ 3 51 2 new_nentls fixed bin (26), 3 52 2 new_entlst (5) fixed bin (26); 3 53 3 54 declare 1 eb_data_$ertlst external, /* Impure. */ 3 55 2 nertls fixed bin (26), 3 56 2 ertlst (11) fixed bin (26); 3 57 3 58 declare 1 eb_data_$short_slcall external, /* Impure. */ 3 59 2 short_nslcal fixed bin (26), 3 60 2 short_slcall (6) fixed bin (26); 3 61 3 62 declare 1 eb_data_$new_getlp external, /* Pure. */ 3 63 2 new_ngetlp fixed bin (26), 3 64 2 new_getlp (5) fixed bin (26); 3 65 3 66 3 67 declare 1 eb_data_$relocn external, /* Impure. */ 3 68 2 mxpbit (2) fixed bin (26), 3 69 2 nslbit (5) fixed bin (26), 3 70 2 mxcbit (11) fixed bin (26), 3 71 2 mxlbit (7) fixed bin (26), 3 72 2 mxsbit (2) fixed bin (26), 3 73 2 mslbit (6) fixed bin (26), 3 74 2 mrtbit (3) fixed bin (26), 3 75 2 merbit (11) fixed bin (26), 3 76 2 new_mrtbit (3) fixed bin (26), 3 77 2 new_mslbit (6) fixed bin (26), 3 78 2 new_nslbit (10) fixed bin (26), 3 79 2 short_mrtbit (3) fixed bin (26), 3 80 2 new_entbit (5) fixed bin (26), 3 81 2 short_nslbit (6) fixed bin (26), 3 82 2 new_getbit (5) fixed bin (26); 3 83 3 84 /* End of include file alm_prototypes.incl.pl1. */ 150 151 152 /* miscellaneous whole words for use with relocation processing */ 4 1 /* Begin include file alm_relocation_bits.incl.pl1. */ 4 2 /* Created 5 November 1970, R H Campbell. */ 4 3 /* Modified 19 November 1970, R H Campbell. */ 4 4 /* Last modified on 04/30/72 at 23:54:51 by R F Mabee. */ 4 5 4 6 declare (iabsol initial (0b), /* Absolute. */ 4 7 itext initial (10000b), /* Text. */ 4 8 imtext initial (10001b), /* Negative text. */ 4 9 ilink initial (10010b), /* Link segment. */ 4 10 imlink initial (10011b), /* Negative link segment. */ 4 11 ilkptr initial (10100b), /* Linkage pointer. */ 4 12 idefpt initial (10101b), /* Definitialion pointer. */ 4 13 isymbl initial (10110b), /* Symbol. */ 4 14 imsymb initial (10111b), /* Negative symbol. */ 4 15 ilblok initial (11000b), /* Linkage block. */ 4 16 imblok initial (11001b), /* Negative linkage block. */ 4 17 iselfr initial (11010b), /* Self relative. */ 4 18 iresv1 initial (11011b), /* Unused. */ 4 19 iresv2 initial (11100b), /* Unused. */ 4 20 iresv3 initial (11101b), /* Unused. */ 4 21 iresv4 initial (11110b), /* Unused. */ 4 22 iescap initial (11111b)) static fixed bin; /* Escape. */ 4 23 4 24 declare (iltext initial (10000000000000000000000b), /* glwrd (itext, 0) */ 4 25 illink initial (10010000000000000000000b), /* glwrd (ilink, 0) */ 4 26 ilmlnk initial (10011000000000000000000b), /* glwrd (imlink, 0) */ 4 27 ilsymb initial (10110000000000000000000b), /* glwrd (isymbl, 0) */ 4 28 ildefs initial (10101000000000000000000b)) static fixed bin (26); /* glwrd (idefpt, 0) */ 4 29 4 30 declare ibits (0: 2) static fixed bin initial (10000b, 10010b, 10110b); /* itext, ilink, isymbl */ 4 31 4 32 /* end alm_relocation_bits. */ 153 154 5 1 5 2 5 3 5 4 /* include file for CONCOM */ 5 5 5 6 declare 1 eb_data_$concom ext aligned, 5 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 5 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 5 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 5 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 5 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 5 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 5 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 5 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 5 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 5 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 5 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 5 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 5 19 5 20 /* end of the include file for CONCOM */ 155 156 6 1 /* Begin include file objnfo.incl.pl1. 6 2* Parameters saved for object map. 6 3* Last modified on 05/12/72 at 01:10:27 by R F Mabee. */ 6 4 6 5 6 6 /****^ HISTORY COMMENTS: 6 7* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 6 8* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 6 9* Modified to add definition count used to join blocks to the definition 6 10* section. 6 11* END HISTORY COMMENTS */ 6 12 6 13 declare 1 eb_data_$objnfo external static aligned, 6 14 2 (itxpc, ilkpc, istpc, idfpc, itxcnt, ilkcnt, istcnt, idfcnt) fixed bin (26) aligned, 6 15 2 (new_text_offset, new_definition_offset, new_link_offset, new_static_offset, new_symbol_offset) fixed bin (26) aligned, 6 16 2 (new_text_length, new_definition_length, new_link_length, new_static_length, new_symbol_length) fixed bin (26) aligned; 6 17 6 18 /* End of include file objnfo.incl.pl1. */ 157 158 159 /* common for symbol table header processing. */ 7 1 /* Include file sthedr.incl.pl1. 7 2* This file declares old and new versions of symbol table headers. 7 3* Last modified on 06/20/72 at 18:51:18 by R F Mabee. */ 7 4 7 5 7 6 7 7 /****^ HISTORY COMMENTS: 7 8* 1) change(88-08-02,JRGray), approve(88-08-05,MCR7952), 7 9* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 7 10* Modified to make area_offset externally available. This is part of 7 11* Symbol Table Support. 7 12* END HISTORY COMMENTS */ 7 13 7 14 7 15 /* Declarations for old object segment format symbol table header. */ 7 16 7 17 declare sthedr_$sthedr_ ext aligned; 7 18 7 19 declare (sthedr_$alm_creation_date, sthedr_$time_of_translation) ext fixed bin (71) aligned; 7 20 7 21 declare sthedr_$seg_name ext char (32) aligned; 7 22 7 23 declare 1 sthedr_$text_and_link_lengths ext aligned, 7 24 2 text_length bit (18) unaligned, 7 25 2 link_length bit (18) unaligned; 7 26 7 27 declare sthedr_$hdrlen ext fixed bin (26) aligned; 7 28 7 29 /* Declarations for new object segment format symbol table header. */ 7 30 7 31 declare new_sthedr_$new_sthedr_ ext aligned; 7 32 7 33 declare (new_sthedr_$alm_creation_date, new_sthedr_$time_of_translation) ext fixed bin (71) aligned; 7 34 7 35 declare new_sthedr_$alm_version_name ext char (32) aligned; 7 36 7 37 declare new_sthedr_$user_id ext char (32) aligned; 7 38 7 39 declare new_sthedr_$comment ext char (64) aligned; 7 40 7 41 declare 1 new_sthedr_$text_and_link_boundaries ext aligned, 7 42 2 text_boundary bit (18) unaligned, 7 43 2 link_boundary bit (18) unaligned; 7 44 7 45 declare 1 new_sthedr_$source_and_area ext aligned, 7 46 2 source_map_offset bit (18) unaligned, 7 47 2 area_offset bit (18) unaligned; 7 48 7 49 declare 1 new_sthedr_$block_size ext aligned, 7 50 2 padding bit (18) unaligned, 7 51 2 block_size bit (18) unaligned; 7 52 7 53 declare 1 new_sthedr_$rel_bits_ptrs ext aligned, 7 54 2 padding bit (18) unaligned, 7 55 2 rel_text bit (18) unaligned, 7 56 2 rel_def bit (18) unaligned, 7 57 2 rel_link bit (18) unaligned, 7 58 2 rel_symbol bit (18) unaligned, 7 59 2 other_bits bit (18) unaligned; 7 60 7 61 declare 1 new_sthedr_$truncate_info ext aligned, 7 62 2 padding bit (18) unaligned, 7 63 2 default_truncate bit (18) unaligned, 7 64 2 optional_truncate bit (18) unaligned, 7 65 2 other_bits bit (18) unaligned; 7 66 7 67 declare new_sthedr_$hdrlen ext fixed bin (26) aligned; 7 68 7 69 declare new_sthedr_$relocinfo ext aligned; 7 70 7 71 /* End of the include file sthedr.incl.pl1 */ 160 161 8 1 /* Begin include file varcom.incl.pl1. */ 8 2 /* RHG added new variables 9/7/70. */ 8 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 8 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 8 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 8 6 8 7 declare 1 eb_data_$varcom external aligned, 8 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 8 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 8 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 8 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 8 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 8 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 8 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 8 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 8 16 2 source_printed bit(1) aligned, 8 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 8 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 8 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 8 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 8 21 text_section_length) fixed binary (26), 8 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 8 23 2 symbol_tree_rel fixed binary (26); 8 24 8 25 /* End of the include file varcom.incl.pl1. */ 162 163 9 1 /* Begin include file alm_options.incl.pl1. 9 2* This file defines the external cells used to pass options to the various modules of the assembler. 9 3* Created on 03/17/72 at 01:39:44 by R F Mabee. 9 4* Last modified on 07/23/72 at 22:02:34 by R F Mabee. */ 9 5 9 6 declare 1 eb_data_$alm_options external static aligned, 9 7 2 tnewcall fixed binary, /* Use new call/save/return operators. */ 9 8 2 tnewmachine fixed binary, /* Use followon hardware instruction set. */ 9 9 2 tnewobject fixed binary, /* Use new object segment format. */ 9 10 2 tcheckcompatibility fixed binary, /* Check for instructions changed in followon. */ 9 11 2 tquietsw fixed binary, /* Suppress online printout of error messages. */ 9 12 2 tfirstreftrap fixed binary, /* A first reference trap procedure was given. */ 9 13 2 tnoxref fixed binary; /* Zero if cross reference if to be produced. */ 9 14 9 15 /* End of include file alm_options.incl.pl1 */ 164 165 166 /* END OF DECLARATIONS */ 167 /* */ 168 /* POST_PASS_TWO PROGRAM STARTS HERE. */ 169 if first_time /* in the process */ then 170 do; /* initialize the labels & stuff */ 171 control_1020 (1) = label_1030; /* Normal link pair. */ 172 control_1020 (2) = label_1040; /* Entry point. */ 173 control_1020 (3) = label_1070; /* Call out. */ 174 control_1030 (1) = label_1031; /* Type 1 link: <*section>|x */ 175 control_1030 (2) = label_1032; /* Type 2 link: base|[symbol] */ 176 control_1030 (3) = label_1033; /* Type 3 link: |x */ 177 control_1030 (4) = label_1034; /* Type 4 link: |[symbol] */ 178 control_1030 (5) = label_1035; /* Type 5 link: <*section>|[symbol] */ 179 first_time = "0"b; 180 end; 181 182 if dlclst > 0 then do; /* calculate length of explicit definitions */ 183 curlc = dlclst; 184 idfpc = 0; 185 j = pointer(eb_data_$lavptr, curlc); 186 do while(j->location_counter_bead.right_join ^= "0"b); 187 idfpc = idfpc + convert(idfpc, j->location_counter_bead.max_value); 188 curlc = convert(curlc, j->location_counter_bead.right_join); 189 j = pointer(eb_data_$lavptr, curlc); 190 end; 191 end; 192 /* part 2 of postp2. */ 193 /* Put out terminal information in the text segment. */ 194 /* output order is transfer vector, error call, and literals. */ 195 /* In addition if (tmvdef), all definitions are preassigned. */ 196 lnkorg = convert (lnkorg, pointer (eb_data_$lavptr, lpsect) -> location_counter_bead.origin); 197 if (tprot ^= 0) then 198 do; 199 call prlst_$prlst_ (ff_TRANSFER_VECTOR_nl); 200 pc = 0; 201 curlc = lptv; 202 j = pointer (eb_data_$lavptr, tvlst); 203 do while (rel (j)); 204 tinhib = convert (tinhib, j -> transfer_vector_bead.inhibit); 205 val = convert (val, j -> transfer_vector_bead.location); 206 k = pointer (eb_data_$lavptr, j -> transfer_vector_bead.location_counter); 207 if rel (k) then 208 val = val + fixed (k -> location_counter_bead.origin, 18); 209 call putout_$putwrd (pc, utils_$makins (0, (val), mtra, 0, 0), i642, (iltext)); 210 j = pointer (eb_data_$lavptr, j -> transfer_vector_bead.next); 211 end; 212 /* put out error call. */ 213 tinhib = 0; 214 if (tcall ^= 0) then 215 do; 216 pc = 0; 217 curlc = lpcall; 218 call prlst_$prlst_ (ff_ERROR_RETURN_CALL_nl); 219 call litevl_$litasn (argout, dzero (1), 2, 0); 220 slcall (3) = utils_$makins (0, argout + litorg, meapap, 0, 0); 221 nslbit (3) = iltext; 222 calblk = lstman_$blkasn (4, lstman_$namasn (smxer (1)), lstman_$namasn (sretrn (1)), 0); 223 slcall (5) = utils_$makins (lp, lstman_$lnkasn (calblk, 0, 0, 0) + lnkorg, mtra, 1, mri); 224 nslbit (5) = ilkptr * twop18; /* glpl_$glwrd (ilkptr, 0) */ 225 call putout_$putlst (pc, slcall (1), i642, nslcal, nslbit (1)); 226 call putout_$putwrd (pc, 0, i642, 0); 227 end; 228 end; 229 230 /* For new object segment format, put out text-section entry sequences. 231* These merely call an operator, because the full entry sequence is fairly long. */ 232 233 if tnewobject ^= 0 then do; 234 call alm_definitions_$fix_entries (); 235 header_done = "0"b; 236 j = pointer (eb_data_$lavptr, lnklst); /* Chain of links, entries, etc. */ 237 curlc = lpentries; 238 pc = 0; 239 do while (rel (j)); 240 if j -> entry_bead.kind = bit (binary (2, 18), 18) then do; 241 if ^ header_done then do; 242 call prlst_$prlst_ (ff_ENTRY_SEQUENCES_nl); 243 header_done = "1"b; 244 end; 245 tinhib = convert (tinhib, j -> entry_bead.inhibit); 246 ientpc = pointer (eb_data_$lavptr, j -> entry_bead.transfer_vector); 247 ioffst = convert (ioffst, ientpc -> transfer_vector_bead.location); 248 ientlc = pointer (eb_data_$lavptr, ientpc -> transfer_vector_bead.location_counter); 249 ival = fixed (ientlc -> location_counter_bead.origin, 18) + ioffst; 250 251 new_entlst (1) = fixed (j -> entry_bead.link_no, 18) * twop18; 252 new_entlst (3) = utils_$makins (0, ival, new_entlst (3), 0, 0); 253 call putout_$putlst (pc, new_entlst (1), i642, new_nentls, new_entbit (1)); 254 end; 255 j = pointer (eb_data_$lavptr, j -> entry_bead.next); 256 end; 257 end; 258 259 /* punch out literals in order of definition. */ 260 if pointer (eb_data_$lavptr, lplit) -> location_counter_bead.value then 261 do; 262 curlc = lplit; 263 call prlst_$prlst_ (ff_LITERALS_nl); 264 j = pointer (eb_data_$lavptr, litlst); 265 do while (rel (j)); 266 pc = convert (pc, j -> literal_bead.location); 267 nwrds = convert (nwrds, j -> literal_bead.size); 268 lcptr = pointer (eb_data_$lavptr, j -> literal_bead.location_counters); 269 if rel (lcptr) then /* */ 270 label_280a: do l = 1 to nwrds; 271 lcl = pointer (eb_data_$lavptr, lcptr -> location_counters (l).left); 272 lcr = pointer (eb_data_$lavptr, lcptr -> location_counters (l).right); 273 ileft = convert (ileft, j -> literal_bead.words (l).left); 274 iright = convert (iright, j -> literal_bead.words (l).right); 275 rleft = 0; 276 rright = 0; 277 if rel (lcl) then 278 do; 279 ileft = ileft + fixed (lcl -> location_counter_bead.origin, 18); 280 rleft = ibits (fixed (lcl -> location_counter_bead.section, 18)); 281 end; 282 if rel (lcr) then 283 do; 284 iright = iright + fixed (lcr -> location_counter_bead.origin, 18); 285 rright = ibits (fixed (lcr -> location_counter_bead.section, 18)); 286 end; 287 j -> literal_bead.words (l).left = convert (literal_bead.words (1).left, ileft); 288 j -> literal_bead.words (l).right = convert (literal_bead.words (1).right, iright); 289 rblock (l) = rleft * twop18 + rright; /* glpl_$glwrd (rleft, rright) */ 290 end label_280a; 291 else /* */ 292 label_211a: do l = 1 to nwrds; 293 rblock (l) = 0; 294 end label_211a; 295 call putout_$putblk (pc, addr (j -> literal_bead.words), i66, nwrds, addr (rblock)); 296 j = pointer (eb_data_$lavptr, j -> literal_bead.next); 297 end; 298 end; 299 else 300 call prlst_$prlst_ (nl_NO_LITERALS_nl); 301 302 itxpc, deforg = fixed (pointer (eb_data_$lavptr, lplit) -> location_counter_bead.origin, 18) + litc; 303 304 /* assign locations to definitions, if required. */ 305 if (tmvdef = 0) then 306 do; 307 new_text_offset = 0; 308 new_text_length, new_definition_offset = deforg; 309 pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin = bit (fixed (deforg, 18), 18); 310 call alm_definitions_$emit_definitions (lnkorg, rlkdef, rsydef); /* Put out the definitions. */ 311 new_definition_length = defc; 312 /* save the length of the text segment - slave procedure. */ 313 itxlen = defc + fixed (pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin, 18); 314 end; 315 else 316 do; 317 pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin = 318 bit (fixed (fixed (pointer (eb_data_$lavptr, lpsect) -> location_counter_bead.origin, 18) + lnkno, 18), 18); 319 call alm_definitions_$assign_definitions; /* Merely assign definitions for later output. */ 320 itxlen = fixed (pointer (eb_data_$lavptr, lplit) -> location_counter_bead.origin, 18) + litc; 321 end; 322 323 /* force the linkage to begin on an even word boundary */ 324 if (mod (itxlen + idfpc, 2) ^= 0) then do; 325 curlc = lptext; 326 call putout_$putwrd (itxlen, 0, i66, 0); 327 /* The pad word is part of the defn section only when there is 328* more stuff to be added to the defn section. */ 329 if idfpc > 0 then new_definition_length = new_definition_length + 1; 330 end; 331 /* Put out links, entries, and call - outs. */ 332 /* comment, initialize, and generate the eight word header. */ 333 if tnewobject = 0 then itxpc = itxlen; 334 text_section_length = itxlen; 335 call prlst_$prlst_ (ff_LINKAGE_INFORMATION_nl); 336 tpulnk = 1; 337 if eb_data_$separate_static 338 then lnkc = eb_data_$stat_len; 339 else lnkc = 0; 340 curlc = lphead; 341 if pointer (eb_data_$lavptr, lphead) -> location_counter_bead.value then 342 do; 343 call prnter_$prnter_ ("alm: fatal processing error in POSTP2 in the assembler"); 344 call prnter_$abort1; 345 end; 346 tinhib = 0; 347 /* put def ptr in header. */ 348 if (tmvdef = 0) then 349 do; 350 ldef = 0; 351 words (1) = 0; 352 end; 353 else 354 do; 355 ldef = defcnt; 356 words (1) = mri; 357 end; 358 lnklen = lnkno + ldef + lnkorg; 359 words (2) = convert (words (2), pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin) * twop18; 360 lword (1) = 0; 361 lword (2) = iltext; 362 if (tmvdef ^= 0) then 363 lword (2) = illink; 364 365 if tfirstreftrap ^= 0 then do; 366 words (2) = words (2) + lnklen; 367 lword (2) = lword (2) + ilink; 368 lnklen = lnklen + 3; 369 lnkno = lnkno + 3; 370 end; 371 call putout_$putlst (lnkc, words (1), i66, 2, lword (1)); 372 /* nxt blk ptr and pre blk ptr are 0 since only one */ 373 /* linkage block is currently produced by eplbsa. */ 374 words (1) = 0; 375 words (2) = 0; 376 words (3) = 0; 377 words (4) = 0; 378 call putout_$putlst (lnkc, words (1), i66, 4, words (1)); 379 /* put loc of links and block length in 7th word of header and */ 380 /* segment length in 8th word. */ 381 words (1) = lnkorg * twop18 + lnklen; 382 lword (1) = illink + ilink; 383 if ^ eb_data_$separate_static 384 then words (2) = lnkorg - 8; 385 else words (2) = eb_data_$stat_len; 386 statlen = words (2); 387 lword (2) = ilink; 388 call putout_$putlst (lnkc, words (1), i66, 2, lword (1)); 389 390 /* put out links, entries, and call - outs. */ 391 392 if eb_data_$separate_static 393 then lnkc = eb_data_$stat_len; 394 else lnkc = 0; 395 curlc = lpsect; 396 l = lnkorg; 397 j = pointer (eb_data_$lavptr, lnklst); 398 label_1020: 399 do while (rel (j)); 400 go to control_1020 (fixed (j -> link_bead.kind, 18)); 401 402 /* type 1 in list, normal link pair, generate fi pair. */ 403 /* print proper names according to the type no. of the link. */ 404 /* see mspm bd.7.01 for a discussion of the 5 link types. */ 405 label_1030: tinhib = 0; 406 /* print the symbols corresponding to the link types. */ 407 /* but ignoring the internal expression values of the link. */ 408 iexp = pointer (eb_data_$lavptr, pointer (eb_data_$lavptr, 409 j -> link_bead.expression) -> expression_bead.type_pair); 410 iexp1 = convert (iexp1, iexp -> type_pair_bead.segment); 411 iname = addr (eb_data_$anames (2 * iexp1)); 412 isym = pointer (eb_data_$lavptr, pointer (eb_data_$lavptr, 413 iexp -> type_pair_bead.symbol) -> name_bead.name); 414 if isym = eb_data_$lavptr then 415 isym = addr (eb_data_$blanks); 416 ilnkno = convert (ilnkno, iexp -> type_pair_bead.type); /* Extract the type no. of the link. */ 417 go to control_1030 (ilnkno); /* Branch on the link type. */ 418 419 /* type 1 link, print *name only. */ 420 label_1031: isym = addr (eb_data_$blanks); 421 go to label_1037; 422 423 /* type 2 link, print base and symbol. */ 424 label_1032: iname = addr (eb_data_$bases (divide (iexp1, 32768, 26, 0))); 425 go to label_1037; 426 427 /* type 3 link, print segment name only. */ 428 label_1033: isym = addr (eb_data_$blanks); 429 /* type 4 link, print segment and symbol */ 430 label_1034: iname = pointer (eb_data_$lavptr, pointer (eb_data_$lavptr, iexp1) -> name_bead.name); 431 label_1035: /* type 5 link, print *name and symbol. */ 432 label_1037: call prnam_$prnam2 (iname, isym); /* Print the segment and symbol characters for the fi pair. */ 433 words (1) = - l * twop18 + mfi; 434 lword (1) = imblok * twop18; 435 words (2) = fixed (pointer (eb_data_$lavptr, 436 j -> link_bead.expression) -> expression_bead.location || j -> link_bead.modifier, 18); 437 lword (2) = ildefs; 438 /* put out the binary fi word pair. */ 439 call putout_$putlst (lnkc, words (1), i642, 2, lword (1)); 440 l = l + 2; 441 go to label_1080; 442 443 /* type 2, entry point, generate entry interlude. */ 444 /* print entry sequence */ 445 label_1040: if tnewobject ^= 0 then goto label_1080; /* Entries already processed. */ 446 call prnam_$prnam_ (addr (eb_data_$entseq)); 447 tinhib = convert (tinhib, j -> entry_bead.inhibit); 448 if (tprot = 0) then 449 do; 450 ientpc = pointer (eb_data_$lavptr, j -> entry_bead.transfer_vector); 451 ioffst = convert (ioffst, ientpc -> transfer_vector_bead.location); 452 ientlc = pointer (eb_data_$lavptr, ientpc -> transfer_vector_bead.location_counter); 453 ival = fixed (ientlc -> location_counter_bead.origin, 18) + ioffst; 454 words (1) = utils_$makins (0, - l, meaplp, 0, mpc); 455 words (2) = utils_$makins (0, 3, eb_data_$maos, 0, mpc); 456 words (3) = utils_$makins (0, ival, eb_data_$meax7, 0, 0); 457 words (4) = utils_$makins (0, fixed (j -> entry_bead.link_no, 18) - l - 3 + lnkorg, mtra, 0, mpci); 458 lword (1) = imlink * twop18; 459 lword (2) = iselfr * twop18; 460 /* extract the segment number to determine proper relocation. */ 461 isegno = convert (isegno, ientlc -> location_counter_bead.section); 462 itemp = ibits (isegno); 463 lword (3) = itemp * twop18; 464 lword (4) = lword (2); 465 call putout_$putlst (lnkc, words (1), i642, 4, lword (1)); 466 words (1) = 0; 467 words (2) = 0; 468 lword (1) = 0; 469 lword (2) = 0; 470 call putout_$putlst (lnkc, words (1), i66, 2, lword (1)); /* changed to i66 to keep inhibit bit off */ 471 l = l + 6; 472 end; 473 else 474 do; 475 /* mastermode or execute only entry sequence */ 476 call putout_$putwrd (lnkc, 477 utils_$makins (0, (fixed (j -> entry_bead.transfer_vector_no, 18)), eb_data_$meax0, 0, 0), i642, 0); 478 l = l + 1; 479 words (1) = utils_$makins (0, - l, meaplp, 0, mpc); 480 words (2) = utils_$makins (0, 2, eb_data_$maos, 0, mpc); 481 words (3) = utils_$makins (0, fixed (j -> entry_bead.link_no, 18) - l - 2 + lnkorg, mtra, 0, mpci); 482 lword (1) = imlink * twop18; 483 lword (2) = iselfr * twop18; 484 lword (3) = lword (2); 485 call putout_$putlst (lnkc, words (1), i642, 3, lword (1)); 486 call putout_$putwrd (lnkc, 0, i66, 0); 487 l = l + 4; 488 call putout_$putwrd (lnkc, 0, i66, 0); 489 l = l + 1; 490 end; 491 go to label_1080; 492 493 /* type 3, call - out, in mastermode put out call interlude. */ 494 /* print call sequence comment; */ 495 label_1070: call prnam_$prnam_ (addr (eb_data_$calseq)); 496 words (1) = utils_$makins (0, fixed (j -> call_out_bead.transfer_vector_no, 18), eb_data_$meax0, 0, 0); 497 words (2) = utils_$makins (0, fixed (j -> call_out_bead.type_pair, 18) - l - 1 + lnkorg, mtra, 0, mpci); 498 lword (1) = 0; 499 lword (2) = iselfr * twop18; 500 tinhib = convert (tinhib, j -> call_out_bead.inhibit); 501 call putout_$putlst (lnkc, words (1), i642, 2, lword (1)); 502 l = l + 2; 503 /* link through link list. */ 504 label_1080: j = pointer (eb_data_$lavptr, j -> link_bead.next); 505 end label_1020; 506 507 /* First-reference trap array goes at end of links. */ 508 509 if tfirstreftrap ^= 0 then do; 510 call prlst_$prlst_ (nl_FIRST_REFERENCE_TRAP_LIST_nl); 511 words (1) = 1; /* Declaration version. */ 512 words (2) = 1; /* Number of trap pointers. */ 513 words (3) = first_ref_trap_proc_linkno * twop18 + first_ref_trap_arg_linkno; 514 lword (1), lword (2) = 0; 515 if first_ref_trap_arg_linkno = 0 then lword (3) = illink; 516 else lword (3) = illink + ilink; 517 call putout_$putlst (lnkc, words (1), i66, 3, lword (1)); 518 end; 519 520 /* end of links, decide to put out definitions or pointer. */ 521 522 if (tmvdef ^= 0) then /* */ 523 call alm_definitions_$emit_definitions (lnkorg, rlkdef, rsydef); /* Put out the definitions now. */ 524 /* Check for phase error in linkage file. */ 525 ilkpc = lnklen; 526 if (tmvdef ^= 0) then 527 lnkc = lnkc + defc; 528 if (lnkc ^= (lnkno + ldef) + eb_data_$stat_len) then 529 do; 530 call prnter_$prnter_ ("Phase error in the assembler while generating the linkage segment."); 531 call prnter_$abort1; 532 end; 533 534 if ^ eb_data_$separate_static 535 then eb_data_$stat_len = statlen; 536 537 /* force linkage to be an even length */ 538 539 if (mod (ilkpc, 2) ^= 0) then 540 do; 541 call putout_$putwrd (lnkc, 0, i66, 0); 542 lnklen = lnklen + 1; 543 ilkpc = ilkpc + 1; 544 end; 545 call prlst_$prlst_ (ff_SYMBOL_INFORMATION_nl); 546 ilc = curlc; 547 curlc = lpst; 548 /* assembler produced header always */ 549 /* begins following joined data of symbol segment. */ 550 ispc = fixed (pointer (eb_data_$lavptr, lprtx) -> location_counter_bead.origin, 18); 551 if mod (ispc, 2) ^= 0 then ispc = ispc + 1; 552 call prlst_$prlst_ (SYMBOL_TABLE_HEADER_nl); 553 /* if the symbol table header is changed */ 554 /* then the following calls must be */ 555 /* changed accordingly. */ 556 /* complete the symbol table header */ 557 /* store the text length and linkage length */ 558 sthedr_$text_and_link_lengths.text_length = bit (fixed (itxlen, 18), 18); 559 sthedr_$text_and_link_lengths.link_length = bit (fixed (lnklen, 18), 18); 560 if tnewobject ^= 0 then do; 561 call alm_symtab_$count_words (symtab_words); 562 optional_truncate = bit (fixed (ispc + new_sthedr_$hdrlen, 18), 18); 563 pointer (eb_data_$lavptr, lprtx) -> location_counter_bead.origin, rel_text, default_truncate = 564 bit (fixed (fixed (optional_truncate, 18) + symtab_words, 18), 18); 565 text_boundary = bit (fixed (itxtmod, 18), 18); 566 link_boundary = bit (fixed (ilnkmod, 18), 18); 567 end; 568 else pointer (eb_data_$lavptr, lprtx) -> location_counter_bead.origin = bit (fixed (ispc + sthedr_$hdrlen, 18), 18); 569 570 call putxt_$txtcnt (val); /* Count relocation bits. */ 571 if tnewobject = 0 then if tmvdef = 0 then val = val + 8; /* Adjust for rlkdef, rsydef output later. */ 572 tpc = convert (tpc, pointer (eb_data_$lavptr, lprtx) -> location_counter_bead.origin); 573 /* call pusmb_$pusmb_ (tpc, val, 0); DONE BY PAKBIT. */ 574 itxcnt = val; 575 nwrds = divide (val + 35, 36, 26, 0) + 1; 576 if tnewobject ^= 0 then nwrds = nwrds + 1; 577 iaddr = nwrds + fixed (pointer (eb_data_$lavptr, lprtx) -> location_counter_bead.origin, 18); 578 pointer (eb_data_$lavptr, lprlk) -> location_counter_bead.origin = 579 bit (fixed (iaddr, 18), 18); 580 581 if tnewobject = 0 then if tmvdef = 0 then 582 call putxt_$putxt_ (rlkdef, iaddr * twop18 + 2, ilsymb); 583 else /* */ 584 call pulnk_$pulnk_ (rlkdef, iaddr * twop18 + 2, ilsymb); 585 else rel_link = bit (fixed (iaddr - ispc, 18), 18); 586 587 call pulnk_$lnkcnt (val); 588 if (tmvdef ^= 0) then 589 val = val + 4; 590 tpc = convert (tpc, pointer (eb_data_$lavptr, lprlk) -> location_counter_bead.origin); 591 /* call pusmb_$pusmb_ (tpc, val, 0); DONE BY PAKBIT. */ 592 ilkcnt = val; 593 nwrds = divide (val + 35, 36, 26, 0) + 1; 594 if tnewobject ^= 0 then nwrds = nwrds + 1; 595 iaddr = iaddr + nwrds; 596 pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin = 597 bit (fixed (iaddr, 18), 18); 598 599 if tnewobject = 0 then if tmvdef = 0 then 600 call putxt_$putxt_ (rsydef, iaddr * twop18 + 2, ilsymb); 601 else /* */ 602 call pulnk_$pulnk_ (rsydef, iaddr * twop18 + 2, ilsymb); 603 else rel_def = bit (fixed (iaddr - ispc, 18), 18); 604 605 l = itxpc; /* l(def) = l(def+text)-l(text)+l(exp def) */ 606 itxpc = itxpc + new_definition_length; 607 call putxt_$txtcnt(idfcnt); 608 itxpc = l; /* restore value of itxpc */ 609 call putxt_$txtcnt(val); 610 l = idfcnt - val; /* l(def+text) - l(text) */ 611 call pudef_$defcnt(val); /* calculate length of reloc info for definition section */ 612 val = val + l; 613 if (tmvdef ^= 0) then 614 val = val + 4; 615 tpc = convert (tpc, pointer (eb_data_$lavptr, lpdefs) -> location_counter_bead.origin); 616 /* call pudef_$pudef_ (tpc, val, 0); DONE BY PAKBIT. */ 617 idfcnt = val; 618 nwrds = divide (val + 35, 36, 26, 0) + 1; 619 if tnewobject ^= 0 then nwrds = nwrds + 1; 620 iaddr = iaddr + nwrds; 621 pointer (eb_data_$lavptr, lprst) -> location_counter_bead.origin = 622 bit (fixed (iaddr, 18), 18); 623 624 if tnewobject = 0 then if tmvdef = 0 then 625 call putxt_$putxt_ (rsydef, iaddr * twop18 + 2, ilsymb); 626 else /* */ 627 call pulnk_$pulnk_ (rsydef, iaddr * twop18 + 2, ilsymb); 628 else rel_symbol = bit (fixed (iaddr - ispc, 18), 18); 629 630 new_sthedr_$block_size.block_size = 631 bit (fixed (iaddr - ispc + divide (fixed (default_truncate, 18) + 17, 18, 17, 0) + 2, 18), 18); 632 /* *** ASSUMING all absolute relocation for symbol header. *** */ 633 634 ilc = curlc; 635 curlc = lpst; 636 if tnewobject = 0 then call putout_$putblk (ispc, addr (sthedr_$sthedr_), i66, sthedr_$hdrlen, null ()); 637 else do; 638 call putout_$putblk (ispc, addr (new_sthedr_$new_sthedr_), i66, new_sthedr_$hdrlen, addr (new_sthedr_$relocinfo)); 639 call alm_symtab_$emit (ispc); 640 end; 641 istpc = ispc; 642 curlc = ilc; 643 call pusmb_$symcnt (itemp); 644 end postp2_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0929.5 postp2_.pl1 >spec>install>1170>postp2_.pl1 145 1 11/12/86 1103.0 alm_lc.incl.pl1 >ldd>include>alm_lc.incl.pl1 147 2 01/12/79 1050.3 alm_list_beads.incl.pl1 >ldd>include>alm_list_beads.incl.pl1 150 3 10/21/74 1243.0 alm_prototypes.incl.pl1 >ldd>include>alm_prototypes.incl.pl1 153 4 10/21/74 1243.0 alm_relocation_bits.incl.pl1 >ldd>include>alm_relocation_bits.incl.pl1 155 5 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.incl.pl1 157 6 11/12/86 1103.0 objnfo.incl.pl1 >ldd>include>objnfo.incl.pl1 160 7 10/17/88 0926.0 sthedr.incl.pl1 >ldd>include>sthedr.incl.pl1 162 8 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 164 9 05/06/74 1740.2 alm_options.incl.pl1 >ldd>include>alm_options.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. SYMBOL_TABLE_HEADER_nl 000010 internal static char(25) initial dcl 77 set ref 552* alm_definitions_$assign_definitions 000170 constant entry external dcl 107 ref 319 alm_definitions_$emit_definitions 000200 constant entry external dcl 112 ref 310 522 alm_definitions_$fix_entries 000172 constant entry external dcl 108 ref 234 alm_symtab_$count_words 000174 constant entry external dcl 109 ref 561 alm_symtab_$emit 000176 constant entry external dcl 110 ref 639 argout 000100 automatic fixed bin(26,0) dcl 61 set ref 219* 220 block_size 0(18) 000330 external static bit(18) level 2 packed packed unaligned dcl 7-49 set ref 630* calblk 000101 automatic fixed bin(26,0) dcl 61 set ref 222* 223* call_out_bead based structure level 1 dcl 2-11 control_1020 000100 internal static label variable local array dcl 136 set ref 171* 172* 173* 400 control_1030 000114 internal static label variable local array dcl 137 set ref 174* 175* 176* 177* 178* 417 convert builtin function dcl 142 ref 187 188 196 204 205 245 247 266 267 273 274 287 288 359 410 416 447 451 461 500 572 590 615 curlc 000250 external static fixed bin(26,0) level 2 dcl 1-15 set ref 183* 185 188* 188 189 201* 217* 237* 262* 325* 340* 395* 546 547* 634 635* 642* default_truncate 0(18) 000334 external static bit(18) level 2 packed packed unaligned dcl 7-61 set ref 563* 630 defc 41 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 311 313 526 defcnt 42 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 355 deforg 000200 automatic fixed bin(17,0) dcl 140 set ref 302* 308 309 dlclst 5 000254 external static fixed bin(26,0) level 2 dcl 1-22 ref 182 183 dzero 147 000312 external static fixed bin(26,0) array level 2 dcl 5-6 set ref 219* eb_data_$alm_options 000344 external static structure level 1 dcl 9-6 eb_data_$anames 000142 external static fixed bin(26,0) array dcl 99 set ref 411 eb_data_$bases 000144 external static fixed bin(26,0) array dcl 99 set ref 424 eb_data_$blanks 000146 external static fixed bin(26,0) array dcl 99 set ref 414 420 428 eb_data_$calseq 000150 external static fixed bin(26,0) array dcl 99 set ref 495 495 eb_data_$concom 000312 external static structure level 1 dcl 5-6 eb_data_$curlc 000250 external static structure level 1 unaligned dcl 1-15 eb_data_$entseq 000152 external static fixed bin(26,0) array dcl 99 set ref 446 446 eb_data_$lavptr 000162 external static pointer dcl 103 ref 185 189 196 202 206 210 236 246 248 255 260 264 268 271 272 296 302 309 313 317 317 320 341 359 397 408 408 412 412 414 430 430 435 450 452 504 550 563 568 572 577 578 590 596 615 621 eb_data_$lccall 000252 external static structure level 1 unaligned dcl 1-18 eb_data_$lccom 000254 external static structure level 1 unaligned dcl 1-22 eb_data_$lcdefs 000256 external static structure level 1 unaligned dcl 1-30 eb_data_$lcentries 000260 external static structure level 1 unaligned dcl 1-34 eb_data_$lchead 000262 external static structure level 1 unaligned dcl 1-38 eb_data_$lclit 000264 external static structure level 1 unaligned dcl 1-42 eb_data_$lcrlk 000266 external static structure level 1 unaligned dcl 1-46 eb_data_$lcrst 000270 external static structure level 1 unaligned dcl 1-50 eb_data_$lcrtx 000272 external static structure level 1 unaligned dcl 1-54 eb_data_$lcsect 000274 external static structure level 1 unaligned dcl 1-58 eb_data_$lcst 000276 external static structure level 1 unaligned dcl 1-62 eb_data_$lctext 000300 external static structure level 1 unaligned dcl 1-66 eb_data_$lctv 000302 external static structure level 1 unaligned dcl 1-70 eb_data_$maos 000154 external static fixed bin(26,0) dcl 99 set ref 455* 480* eb_data_$meax0 000156 external static fixed bin(26,0) dcl 99 set ref 476* 476* 496* eb_data_$meax7 000160 external static fixed bin(26,0) dcl 99 set ref 456* eb_data_$new_entlst 000306 external static structure level 1 unaligned dcl 3-50 eb_data_$objnfo 000314 external static structure level 1 dcl 6-13 eb_data_$relocn 000310 external static structure level 1 unaligned dcl 3-67 eb_data_$separate_static 000166 external static bit(1) packed unaligned dcl 105 ref 337 383 392 534 eb_data_$slcall 000304 external static structure level 1 unaligned dcl 3-10 eb_data_$stat_len 000164 external static fixed bin(26,0) dcl 104 set ref 337 385 392 528 534* eb_data_$varcom 000342 external static structure level 1 dcl 8-7 entry_bead based structure level 1 dcl 2-18 expression 1 based bit(18) level 2 packed packed unaligned dcl 2-34 ref 408 435 expression_bead based structure level 1 dcl 2-23 ff_ENTRY_SEQUENCES_nl 000062 internal static char(22) initial dcl 92 set ref 242* ff_ERROR_RETURN_CALL_nl 000017 internal static char(23) initial dcl 79 set ref 218* ff_LINKAGE_INFORMATION_nl 000025 internal static char(27) initial dcl 81 set ref 335* ff_LITERALS_nl 000034 internal static char(15) initial dcl 83 set ref 263* ff_SYMBOL_INFORMATION_nl 000045 internal static char(25) initial dcl 88 set ref 545* ff_TRANSFER_VECTOR_nl 000054 internal static char(22) initial dcl 90 set ref 199* first_ref_trap_arg_linkno 460 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 513 515 first_ref_trap_proc_linkno 457 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 513 first_time 000140 internal static bit(1) initial packed unaligned dcl 138 set ref 169 179* fixed builtin function dcl 142 ref 207 249 251 279 280 284 285 302 309 313 317 317 320 400 435 453 457 476 476 481 496 496 497 550 558 559 562 563 563 565 566 568 577 578 585 596 603 621 628 630 630 header_done 000177 automatic bit(1) dcl 75 set ref 235* 241 243* i642 133 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 209* 225* 226* 253* 439* 465* 476* 485* 501* i66 135 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 295* 326* 371* 378* 388* 470* 486* 488* 517* 541* 636* 638* iaddr 000147 automatic fixed bin(18,0) dcl 67 set ref 577* 578 581 583 585 595* 595 596 599 601 603 620* 620 621 624 626 628 630 ibits 000000 constant fixed bin(17,0) initial array dcl 4-30 ref 280 285 462 idfcnt 7 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 607* 610 617* idfpc 3 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 184* 187* 187 187 324 329 ientlc 000150 automatic pointer dcl 68 set ref 248* 249 452* 453 461 ientpc 000152 automatic pointer dcl 68 set ref 246* 247 248 450* 451 452 iexp 000154 automatic pointer dcl 69 set ref 408* 410 412 416 iexp1 000102 automatic fixed bin(26,0) dcl 61 set ref 410* 410 411 424 430 ilc 000103 automatic fixed bin(26,0) dcl 61 set ref 546* 634* 642 ildefs constant fixed bin(26,0) initial dcl 4-24 ref 437 ileft 000156 automatic fixed bin(18,0) dcl 70 set ref 273* 273 279* 279 287 ilink constant fixed bin(17,0) initial dcl 4-6 ref 367 382 387 516 ilkcnt 5 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 592* ilkpc 1 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 525* 539 543* 543 ilkptr constant fixed bin(17,0) initial dcl 4-6 ref 224 illink constant fixed bin(26,0) initial dcl 4-24 ref 362 382 515 516 ilnkmod 453 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 566 ilnkno 000104 automatic fixed bin(26,0) dcl 61 set ref 416* 416 417 ilsymb 000141 internal static fixed bin(26,0) initial dcl 4-24 set ref 581* 583* 599* 601* 624* 626* iltext constant fixed bin(26,0) initial dcl 4-24 ref 209 221 361 imblok constant fixed bin(17,0) initial dcl 4-6 ref 434 imlink constant fixed bin(17,0) initial dcl 4-6 ref 458 482 iname 000162 automatic pointer dcl 71 set ref 411* 424* 430* 431* inhibit 2(18) based bit(18) level 2 in structure "entry_bead" packed packed unaligned dcl 2-18 in procedure "postp2_" ref 245 447 inhibit 2(18) based bit(18) level 2 in structure "transfer_vector_bead" packed packed unaligned dcl 2-68 in procedure "postp2_" ref 204 inhibit 4(18) based bit(18) level 2 in structure "call_out_bead" packed packed unaligned dcl 2-11 in procedure "postp2_" ref 500 ioffst 000105 automatic fixed bin(26,0) dcl 61 set ref 247* 247 249 451* 451 453 iright 000157 automatic fixed bin(18,0) dcl 70 set ref 274* 274 284* 284 288 isegno 000106 automatic fixed bin(26,0) dcl 61 set ref 461* 461 462 iselfr constant fixed bin(17,0) initial dcl 4-6 ref 459 483 499 ispc 000107 automatic fixed bin(26,0) dcl 61 set ref 550* 551 551* 551 562 568 585 603 628 630 636* 638* 639* 641 istpc 2 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 641* isym 000160 automatic pointer dcl 71 set ref 412* 414 414* 420* 428* 431* itemp 000110 automatic fixed bin(26,0) dcl 61 set ref 462* 463 643* itxcnt 4 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 574* itxlen 000111 automatic fixed bin(26,0) dcl 61 set ref 313* 320* 324 326* 333 334 558 itxpc 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 302* 333* 605 606* 606 608* itxtmod 452 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 565 ival 000112 automatic fixed bin(26,0) dcl 61 set ref 249* 252* 453* 456* j 000164 automatic pointer dcl 72 set ref 185* 186 187 188 189* 202* 203 204 205 206 210* 210 236* 239 240 245 246 251 255* 255 264* 265 266 267 268 273 274 287 288 295 295 296* 296 397* 398 400 408 435 435 447 450 457 476 476 481 496 496 497 500 504* 504 k 000166 automatic pointer dcl 72 set ref 206* 207 207 kind based bit(18) level 2 in structure "link_bead" packed packed unaligned dcl 2-34 in procedure "postp2_" ref 400 kind based bit(18) level 2 in structure "entry_bead" packed packed unaligned dcl 2-18 in procedure "postp2_" ref 240 l 000113 automatic fixed bin(26,0) dcl 61 set ref 269* 271 272 273 274 287 288 289* 291* 293* 396* 433 440* 440 454 457 471* 471 478* 478 479 481 487* 487 489* 489 497 502* 502 605* 608 610* 612 lcl 000170 automatic pointer dcl 73 set ref 271* 277 279 280 lcptr 000172 automatic pointer dcl 73 set ref 268* 269 271 272 lcr 000174 automatic pointer dcl 73 set ref 272* 282 284 285 ldef 000114 automatic fixed bin(26,0) dcl 61 set ref 350* 355* 358 528 left based bit(18) array level 2 in structure "location_counters" packed packed unaligned dcl 2-51 in procedure "postp2_" ref 271 left 2 based bit(18) array level 3 in structure "literal_bead" packed packed unaligned dcl 2-38 in procedure "postp2_" set ref 273 287* 287 link_bead based structure level 1 dcl 2-34 link_boundary 0(18) 000326 external static bit(18) level 2 packed packed unaligned dcl 7-41 set ref 566* link_length 0(18) 000320 external static bit(18) level 2 packed packed unaligned dcl 7-23 set ref 559* link_no 1 based bit(18) level 2 packed packed unaligned dcl 2-18 ref 251 457 481 litc 37 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 302 320 literal_bead based structure level 1 dcl 2-38 litevl_$litasn 000202 constant entry external dcl 113 ref 219 litlst 46 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 264 litorg 36 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 220 lnkc 44 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 337* 339* 371* 378* 388* 392* 394* 439* 465* 470* 476* 485* 486* 488* 501* 517* 526* 526 528 541* lnklen 000116 automatic fixed bin(26,0) dcl 61 set ref 358* 366 368* 368 381 525 542* 542 559 lnklst 50 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 236 397 lnkno 45 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 317 358 369* 369 528 lnkorg 000176 automatic fixed bin(26,0) dcl 74 set ref 196* 196 223 310* 358 381 383 396 457 481 497 522* location 1(18) based bit(18) level 2 in structure "transfer_vector_bead" packed packed unaligned dcl 2-68 in procedure "postp2_" ref 205 247 451 location based bit(18) level 2 in structure "expression_bead" packed packed unaligned dcl 2-23 in procedure "postp2_" ref 435 location based bit(18) level 2 in structure "literal_bead" packed packed unaligned dcl 2-38 in procedure "postp2_" ref 266 location_counter 2 based bit(18) level 2 packed packed unaligned dcl 2-68 ref 206 248 452 location_counter_bead based structure level 1 dcl 2-44 location_counters based structure array level 1 dcl 2-51 in procedure "postp2_" location_counters 1 based bit(18) level 2 in structure "literal_bead" packed packed unaligned dcl 2-38 in procedure "postp2_" ref 268 lp 4 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 223* lpcall 000252 external static fixed bin(26,0) level 2 dcl 1-18 ref 217 lpdefs 000256 external static fixed bin(26,0) level 2 dcl 1-30 ref 309 313 317 359 596 615 lpentries 000260 external static fixed bin(26,0) level 2 dcl 1-34 ref 237 lphead 000262 external static fixed bin(26,0) level 2 dcl 1-38 ref 340 341 lplit 000264 external static fixed bin(26,0) level 2 dcl 1-42 ref 260 262 302 320 lprlk 000266 external static fixed bin(26,0) level 2 dcl 1-46 ref 578 590 lprst 000270 external static fixed bin(26,0) level 2 dcl 1-50 ref 621 lprtx 000272 external static fixed bin(26,0) level 2 dcl 1-54 ref 550 563 568 572 577 lpsect 000274 external static fixed bin(26,0) level 2 dcl 1-58 ref 196 317 395 lpst 000276 external static fixed bin(26,0) level 2 dcl 1-62 ref 547 635 lptext 000300 external static fixed bin(26,0) level 2 dcl 1-66 ref 325 lptv 000302 external static fixed bin(26,0) level 2 dcl 1-70 ref 201 lstman_$blkasn 000240 constant entry external dcl 130 ref 222 lstman_$lnkasn 000242 constant entry external dcl 130 ref 223 lstman_$namasn 000244 constant entry external dcl 130 ref 222 222 222 222 lword 000117 automatic fixed bin(26,0) array dcl 61 set ref 360* 361* 362* 367* 367 371* 382* 387* 388* 434* 437* 439* 458* 459* 463* 464* 464 465* 468* 469* 470* 482* 483* 484* 484 485* 498* 499* 501* 514* 514* 515* 516* 517* max_value 3(18) based bit(18) level 2 packed packed unaligned dcl 2-44 ref 187 meapap 122 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 220* meaplp 124 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 454* 479* mfi 70 000312 external static fixed bin(26,0) level 2 dcl 5-6 ref 433 modifier 1(18) based bit(18) level 2 packed packed unaligned dcl 2-34 ref 435 mpc 66 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 454* 455* 479* 480* mpci 67 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 457* 481* 497* mri 61 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 223* 356 mtra 116 000312 external static fixed bin(26,0) level 2 dcl 5-6 set ref 209* 209* 223* 457* 481* 497* name based bit(18) level 2 packed packed unaligned dcl 2-54 ref 412 430 name_bead based structure level 1 dcl 2-54 new_definition_length 16 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 311* 329* 329 606 new_definition_offset 11 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 308* new_entbit 105 000310 external static fixed bin(26,0) array level 2 dcl 3-67 set ref 253* new_entlst 1 000306 external static fixed bin(26,0) array level 2 dcl 3-50 set ref 251* 252* 252* 253* new_nentls 000306 external static fixed bin(26,0) level 2 dcl 3-50 set ref 253* new_sthedr_$block_size 000330 external static structure level 1 dcl 7-49 new_sthedr_$hdrlen 000336 external static fixed bin(26,0) dcl 7-67 set ref 562 638* new_sthedr_$new_sthedr_ 000324 external static fixed bin(17,0) dcl 7-31 set ref 638 638 new_sthedr_$rel_bits_ptrs 000332 external static structure level 1 dcl 7-53 new_sthedr_$relocinfo 000340 external static fixed bin(17,0) dcl 7-69 set ref 638 638 new_sthedr_$text_and_link_boundaries 000326 external static structure level 1 dcl 7-41 new_sthedr_$truncate_info 000334 external static structure level 1 dcl 7-61 new_text_length 15 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 308* new_text_offset 10 000314 external static fixed bin(26,0) level 2 dcl 6-13 set ref 307* next 0(18) based bit(18) level 2 in structure "entry_bead" packed packed unaligned dcl 2-18 in procedure "postp2_" ref 255 next 0(18) based bit(18) level 2 in structure "transfer_vector_bead" packed packed unaligned dcl 2-68 in procedure "postp2_" ref 210 next 0(18) based bit(18) level 2 in structure "link_bead" packed packed unaligned dcl 2-34 in procedure "postp2_" ref 504 next 0(18) based bit(18) level 2 in structure "literal_bead" packed packed unaligned dcl 2-38 in procedure "postp2_" ref 296 nl_FIRST_REFERENCE_TRAP_LIST_nl 000070 internal static char(32) initial dcl 94 set ref 510* nl_NO_LITERALS_nl 000040 internal static char(18) initial dcl 85 set ref 299* nslbit 2 000310 external static fixed bin(26,0) array level 2 dcl 3-67 set ref 221* 224* 225* nslcal 000304 external static fixed bin(26,0) level 2 dcl 3-10 set ref 225* null builtin function dcl 142 ref 636 636 nwrds 000123 automatic fixed bin(26,0) dcl 61 set ref 267* 267 269 291 295* 575* 576* 576 577 593* 594* 594 595 618* 619* 619 620 optional_truncate 1 000334 external static bit(18) level 2 packed packed unaligned dcl 7-61 set ref 562* 563 origin 3 based bit(18) level 2 packed packed unaligned dcl 2-44 set ref 196 207 249 279 284 302 309* 313 317* 317 320 359 453 550 563* 568* 572 577 578* 590 596* 615 621* pc 25 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 200* 209* 216* 225* 226* 238* 253* 266* 266 295* prlst_$prlst_ 000204 constant entry external dcl 114 ref 199 218 242 263 299 335 510 545 552 prnam_$prnam2 000206 constant entry external dcl 115 ref 431 prnam_$prnam_ 000210 constant entry external dcl 116 ref 446 495 prnter_$abort1 000212 constant entry external dcl 117 ref 344 531 prnter_$prnter_ 000214 constant entry external dcl 118 ref 343 530 pudef_$defcnt 000222 constant entry external dcl 122 ref 611 pulnk_$lnkcnt 000216 constant entry external dcl 119 ref 587 pulnk_$pulnk_ 000220 constant entry external dcl 120 ref 583 601 626 pusmb_$symcnt 000224 constant entry external dcl 123 ref 643 putout_$putblk 000226 constant entry external dcl 124 ref 295 636 638 putout_$putlst 000230 constant entry external dcl 125 ref 225 253 371 378 388 439 465 470 485 501 517 putout_$putwrd 000232 constant entry external dcl 126 ref 209 226 326 476 486 488 541 putxt_$putxt_ 000234 constant entry external dcl 127 ref 581 599 624 putxt_$txtcnt 000236 constant entry external dcl 128 ref 570 607 609 rblock 000124 automatic fixed bin(26,0) array dcl 61 set ref 289* 293* 295 295 rel_def 1 000332 external static bit(18) level 2 packed packed unaligned dcl 7-53 set ref 603* rel_link 1(18) 000332 external static bit(18) level 2 packed packed unaligned dcl 7-53 set ref 585* rel_symbol 2 000332 external static bit(18) level 2 packed packed unaligned dcl 7-53 set ref 628* rel_text 0(18) 000332 external static bit(18) level 2 packed packed unaligned dcl 7-53 set ref 563* right 0(18) based bit(18) array level 2 in structure "location_counters" packed packed unaligned dcl 2-51 in procedure "postp2_" ref 272 right 2(18) based bit(18) array level 3 in structure "literal_bead" packed packed unaligned dcl 2-38 in procedure "postp2_" set ref 274 288* 288 right_join 2(18) based bit(18) level 2 packed packed unaligned dcl 2-44 ref 186 188 rleft 000136 automatic fixed bin(26,0) dcl 61 set ref 275* 280* 289 rlkdef 000137 automatic fixed bin(26,0) dcl 61 set ref 310* 522* 581* 583* rright 000140 automatic fixed bin(26,0) dcl 61 set ref 276* 285* 289 rsydef 000141 automatic fixed bin(26,0) dcl 61 set ref 310* 522* 599* 601* 624* 626* section 4(18) based bit(18) level 2 packed packed unaligned dcl 2-44 ref 280 285 461 segment 2 based bit(18) level 2 packed packed unaligned dcl 2-77 ref 410 size 1(18) based bit(18) level 2 packed packed unaligned dcl 2-38 ref 267 slcall 1 000304 external static fixed bin(26,0) array level 2 dcl 3-10 set ref 220* 223* 225* smxer 141 000312 external static fixed bin(26,0) array level 2 dcl 5-6 set ref 222* 222* sretrn 145 000312 external static fixed bin(26,0) array level 2 dcl 5-6 set ref 222* 222* statlen 000115 automatic fixed bin(26,0) dcl 61 set ref 386* 534 sthedr_$hdrlen 000322 external static fixed bin(26,0) dcl 7-27 set ref 568 636* sthedr_$sthedr_ 000316 external static fixed bin(17,0) dcl 7-17 set ref 636 636 sthedr_$text_and_link_lengths 000320 external static structure level 1 dcl 7-23 symbol 2(18) based bit(18) level 2 packed packed unaligned dcl 2-77 ref 412 symtab_words 000201 automatic fixed bin(26,0) dcl 141 set ref 561* 563 tcall 72 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 214 text_boundary 000326 external static bit(18) level 2 packed packed unaligned dcl 7-41 set ref 565* text_length 000320 external static bit(18) level 2 packed packed unaligned dcl 7-23 set ref 558* text_section_length 461 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 334* tfirstreftrap 5 000344 external static fixed bin(17,0) level 2 dcl 9-6 ref 365 509 tinhib 64 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 204* 204 213* 245* 245 346* 405* 447* 447 500* 500 tmvdef 73 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 305 348 362 522 526 571 581 588 599 613 624 tnewobject 2 000344 external static fixed bin(17,0) level 2 dcl 9-6 ref 233 333 445 560 571 576 581 594 599 619 624 636 tpc 27 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 572* 572 590* 590 615* 615 tprot 71 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 197 448 tpulnk 74 000342 external static fixed bin(26,0) level 2 dcl 8-7 set ref 336* transfer_vector 2 based bit(18) level 2 packed packed unaligned dcl 2-18 ref 246 450 transfer_vector_bead based structure level 1 dcl 2-68 transfer_vector_no 1(18) based bit(18) level 2 in structure "entry_bead" packed packed unaligned dcl 2-18 in procedure "postp2_" ref 476 476 transfer_vector_no 2(18) based bit(18) level 2 in structure "call_out_bead" packed packed unaligned dcl 2-11 in procedure "postp2_" ref 496 496 tvlst 57 000342 external static fixed bin(26,0) level 2 dcl 8-7 ref 202 twop18 constant fixed bin(19,0) initial dcl 139 ref 224 251 289 359 381 433 434 458 459 463 482 483 499 513 581 583 599 601 624 626 type 1 based bit(18) level 2 packed packed unaligned dcl 2-77 ref 416 type_pair 1 based bit(18) level 2 in structure "expression_bead" packed packed unaligned dcl 2-23 in procedure "postp2_" ref 408 type_pair 2 based bit(18) level 2 in structure "call_out_bead" packed packed unaligned dcl 2-11 in procedure "postp2_" ref 497 type_pair_bead based structure level 1 dcl 2-77 utils_$makins 000246 constant entry external dcl 130 ref 209 209 220 223 252 454 455 456 457 476 476 479 480 481 496 497 val 000142 automatic fixed bin(26,0) dcl 61 set ref 205* 205 207* 207 209 209 570* 571* 571 574 575 587* 588* 588 592 593 609* 610 611* 612* 612 613* 613 617 618 value 1(18) based bit(18) level 2 packed packed unaligned dcl 2-44 ref 260 341 words 000143 automatic fixed bin(26,0) array dcl 61 in procedure "postp2_" set ref 351* 356* 359* 359 366* 366 371* 374* 375* 376* 377* 378* 378* 381* 383* 385* 386 388* 433* 435* 439* 454* 455* 456* 457* 465* 466* 467* 470* 479* 480* 481* 485* 496* 497* 501* 511* 512* 513* 517* words 2 based structure array level 2 in structure "literal_bead" dcl 2-38 in procedure "postp2_" set ref 295 295 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. acc based structure level 1 dcl 2-7 eb_data_$ertlst external static structure level 1 unaligned dcl 3-54 eb_data_$mxcall external static structure level 1 unaligned dcl 3-18 eb_data_$mxclbk external static structure level 1 unaligned dcl 3-22 eb_data_$mxpro external static structure level 1 unaligned dcl 3-6 eb_data_$mxsave external static structure level 1 unaligned dcl 3-26 eb_data_$new_getlp external static structure level 1 unaligned dcl 3-62 eb_data_$new_retlst external static structure level 1 unaligned dcl 3-42 eb_data_$new_slcall external static structure level 1 unaligned dcl 3-14 eb_data_$new_slsave external static structure level 1 unaligned dcl 3-34 eb_data_$retlst external static structure level 1 unaligned dcl 3-38 eb_data_$short_retlst external static structure level 1 unaligned dcl 3-46 eb_data_$short_slcall external static structure level 1 unaligned dcl 3-58 eb_data_$slsave external static structure level 1 unaligned dcl 3-30 external_definition_bead based structure level 1 dcl 2-28 iabsol internal static fixed bin(17,0) initial dcl 4-6 idefpt internal static fixed bin(17,0) initial dcl 4-6 iescap internal static fixed bin(17,0) initial dcl 4-6 ilblok internal static fixed bin(17,0) initial dcl 4-6 ilmlnk internal static fixed bin(26,0) initial dcl 4-24 imsymb internal static fixed bin(17,0) initial dcl 4-6 imtext internal static fixed bin(17,0) initial dcl 4-6 iresv1 internal static fixed bin(17,0) initial dcl 4-6 iresv2 internal static fixed bin(17,0) initial dcl 4-6 iresv3 internal static fixed bin(17,0) initial dcl 4-6 iresv4 internal static fixed bin(17,0) initial dcl 4-6 isymbl internal static fixed bin(17,0) initial dcl 4-6 itext internal static fixed bin(17,0) initial dcl 4-6 new_sthedr_$alm_creation_date external static fixed bin(71,0) dcl 7-33 new_sthedr_$alm_version_name external static char(32) dcl 7-35 new_sthedr_$comment external static char(64) dcl 7-39 new_sthedr_$source_and_area external static structure level 1 dcl 7-45 new_sthedr_$time_of_translation external static fixed bin(71,0) dcl 7-33 new_sthedr_$user_id external static char(32) dcl 7-37 pudef_$pudef_ 000000 constant entry external dcl 121 statement_bead based structure level 1 dcl 2-58 sthedr_$alm_creation_date external static fixed bin(71,0) dcl 7-19 sthedr_$seg_name external static char(32) dcl 7-21 sthedr_$time_of_translation external static fixed bin(71,0) dcl 7-19 symbol_bead based structure level 1 dcl 2-63 trap_bead based structure level 1 dcl 2-73 NAMES DECLARED BY EXPLICIT CONTEXT. label_1020 001722 constant label dcl 398 label_1030 001731 constant label dcl 405 ref 171 label_1031 002004 constant label dcl 420 ref 174 label_1032 002010 constant label dcl 424 ref 175 label_1033 002016 constant label dcl 428 ref 176 label_1034 002021 constant label dcl 430 ref 177 label_1035 002034 constant label dcl 431 ref 178 label_1037 002034 constant label dcl 431 ref 421 425 label_1040 002122 constant label dcl 445 ref 172 label_1070 002716 constant label dcl 495 ref 173 label_1080 003053 constant label dcl 504 ref 441 445 491 label_211a 001170 constant label dcl 291 label_280a 001065 constant label dcl 269 postp2_ 000060 constant entry external dcl 31 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 295 295 295 295 411 414 420 424 428 446 446 495 495 636 636 638 638 638 638 binary builtin function ref 240 bit builtin function ref 240 309 317 558 559 562 563 565 566 568 578 585 596 603 621 628 630 divide builtin function ref 424 575 593 618 630 mod builtin function ref 324 539 551 pointer builtin function ref 185 189 196 202 206 210 236 246 248 255 260 264 268 271 272 296 302 309 313 317 317 320 341 359 397 408 408 412 412 430 430 435 450 452 504 550 563 568 572 577 578 590 596 615 621 rel builtin function ref 203 207 239 265 269 277 282 398 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5032 5400 4211 5042 Length 6224 4211 346 607 620 132 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME postp2_ 179 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 SYMBOL_TABLE_HEADER_nl postp2_ 000017 ff_ERROR_RETURN_CALL_nl postp2_ 000025 ff_LINKAGE_INFORMATION_nl postp2_ 000034 ff_LITERALS_nl postp2_ 000040 nl_NO_LITERALS_nl postp2_ 000045 ff_SYMBOL_INFORMATION_nl postp2_ 000054 ff_TRANSFER_VECTOR_nl postp2_ 000062 ff_ENTRY_SEQUENCES_nl postp2_ 000070 nl_FIRST_REFERENCE_TRAP_LIST_nl postp2_ 000100 control_1020 postp2_ 000114 control_1030 postp2_ 000140 first_time postp2_ 000141 ilsymb postp2_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME postp2_ 000100 argout postp2_ 000101 calblk postp2_ 000102 iexp1 postp2_ 000103 ilc postp2_ 000104 ilnkno postp2_ 000105 ioffst postp2_ 000106 isegno postp2_ 000107 ispc postp2_ 000110 itemp postp2_ 000111 itxlen postp2_ 000112 ival postp2_ 000113 l postp2_ 000114 ldef postp2_ 000115 statlen postp2_ 000116 lnklen postp2_ 000117 lword postp2_ 000123 nwrds postp2_ 000124 rblock postp2_ 000136 rleft postp2_ 000137 rlkdef postp2_ 000140 rright postp2_ 000141 rsydef postp2_ 000142 val postp2_ 000143 words postp2_ 000147 iaddr postp2_ 000150 ientlc postp2_ 000152 ientpc postp2_ 000154 iexp postp2_ 000156 ileft postp2_ 000157 iright postp2_ 000160 isym postp2_ 000162 iname postp2_ 000164 j postp2_ 000166 k postp2_ 000170 lcl postp2_ 000172 lcptr postp2_ 000174 lcr postp2_ 000176 lnkorg postp2_ 000177 header_done postp2_ 000200 deforg postp2_ 000201 symtab_words postp2_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac mdfx1 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. alm_definitions_$assign_definitions alm_definitions_$emit_definitions alm_definitions_$fix_entries alm_symtab_$count_words alm_symtab_$emit litevl_$litasn lstman_$blkasn lstman_$lnkasn lstman_$namasn prlst_$prlst_ prnam_$prnam2 prnam_$prnam_ prnter_$abort1 prnter_$prnter_ pudef_$defcnt pulnk_$lnkcnt pulnk_$pulnk_ pusmb_$symcnt putout_$putblk putout_$putlst putout_$putwrd putxt_$putxt_ putxt_$txtcnt utils_$makins THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$alm_options eb_data_$anames eb_data_$bases eb_data_$blanks eb_data_$calseq eb_data_$concom eb_data_$curlc eb_data_$entseq 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_$maos eb_data_$meax0 eb_data_$meax7 eb_data_$new_entlst eb_data_$objnfo eb_data_$relocn eb_data_$separate_static eb_data_$slcall eb_data_$stat_len eb_data_$varcom new_sthedr_$block_size new_sthedr_$hdrlen new_sthedr_$new_sthedr_ new_sthedr_$rel_bits_ptrs new_sthedr_$relocinfo new_sthedr_$text_and_link_boundaries new_sthedr_$truncate_info sthedr_$hdrlen sthedr_$sthedr_ sthedr_$text_and_link_lengths LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000057 169 000065 171 000067 172 000072 173 000075 174 000100 175 000103 176 000106 177 000111 178 000114 179 000117 182 000120 183 000123 184 000124 185 000126 186 000133 187 000141 188 000146 189 000151 190 000155 196 000156 197 000166 199 000171 200 000201 201 000204 202 000206 203 000213 204 000216 205 000224 206 000227 207 000235 209 000242 210 000313 211 000322 213 000323 214 000326 216 000330 217 000331 218 000333 219 000343 220 000364 221 000421 222 000424 223 000477 224 000554 225 000560 226 000600 233 000621 234 000625 235 000631 236 000632 237 000641 238 000643 239 000644 240 000646 241 000657 242 000661 243 000672 245 000674 246 000702 247 000710 248 000713 249 000721 251 000725 252 000732 253 000761 255 001002 256 001011 260 001012 262 001022 263 001023 264 001033 265 001042 266 001044 267 001051 268 001055 269 001063 271 001075 272 001105 273 001114 274 001120 275 001123 276 001124 277 001125 279 001127 280 001132 282 001135 284 001137 285 001142 287 001145 288 001153 289 001161 290 001165 291 001170 293 001177 294 001200 295 001202 296 001230 297 001237 298 001240 299 001241 302 001251 305 001264 307 001266 308 001270 309 001273 310 001304 311 001316 313 001323 314 001333 317 001334 319 001354 320 001360 324 001372 325 001377 326 001401 329 001420 333 001425 334 001432 335 001435 336 001445 337 001451 339 001456 340 001457 341 001461 343 001470 344 001503 346 001510 348 001513 350 001515 351 001516 352 001517 355 001520 356 001522 358 001525 359 001531 360 001541 361 001542 362 001544 365 001550 366 001553 367 001555 368 001557 369 001561 371 001562 374 001603 375 001604 376 001605 377 001606 378 001607 381 001632 382 001636 383 001641 385 001650 386 001652 387 001654 388 001656 392 001700 394 001707 395 001711 396 001713 397 001715 398 001722 400 001724 405 001731 408 001734 410 001750 411 001753 412 001756 414 001771 416 001777 417 002002 420 002004 421 002007 424 002010 425 002015 428 002016 430 002021 431 002034 433 002045 434 002053 435 002056 437 002074 439 002076 440 002117 441 002121 445 002122 446 002126 447 002136 448 002144 450 002146 451 002154 452 002157 453 002165 454 002171 455 002220 456 002250 457 002276 458 002333 459 002336 461 002341 462 002345 463 002347 464 002351 465 002353 466 002376 467 002377 468 002400 469 002401 470 002402 471 002425 472 002427 476 002430 478 002500 479 002501 480 002531 481 002561 482 002616 483 002621 484 002624 485 002625 486 002650 487 002671 488 002673 489 002714 491 002715 495 002716 496 002727 497 002761 498 003016 499 003017 500 003022 501 003030 502 003051 504 003053 505 003062 509 003063 510 003067 511 003077 512 003101 513 003102 514 003110 515 003112 516 003117 517 003122 522 003143 525 003161 526 003165 528 003172 530 003177 531 003212 534 003217 539 003224 541 003231 542 003251 543 003252 545 003255 546 003265 547 003270 550 003272 551 003301 552 003305 558 003315 559 003324 560 003332 561 003335 562 003343 563 003354 565 003374 566 003403 567 003411 568 003412 570 003425 571 003433 572 003444 574 003454 575 003457 576 003463 577 003466 578 003476 581 003507 583 003532 585 003551 587 003562 588 003571 590 003577 592 003606 593 003611 594 003615 595 003621 596 003623 599 003634 601 003657 603 003676 605 003706 606 003711 607 003714 608 003722 609 003725 610 003733 611 003740 612 003746 613 003750 615 003756 617 003765 618 003770 619 003774 620 004000 621 004002 624 004013 626 004036 628 004055 630 004065 634 004106 635 004110 636 004112 638 004141 639 004164 641 004173 642 004177 643 004201 644 004207 ----------------------------------------------------------- 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