COMPILATION LISTING OF SEGMENT putout_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 0943.8 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 17* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 18* Modified to allow for joining blocks to the definition section. 19* END HISTORY COMMENTS */ 20 21 22 putout_: procedure ; 23 24 25 /* Modified for separate static on 06/15/75 by Eugene E Wiatrowski */ 26 /* Modified on 11/23/72 at 00:56:57 by R F Mabee. Removed eb_data_$zerbuf. */ 27 /* Modified by RHG on 7 August 1970 at 0534 to fix dimension of eb_data_$zerbuf */ 1 1 /* Begin include file varcom.incl.pl1. */ 1 2 /* RHG added new variables 9/7/70. */ 1 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 1 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 1 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 1 6 1 7 declare 1 eb_data_$varcom external aligned, 1 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 1 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 1 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 1 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 1 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 1 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 1 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 1 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 1 16 2 source_printed bit(1) aligned, 1 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 1 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 1 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 1 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 1 21 text_section_length) fixed binary (26), 1 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 1 23 2 symbol_tree_rel fixed binary (26); 1 24 1 25 /* End of the include file varcom.incl.pl1. */ 28 29 2 1 2 2 2 3 2 4 /* include file for CONCOM */ 2 5 2 6 declare 1 eb_data_$concom ext aligned, 2 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 2 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 2 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 2 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 2 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 2 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 2 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 2 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 2 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 2 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 2 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 2 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 2 19 2 20 /* end of the include file for CONCOM */ 30 31 3 1 3 2 3 3 3 4 /* the include file CURLC */ 3 5 3 6 declare 1 eb_data_$curlc ext aligned, 3 7 2 curlc fixed bin (17) aligned ; 3 8 3 9 3 10 3 11 /* end of the include file CURLC */ 32 33 34 declare (lary, rary, xlary, xlword) ptr ; 35 36 declare binword (n) fixed binary based (lary); 37 38 declare relword(n) based (rary) fixed bin (35) ; 39 40 declare ( xpc, xary, xword, xhow, xn, how, rword, xrary, xrword, relwrd, origin, segmnt, i, n ) fixed bin (35) ; 41 declare word fixed bin (35); 42 43 declare ( eb_data_$mb28, eb_data_$mb29) fixed bin ( 35 ) ext ; 44 45 /* EXTERNAL FUNCTIONS */ 46 declare glpl_$clh ext entry (fixed bin) returns (fixed bin), 47 glpl_$crh ext entry (fixed bin) returns (fixed bin), 48 utils_$or ext entry (fixed bin (35), fixed bin (35)) returns (fixed bin (35)), 49 utils_$and ext entry (fixed bin (35), fixed bin (35)) returns (fixed bin (35)) ; 50 51 /* EXTERNAL ENTRIES */ 52 declare putxt_$putxt_ ext entry (fixed bin (35), fixed bin (35), fixed bin (35)), 53 pulnk_$pulnk_ ext entry (fixed bin (35), fixed bin (35), fixed bin (35)), 54 pudef_$pudef_ ext entry (fixed bin (35), fixed bin (35), fixed bin (35)), 55 pusmb_$pusmb_ ext entry (fixed bin (35), fixed bin (35), fixed bin (35)), 56 prwrd_$prwrd2 ext entry (fixed bin (35), fixed bin (35), fixed bin (35), fixed bin (35)) ; 57 58 59 putlst: entry( xpc, xary, xhow, xn, xrary ) ; 60 61 n = xn ; 62 63 lary = addr( xary ) ; 64 65 rary = addr(xrary) ; 66 67 go to label_1000 ; 68 69 70 71 putwrd: entry( xpc, xword, xhow, rword ) ; 72 73 n = 1 ; 74 75 lary = addr( xword ) ; 76 77 rary = addr( rword ) ; 78 79 go to label_1000; 80 81 82 83 84 putblk: entry( xpc, xlary, xhow, xn, xlword ) ; 85 86 n = xn ; 87 88 lary = xlary ; 89 90 rary = xlword ; 91 92 93 94 95 96 97 label_1000: 98 99 origin = glpl_$clh( curlc + 3 ) ; 100 101 segmnt = glpl_$crh( curlc + 4 ) ; 102 103 104 label_1030: 105 106 do i = 1 to n ; 107 108 word = lary -> binword(i) ; 109 110 if rary ^= null () then relwrd = rary -> relword (i) ; else relwrd = 0; 111 112 how = xhow ; 113 114 if utils_$and( word, eb_data_$mb29 ) ^= 0 & how = i642 then how = i1542 ; 115 116 if tinhib ^= 0 & ( how = i642 | how = i1542 ) then word = utils_$or( word, eb_data_$mb28 ) ; 117 118 if segmnt = 1 then go to label_1010 ; /* link */ 119 120 if segmnt = 2 then go to label_1015 ; /* symbol */ 121 122 if segmnt = 4 then go to label_1010 ; /* separate static */ 123 124 if segmnt = 8 then go to label_1017 ; /* definition */ 125 126 127 label_1005: 128 /* text */ 129 130 call putxt_$putxt_ ( xpc+origin, word, relwrd ) ; 131 132 go to label_1020 ; 133 134 135 label_1010: 136 137 call pulnk_$pulnk_ ( xpc+origin, word, relwrd ) ; 138 139 go to label_1020 ; 140 141 label_1015: 142 143 call pusmb_$pusmb_ ( xpc+origin, word, relwrd ) ; 144 145 go to label_1020 ; 146 147 label_1017: 148 149 call pudef_$pudef_ ( xpc+origin, word, relwrd ) ; 150 151 152 label_1020: 153 154 call prwrd_$prwrd2( xpc+origin, word, how, relwrd ) ; 155 156 xpc = xpc + 1 ; 157 158 end label_1030 ; 159 160 end putout_ ; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0938.3 putout_.pl1 >spec>install>1170>putout_.pl1 28 1 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 30 2 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.incl.pl1 32 3 05/06/74 1741.5 curlc.incl.pl1 >ldd>include>curlc.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. binword based fixed bin(17,0) array dcl 36 ref 108 curlc 000014 external static fixed bin(17,0) level 2 dcl 3-6 ref 97 101 eb_data_$concom 000012 external static structure level 1 dcl 2-6 eb_data_$curlc 000014 external static structure level 1 dcl 3-6 eb_data_$mb28 000016 external static fixed bin(35,0) dcl 43 set ref 116* eb_data_$mb29 000020 external static fixed bin(35,0) dcl 43 set ref 114* eb_data_$varcom 000010 external static structure level 1 dcl 1-7 glpl_$clh 000022 constant entry external dcl 46 ref 97 glpl_$crh 000024 constant entry external dcl 46 ref 101 how 000104 automatic fixed bin(35,0) dcl 40 set ref 112* 114 114* 116 116 152* i 000110 automatic fixed bin(35,0) dcl 40 set ref 104* 108 110* i1542 132 000012 external static fixed bin(26,0) level 2 dcl 2-6 ref 114 116 i642 133 000012 external static fixed bin(26,0) level 2 dcl 2-6 ref 114 116 lary 000100 automatic pointer dcl 34 set ref 63* 75* 88* 108 n 000111 automatic fixed bin(35,0) dcl 40 set ref 61* 73* 86* 104 origin 000106 automatic fixed bin(35,0) dcl 40 set ref 97* 127 135 141 147 152 prwrd_$prwrd2 000042 constant entry external dcl 52 ref 152 pudef_$pudef_ 000036 constant entry external dcl 52 ref 147 pulnk_$pulnk_ 000034 constant entry external dcl 52 ref 135 pusmb_$pusmb_ 000040 constant entry external dcl 52 ref 141 putxt_$putxt_ 000032 constant entry external dcl 52 ref 127 rary 000102 automatic pointer dcl 34 set ref 65* 77* 90* 110 110 relword based fixed bin(35,0) array dcl 38 ref 110 relwrd 000105 automatic fixed bin(35,0) dcl 40 set ref 110* 110* 127* 135* 141* 147* 152* rword parameter fixed bin(35,0) dcl 40 set ref 71 77 segmnt 000107 automatic fixed bin(35,0) dcl 40 set ref 101* 118 120 122 124 tinhib 64 000010 external static fixed bin(26,0) level 2 dcl 1-7 ref 116 utils_$and 000030 constant entry external dcl 46 ref 114 utils_$or 000026 constant entry external dcl 46 ref 116 word 000112 automatic fixed bin(35,0) dcl 41 set ref 108* 114* 116* 116* 127* 135* 141* 147* 152* xary parameter fixed bin(35,0) dcl 40 set ref 59 63 xhow parameter fixed bin(35,0) dcl 40 ref 59 71 84 112 xlary parameter pointer dcl 34 ref 84 88 xlword parameter pointer dcl 34 ref 84 90 xn parameter fixed bin(35,0) dcl 40 ref 59 61 84 86 xpc parameter fixed bin(35,0) dcl 40 set ref 59 71 84 127 135 141 147 152 156* 156 xrary parameter fixed bin(35,0) dcl 40 set ref 59 65 xword parameter fixed bin(35,0) dcl 40 set ref 71 75 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. xrword automatic fixed bin(35,0) dcl 40 NAMES DECLARED BY EXPLICIT CONTEXT. label_1000 000104 constant label dcl 97 ref 67 79 label_1005 000253 constant label dcl 127 label_1010 000274 constant label dcl 135 ref 118 122 label_1015 000315 constant label dcl 141 ref 120 label_1017 000336 constant label dcl 147 ref 124 label_1020 000356 constant label dcl 152 ref 132 139 145 label_1030 000140 constant label dcl 104 putblk 000066 constant entry external dcl 84 putlst 000022 constant entry external dcl 59 putout_ 000007 constant entry external dcl 22 putwrd 000044 constant entry external dcl 71 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 63 65 75 77 null builtin function ref 110 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 570 634 413 600 Length 1070 413 44 217 155 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME putout_ 102 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME putout_ 000100 lary putout_ 000102 rary putout_ 000104 how putout_ 000105 relwrd putout_ 000106 origin putout_ 000107 segmnt putout_ 000110 i putout_ 000111 n putout_ 000112 word putout_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. glpl_$clh glpl_$crh prwrd_$prwrd2 pudef_$pudef_ pulnk_$pulnk_ pusmb_$pusmb_ putxt_$putxt_ utils_$and utils_$or THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. eb_data_$concom eb_data_$curlc eb_data_$mb28 eb_data_$mb29 eb_data_$varcom LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000006 59 000014 61 000027 63 000032 65 000034 67 000036 71 000037 73 000051 75 000053 77 000056 79 000060 84 000061 86 000073 88 000076 90 000101 97 000104 101 000122 104 000140 108 000147 110 000152 110 000163 112 000164 114 000167 116 000216 118 000242 120 000245 122 000247 124 000251 127 000253 132 000273 135 000274 139 000314 141 000315 145 000335 147 000336 152 000356 156 000400 158 000405 160 000412 ----------------------------------------------------------- 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