COMPILATION LISTING OF SEGMENT alm_merge_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1008.9 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 17* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 18* Extended to allow for joining to the definition section. 19* END HISTORY COMMENTS */ 20 21 22 alm_merge_: procedure ; 23 24 /* Modified for separate static on 06/15/75 by Eugene E Wiatrowski */ 25 /* Modified on 05/25/72 at 03:43:42 by R F Mabee. 26* by RFM on 21 March 1972 for new object segment format. 27* by NA on July 3, 1970 at 1144 */ 28 29 /* this procedure appends the linkage and symbol portion of the object 30* into the final object segment followed by the standard map of the object */ 31 32 dcl linkage_hdr_size init(8) fixed bin(26) aligned internal static; 33 1 1 /* Begin include file objnfo.incl.pl1. 1 2* Parameters saved for object map. 1 3* Last modified on 05/12/72 at 01:10:27 by R F Mabee. */ 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 1 8* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 1 9* Modified to add definition count used to join blocks to the definition 1 10* section. 1 11* END HISTORY COMMENTS */ 1 12 1 13 declare 1 eb_data_$objnfo external static aligned, 1 14 2 (itxpc, ilkpc, istpc, idfpc, itxcnt, ilkcnt, istcnt, idfcnt) fixed bin (26) aligned, 1 15 2 (new_text_offset, new_definition_offset, new_link_offset, new_static_offset, new_symbol_offset) fixed bin (26) aligned, 1 16 2 (new_text_length, new_definition_length, new_link_length, new_static_length, new_symbol_length) fixed bin (26) aligned; 1 17 1 18 /* End of include file objnfo.incl.pl1. */ 34 35 2 1 /* BEGIN INCLUDE FILE segnfo.incl.pl1 for alm (see also segnfo.incl.alm) */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 2 6* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 2 7* Modified to keep a ptr to the list FCB. This is part of the fix that 2 8* removes PAD characters from the listing segment. 2 9* END HISTORY COMMENTS */ 2 10 2 11 declare 1 eb_data_$segnfo ext aligned, 2 12 2 (text, source, list, list_fcb, scrtch) ptr aligned, 2 13 2 (txtlen, srclen, lstlen) fixed bin (26) aligned; 2 14 2 15 /* END INCLUDE FILE segnfo.incl.pl1 */ 36 37 3 1 /* Include file sthedr.incl.pl1. 3 2* This file declares old and new versions of symbol table headers. 3 3* Last modified on 06/20/72 at 18:51:18 by R F Mabee. */ 3 4 3 5 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(88-08-02,JRGray), approve(88-08-05,MCR7952), 3 9* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 3 10* Modified to make area_offset externally available. This is part of 3 11* Symbol Table Support. 3 12* END HISTORY COMMENTS */ 3 13 3 14 3 15 /* Declarations for old object segment format symbol table header. */ 3 16 3 17 declare sthedr_$sthedr_ ext aligned; 3 18 3 19 declare (sthedr_$alm_creation_date, sthedr_$time_of_translation) ext fixed bin (71) aligned; 3 20 3 21 declare sthedr_$seg_name ext char (32) aligned; 3 22 3 23 declare 1 sthedr_$text_and_link_lengths ext aligned, 3 24 2 text_length bit (18) unaligned, 3 25 2 link_length bit (18) unaligned; 3 26 3 27 declare sthedr_$hdrlen ext fixed bin (26) aligned; 3 28 3 29 /* Declarations for new object segment format symbol table header. */ 3 30 3 31 declare new_sthedr_$new_sthedr_ ext aligned; 3 32 3 33 declare (new_sthedr_$alm_creation_date, new_sthedr_$time_of_translation) ext fixed bin (71) aligned; 3 34 3 35 declare new_sthedr_$alm_version_name ext char (32) aligned; 3 36 3 37 declare new_sthedr_$user_id ext char (32) aligned; 3 38 3 39 declare new_sthedr_$comment ext char (64) aligned; 3 40 3 41 declare 1 new_sthedr_$text_and_link_boundaries ext aligned, 3 42 2 text_boundary bit (18) unaligned, 3 43 2 link_boundary bit (18) unaligned; 3 44 3 45 declare 1 new_sthedr_$source_and_area ext aligned, 3 46 2 source_map_offset bit (18) unaligned, 3 47 2 area_offset bit (18) unaligned; 3 48 3 49 declare 1 new_sthedr_$block_size ext aligned, 3 50 2 padding bit (18) unaligned, 3 51 2 block_size bit (18) unaligned; 3 52 3 53 declare 1 new_sthedr_$rel_bits_ptrs ext aligned, 3 54 2 padding bit (18) unaligned, 3 55 2 rel_text bit (18) unaligned, 3 56 2 rel_def bit (18) unaligned, 3 57 2 rel_link bit (18) unaligned, 3 58 2 rel_symbol bit (18) unaligned, 3 59 2 other_bits bit (18) unaligned; 3 60 3 61 declare 1 new_sthedr_$truncate_info ext aligned, 3 62 2 padding bit (18) unaligned, 3 63 2 default_truncate bit (18) unaligned, 3 64 2 optional_truncate bit (18) unaligned, 3 65 2 other_bits bit (18) unaligned; 3 66 3 67 declare new_sthedr_$hdrlen ext fixed bin (26) aligned; 3 68 3 69 declare new_sthedr_$relocinfo ext aligned; 3 70 3 71 /* End of the include file sthedr.incl.pl1 */ 38 39 4 1 /* Begin include file varcom.incl.pl1. */ 4 2 /* RHG added new variables 9/7/70. */ 4 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 4 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 4 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 4 6 4 7 declare 1 eb_data_$varcom external aligned, 4 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 4 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 4 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 4 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 4 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 4 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 4 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 4 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 4 16 2 source_printed bit(1) aligned, 4 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 4 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 4 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 4 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 4 21 text_section_length) fixed binary (26), 4 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 4 23 2 symbol_tree_rel fixed binary (26); 4 24 4 25 /* End of the include file varcom.incl.pl1. */ 40 41 42 dcl (itxpci, iword, mapbgn, itemp, i) fixed bin (17) aligned ; 43 44 dcl object_$object_ external entry ( fixed bin(17), fixed bin(17) ); 45 46 dcl eb_data_$stat_len ext fixed bin(26); 47 dcl eb_data_$separate_static ext bit(1) aligned; 48 49 dcl object_$getolk external entry ( fixed bin(17), fixed bin(17) ); 50 51 dcl object_$getost external entry ( fixed bin(17), fixed bin(17) ); 52 53 dcl object_$getodf external entry ( fixed bin(17), fixed bin(17) ); 54 55 dcl object_$getbdf external entry ( fixed bin(17), fixed bin(17), fixed bin(17)); 56 57 dcl eb_data_$ifence ext fixed bin (17) aligned ; 58 59 itxpci = text_section_length; 60 61 if idfpc > 0 then do; 62 itemp = idfpc - 1; 63 do i = 0 to itemp; 64 call object_$getodf(i, iword); 65 call object_$object_(itxpci, iword); 66 itxpci = itxpci + 1; 67 end; 68 new_definition_length = new_definition_length + idfpc; 69 text_section_length = itxpci; 70 end; 71 72 if eb_data_$separate_static 73 then do; 74 itemp = (eb_data_$stat_len + ilkpc) - 1; 75 new_static_offset = itxpci; 76 new_static_length = eb_data_$stat_len; 77 new_link_offset = eb_data_$stat_len + itxpci; 78 end; 79 else do; 80 itemp = ilkpc - 1 ; 81 new_static_offset = itxpci + linkage_hdr_size; 82 new_static_length = eb_data_$stat_len; 83 new_link_offset = itxpci; 84 end; 85 86 new_link_length = ilkpc; 87 88 /* append the linkage portion of the object */ 89 link_loop: 90 do i = 0 to itemp ; 91 call object_$getolk(i,iword) ; 92 call object_$object_(itxpci,iword) ; 93 itxpci = itxpci + 1 ; 94 end link_loop ; 95 96 /* append the symbol portion of the object */ 97 itemp = istpc - 1 ; 98 99 new_symbol_offset = itxpci; 100 new_symbol_length = istpc; 101 102 symbol_loop: 103 do i = 0 to itemp ; 104 call object_$getost(i,iword) ; 105 call object_$object_(itxpci,iword) ; 106 itxpci = itxpci + 1 ; 107 end symbol_loop ; 108 109 txtlen = itxpci; 110 111 end alm_merge_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0937.5 alm_merge_.pl1 >spec>install>1170>alm_merge_.pl1 34 1 11/12/86 1103.0 objnfo.incl.pl1 >ldd>include>objnfo.incl.pl1 36 2 11/12/86 1103.0 segnfo.incl.pl1 >ldd>include>segnfo.incl.pl1 38 3 10/17/88 0926.0 sthedr.incl.pl1 >ldd>include>sthedr.incl.pl1 40 4 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.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. eb_data_$objnfo 000010 external static structure level 1 dcl 1-13 eb_data_$segnfo 000012 external static structure level 1 dcl 2-11 eb_data_$separate_static 000022 external static bit(1) dcl 47 ref 72 eb_data_$stat_len 000020 external static fixed bin(26,0) dcl 46 ref 74 76 77 82 eb_data_$varcom 000014 external static structure level 1 dcl 4-7 i 000103 automatic fixed bin(17,0) dcl 42 set ref 63* 64* 89* 91* 102* 104* idfpc 3 000010 external static fixed bin(26,0) level 2 dcl 1-13 ref 61 62 68 ilkpc 1 000010 external static fixed bin(26,0) level 2 dcl 1-13 ref 74 80 86 istpc 2 000010 external static fixed bin(26,0) level 2 dcl 1-13 ref 97 100 itemp 000102 automatic fixed bin(17,0) dcl 42 set ref 62* 63 74* 80* 89 97* 102 itxpci 000100 automatic fixed bin(17,0) dcl 42 set ref 59* 65* 66* 66 69 75 77 81 83 92* 93* 93 99 105* 106* 106 109 iword 000101 automatic fixed bin(17,0) dcl 42 set ref 64* 65* 91* 92* 104* 105* linkage_hdr_size constant fixed bin(26,0) initial dcl 32 ref 81 new_definition_length 16 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 68* 68 new_link_length 17 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 86* new_link_offset 12 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 77* 83* new_static_length 20 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 76* 82* new_static_offset 13 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 75* 81* new_symbol_length 21 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 100* new_symbol_offset 14 000010 external static fixed bin(26,0) level 2 dcl 1-13 set ref 99* object_$getodf 000030 constant entry external dcl 53 ref 64 object_$getolk 000024 constant entry external dcl 49 ref 91 object_$getost 000026 constant entry external dcl 51 ref 104 object_$object_ 000016 constant entry external dcl 44 ref 65 92 105 text_section_length 461 000014 external static fixed bin(26,0) level 2 dcl 4-7 set ref 59 69* txtlen 12 000012 external static fixed bin(26,0) level 2 dcl 2-11 set ref 109* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. eb_data_$ifence external static fixed bin(17,0) dcl 57 mapbgn automatic fixed bin(17,0) dcl 42 new_sthedr_$alm_creation_date external static fixed bin(71,0) dcl 3-33 new_sthedr_$alm_version_name external static char(32) dcl 3-35 new_sthedr_$block_size external static structure level 1 dcl 3-49 new_sthedr_$comment external static char(64) dcl 3-39 new_sthedr_$hdrlen external static fixed bin(26,0) dcl 3-67 new_sthedr_$new_sthedr_ external static fixed bin(17,0) dcl 3-31 new_sthedr_$rel_bits_ptrs external static structure level 1 dcl 3-53 new_sthedr_$relocinfo external static fixed bin(17,0) dcl 3-69 new_sthedr_$source_and_area external static structure level 1 dcl 3-45 new_sthedr_$text_and_link_boundaries external static structure level 1 dcl 3-41 new_sthedr_$time_of_translation external static fixed bin(71,0) dcl 3-33 new_sthedr_$truncate_info external static structure level 1 dcl 3-61 new_sthedr_$user_id external static char(32) dcl 3-37 object_$getbdf 000000 constant entry external dcl 55 sthedr_$alm_creation_date external static fixed bin(71,0) dcl 3-19 sthedr_$hdrlen external static fixed bin(26,0) dcl 3-27 sthedr_$seg_name external static char(32) dcl 3-21 sthedr_$sthedr_ external static fixed bin(17,0) dcl 3-17 sthedr_$text_and_link_lengths external static structure level 1 dcl 3-23 sthedr_$time_of_translation external static fixed bin(71,0) dcl 3-19 NAMES DECLARED BY EXPLICIT CONTEXT. alm_merge_ 000001 constant entry external dcl 22 link_loop 000113 constant label dcl 89 symbol_loop 000157 constant label dcl 102 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 326 360 217 336 Length 614 217 32 217 107 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME alm_merge_ 78 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME alm_merge_ 000100 itxpci alm_merge_ 000101 iword alm_merge_ 000102 itemp alm_merge_ 000103 i alm_merge_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. object_$getodf object_$getolk object_$getost object_$object_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$objnfo eb_data_$segnfo eb_data_$separate_static eb_data_$stat_len eb_data_$varcom LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000000 59 000006 61 000011 62 000014 63 000016 64 000023 65 000034 66 000045 67 000046 68 000050 69 000054 72 000057 74 000061 75 000066 76 000070 77 000072 78 000075 80 000076 81 000102 82 000105 83 000107 86 000111 89 000113 91 000121 92 000132 93 000143 94 000144 97 000146 99 000153 100 000155 102 000157 104 000165 105 000176 106 000207 107 000210 109 000212 111 000216 ----------------------------------------------------------- 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