COMPILATION LISTING OF SEGMENT print_pl1_version Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-05-05_1833.30_Fri_mdt 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 /* A tool to print pl1_version information in bound_pl1_ */ 12 13 print_pl1_version: 14 procedure; 15 16 /* Written: 12 Dec 1979 by Peter Krupp */ 17 18 /* external entries */ 19 20 dcl ioa_ entry options(variable); 21 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 22 dcl cu_$arg_count entry() returns (fixed bin); 23 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 24 dcl com_err_ entry options (variable); 25 dcl com_err_$suppress_name entry options(variable); 26 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 27 dcl component_info_$name entry (ptr, char(32), ptr, fixed bin(35)); 28 dcl hcs_$terminate_noname entry (ptr, fixed bin(35)); 29 30 /* automatic */ 31 32 dcl path_arg_length fixed bin; 33 dcl path_arg_ptr ptr; 34 dcl object_dir char(168); 35 dcl object_entry char(32); 36 dcl nargs fixed bin; 37 dcl code fixed bin(35); 38 dcl null_ref_name char(0); 39 dcl bound_seg_ptr ptr init(null()); 40 dcl area_ret_ptr ptr; 41 dcl call_terminate bit(1) aligned initial("0"b); 42 43 /* internal static */ 44 45 dcl (my_name char(17) initial("print_pl1_version"), 46 path_arg_no fixed bin init(1), 47 copy_sw fixed bin(2) init(0), 48 seg_sw fixed bin(1) init(0), 49 component_name char(32) init("pl1_version")) int static options(constant); 50 51 /* based */ 52 53 dcl path_arg char(path_arg_length) based(path_arg_ptr); 54 dcl 1 pl1_version_struc based, 55 2 pl1_version char(256) var, 56 2 pl1_release char(3) var; 57 58 /* builtin */ 59 60 dcl (addr,null) builtin; 61 62 /* condition */ 63 64 dcl cleanup condition; 65 66 /* include files */ 67 1 1 /* BEGIN INCLUDE SEGMENT ... component_info.incl.pl1 M. Weaver 4/26/72 */ 1 2 1 3 declare 1 ci aligned, 1 4 2 dcl_version fixed bin, /* version number of this structure */ 1 5 2 name char(32) aligned, /* objectname of component segment */ 1 6 2 text_start pointer, /* ptr to component's section of text */ 1 7 2 stat_start pointer, /* pointer to component's section of internal static */ 1 8 2 symb_start pointer, /* pointer to component's first symbol block */ 1 9 2 defblock_ptr pointer, /* ptr to component's definition block */ 1 10 2 text_lng fixed bin, /* length of text section */ 1 11 2 stat_lng fixed bin, /* length of internal static */ 1 12 2 symb_lng fixed bin, /* length of symbol section */ 1 13 2 n_blocks fixed bin, /* number of symbol blocks in component's symbol section */ 1 14 2 standard bit(1) aligned, /* indicates whether component is in standard (new) format */ 1 15 2 compiler char(8) aligned, /* name of component's compiler */ 1 16 2 compile_time fixed bin(71), /* time component was compiled */ 1 17 2 userid char(32) aligned, /* id of creator of component */ 1 18 2 cvers aligned, /* version of component's compiler in printable form */ 1 19 3 offset bit(18) unaligned, /* offset in words relative to symb_start */ 1 20 3 length bit(18) unaligned, /* length of name in characters */ 1 21 2 comment aligned, /* component's comment */ 1 22 3 offset bit(18) unaligned, /* offset in words relative to symb_start */ 1 23 3 length bit(18) unaligned, /* length of comment in characters */ 1 24 2 source_map fixed bin; /* offset, rel to beg of symbol block, of component's source map */ 1 25 1 26 /* END INCLUDE SEGMENT ... component_info.incl.pl1 */ 68 69 70 /* program */ 71 72 on cleanup 73 begin; 74 if call_terminate & bound_seg_ptr ^= null() 75 then call hcs_$terminate_noname(bound_seg_ptr,code); 76 end; 77 78 79 /* Determine number of arguments in command invocation */ 80 81 nargs = cu_$arg_count(); 82 if nargs ^= 1 83 then do; 84 call com_err_$suppress_name(0,my_name,"Usage: print_pl1_version "); 85 return; 86 end; 87 88 /* Get the pathname and validate it */ 89 90 call cu_$arg_ptr(path_arg_no,path_arg_ptr,path_arg_length,code); 91 call expand_pathname_(path_arg,object_dir,object_entry,code); 92 if code ^= 0 93 then go to ERROR; 94 95 /* Get pointer to segment and component */ 96 97 call_terminate = "1"b; 98 call hcs_$initiate(object_dir,object_entry,null_ref_name,seg_sw,copy_sw,bound_seg_ptr,code); 99 100 if bound_seg_ptr = null() 101 then go to ERROR; 102 103 ci.dcl_version = 1; 104 call component_info_$name(bound_seg_ptr,component_name,addr(ci),code); 105 if code ^= 0 106 then go to ERROR; 107 108 /* Print the version information */ 109 110 call ioa_("^a: pl1_version=""^a""",my_name,ci.text_start -> pl1_version); 111 call ioa_("^a: pl1_release=""^a""",my_name,ci.text_start -> pl1_release); 112 113 /* Terminate the segment */ 114 115 call hcs_$terminate_noname(bound_seg_ptr,code); 116 return; 117 118 /* Error exit: print a message and quit */ 119 120 ERROR: 121 call com_err_(code,my_name); 122 123 if call_terminate 124 then call hcs_$terminate_noname(bound_seg_ptr,code); 125 126 return; 127 128 end /* print_pl1_version */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/05/00 1833.3 print_pl1_version.pl1 >udd>sm>ds>w>ml>print_pl1_version.pl1 68 1 05/06/74 1841.0 component_info.incl.pl1 >ldd>incl>component_info.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. addr builtin function dcl 60 ref 104 104 bound_seg_ptr 000170 automatic pointer initial dcl 39 set ref 39* 74 74* 98* 100 104* 115* 123* call_terminate 000172 automatic bit(1) initial dcl 41 set ref 41* 74 97* 123 ci 000202 automatic structure level 1 dcl 1-3 set ref 104 104 cleanup 000174 stack reference condition dcl 64 ref 72 code 000167 automatic fixed bin(35,0) dcl 37 set ref 74* 90* 91* 92 98* 104* 105 115* 120* 123* com_err_ 000020 constant entry external dcl 24 ref 120 com_err_$suppress_name 000022 constant entry external dcl 25 ref 84 component_info_$name 000026 constant entry external dcl 27 ref 104 component_name 000000 constant char(32) initial packed unaligned dcl 45 set ref 104* copy_sw 000032 constant fixed bin(2,0) initial dcl 45 set ref 98* cu_$arg_count 000014 constant entry external dcl 22 ref 81 cu_$arg_ptr 000012 constant entry external dcl 21 ref 90 dcl_version 000202 automatic fixed bin(17,0) level 2 dcl 1-3 set ref 103* expand_pathname_ 000016 constant entry external dcl 23 ref 91 hcs_$initiate 000024 constant entry external dcl 26 ref 98 hcs_$terminate_noname 000030 constant entry external dcl 28 ref 74 115 123 ioa_ 000010 constant entry external dcl 20 ref 110 111 my_name 000010 constant char(17) initial packed unaligned dcl 45 set ref 84* 110* 111* 120* nargs 000166 automatic fixed bin(17,0) dcl 36 set ref 81* 82 null builtin function dcl 60 ref 39 74 100 null_ref_name 000170 automatic char packed unaligned dcl 38 set ref 98* object_dir 000104 automatic char(168) packed unaligned dcl 34 set ref 91* 98* object_entry 000156 automatic char(32) packed unaligned dcl 35 set ref 91* 98* path_arg based char packed unaligned dcl 53 set ref 91* path_arg_length 000100 automatic fixed bin(17,0) dcl 32 set ref 90* 91 91 path_arg_no 000033 constant fixed bin(17,0) initial dcl 45 set ref 90* path_arg_ptr 000102 automatic pointer dcl 33 set ref 90* 91 pl1_release 101 based varying char(3) level 2 dcl 54 set ref 111* pl1_version based varying char(256) level 2 dcl 54 set ref 110* pl1_version_struc based structure level 1 unaligned dcl 54 seg_sw 000032 constant fixed bin(1,0) initial dcl 45 set ref 98* text_start 12 000202 automatic pointer level 2 dcl 1-3 set ref 110 111 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. area_ret_ptr automatic pointer dcl 40 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 000421 constant label dcl 120 ref 92 100 105 print_pl1_version 000065 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 606 640 452 616 Length 1040 452 32 164 133 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME print_pl1_version 246 external procedure is an external procedure. on unit on line 72 70 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME print_pl1_version 000100 path_arg_length print_pl1_version 000102 path_arg_ptr print_pl1_version 000104 object_dir print_pl1_version 000156 object_entry print_pl1_version 000166 nargs print_pl1_version 000167 code print_pl1_version 000170 bound_seg_ptr print_pl1_version 000170 null_ref_name print_pl1_version 000172 call_terminate print_pl1_version 000202 ci print_pl1_version THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name component_info_$name cu_$arg_count cu_$arg_ptr expand_pathname_ hcs_$initiate hcs_$terminate_noname ioa_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000064 39 000072 41 000074 72 000075 74 000111 76 000130 81 000131 82 000140 84 000143 85 000170 90 000171 91 000206 92 000236 97 000240 98 000242 100 000303 103 000307 104 000311 105 000330 110 000332 111 000357 115 000407 116 000420 120 000421 123 000436 126 000451 ----------------------------------------------------------- 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