COMPILATION LISTING OF SEGMENT fst_compile_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/06/87 1109.5 mst Thu Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 fst_compile_: proc; 11 12 /* This procedure contains two entry points to compile source programs. 13* The source program must have the proper language suffix and the object segment is creatted in the working directory. 14* 15* basic path no options 16* fortran path [-no_line_numbers] 17* 18* Written 3/76 by S.E. Barr 19* Modified 12/76 by M. Weaver to use version 2 compiler_source_info 20* Modified 02/80 by C R Davis to move fast_mask to include file. 21* Modified 1 Nov 1983 by C Spitzer: add ep_basic and sp_basic entry points. 22**/ 23 24 /* automatic */ 25 26 dcl acl_info_ptr ptr; 27 dcl arg_length fixed bin; 28 dcl arg_ptr ptr; 29 dcl code fixed bin (35); 30 dcl i fixed bin; 31 dcl nargs fixed bin; 32 dcl object_length fixed bin; 33 dcl object_ptr ptr; 34 dcl path char (168) var; 35 dcl proc_name char (7); /* basic or fortran */ 36 dcl 1 fort_opt aligned like fortran_options; 37 dcl 1 s aligned like compiler_source_info; 38 dcl source_ptr ptr; /* ptr to source segment */ 39 40 /* based */ 41 42 dcl arg char (arg_length) based (arg_ptr); 43 44 dcl (addr, divide, fixed, length, null, reverse, substr, unspec, verify) builtin; 45 46 dcl cleanup condition; 47 48 /* constant */ 49 50 dcl RE_ACCESS bit (36) aligned internal static options (constant) initial ("1100"b); 51 52 /* external */ 53 54 dcl basic_$compile entry (ptr, ptr, fixed bin, fixed bin (35)); 55 dcl basic_$precision_length ext fixed bin; 56 dcl com_err_ entry options (variable); 57 dcl cu_$arg_count entry (fixed bin); 58 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 59 dcl error_table_$badopt fixed bin (35) ext; 60 dcl error_table_$noarg fixed bin (35) ext; 61 dcl error_table_$wrong_no_of_args fixed bin (35) ext; 62 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 63 dcl fort_$compile entry (ptr, ptr, fixed bin, ptr, fixed bin (35)); 64 dcl get_wdir_ entry () returns (char (168)); 65 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 66 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), ptr, fixed bin (35)); 67 dcl hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 68 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 69 dcl tssi_$clean_up_segment entry (ptr); 70 dcl tssi_$finish_segment entry (ptr, fixed bin (24), bit (36) aligned, ptr, fixed bin (35)); 71 dcl tssi_$get_segment entry (char (*), char (*), ptr, ptr, fixed bin (35)); 72 73 /* */ 1 1 declare /* Structure returned by hcs_$status_long */ 1 2 1 3 1 branch_status aligned, /* automatic: hcs_$status uses a pointer */ 1 4 1 5 2 type bit(2) unaligned, /* type of entry: link, segment, dir */ 1 6 2 number_names bit(16) unaligned, /* unused by directory_status_ */ 1 7 2 names_rel_pointer bit(18) unaligned, /* unused by directory_status_ */ 1 8 2 date_time_modified bit(36) unaligned, /* date time modified */ 1 9 2 date_time_used bit(36) unaligned, /* date time entry used */ 1 10 2 mode bit(5) unaligned, /* effective access of caller */ 1 11 2 raw_mode bit(5) unaligned, 1 12 2 pad1 bit(8) unaligned, 1 13 2 records bit(18) unaligned, /* number of records in use */ 1 14 2 date_time_dumped bit(36) unaligned, /* date time last dumped */ 1 15 2 date_time_entry_modified bit(36) unaligned, /* date time entry modified */ 1 16 2 lvid bit(36) unaligned, /* logical volume id */ 1 17 2 current_length bit(12) unaligned, /* number of blocks currently allocated */ 1 18 2 bit_count bit(24) unaligned, /* bit count of entry */ 1 19 2 pad3 bit(8) unaligned, 1 20 2 copy_switch bit(1) unaligned, /* the copy switch */ 1 21 2 tpd bit(1) unaligned, /* transparent to paging device */ 1 22 2 mdir bit(1) unaligned, /* master directory switch */ 1 23 2 damaged_switch bit (1) unaligned, /* true if contents damaged */ 1 24 2 synchronized_switch bit (1) unaligned, /* true if a DM synchronized file */ 1 25 2 pad4 bit(5) unaligned, 1 26 2 ring_brackets (0:2) bit(6) unaligned, /* branch ring brackets */ 1 27 2 unique_id bit(36) unaligned, /* entry unique id */ 1 28 1 29 1 30 /* The types of each class of branch */ 1 31 segment_type bit(2) aligned internal static initial ("01"b), 1 32 directory_type bit(2) aligned internal static initial ("10"b), 1 33 msf_type bit(2) aligned internal static initial ("10"b), /* will eventually be different */ 1 34 link_type bit(2) aligned internal static initial ("00"b); 1 35 1 36 74 2 1 /* BEGIN INCLUDE FILE ... compiler_source_info.incl.pl1 */ 2 2 /* coded in 1973 by B. Wolman */ 2 3 /* modified 12/75 by M. Weaver to include more source info */ 2 4 /* modified 12/76 by M. Weaver to include still more source info (version 2) */ 2 5 2 6 dcl 1 compiler_source_info aligned based, 2 7 2 version fixed bin, 2 8 2 given_ename char (32) var, 2 9 2 dirname char (168) var, 2 10 2 segname char (32) var, 2 11 2 date_time_modified fixed bin (71), 2 12 2 unique_id bit (36), 2 13 2 input_lng fixed bin (21), 2 14 2 input_pointer ptr; 2 15 2 16 dcl compiler_source_info_version_2 fixed bin static init (2) options (constant); 2 17 2 18 /* END INCLUDE FILE ... compiler_source_info.incl.pl1 */ 75 3 1 /* BEGIN INCLUDE FILE fort_options.incl.pl1 */ 3 2 3 3 /****^ *********************************************************** 3 4* * * 3 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 3 6* * * 3 7* *********************************************************** */ 3 8 3 9 /****^ HISTORY COMMENTS: 3 10* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 3 11* install(86-07-28,MR12.0-1105): 3 12* Fix fortran bug 473. 3 13* 2) change(87-06-23,RWaters), approve(87-06-23,MCR7703), audit(87-07-10,Huen), 3 14* install(87-08-06,MR12.1-1069): 3 15* Implemented SCP 6315: fortran error-handling argument. 3 16* END HISTORY COMMENTS */ 3 17 3 18 3 19 /* 3 20* Modified: 12 May 87 by RWaters added debug_io 3 21* Modified: 19 February 1986 by B. Wong & A. Ginter - 473.a: Correct 3 22* comments and size of pad field in fort_declared 3 23* and pad out dfast and fast bit masks to two words. 3 24* Modified: 09 October 1985 by B. Wong - 473: add VLA_auto, VLA_static, 3 25* VLA_parm, VLC, LA_auto, and LA_static. Remove VLA and LA. 3 26* Modified: 28 March 1984 by M. Mabey - Install HFP support. 3 27* Modified: 21 September 1983 by M. Mabey - correct size of pad field in fortran_declared. 3 28* Modified: 16 May 1983 by M. Mabey - add fortran_declared 3 29* Modified: 18 December 1982 by T. Oke - Add 'long_profile'. 3 30* Modified: 22 September 1982 by T. Oke - add VLA and LA 3 31* Modified: 3 May 1982 by T. Oke - add check_multiply 3 32* Modified: 06/24/81 by S. Herbst - add do_rounding & auto_zero to fast_mask and dfast_mask 3 33* Modified: 26 February 1980 by C R Davis - add fast_mask, fix dfast_mask. 3 34* Modified: 31 January 1980 by C R Davis - add stringrange. 3 35* Modified: 13 September 1979 by Paul E. Smee--add ansi_77. 3 36* Modified: 05 December 1978 by Paul E. Smee--add do_rounding, auto_zero. 3 37* Modified: 25 January 1978 by Richard A. Barnes for the loop optimizer 3 38**/ 3 39 3 40 declare 3 41 3 42 1 fortran_options aligned based, 3 43 2 use_library bit (1) unaligned, /* (1) ON if library statements will be parsed */ 3 44 2 optimize bit (1) unaligned, /* (2) ON if optimized code is to be produced */ 3 45 2 time bit (1) unaligned, /* (3) ON for compile timing */ 3 46 2 source_format unaligned, 3 47 3 has_line_numbers bit (1) unaligned, /* (4) ON if each line begins with a line number */ 3 48 3 fold bit (1) unaligned, /* (5) ON if variable names are to be folded to lowercase */ 3 49 3 card bit (1) unaligned, /* (6) ON for card format */ 3 50 3 convert bit (1) unaligned, /* (7) ON for card format to be converted */ 3 51 2 listing unaligned, 3 52 3 source bit (1) unaligned, /* (8) ON for listing of numbered source */ 3 53 3 symbol bit (1) unaligned, /* (9) ON for listing with symbol map */ 3 54 3 map bit (1) unaligned, /* (10) ON for listing with statement map */ 3 55 3 list bit (1) unaligned, /* (11) ON for listing with assembler instructions */ 3 56 2 error_messages unaligned, 3 57 3 brief bit (1) unaligned, /* (12) ON for brief error messages */ 3 58 3 severity fixed bin (3), /* (13-16) suppresses messages below this severity */ 3 59 2 debugging unaligned, 3 60 3 subscriptrange bit (1) unaligned, /* (17) ON for subscript range checking */ 3 61 3 stringrange bit (1) unaligned, /* (18) ON for string range checking */ 3 62 3 brief_table bit (1) unaligned, /* (19) ON for statement table */ 3 63 3 table bit (1) unaligned, /* (20) ON for statement and symbol table */ 3 64 3 profile bit (1) unaligned, /* (21) ON to generate code to meter statements */ 3 65 3 check bit (1) unaligned, /* (22) ON for syntactic and semantic checking only */ 3 66 2 system_debugging unaligned, 3 67 3 stop_after_cg bit (1) unaligned, /* (23) ON if debug stop after code generator */ 3 68 3 stop_after_parse bit (1) unaligned, /* (24) ON if debug stop after parse */ 3 69 2 relocatable bit (1) unaligned, /* (25) ON if relocatable object segment generated */ 3 70 2 optimizing unaligned, 3 71 3 time_optimizer bit (1) unaligned, /* (26) ON if timings for optimizer requested */ 3 72 /* (27) ON if optimizer can loosen safety constraints */ 3 73 3 ignore_articulation_blocks bit (1) unaligned, 3 74 3 consolidate bit(1) unaligned, /* (28) ON if optimizer should run consolidation phase */ 3 75 2 do_rounding bit(1) unaligned, /* (29) ON if floating point round should be used */ 3 76 2 auto_zero bit(1) unaligned, /* (30) ON if auto storage should be zeroed when allocated */ 3 77 2 ansi_77 bit (1) unaligned, /* (31) ON if ansi77 rules are to be followed */ 3 78 2 check_multiply bit (1) unaligned, /* (32) ON if check integer multiply extent */ 3 79 2 VLA_auto bit (1) unaligned, /* (33) ON if auto VLA's being done */ 3 80 2 VLA_parm bit (1) unaligned, /* (34) ON if parm VLA's being done */ 3 81 2 VLA_static bit (1) unaligned, /* (35) ON if static VLA's being done */ 3 82 2 VLC bit (1) unaligned, /* (36) ON if VLC's being done */ 3 83 2 LA_auto bit (1) unaligned, /* (1) ON if auto LA's being done */ 3 84 2 LA_static bit (1) unaligned, /* (2) ON if static LA's being done */ 3 85 2 long_profile bit (1) unaligned, /* (3) ON to generate long_profile */ 3 86 2 static_storage bit (1) unaligned, /* (4) ON if static storage */ 3 87 2 hfp bit (1) unaligned, /* (5) ON if using hex floating point math */ 3 88 2 debug_io bit (1) unaligned, /* (6) */ 3 89 2 pad bit(30) unaligned; /* (7-36) Pad bits */ 3 90 3 91 declare 3 92 3 93 1 fortran_declared aligned based, 3 94 2 ansi66 bit(1) unaligned, /* (1) First word */ 3 95 2 ansi77 bit(1) unaligned, /* (2) */ 3 96 2 auto bit(1) unaligned, /* (3) */ 3 97 2 auto_zero bit(1) unaligned, /* (4) */ 3 98 2 brief bit(1) unaligned, /* (5) */ 3 99 2 binary_floating_point bit(1) unaligned, /* (6) */ 3 100 2 brief_table bit(1) unaligned, /* (7) */ 3 101 2 card bit(1) unaligned, /* (8) */ 3 102 2 check bit(1) unaligned, /* (9) */ 3 103 2 check_multiply bit(1) unaligned, /* (10) */ 3 104 2 consolidate bit(1) unaligned, /* (11) */ 3 105 2 debug bit(1) unaligned, /* (12) */ 3 106 2 debug_cg bit(1) unaligned, /* (13) */ 3 107 2 debug_io bit(1) unaligned, /* (14) */ 3 108 2 default_full bit(1) unaligned, /* (15) */ 3 109 2 default_safe bit(1) unaligned, /* (16) */ 3 110 2 fold bit(1) unaligned, /* (17) */ 3 111 2 free bit(1) unaligned, /* (18) */ 3 112 2 full_optimize bit(1) unaligned, /* (19) */ 3 113 2 hexadecimal_floating_point bit(1) unaligned, 3 114 /* (20) */ 3 115 2 la_auto bit(1) unaligned, /* (21) */ 3 116 2 la_static bit(1) unaligned, /* (22) */ 3 117 2 large_array bit(1) unaligned, /* (23) */ 3 118 2 line_numbers bit(1) unaligned, /* (24) */ 3 119 2 list bit(1) unaligned, /* (25) */ 3 120 2 long bit(1) unaligned, /* (26) */ 3 121 2 long_profile bit(1) unaligned, /* (27) */ 3 122 2 map bit(1) unaligned, /* (28) */ 3 123 2 no_auto_zero bit(1) unaligned, /* (29) */ 3 124 2 no_check bit(1) unaligned, /* (30) */ 3 125 2 no_fold bit(1) unaligned, /* (31) */ 3 126 2 no_large_array bit(1) unaligned, /* (32) */ 3 127 2 no_line_numbers bit(1) unaligned, /* (33) */ 3 128 2 no_map bit(1) unaligned, /* (34) */ 3 129 2 no_optimize bit(1) unaligned, /* (35) */ 3 130 2 no_check_multiply bit(1) unaligned, /* (36) */ 3 131 2 no_debug_io bit(1) unal, /* (1) Second Word */ 3 132 2 no_stringrange bit(1) unaligned, /* (2) */ 3 133 2 no_subscriptrange bit(1) unaligned, /* (3) */ 3 134 2 no_table bit(1) unaligned, /* (4) */ 3 135 2 no_very_large_array bit(1) unaligned, /* (5) */ 3 136 2 no_vla_parm bit(1) unaligned, /* (6) */ 3 137 2 no_version bit(1) unaligned, /* (7) */ 3 138 2 non_relocatable bit(1) unaligned, /* (8) */ 3 139 2 optimize bit(1) unaligned, /* (9) */ 3 140 2 profile bit(1) unaligned, /* (10) */ 3 141 2 relocatable bit(1) unaligned, /* (11) */ 3 142 2 round bit(1) unaligned, /* (12) */ 3 143 2 safe_optimize bit(1) unaligned, /* (13) */ 3 144 2 severity fixed bin(3) unaligned, /* (14-16) */ 3 145 2 static bit(1) unaligned, /* (17) */ 3 146 2 stringrange bit(1) unaligned, /* (18) */ 3 147 2 subscriptrange bit(1) unaligned, /* (19) */ 3 148 2 table bit(1) unaligned, /* (20) */ 3 149 2 time bit(1) unaligned, /* (21) */ 3 150 2 time_ot bit(1) unaligned, /* (22) */ 3 151 2 top_down bit(1) unaligned, /* (23) */ 3 152 2 truncate bit(1) unaligned, /* (24) */ 3 153 2 version bit(1) unaligned, /* (25) */ 3 154 2 very_large_array bit(1) unaligned, /* (26) */ 3 155 2 very_large_common bit(1) unaligned, /* (27) */ 3 156 2 vla_auto bit(1) unaligned, /* (28) */ 3 157 2 vla_parm bit(1) unaligned, /* (29) */ 3 158 2 vla_static bit(1) unaligned, /* (30) */ 3 159 2 pad bit(6) unaligned; /* (31-36) */ 3 160 3 161 3 162 declare /* Options used by DFAST */ 3 163 3 164 dfast_mask bit (72) internal static options (constant) initial ("100110000000000010100000000011"b); 3 165 /* use_library, has_line_numbers, fold, subscriptrange, brief_table */ 3 166 3 167 3 168 declare /* Options used by FAST */ 3 169 3 170 fast_mask bit (72) internal static options (constant) initial ("000100000000000010100000000011"b); 3 171 /* has_line_numbers, subscriptrange, brief_table */ 3 172 3 173 /* END INCLUDE FILE fort_options.incl.pl1 */ 76 77 78 /* */ 79 basic: entry; 80 81 proc_name = "basic"; 82 call cu_$arg_count (nargs); 83 if nargs = 1 then do; 84 call cu_$arg_ptr (1, arg_ptr, arg_length, code); 85 if code = 0 then do; 86 87 source_ptr = null; 88 if set_up (arg, ".basic") then do; 89 90 on cleanup call cleanup_handler; 91 92 call basic_$compile (addr (s), object_ptr, object_length, code); 93 if code ^= 0 then do; 94 object_length = 0; 95 call com_err_ (code, "basic"); 96 end; 97 call tssi_$finish_segment (object_ptr, object_length*36, RE_ACCESS, acl_info_ptr, code); 98 end; 99 if source_ptr ^= null then call hcs_$terminate_noname (source_ptr, code); 100 end; 101 else call com_err_ (code, "basic"); 102 end; 103 else call com_err_ (error_table_$wrong_no_of_args, "basic"); 104 105 return; 106 107 fortran: ft: entry; 108 109 proc_name = "fortran"; 110 code = 0; 111 call cu_$arg_count (nargs); 112 if nargs > 0 then do; 113 path = ""; 114 unspec (fort_opt) = fast_mask; 115 do i = 1 to nargs while (code = 0); 116 call cu_$arg_ptr (i, arg_ptr, arg_length, code); 117 if code = 0 then do; 118 if substr (arg, 1, 1) = "-" then do; 119 if arg = "-nln" | arg = "-no_line_numbers" then fort_opt.has_line_numbers = "0"b; 120 else code = error_table_$badopt; 121 end; 122 else if path = "" then path = arg; 123 else code = error_table_$badopt; 124 end; 125 end; 126 127 if code = 0 then do; 128 129 if path ^= "" then do; 130 source_ptr = null; 131 if set_up ((path), ".fortran") then do; 132 on cleanup call cleanup_handler; 133 134 call fort_$compile (addr (s), object_ptr, object_length, addr (fort_opt), code); 135 if code ^= 0 then do; 136 object_length = 0; 137 call com_err_ (code, "fortran"); 138 end; 139 call tssi_$finish_segment (object_ptr, object_length*36, RE_ACCESS, acl_info_ptr, code); 140 end; 141 if source_ptr ^= null then call hcs_$terminate_noname (source_ptr, code); 142 end; 143 else call com_err_ (error_table_$noarg, "fortran"); 144 end; 145 else call com_err_ (code, "fortran", arg); 146 end; 147 else call com_err_ (error_table_$wrong_no_of_args, "fortran"); 148 149 return; 150 151 /* */ 152 153 ep_basic: entry; 154 155 basic_$precision_length = 2; 156 return; 157 158 sp_basic: entry; 159 160 basic_$precision_length = 1; 161 return; 162 163 /* */ 164 set_up: proc (arg, suffix) returns (bit (1) unal); 165 166 dcl arg char (*); 167 dcl suffix char (*); 168 169 /* automatic */ 170 171 dcl i fixed bin; 172 dcl len_suffix fixed bin; 173 dcl object_name char (32); 174 dcl bit_count fixed bin (24); 175 dcl directory_name char (168); 176 dcl entry_name char (32); 177 dcl path char (168); 178 179 180 /* set path to arg and add suffix, if not present. */ 181 182 i = length (arg); 183 len_suffix = length (suffix); 184 if i <= len_suffix then path = arg || suffix; 185 else if substr (arg, i - len_suffix + 1, len_suffix) = suffix then path = arg; 186 else path = arg || suffix; 187 i = length (path) + 1 - verify (reverse (path), " "); 188 189 /* get source, and fill in compiler_info structure */ 190 191 call expand_pathname_ (path, directory_name, entry_name, code); 192 if code = 0 then do; 193 194 call hcs_$initiate_count (directory_name, entry_name, "", bit_count, 0, source_ptr, code); 195 if source_ptr ^= null then do; /* ignore code if have ptr */ 196 call hcs_$status_long (directory_name, entry_name, 1, addr (branch_status), null, code); 197 if code = 0 then do; 198 s.version = compiler_source_info_version_2; 199 s.input_pointer = source_ptr; 200 s.input_lng = divide (bit_count+8, 9, 21, 0); 201 s.given_ename = substr (entry_name, 1, length (entry_name) + 1-verify (reverse (entry_name), " ")); 202 call hcs_$fs_get_path_name (source_ptr, directory_name, i, entry_name, code); 203 s.dirname = substr (directory_name, 1, i); 204 s.segname = substr (entry_name, 1, length (entry_name) + 1-verify (reverse (entry_name), " ")); 205 s.date_time_modified = fixed (branch_status.date_time_modified || (16) "0"b, 71); 206 s.unique_id = branch_status.unique_id; 207 object_name = substr (s.given_ename, 1, length (s.given_ename) - len_suffix); 208 directory_name = get_wdir_ (); 209 call tssi_$get_segment (directory_name, object_name, object_ptr, acl_info_ptr, code); 210 if code = 0 then return ("1"b); 211 call print_err (directory_name, object_name); 212 end; 213 else call print_err (directory_name, entry_name); 214 end; 215 else call print_err (directory_name, entry_name); 216 end; 217 else call print_err (path, ""); 218 219 return ("0"b); 220 221 end set_up; 222 223 /* */ 224 cleanup_handler: proc; 225 226 call tssi_$clean_up_segment (acl_info_ptr); 227 if source_ptr ^= null then call hcs_$terminate_noname (source_ptr, code); 228 229 end cleanup_handler; 230 231 /* This procedure calls com_err_ and returns from fst_basic */ 232 233 print_err: proc (directory, entry); 234 235 dcl directory char (*); 236 dcl entry char (*); 237 238 if directory = ">" | entry = "" then call com_err_ (code, proc_name, "^a^a", directory, entry); 239 else call com_err_ (code, proc_name, "^a>^a", directory, entry); 240 241 end print_err; 242 end fst_compile_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/06/87 1047.1 fst_compile_.pl1 >spec>install>MR12.1-1069>fst_compile_.pl1 74 1 11/22/82 0955.6 branch_status.incl.pl1 >ldd>include>branch_status.incl.pl1 75 2 03/10/77 1345.4 compiler_source_info.incl.pl1 >ldd>include>compiler_source_info.incl.pl1 76 3 08/06/87 1045.4 fort_options.incl.pl1 >spec>install>MR12.1-1069>fort_options.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. RE_ACCESS 000002 constant bit(36) initial dcl 50 set ref 97* 139* acl_info_ptr 000100 automatic pointer dcl 26 set ref 97* 139* 209* 226* addr builtin function dcl 44 ref 92 92 134 134 134 134 196 196 arg parameter char unaligned dcl 166 in procedure "set_up" ref 164 182 184 185 185 186 arg based char unaligned dcl 42 in procedure "fst_compile_" set ref 88* 118 119 119 122 145* arg_length 000102 automatic fixed bin(17,0) dcl 27 set ref 84* 88 88 116* 118 119 119 122 145 145 arg_ptr 000104 automatic pointer dcl 28 set ref 84* 88 116* 118 119 119 122 145 basic_$compile 000010 constant entry external dcl 54 ref 92 basic_$precision_length 000012 external static fixed bin(17,0) dcl 55 set ref 155* 160* bit_count 000112 automatic fixed bin(24,0) dcl 174 set ref 194* 200 branch_status 000310 automatic structure level 1 dcl 1-1 set ref 196 196 cleanup 000302 stack reference condition dcl 46 ref 90 132 code 000106 automatic fixed bin(35,0) dcl 29 set ref 84* 85 92* 93 95* 97* 99* 101* 110* 115 116* 117 120* 123* 127 134* 135 137* 139* 141* 145* 191* 192 194* 196* 197 202* 209* 210 227* 238* 239* com_err_ 000014 constant entry external dcl 56 ref 95 101 103 137 143 145 147 238 239 compiler_source_info based structure level 1 dcl 2-6 compiler_source_info_version_2 constant fixed bin(17,0) initial dcl 2-16 ref 198 cu_$arg_count 000016 constant entry external dcl 57 ref 82 111 cu_$arg_ptr 000020 constant entry external dcl 58 ref 84 116 date_time_modified 1 000310 automatic bit(36) level 2 in structure "branch_status" packed unaligned dcl 1-1 in procedure "fst_compile_" set ref 205 date_time_modified 76 000174 automatic fixed bin(71,0) level 2 in structure "s" dcl 37 in procedure "fst_compile_" set ref 205* directory parameter char unaligned dcl 235 set ref 233 238 238* 239* directory_name 000113 automatic char(168) unaligned dcl 175 set ref 191* 194* 196* 202* 203 208* 209* 211* 213* 215* dirname 12 000174 automatic varying char(168) level 2 dcl 37 set ref 203* divide builtin function dcl 44 ref 200 entry parameter char unaligned dcl 236 set ref 233 238 238* 239* entry_name 000165 automatic char(32) unaligned dcl 176 set ref 191* 194* 196* 201 201 201 202* 204 204 204 213* 215* error_table_$badopt 000022 external static fixed bin(35,0) dcl 59 ref 120 123 error_table_$noarg 000024 external static fixed bin(35,0) dcl 60 set ref 143* error_table_$wrong_no_of_args 000026 external static fixed bin(35,0) dcl 61 set ref 103* 147* expand_pathname_ 000030 constant entry external dcl 62 ref 191 fast_mask 000000 constant bit(72) initial unaligned dcl 3-168 ref 114 fixed builtin function dcl 44 ref 205 fort_$compile 000032 constant entry external dcl 63 ref 134 fort_opt 000172 automatic structure level 1 dcl 36 set ref 114* 134 134 fortran_options based structure level 1 dcl 3-40 get_wdir_ 000034 constant entry external dcl 64 ref 208 given_ename 1 000174 automatic varying char(32) level 2 dcl 37 set ref 201* 207 207 has_line_numbers 0(03) 000172 automatic bit(1) level 3 packed unaligned dcl 36 set ref 119* hcs_$fs_get_path_name 000036 constant entry external dcl 65 ref 202 hcs_$initiate_count 000040 constant entry external dcl 66 ref 194 hcs_$status_long 000042 constant entry external dcl 67 ref 196 hcs_$terminate_noname 000044 constant entry external dcl 68 ref 99 141 227 i 000107 automatic fixed bin(17,0) dcl 30 in procedure "fst_compile_" set ref 115* 116* i 000100 automatic fixed bin(17,0) dcl 171 in procedure "set_up" set ref 182* 184 185 187* 202* 203 input_lng 101 000174 automatic fixed bin(21,0) level 2 dcl 37 set ref 200* input_pointer 102 000174 automatic pointer level 2 dcl 37 set ref 199* len_suffix 000101 automatic fixed bin(17,0) dcl 172 set ref 183* 184 185 185 207 length builtin function dcl 44 ref 182 183 187 201 204 207 nargs 000110 automatic fixed bin(17,0) dcl 31 set ref 82* 83 111* 112 115 null builtin function dcl 44 ref 87 99 130 141 195 196 196 227 object_length 000111 automatic fixed bin(17,0) dcl 32 set ref 92* 94* 97 134* 136* 139 object_name 000102 automatic char(32) unaligned dcl 173 set ref 207* 209* 211* object_ptr 000112 automatic pointer dcl 33 set ref 92* 97* 134* 139* 209* path 000175 automatic char(168) unaligned dcl 177 in procedure "set_up" set ref 184* 185* 186* 187 187 191* 217* path 000114 automatic varying char(168) dcl 34 in procedure "fst_compile_" set ref 113* 122 122* 129 131 proc_name 000170 automatic char(7) unaligned dcl 35 set ref 81* 109* 238* 239* reverse builtin function dcl 44 ref 187 201 204 s 000174 automatic structure level 1 dcl 37 set ref 92 92 134 134 segname 65 000174 automatic varying char(32) level 2 dcl 37 set ref 204* source_format 0(03) 000172 automatic structure level 2 packed unaligned dcl 36 source_ptr 000300 automatic pointer dcl 38 set ref 87* 99 99* 130* 141 141* 194* 195 199 202* 227 227* substr builtin function dcl 44 ref 118 185 201 203 204 207 suffix parameter char unaligned dcl 167 ref 164 183 184 185 186 tssi_$clean_up_segment 000046 constant entry external dcl 69 ref 226 tssi_$finish_segment 000050 constant entry external dcl 70 ref 97 139 tssi_$get_segment 000052 constant entry external dcl 71 ref 209 unique_id 11 000310 automatic bit(36) level 2 in structure "branch_status" packed unaligned dcl 1-1 in procedure "fst_compile_" set ref 206 unique_id 100 000174 automatic bit(36) level 2 in structure "s" dcl 37 in procedure "fst_compile_" set ref 206* unspec builtin function dcl 44 set ref 114* verify builtin function dcl 44 ref 187 201 204 version 000174 automatic fixed bin(17,0) level 2 dcl 37 set ref 198* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. dfast_mask internal static bit(72) initial unaligned dcl 3-162 directory_type internal static bit(2) initial dcl 1-1 fortran_declared based structure level 1 dcl 3-91 link_type internal static bit(2) initial dcl 1-1 msf_type internal static bit(2) initial dcl 1-1 segment_type internal static bit(2) initial dcl 1-1 NAMES DECLARED BY EXPLICIT CONTEXT. basic 000064 constant entry external dcl 79 cleanup_handler 001540 constant entry internal dcl 224 ref 90 132 ep_basic 000766 constant entry external dcl 153 fortran 000352 constant entry external dcl 107 fst_compile_ 000055 constant entry external dcl 10 ft 000343 constant entry external dcl 107 print_err 001573 constant entry internal dcl 233 ref 211 213 215 217 set_up 001012 constant entry internal dcl 164 ref 88 131 sp_basic 001000 constant entry external dcl 158 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2276 2352 1766 2306 Length 2652 1766 54 264 307 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fst_compile_ 248 external procedure is an external procedure. on unit on line 90 64 on unit on unit on line 132 64 on unit set_up 258 internal procedure is called during a stack extension. cleanup_handler 74 internal procedure is called by several nonquick procedures. print_err internal procedure shares stack frame of internal procedure set_up. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fst_compile_ 000100 acl_info_ptr fst_compile_ 000102 arg_length fst_compile_ 000104 arg_ptr fst_compile_ 000106 code fst_compile_ 000107 i fst_compile_ 000110 nargs fst_compile_ 000111 object_length fst_compile_ 000112 object_ptr fst_compile_ 000114 path fst_compile_ 000170 proc_name fst_compile_ 000172 fort_opt fst_compile_ 000174 s fst_compile_ 000300 source_ptr fst_compile_ 000310 branch_status fst_compile_ set_up 000100 i set_up 000101 len_suffix set_up 000102 object_name set_up 000112 bit_count set_up 000113 directory_name set_up 000165 entry_name set_up 000175 path set_up THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_other return_mac enable_op shorten_stack ext_entry int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. basic_$compile com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_ fort_$compile get_wdir_ hcs_$fs_get_path_name hcs_$initiate_count hcs_$status_long hcs_$terminate_noname tssi_$clean_up_segment tssi_$finish_segment tssi_$get_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. basic_$precision_length error_table_$badopt error_table_$noarg error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000054 79 000062 81 000071 82 000073 83 000101 84 000104 85 000123 87 000125 88 000127 90 000157 92 000201 93 000220 94 000222 95 000223 97 000242 99 000264 100 000301 101 000302 102 000321 103 000322 105 000341 107 000342 109 000357 110 000362 111 000363 112 000372 113 000374 114 000375 115 000377 116 000411 117 000426 118 000430 119 000435 120 000451 121 000454 122 000455 123 000473 125 000476 127 000500 129 000502 130 000507 131 000511 132 000546 134 000571 135 000614 136 000616 137 000617 139 000636 141 000660 142 000675 143 000676 144 000715 145 000716 146 000744 147 000745 149 000764 153 000765 155 000773 156 000776 158 000777 160 001005 161 001010 164 001011 182 001032 183 001034 184 001036 185 001063 186 001104 187 001124 191 001142 192 001166 194 001171 195 001233 196 001240 197 001302 198 001305 199 001307 200 001311 201 001315 202 001341 203 001372 204 001403 205 001426 206 001432 207 001434 208 001441 209 001450 210 001501 211 001512 212 001515 213 001516 214 001521 215 001522 216 001525 217 001526 219 001531 224 001537 226 001545 227 001554 229 001572 233 001573 238 001611 239 001663 241 001720 ----------------------------------------------------------- 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