COMPILATION LISTING OF SEGMENT name_assign Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1652.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* ****************************************************** 8* * * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* * * 14* ****************************************************** */ 15 16 name_assign: proc(name) returns(bit(18) aligned); 17 18 dcl name char(*) aligned, 19 (n,def_pos) fixed bin(18), 20 (p,q) ptr; 21 22 dcl create_list entry(fixed bin) returns(ptr); 23 24 dcl (addrel,divide,fixed,length,null,rel) builtin; 25 26 dcl (cg_static_$name_list,cg_static_$def_base) ptr ext, 27 (cg_static_$def_origin,cg_static_$def_pos) fixed bin(18) ext; 28 29 dcl 1 name_mask aligned based, 30 2 count unal bit(9), 31 2 string unal char(n); 32 1 1 /* BEGIN INCLUDE FILE ... list.incl.pl1 */ 1 2 1 3 /* Modified 26 June 81 by EBush to add max_list_elements */ 1 4 1 5 1 6 dcl 1 list based aligned, 1 7 2 node_type bit(9) unaligned, 1 8 2 reserved bit(12) unaligned, 1 9 2 number fixed(14) unaligned, 1 10 2 element dimension(n refer(list.number)) ptr unaligned; 1 11 1 12 dcl max_list_elements fixed bin(17) internal static options (constant) 1 13 init(16383); 1 14 1 15 /* END INCLUDE FILE ... list.incl.pl1 */ 33 34 35 p = cg_static_$name_list; 36 37 do while(p ^= null); 38 39 q = p -> list.element(2); 40 41 n = fixed(q -> count,9); 42 if length(name) = n 43 then if name = q -> string 44 then do; 45 def_pos = fixed(rel(q),18) - cg_static_$def_origin; 46 goto ret; 47 end; 48 49 p = p -> list.element(1); 50 end; 51 52 n = length(name); 53 p = create_list(2); 54 55 p -> list.element(1) = cg_static_$name_list; 56 cg_static_$name_list = p; 57 58 def_pos = cg_static_$def_pos; 59 p -> list.element(2), q = addrel(cg_static_$def_base,def_pos); 60 61 q -> count = bit(fixed(n,9),9); 62 q -> string = name; 63 64 cg_static_$def_pos = def_pos + divide(n+4,4,17,0); 65 66 ret: return(bit(def_pos,18)); 67 68 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1009.0 name_assign.pl1 >spec>on>pl128d>name_assign.pl1 33 1 08/13/81 2211.5 list.incl.pl1 >ldd>include>list.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. addrel builtin function dcl 24 ref 59 cg_static_$def_base 000014 external static pointer dcl 26 ref 59 cg_static_$def_origin 000016 external static fixed bin(18,0) dcl 26 ref 45 cg_static_$def_pos 000020 external static fixed bin(18,0) dcl 26 set ref 58 64* cg_static_$name_list 000012 external static pointer dcl 26 set ref 35 55 56* count based bit(9) level 2 packed unaligned dcl 29 set ref 41 61* create_list 000010 constant entry external dcl 22 ref 53 def_pos 000101 automatic fixed bin(18,0) dcl 18 set ref 45* 58* 59 64 66 divide builtin function dcl 24 ref 64 element 1 based pointer array level 2 packed unaligned dcl 1-6 set ref 39 49 55* 59* fixed builtin function dcl 24 ref 41 45 61 length builtin function dcl 24 ref 42 52 list based structure level 1 dcl 1-6 n 000100 automatic fixed bin(18,0) dcl 18 set ref 41* 42 42 52* 61 62 64 name parameter char dcl 18 ref 16 42 42 52 62 name_mask based structure level 1 dcl 29 null builtin function dcl 24 ref 37 p 000102 automatic pointer dcl 18 set ref 35* 37 39 49* 49 53* 55 56 59 q 000104 automatic pointer dcl 18 set ref 39* 41 42 45 59* 61 62 rel builtin function dcl 24 ref 45 string 0(09) based char level 2 packed unaligned dcl 29 set ref 42 62* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. max_list_elements internal static fixed bin(17,0) initial dcl 1-12 NAMES DECLARED BY EXPLICIT CONTEXT. name_assign 000012 constant entry external dcl 16 ret 000142 constant label dcl 66 ref 46 NAME DECLARED BY CONTEXT OR IMPLICATION. bit builtin function ref 61 66 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 236 260 151 246 Length 444 151 22 150 64 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME name_assign 80 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME name_assign 000100 n name_assign 000101 def_pos name_assign 000102 p name_assign 000104 q name_assign THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. create_list THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$def_base cg_static_$def_origin cg_static_$def_pos cg_static_$name_list LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000006 35 000025 37 000030 39 000034 41 000037 42 000042 45 000054 46 000061 49 000062 50 000065 52 000066 53 000070 55 000103 56 000110 58 000111 59 000113 61 000121 62 000126 64 000135 66 000142 ----------------------------------------------------------- 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