COMPILATION LISTING OF SEGMENT list_external_variables Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1939.19_Mon_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 list_external_variables: lev: proc; 12 13 /* This command prints information about selected external 14* variables (*system link targets). */ 15 /* coded October 1976 by M. Weaver */ 16 /* modified December 1976 by M. Weaver to adjust ioa_control bounds */ 17 /* Modified November 1982 by T. Oke to change format for longer VLA sizes */ 18 /* Modified December 1983 by M. Weaver to print sizes in decimal */ 19 20 dcl (i, j, n, alng, nnames, nprinted, nchars) fixed bin; 21 dcl code fixed bin (35); 22 dcl (hdrsw, lgsw, allsw, fatal) bit (1) aligned; 23 dcl (tp, np, aptr, vptr, alp) ptr; 24 dcl arg char (alng) based (aptr); 25 dcl vname char (65); 26 dcl date char (24); 27 dcl me char (23) aligned init ("list_external_variables") static options (constant); 28 dcl ioa_control (0:3) char (30) var static options (constant) init ( 29 "^30a ^3o ^6o ^8d ^16a ^p", /* short name -lg */ 30 "^a^/^31x^3o ^6o ^8d ^16a ^p", /* long name -lg */ 31 "^30a ^3o ^6o ^8d", /* short name -bf */ 32 "^a^/^31x^3o ^6o ^8d"); /* long name -bf */ 33 dcl (error_table_$badopt, error_table_$too_many_args, error_table_$bigarg) ext fixed bin (35); 34 dcl (addr, baseno, bin, fixed, hbound, lbound, null, ptr, rel, substr) builtin; 35 dcl (com_err_, ioa_) entry options (variable); 36 dcl cu_$arg_count entry () returns (fixed bin); 37 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 38 dcl cu_$arg_list_ptr entry () returns (ptr); 39 dcl date_time_ entry (fixed bin (71), char (*)); 40 1 1 /* BEGIN INCLUDE FILE ... system_link_names.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), audit(86-11-12,Zwick), 1 6* install(86-11-20,MR12.0-1222): 1 7* added the declaration of the heap_header. 1 8* 2) change(86-10-20,DGHowe), approve(86-10-20,MCR7420), audit(86-11-12,Zwick), 1 9* install(86-11-20,MR12.0-1222): 1 10* add the seg ptr to the variable node structure. 1 11* END HISTORY COMMENTS */ 1 12 1 13 1 14 /* created by M. Weaver 7/28/76 */ 1 15 /* Modified: 82-11-19 by T. Oke to add LIST_TEMPLATE_INIT. */ 1 16 /* Modified 02/11/83 by M. Weaver to add have_vla_variables flag */ 1 17 1 18 1 19 dcl 1 variable_table_header aligned based, /* header for name table */ 1 20 2 hash_table (0:63) ptr unaligned, /* hash table for variable nodes */ 1 21 2 total_search_time fixed bin (71), /* total time to search for variables */ 1 22 2 total_allocation_time fixed bin (71), /* total time spent allocating and initializing nodes and variables */ 1 23 2 number_of_searches fixed bin, /* number of times names were looked up */ 1 24 2 number_of_variables fixed bin (35), /* number of variables allocated by the linker, incl deletions */ 1 25 2 flags unaligned, 1 26 3 have_vla_variables bit (1) unaligned, /* on if some variables are > sys_info$max_seg_size */ 1 27 3 pad bit (11) unaligned, 1 28 2 cur_num_of_variables fixed bin (24) unal, /* current number of variables allocated */ 1 29 2 number_of_steps fixed bin, /* total number of nodes looked at */ 1 30 2 total_allocated_size fixed bin (35); /* current amount of storage in user area */ 1 31 1 32 1 33 dcl 1 variable_node aligned based, /* individual variable information */ 1 34 2 forward_thread ptr unaligned, /* thread to next node off same hash bucket */ 1 35 2 vbl_size fixed bin (24) unsigned unaligned, /* length in words of variable */ 1 36 2 init_type fixed bin (11) unaligned, /* 0=not init; 3=init template; 4=area 5=list_template*/ 1 37 2 time_allocated fixed bin (71), /* time when variable was allocated */ 1 38 2 vbl_ptr ptr, /* pointer to variable's storage */ 1 39 2 init_ptr ptr, /* pointer to original init info in object seg */ 1 40 2 name_size fixed bin(21) aligned, /* length of name in characters */ 1 41 2 name char (nchars refer (variable_node.name_size)), /* name of variable */ 1 42 2 seg_ptr pointer; 1 43 1 44 /* variable_node.seg_ptr 1 45* Is a pointer to the segment containing the initialization information 1 46* for this variable. It is used as a segment base pointer for external 1 47* pointer initialization via list_init_. 1 48* 1 49* The init_ptr can not be used as a reference to the defining segment 1 50* due to the possibility of set_fortran_common being used to initialize 1 51* the external variables. sfc will generate an initialization information 1 52* structure if multiple intialization sizes are found in the specified 1 53* segments. sfc stores the address of this structure in the init_ptr field. 1 54* This is one reason why sfc does not perform external pointer 1 55* initialization. 1 56* 1 57* The seg_ptr is set to point at the segment used to define the 1 58* initialization information. term_ sets this field to null on termination 1 59* due to the possiblity of executing a different segment which defines 1 60* initialization information. In this way the seg_ptr field will either 1 61* be valid or null. 1 62**/ 1 63 1 64 dcl 1 heap_header based, 1 65 2 version char(8), /* specifies the verison of the header */ 1 66 2 heap_name_list_ptr pointer, /* points to the variable_table_header for this heap */ 1 67 2 previous_heap_ptr pointer, /* points to the previous heap or is null */ 1 68 2 area_ptr pointer, /* points to the heap area */ 1 69 2 execution_level fixed bin (17); /* specifies the execution level this header deals with */ 1 70 1 71 dcl heap_header_version_1 char(8) static options (constant) 1 72 init ("Heap_v01"); 1 73 1 74 1 75 /* END INCLUDE FILE ... system_link_names.incl.pl1 */ 41 42 43 2 1 /* BEGIN INCLUDE FILE ... stack_header.incl.pl1 .. 3/72 Bill Silver */ 2 2 /* modified 7/76 by M. Weaver for *system links and more system use of areas */ 2 3 /* modified 3/77 by M. Weaver to add rnt_ptr */ 2 4 /* Modified April 1983 by C. Hornig for tasking */ 2 5 2 6 /****^ HISTORY COMMENTS: 2 7* 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), 2 8* audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206): 2 9* added the heap_header_ptr definition. 2 10* 2) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 2 11* audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206): 2 12* Modified to support control point management. These changes were actually 2 13* made in February 1985 by G. Palter. 2 14* 3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473), 2 15* audit(86-10-22,Farley), install(86-11-03,MR12.0-1206): 2 16* Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18 2 17* bit pad after cur_lot_size for the cpm_enabled. This was done to save some 2 18* space int the stack header and change the cpd_ptr unal to cpm_data_ptr 2 19* (ITS pair). 2 20* END HISTORY COMMENTS */ 2 21 2 22 /* format: style2 */ 2 23 2 24 dcl sb ptr; /* the main pointer to the stack header */ 2 25 2 26 dcl 1 stack_header based (sb) aligned, 2 27 2 pad1 (4) fixed bin, /* (0) also used as arg list by outward_call_handler */ 2 28 2 cpm_data_ptr ptr, /* (4) pointer to control point which owns this stack */ 2 29 2 combined_stat_ptr ptr, /* (6) pointer to area containing separate static */ 2 30 2 clr_ptr ptr, /* (8) pointer to area containing linkage sections */ 2 31 2 max_lot_size fixed bin (17) unal, /* (10) DU number of words allowed in lot */ 2 32 2 main_proc_invoked fixed bin (11) unal, /* (10) DL nonzero if main procedure invoked in run unit */ 2 33 2 have_static_vlas bit (1) unal, /* (10) DL "1"b if (very) large arrays are being used in static */ 2 34 2 pad4 bit (2) unal, 2 35 2 run_unit_depth fixed bin (2) unal, /* (10) DL number of active run units stacked */ 2 36 2 cur_lot_size fixed bin (17) unal, /* (11) DU number of words (entries) in lot */ 2 37 2 cpm_enabled bit (18) unal, /* (11) DL non-zero if control point management is enabled */ 2 38 2 system_free_ptr ptr, /* (12) pointer to system storage area */ 2 39 2 user_free_ptr ptr, /* (14) pointer to user storage area */ 2 40 2 null_ptr ptr, /* (16) */ 2 41 2 stack_begin_ptr ptr, /* (18) pointer to first stack frame on the stack */ 2 42 2 stack_end_ptr ptr, /* (20) pointer to next useable stack frame */ 2 43 2 lot_ptr ptr, /* (22) pointer to the lot for the current ring */ 2 44 2 signal_ptr ptr, /* (24) pointer to signal procedure for current ring */ 2 45 2 bar_mode_sp ptr, /* (26) value of sp before entering bar mode */ 2 46 2 pl1_operators_ptr ptr, /* (28) pointer to pl1_operators_$operator_table */ 2 47 2 call_op_ptr ptr, /* (30) pointer to standard call operator */ 2 48 2 push_op_ptr ptr, /* (32) pointer to standard push operator */ 2 49 2 return_op_ptr ptr, /* (34) pointer to standard return operator */ 2 50 2 return_no_pop_op_ptr 2 51 ptr, /* (36) pointer to standard return / no pop operator */ 2 52 2 entry_op_ptr ptr, /* (38) pointer to standard entry operator */ 2 53 2 trans_op_tv_ptr ptr, /* (40) pointer to translator operator ptrs */ 2 54 2 isot_ptr ptr, /* (42) pointer to ISOT */ 2 55 2 sct_ptr ptr, /* (44) pointer to System Condition Table */ 2 56 2 unwinder_ptr ptr, /* (46) pointer to unwinder for current ring */ 2 57 2 sys_link_info_ptr ptr, /* (48) pointer to *system link name table */ 2 58 2 rnt_ptr ptr, /* (50) pointer to Reference Name Table */ 2 59 2 ect_ptr ptr, /* (52) pointer to event channel table */ 2 60 2 assign_linkage_ptr ptr, /* (54) pointer to storage for (obsolete) hcs_$assign_linkage */ 2 61 2 heap_header_ptr ptr, /* (56) pointer to the heap header for this ring */ 2 62 2 trace, 2 63 3 frames, 2 64 4 count fixed bin, /* (58) number of trace frames */ 2 65 4 top_ptr ptr unal, /* (59) pointer to last trace frame */ 2 66 3 in_trace bit (36) aligned, /* (60) trace antirecursion flag */ 2 67 2 pad2 bit (36), /* (61) */ 2 68 2 pad5 pointer; /* (62) pointer to future stuff */ 2 69 2 70 /* The following offset refers to a table within the pl1 operator table. */ 2 71 2 72 dcl tv_offset fixed bin init (361) internal static; 2 73 /* (551) octal */ 2 74 2 75 2 76 /* The following constants are offsets within this transfer vector table. */ 2 77 2 78 dcl ( 2 79 call_offset fixed bin init (271), 2 80 push_offset fixed bin init (272), 2 81 return_offset fixed bin init (273), 2 82 return_no_pop_offset fixed bin init (274), 2 83 entry_offset fixed bin init (275) 2 84 ) internal static; 2 85 2 86 2 87 2 88 2 89 2 90 /* The following declaration is an overlay of the whole stack header. Procedures which 2 91* move the whole stack header should use this overlay. 2 92**/ 2 93 2 94 dcl stack_header_overlay (size (stack_header)) fixed bin based (sb); 2 95 2 96 2 97 2 98 /* END INCLUDE FILE ... stack_header.incl.pl1 */ 44 45 46 47 48 /* find out if there are any external variables */ 49 50 sb = ptr (addr (nnames), 0); 51 tp = sb -> stack_header.sys_link_info_ptr; 52 if tp = null then do; 53 no_variables: call com_err_ (0, me, "There are no external variables."); 54 return; 55 end; 56 if tp -> variable_table_header.cur_num_of_variables < 1 then goto no_variables; 57 58 hdrsw = "1"b; 59 lgsw = "0"b; 60 allsw = "0"b; 61 fatal = "0"b; 62 nnames = 0; 63 nprinted = 0; 64 alp = cu_$arg_list_ptr(); 65 n = cu_$arg_count (); 66 67 begin; 68 69 dcl 1 list (n) aligned, 70 2 name char (65), 71 2 nsize fixed bin (17) unal, 72 2 found bit (1) unal, 73 2 pad bit (17) unal; 74 75 76 /* process all the arguments */ 77 78 do i = 1 to n; 79 call cu_$arg_ptr_rel (i, aptr, alng, code, alp); 80 if code ^= 0 then do; 81 call com_err_ (code, me, arg); 82 fatal = "1"b; 83 end; 84 else if substr (arg, 1, 1) = "-" then do; 85 if arg = "-unlabelled_common" | arg = "-uc" then do; 86 nnames = nnames + 1; 87 list (nnames).name = "blnk*com"; 88 list (nnames).nsize = 8; 89 list (nnames).found = "0"b; 90 end; 91 else if arg = "-long" | arg = "-lg" then lgsw = "1"b; 92 else if arg = "-all" | arg = "-a" then allsw = "1"b; 93 else if arg = "-no_header" | arg = "-nhe" then hdrsw = "0"b; 94 else do; 95 call com_err_ (error_table_$badopt, me, arg); 96 fatal = "1"b; 97 end; 98 end; 99 else do; 100 nnames = nnames + 1; 101 if nnames > hbound (list, 1) then do; 102 call com_err_ (error_table_$too_many_args, me, "^d names maximum", 103 hbound (list, 1)); 104 return; 105 end; 106 if alng > 31 then do; 107 call com_err_ (error_table_$bigarg, me, arg); 108 fatal = "1"b; 109 end; 110 list (nnames).name = arg; 111 list (nnames).nsize = alng; 112 list (nnames).found = "0"b; 113 end; 114 end; 115 116 if fatal then return; 117 if nnames = 0 then allsw = "1"b; /* print all by default */ 118 119 if hdrsw then do; 120 if lgsw then call ioa_ ( 121 "^/NAME^-^- SEGMENT OFFSET SIZE ALLOCATED INIT_PTR^/"); 122 else call ioa_ ("^/NAME^-^- SEGMENT OFFSET SIZE^/"); 123 end; 124 125 /* loop through system name list, printing info for desired variables */ 126 127 128 do i = lbound (tp -> variable_table_header.hash_table, 1) to 129 hbound (tp -> variable_table_header.hash_table, 1); 130 do np = tp -> variable_table_header.hash_table (i) repeat 131 np -> variable_node.forward_thread while (np ^= null); 132 if allsw then call print_it; 133 else do j = 1 to nnames; /* see if this name matches any on list */ 134 if ^list (j).found then do; 135 if list (j).nsize = np -> variable_node.name_size 136 then if list (j).name = np -> variable_node.name then do; 137 call print_it; 138 list (j).found = "1"b; 139 nprinted = nprinted + 1; 140 if nprinted = nnames then return; 141 go to next_name; 142 end; 143 end; 144 end; 145 next_name: end; 146 end; 147 if allsw then return; 148 149 call ioa_ ("^/The following variables were not found:"); 150 do i = 1 to nnames; 151 if ^list (i).found then do; 152 if list (i).name = "blnk*com" then vname = "unlabelled common"; 153 else vname = list (i).name; 154 call ioa_ ("^a", vname); 155 end; 156 end; 157 158 end; /* of begin block */ 159 160 return; 161 162 163 164 print_it: proc; 165 166 if np -> variable_node.name = "blnk*com" then vname = "unlabelled common"; 167 else vname = np -> variable_node.name; 168 vptr = np -> variable_node.vbl_ptr; 169 if lgsw then do; 170 call date_time_ (np -> variable_node.time_allocated, date); 171 aptr = np -> variable_node.init_ptr; 172 call ioa_ (ioa_control (bin ((np -> variable_node.name_size > 31), 1)), vname, fixed (baseno (vptr), 15), 173 bin (rel (vptr), 18), np -> variable_node.vbl_size, substr (date, 1, 16), aptr); 174 end; 175 else call ioa_ (ioa_control (bin ((np -> variable_node.name_size > 31), 1)+2), vname, 176 fixed (baseno (vptr), 15), bin (rel (vptr), 18), np -> variable_node.vbl_size); 177 return; 178 179 end; /* of print_it */ 180 181 182 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1939.2 list_external_variables.pl1 >udd>sm>ds>w>ml>list_external_variables.pl1 41 1 11/24/86 1326.9 system_link_names.incl.pl1 >ldd>incl>system_link_names.incl.pl1 44 2 11/07/86 1650.3 stack_header.incl.pl1 >ldd>incl>stack_header.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 34 ref 50 allsw 000111 automatic bit(1) dcl 22 set ref 60* 92* 117* 132 147 alng 000103 automatic fixed bin(17,0) dcl 20 set ref 79* 81 81 84 85 85 91 91 92 92 93 93 95 95 106 107 107 110 111 alp 000124 automatic pointer dcl 23 set ref 64* 79* aptr 000120 automatic pointer dcl 23 set ref 79* 81 84 85 85 91 91 92 92 93 93 95 107 110 171* 172* arg based char packed unaligned dcl 24 set ref 81* 84 85 85 91 91 92 92 93 93 95* 107* 110 baseno builtin function dcl 34 ref 172 172 175 175 bin builtin function dcl 34 ref 172 172 172 175 175 175 code 000106 automatic fixed bin(35,0) dcl 21 set ref 79* 80 81* com_err_ 000016 constant entry external dcl 35 ref 53 81 95 102 107 cu_$arg_count 000022 constant entry external dcl 36 ref 65 cu_$arg_list_ptr 000026 constant entry external dcl 38 ref 64 cu_$arg_ptr_rel 000024 constant entry external dcl 37 ref 79 cur_num_of_variables 106(12) based fixed bin(24,0) level 2 packed packed unaligned dcl 1-19 ref 56 date 000147 automatic char(24) packed unaligned dcl 26 set ref 170* 172 172 date_time_ 000030 constant entry external dcl 39 ref 170 error_table_$badopt 000010 external static fixed bin(35,0) dcl 33 set ref 95* error_table_$bigarg 000014 external static fixed bin(35,0) dcl 33 set ref 107* error_table_$too_many_args 000012 external static fixed bin(35,0) dcl 33 set ref 102* fatal 000112 automatic bit(1) dcl 22 set ref 61* 82* 96* 108* 116 fixed builtin function dcl 34 ref 172 172 175 175 forward_thread based pointer level 2 packed packed unaligned dcl 1-33 ref 145 found 21(18) 000100 automatic bit(1) array level 2 packed packed unaligned dcl 69 set ref 89* 112* 134 138* 151 hash_table based pointer array level 2 packed packed unaligned dcl 1-19 ref 128 128 130 hbound builtin function dcl 34 ref 101 102 102 128 hdrsw 000107 automatic bit(1) dcl 22 set ref 58* 93* 119 i 000100 automatic fixed bin(17,0) dcl 20 set ref 78* 79* 128* 130* 150* 151 152 153* init_ptr 6 based pointer level 2 dcl 1-33 ref 171 ioa_ 000020 constant entry external dcl 35 ref 120 122 149 154 172 175 ioa_control 000000 constant varying char(30) initial array dcl 28 set ref 172* 175* j 000101 automatic fixed bin(17,0) dcl 20 set ref 133* 134 135 135 138* lbound builtin function dcl 34 ref 128 lgsw 000110 automatic bit(1) dcl 22 set ref 59* 91* 120 169 list 000100 automatic structure array level 1 dcl 69 set ref 101 102 102 me 000044 constant char(23) initial dcl 27 set ref 53* 81* 95* 102* 107* n 000102 automatic fixed bin(17,0) dcl 20 set ref 65* 69 78 name 11 based char level 2 in structure "variable_node" dcl 1-33 in procedure "lev" ref 135 166 167 name 000100 automatic char(65) array level 2 in structure "list" dcl 69 in begin block on line 67 set ref 87* 110* 135 152 153 name_size 10 based fixed bin(21,0) level 2 dcl 1-33 ref 135 135 166 167 172 175 nnames 000104 automatic fixed bin(17,0) dcl 20 set ref 50 62* 86* 86 87 88 89 100* 100 101 110 111 112 117 133 140 150 np 000116 automatic pointer dcl 23 set ref 130* 130* 135 135* 145 166 167 168 170 171 172 172 175 175 nprinted 000105 automatic fixed bin(17,0) dcl 20 set ref 63* 139* 139 140 nsize 21 000100 automatic fixed bin(17,0) array level 2 packed packed unaligned dcl 69 set ref 88* 111* 135 null builtin function dcl 34 ref 52 130 ptr builtin function dcl 34 ref 50 rel builtin function dcl 34 ref 172 172 175 175 sb 000156 automatic pointer dcl 2-24 set ref 50* 51 stack_header based structure level 1 dcl 2-26 substr builtin function dcl 34 ref 84 172 172 sys_link_info_ptr 60 based pointer level 2 dcl 2-26 ref 51 time_allocated 2 based fixed bin(71,0) level 2 dcl 1-33 set ref 170* tp 000114 automatic pointer dcl 23 set ref 51* 52 56 128 128 130 variable_node based structure level 1 dcl 1-33 variable_table_header based structure level 1 dcl 1-19 vbl_ptr 4 based pointer level 2 dcl 1-33 ref 168 vbl_size 1 based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 1-33 set ref 172* 175* vname 000126 automatic char(65) packed unaligned dcl 25 set ref 152* 153* 154* 166* 167* 172* 175* vptr 000122 automatic pointer dcl 23 set ref 168* 172 172 172 172 175 175 175 175 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. call_offset internal static fixed bin(17,0) initial dcl 2-78 entry_offset internal static fixed bin(17,0) initial dcl 2-78 heap_header based structure level 1 unaligned dcl 1-64 heap_header_version_1 internal static char(8) initial packed unaligned dcl 1-71 nchars automatic fixed bin(17,0) dcl 20 push_offset internal static fixed bin(17,0) initial dcl 2-78 return_no_pop_offset internal static fixed bin(17,0) initial dcl 2-78 return_offset internal static fixed bin(17,0) initial dcl 2-78 stack_header_overlay based fixed bin(17,0) array dcl 2-94 tv_offset internal static fixed bin(17,0) initial dcl 2-72 NAMES DECLARED BY EXPLICIT CONTEXT. lev 000212 constant entry external dcl 11 list_external_variables 000221 constant entry external dcl 11 next_name 001022 constant label dcl 145 ref 141 no_variables 000240 constant label dcl 53 ref 56 print_it 001130 constant entry internal dcl 164 ref 132 137 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1462 1514 1334 1472 Length 1736 1334 32 206 125 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lev 138 external procedure is an external procedure. begin block on line 67 166 begin block uses auto adjustable storage. print_it internal procedure shares stack frame of begin block on line 67. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 67 000100 list begin block on line 67 lev 000100 i lev 000101 j lev 000102 n lev 000103 alng lev 000104 nnames lev 000105 nprinted lev 000106 code lev 000107 hdrsw lev 000110 lgsw lev 000111 allsw lev 000112 fatal lev 000114 tp lev 000116 np lev 000120 aptr lev 000122 vptr lev 000124 alp lev 000126 vname lev 000147 date lev 000156 sb lev THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a enter_begin_block leave_begin_block call_ext_out_desc call_ext_out begin_return_mac return_mac alloc_auto_adj ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel date_time_ ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$bigarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000211 50 000226 51 000231 52 000233 53 000240 54 000265 56 000266 58 000274 59 000276 60 000277 61 000300 62 000301 63 000302 64 000303 65 000311 67 000320 69 000323 78 000331 79 000342 80 000361 81 000364 82 000410 83 000413 84 000414 85 000421 86 000432 87 000433 88 000442 89 000446 90 000450 91 000451 92 000464 93 000477 95 000511 96 000535 98 000540 100 000541 101 000542 102 000545 104 000602 106 000604 107 000607 108 000632 110 000635 111 000646 112 000654 114 000656 116 000660 117 000664 119 000670 120 000672 122 000711 128 000725 130 000734 132 000743 133 000747 134 000760 135 000766 137 001002 138 001003 139 001011 140 001012 141 001017 144 001020 145 001022 146 001027 147 001031 149 001035 150 001051 151 001062 152 001067 153 001101 154 001104 156 001123 158 001126 160 001127 164 001130 166 001131 167 001144 168 001147 169 001151 170 001153 171 001170 172 001175 174 001261 175 001262 177 001330 ----------------------------------------------------------- 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