COMPILATION LISTING OF SEGMENT decode_node_id Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1612.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 decode_node_id: proc(pt,caps) returns(char(120) varying); 12 13 dcl pt ptr, /* points at any node */ 14 caps bit(1) aligned; /* TRUE if capitals desired */ 15 16 dcl k fixed bin, 17 bindec$vs entry(fixed bin(15)) returns(char(12) varying), 18 v char(120) varying; 19 20 dcl statement(0:1) char(10) aligned static 21 init("statement ", "STATEMENT "), 22 on(0:1) char(4) aligned static init(" on ", " ON "), 23 line(0:1) char(5) aligned static init("line ", "LINE "), 24 file(0:1) char(9) aligned static init(" of file ", " OF FILE "); 25 26 dcl (addr,fixed,string) builtin; 27 1 1 /* BEGIN INCLUDE FILE ... nodes.incl.pl1 */ 1 2 1 3 /* Modified: 26 Dec 1979 by PCK to implement by name assignment */ 1 4 1 5 dcl ( block_node initial("000000001"b), 1 6 statement_node initial("000000010"b), 1 7 operator_node initial("000000011"b), 1 8 reference_node initial("000000100"b), 1 9 token_node initial("000000101"b), 1 10 symbol_node initial("000000110"b), 1 11 context_node initial("000000111"b), 1 12 array_node initial("000001000"b), 1 13 bound_node initial("000001001"b), 1 14 format_value_node initial("000001010"b), 1 15 list_node initial("000001011"b), 1 16 default_node initial("000001100"b), 1 17 machine_state_node initial("000001101"b), 1 18 source_node initial("000001110"b), 1 19 label_node initial("000001111"b), 1 20 cross_reference_node initial("000010000"b), 1 21 sf_par_node initial("000010001"b), 1 22 temporary_node initial("000010010"b), 1 23 label_array_element_node initial("000010011"b), 1 24 by_name_agg_node initial("000010100"b)) 1 25 bit(9) internal static aligned options(constant); 1 26 1 27 dcl 1 node based aligned, 1 28 2 type unal bit(9), 1 29 2 source_id unal structure, 1 30 3 file_number bit(8), 1 31 3 line_number bit(14), 1 32 3 statement_number bit(5); 1 33 1 34 /* END INCLUDE FILE ... nodes.incl.pl1 */ 28 2 1 dcl 1 source_id structure unaligned, 2 2 2 file_number bit(8), 2 3 2 line_number bit(14), 2 4 2 statement_number bit(5); 29 3 1 dcl m fixed bin(15); 3 2 dcl pl1_stat_$source_seg fixed bin(8) ext static; 3 3 dcl pl1_stat_$last_source fixed bin(15) ext static; 3 4 dcl pl1_stat_$source_list_ptr ptr ext static; 3 5 dcl source_list(0:source_list_length) ptr based(pl1_stat_$source_list_ptr); 3 6 dcl source_list_length fixed bin(15) internal static initial(255) options(constant); 3 7 3 8 dcl 1 source based(source_list(m)) aligned, 3 9 2 node_type unal bit(9), 3 10 2 source_id unal structure, 3 11 3 file_number bit(8), 3 12 3 line_number bit(14), 3 13 3 statement_number bit(5), 3 14 2 standard_object_info aligned structure, 3 15 3 uid bit(36), 3 16 3 dtm fixed bin(71), 3 17 2 seg_ptr unal ptr, 3 18 2 name unal ptr, 3 19 2 source_length unal fixed bin(24), 3 20 2 pathlen unal fixed bin(10), 3 21 2 pathname char(n refer(source.pathlen)); 30 4 1 /* BEGIN INCLUDE FILE ... token.incl.pl1 */ 4 2 4 3 dcl 1 token based aligned, 4 4 2 node_type bit(9) unaligned, 4 5 2 type bit(9) unaligned, 4 6 2 loc bit(18) unaligned, /* symtab offset for identifiers, "p" flag for constants */ 4 7 2 declaration ptr unaligned, 4 8 2 next ptr unaligned, 4 9 2 size fixed(9), 4 10 2 string char(n refer(token.size)); 4 11 4 12 /* END INCLUDE FILE ... token.incl.pl1 */ 31 32 33 string(source_id) = string(pt -> node.source_id); 34 go to begin; 35 36 decode_source_id: 37 entry(id, caps) returns(char(120) varying); 38 39 dcl 1 id like source_id; 40 41 string(source_id) = string(id); 42 43 begin: 44 k = fixed(caps,1); 45 46 m = fixed(source_id.statement_number,5); 47 if m = 1 then v = ""; 48 else do; 49 v = statement(k) || bindec$vs(m); 50 v = v || on(k); 51 end; 52 53 v = v || line(k); 54 v = v || bindec$vs(fixed(source_id.line_number,14)); 55 56 m = fixed(source_id.file_number,8); 57 58 if m ^= 0 59 then do; 60 v = v || file(k); 61 v = v || bindec$vs(m); 62 v = v || " ("; 63 v = v || source.name -> token.string; 64 v = v || ")"; 65 end; 66 67 return(v); 68 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1007.5 decode_node_id.pl1 >spec>on>pl128d>decode_node_id.pl1 28 1 07/21/80 1546.3 nodes.incl.pl1 >ldd>include>nodes.incl.pl1 29 2 05/06/74 1745.0 source_id.incl.pl1 >ldd>include>source_id.incl.pl1 30 3 05/03/76 1320.4 source_list.incl.pl1 >ldd>include>source_list.incl.pl1 31 4 09/14/77 1705.7 token.incl.pl1 >ldd>include>token.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. bindec$vs 000010 constant entry external dcl 16 ref 49 54 61 caps parameter bit(1) dcl 13 ref 11 36 43 file 000000 constant char(9) initial array dcl 20 ref 60 file_number 000140 automatic bit(8) level 2 packed unaligned dcl 2-1 set ref 56 fixed builtin function dcl 26 ref 43 46 54 54 56 id parameter structure level 1 packed unaligned dcl 39 ref 36 41 k 000100 automatic fixed bin(17,0) dcl 16 set ref 43* 49 50 53 60 line 000006 constant char(5) initial array dcl 20 ref 53 line_number 0(08) 000140 automatic bit(14) level 2 packed unaligned dcl 2-1 set ref 54 54 m 000141 automatic fixed bin(15,0) dcl 3-1 set ref 46* 47 49* 56* 58 61* 63 name 7 based pointer level 2 packed unaligned dcl 3-8 ref 63 node based structure level 1 dcl 1-27 on 000012 constant char(4) initial array dcl 20 ref 50 pl1_stat_$source_list_ptr 000012 external static pointer dcl 3-4 ref 63 pt parameter pointer dcl 13 ref 11 33 size 3 based fixed bin(9,0) level 2 dcl 4-3 ref 63 source based structure level 1 dcl 3-8 source_id 000140 automatic structure level 1 packed unaligned dcl 2-1 in procedure "decode_node_id" set ref 33* 41* source_id 0(09) based structure level 2 in structure "node" packed unaligned dcl 1-27 in procedure "decode_node_id" ref 33 source_list based pointer array dcl 3-5 ref 63 statement 000014 constant char(10) initial array dcl 20 ref 49 statement_number 0(22) 000140 automatic bit(5) level 2 packed unaligned dcl 2-1 set ref 46 string 4 based char level 2 in structure "token" dcl 4-3 in procedure "decode_node_id" ref 63 string builtin function dcl 26 in procedure "decode_node_id" set ref 33* 33 41* 41 token based structure level 1 dcl 4-3 v 000101 automatic varying char(120) dcl 16 set ref 47* 49* 50* 50 53* 53 54* 54 60* 60 61* 61 62* 62 63* 63 64* 64 67 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 26 array_node internal static bit(9) initial dcl 1-5 block_node internal static bit(9) initial dcl 1-5 bound_node internal static bit(9) initial dcl 1-5 by_name_agg_node internal static bit(9) initial dcl 1-5 context_node internal static bit(9) initial dcl 1-5 cross_reference_node internal static bit(9) initial dcl 1-5 default_node internal static bit(9) initial dcl 1-5 format_value_node internal static bit(9) initial dcl 1-5 label_array_element_node internal static bit(9) initial dcl 1-5 label_node internal static bit(9) initial dcl 1-5 list_node internal static bit(9) initial dcl 1-5 machine_state_node internal static bit(9) initial dcl 1-5 operator_node internal static bit(9) initial dcl 1-5 pl1_stat_$last_source external static fixed bin(15,0) dcl 3-3 pl1_stat_$source_seg external static fixed bin(8,0) dcl 3-2 reference_node internal static bit(9) initial dcl 1-5 sf_par_node internal static bit(9) initial dcl 1-5 source_list_length internal static fixed bin(15,0) initial dcl 3-6 source_node internal static bit(9) initial dcl 1-5 statement_node internal static bit(9) initial dcl 1-5 symbol_node internal static bit(9) initial dcl 1-5 temporary_node internal static bit(9) initial dcl 1-5 token_node internal static bit(9) initial dcl 1-5 NAMES DECLARED BY EXPLICIT CONTEXT. begin 000067 constant label dcl 43 ref 34 decode_node_id 000036 constant entry external dcl 11 decode_source_id 000055 constant entry external dcl 36 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 422 436 344 432 Length 672 344 14 217 55 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME decode_node_id 109 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME decode_node_id 000100 k decode_node_id 000101 v decode_node_id 000140 source_id decode_node_id 000141 m decode_node_id THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bindec$vs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. pl1_stat_$source_list_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000032 33 000043 34 000050 36 000051 41 000062 43 000067 46 000072 47 000076 49 000102 50 000140 53 000155 54 000173 56 000222 58 000225 60 000227 61 000245 62 000270 63 000302 64 000323 67 000332 ----------------------------------------------------------- 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