COMPILATION LISTING OF SEGMENT alm Compiled by: Multics PL/I Compiler, Release 32a, of May 31, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 06/09/89 0822.6 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 8* * * 9* *********************************************************** */ 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 14* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 15* Rewritten to use the new alm_ subroutine. 16* 2) change(86-11-14,JRGray), approve(86-11-14,MCR7568), 17* audit(86-11-21,RWaters), install(86-11-26,MR12.0-1228): 18* Also MCR7572. Modified to update the version field to 7.3 . 19* 3) change(87-04-22,JRGray), approve(87-07-03,MCR7689), 20* audit(87-07-09,RWaters), install(87-11-02,MR12.2-1001): 21* Modified for fix for alm 19: change version field to 7.4 . 22* 4) change(88-03-21,JRGray), approve(88-08-05,MCR7952), 23* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 24* Modified for Symbol Table support, updated version. 25* 5) change(89-04-17,JRGray), approve(89-04-17,MCR8078), audit(89-04-18,Huen), 26* install(89-06-09,MR12.3-1055): 27* Modified to allow for archive component pathnames. 28* END HISTORY COMMENTS */ 29 30 31 alm: proc; 32 /* Completely rewritten August 4 1985 by R. Gray to fix various bugs, 33* and call the new alm_ subroutine. 34**/ 35 36 dcl usage_string char(31) int static options(constant) init("Usage: alm path {-control_args}"); 37 38 dcl alm_ entry(ptr, ptr, fixed bin, fixed bin(35)); 39 dcl com_err_ entry options(variable); 40 dcl cu_$arg_count entry(fixed bin, fixed bin(35)); 41 dcl cu_$arg_ptr entry(fixed bin, ptr, fixed bin(21), fixed bin(35)); 42 dcl expand_pathname_$component_add_suffix entry(char(*), char(*), char(*), char(*), char(*), fixed bin(35)); 43 dcl find_source_file_ entry (char(*), char(*), char(*), ptr, fixed bin(24), fixed bin(35)); 44 dcl get_wdir_ entry returns(char(168)); 45 dcl ioa_ entry options(variable); 46 dcl terminate_file_ entry(ptr, fixed bin(24), bit(*), fixed bin(35)); 47 dcl tssi_$clean_up_file entry(ptr, ptr); 48 dcl tssi_$clean_up_segment entry(ptr); 49 dcl tssi_$get_file entry(char(*), char(*), ptr, ptr, ptr, fixed bin(35)); 50 dcl tssi_$get_segment entry(char(*), char(*), ptr, ptr, fixed bin(35)); 51 dcl tssi_$finish_segment entry(ptr, fixed bin(24), bit(36) aligned, ptr, fixed bin(35)); 52 dcl tssi_$finish_file entry(ptr, fixed bin, fixed bin(24), bit(36) aligned, ptr, fixed bin(35)); 53 54 dcl (addr, after, before, char, hbound, ltrim, null, rtrim, substr) builtin; 55 56 dcl argument_ptr ptr; 57 dcl argument_len fixed bin(21); 58 dcl argument_count fixed bin; 59 dcl argument char(argument_len) based(argument_ptr); 60 dcl cleanup condition; 61 62 dcl error_table_$badopt external static fixed bin(35); 63 dcl error_table_$noarg external static fixed bin(35); 64 dcl error_table_$too_many_args external static fixed bin(35); 65 66 dcl alm_severity_ external static fixed bin; 67 68 dcl (dirname, working_dir) char(168); 69 dcl ec fixed bin(35); 70 dcl (entryname, compname) char(33); /* length is 33 instead of 32 to insure trailing blank */ 71 dcl (i, j) fixed bin; 72 dcl (object_aclinfo_ptr, list_aclinfo_ptr) ptr; 73 dcl objectname char(32); 74 75 dcl 01 alm_arguments, /* like alm_args */ 76 02 version char(8), 77 02 arg_count fixed bin, 78 02 arg(400), 79 03 arg_ptr ptr, 80 03 len fixed bin(21); 81 82 dcl 01 global_info like alm_info; 83 1 1 /* BEGIN INCLUDE FILE alm_info.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 1 5* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 1 6* Created to describe the structures used to pass information to the alm_ 1 7* subroutine. 1 8* END HISTORY COMMENTS */ 1 9 1 10 /* Written June 9, 1986 by JRGray */ 1 11 1 12 /* This include files describes the alm_info and alm_args 1 13* structures that are used to pass information to the alm_ 1 14* subroutine. */ 1 15 1 16 dcl alm_info_ptr ptr; 1 17 dcl 1 alm_info based(alm_info_ptr), 1 18 2 version char(8), 1 19 2 flags, 1 20 3 (symbols, brief, list, table, brief_table) bit(1) unaligned, 1 21 3 pad bit(32) unaligned, 1 22 2 target char(32), 1 23 2 generator_info, 1 24 3 generator char(8), 1 25 3 gen_number fixed bin, 1 26 3 gen_version char(160), 1 27 3 gen_created fixed bin(71), 1 28 2 option_string char(200) varying, 1 29 2 source_path char(168), 1 30 2 source_entryname char(32), 1 31 2 source_ptr ptr, 1 32 2 source_bc fixed bin(24), 1 33 2 object_ptr ptr, 1 34 2 object_bc fixed bin(24), 1 35 2 list_fcb_ptr ptr, 1 36 2 list_component_ptr ptr, 1 37 2 list_bc fixed bin(24), 1 38 2 list_component fixed bin; 1 39 1 40 dcl alm_args_ptr ptr; 1 41 dcl 1 alm_args based(alm_args_ptr), 1 42 2 version char(8), 1 43 2 arg_count fixed bin, 1 44 2 arg(arg_count), 1 45 3 arg_ptr ptr, 1 46 3 len fixed bin(21); 1 47 1 48 dcl ALM_INFO_V1 char(8) static options(constant) init("alm_i_1"); 1 49 dcl ALM_ARGS_V1 char(8) static options(constant) init("alm_a_1"); 1 50 1 51 /* END INCLUDE FILE alm_info.incl.pl1 */ 84 85 86 /* initialization of alm_info structure */ 87 global_info.version = ALM_INFO_V1; 88 global_info.symbols = "1"b; /* default include symbols in list */ 89 global_info.brief = "0"b; 90 global_info.list = "0"b; 91 global_info.table = "0"b; 92 global_info.brief_table = "0"b; 93 global_info.target = ""; 94 95 global_info.generator = "alm"; 96 global_info.gen_number = 8; 97 global_info.gen_version = "ALM Version 8.14 March 1989"; 98 global_info.gen_created = 0; /* alm_ will calculate this field */ 99 100 global_info.option_string = ""; 101 global_info.source_path = ""; 102 global_info.source_entryname = ""; 103 global_info.source_ptr = null(); 104 global_info.source_bc = 0; 105 global_info.object_ptr = null(); 106 global_info.object_bc = 0; 107 global_info.list_fcb_ptr = null(); 108 global_info.list_component_ptr = null(); 109 global_info.list_bc = 0; 110 global_info.list_component = 0; 111 112 alm_arguments.version = ALM_ARGS_V1; 113 alm_arguments.arg_count = 0; 114 115 alm_severity_ = 5; 116 object_aclinfo_ptr = null(); 117 list_aclinfo_ptr = null(); 118 call cu_$arg_count(argument_count, ec); 119 if ec ^= 0 then call error(ec, ""); 120 121 122 do i = 1 to argument_count; 123 call cu_$arg_ptr(i, argument_ptr, argument_len, ec); 124 if ec ^= 0 then call error(ec, "Argument #" || ltrim(char(i))); 125 if substr(argument, 1, 1) ^= "-" 126 then if global_info.source_path = "" then global_info.source_path = argument; 127 else call error(0, "Only one pathname can be specified"); 128 else if argument = "-list" | argument = "-ls" then global_info.list = "1"b; 129 else if argument = "-no_list" | argument = "-nls" then global_info.list = "0"b; 130 else if argument = "-symbols" | argument = "-sb" then global_info.symbols = "1"b; 131 else if argument = "-no_symbols" | argument = "-nsb" then global_info.symbols = "0"b; 132 else if argument = "-brief" | argument = "-bf" then global_info.brief = "1"b; 133 else if argument = "-no_brief" | argument = "-nbf" then global_info.brief = "0"b; 134 else if argument = "-table" | argument = "-tb" then global_info.table = "1"b; 135 else if argument = "-no_table" | argument = "-ntb" then global_info.table = "0"b; 136 else if argument = "-brief_table" | argument = "-bftb" then global_info.brief_table = "1"b; 137 else if argument = "-no_brief_table" | argument = "-nbftb" then global_info.brief_table = "0"b; 138 else if argument = "-arguments" | argument = "-ag" then do; 139 alm_arguments.arg_count = argument_count - i; 140 if alm_arguments.arg_count > hbound(alm_arguments.arg, 1) then call error(error_table_$too_many_args, char(alm_arguments.arg_count)); 141 do j = 1 to alm_arguments.arg_count; 142 call cu_$arg_ptr(i + j, alm_arguments.arg_ptr(j), alm_arguments.len(j), ec); 143 if ec ^= 0 then call error(ec, "Argument #" || ltrim(char(i + j))); 144 end; 145 i = argument_count; 146 end; 147 else if argument = "-target" | argument = "-tgt" then do; 148 i = i + 1; 149 call cu_$arg_ptr(i, argument_ptr, argument_len, ec); 150 if ec ^= 0 then call error(ec, "Target value."); 151 global_info.target = argument; 152 end; 153 else call error(error_table_$badopt, argument); 154 end; 155 156 if global_info.source_path = "" then call error(error_table_$noarg, usage_string); 157 /* get absolute pathname. Can't use absolute_pathname_ cause it hates archives */ 158 call expand_pathname_$component_add_suffix(global_info.source_path, "alm", dirname, entryname, compname, ec); 159 if ec ^= 0 then call error(ec, global_info.source_path); 160 if compname = "" then global_info.source_path = rtrim(dirname, "> ") || ">" || rtrim(entryname); 161 else global_info.source_path = rtrim(dirname, "> ") || ">" || before(entryname, ".archive ") || "::" || rtrim(compname); 162 163 if global_info.target = "" then global_info.option_string = ""; else global_info.option_string = "-target " || global_info.target || " "; 164 if global_info.list then global_info.option_string = global_info.option_string || "list "; 165 if global_info.symbols then global_info.option_string = global_info.option_string || "symbols "; 166 if global_info.brief then global_info.option_string = global_info.option_string || "brief "; 167 if global_info.table then global_info.option_string = global_info.option_string || "table "; 168 if global_info.brief_table then global_info.option_string = global_info.option_string || "brief_table "; 169 if alm_arguments.arg_count > 0 then do; 170 global_info.option_string = global_info.option_string || "-arguments "; 171 do i = 1 to alm_arguments.arg_count; 172 argument_ptr = alm_arguments.arg_ptr(i); 173 argument_len = alm_arguments.len(i); 174 global_info.option_string = global_info.option_string || argument || " "; 175 end; 176 end; 177 178 179 call find_source_file_(global_info.source_path, "alm", global_info.source_entryname, 180 global_info.source_ptr, global_info.source_bc, ec); 181 if ec^=0 then call error(ec, global_info.source_path); 182 183 on cleanup call clean_up; 184 185 working_dir = get_wdir_(); 186 objectname = before(global_info.source_entryname || " ", ".alm "); 187 objectname = before(objectname, ".ex "); 188 call tssi_$get_segment(working_dir, objectname, global_info.object_ptr, object_aclinfo_ptr, ec); 189 if ec^=0 then call error(ec, "While accessing object segment."); 190 191 if global_info.list then do; 192 call tssi_$get_file(working_dir, rtrim(objectname) || ".list", 193 global_info.list_component_ptr, list_aclinfo_ptr, global_info.list_fcb_ptr, ec); 194 if ec^=0 then call error(ec, "While accessing listing file."); 195 end; 196 197 if ^global_info.brief then call ioa_("ALM " || 198 before(after(global_info.gen_version, "Version "), " ")); 199 200 call alm_(addr(global_info), addr(alm_arguments), alm_severity_, ec); 201 if ec ^= 0 then call com_err_(ec, "alm", global_info.source_path); 202 203 if global_info.list_fcb_ptr ^= null() then do; 204 call tssi_$finish_file(global_info.list_fcb_ptr, global_info.list_component, 205 global_info.list_bc, "101"b, list_aclinfo_ptr, ec); 206 if ec^=0 then call error(ec, "While finishing with listing file."); 207 end; 208 209 call tssi_$finish_segment(global_info.object_ptr, global_info.object_bc, 210 "110"b, object_aclinfo_ptr, ec); 211 if ec^=0 then call error(ec, "While finishing with object segment."); 212 213 call terminate_file_(global_info.source_ptr, global_info.source_bc, "001"b, ec); 214 if ec^=0 then call error(ec, "While terminating source segment."); 215 abort: return; 216 217 error: proc(code, string); 218 dcl code fixed bin(35); 219 dcl string char(*); 220 221 call com_err_(code, "alm", string); 222 call clean_up; 223 goto abort; 224 end error; 225 226 clean_up: proc; 227 if list_aclinfo_ptr ^= null() then call tssi_$clean_up_file(global_info.list_fcb_ptr, list_aclinfo_ptr); 228 if object_aclinfo_ptr ^= null() then call tssi_$clean_up_segment(object_aclinfo_ptr); 229 if global_info.source_ptr ^= null() then call terminate_file_(global_info.source_ptr, 0, "001"b, 0); 230 end clean_up; 231 232 end alm; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/09/89 0807.5 alm.pl1 >spec>install>1055>alm.pl1 84 1 11/12/86 1103.0 alm_info.incl.pl1 >ldd>include>alm_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. ALM_ARGS_V1 000000 constant char(8) initial packed unaligned dcl 1-49 ref 112 ALM_INFO_V1 000002 constant char(8) initial packed unaligned dcl 1-48 ref 87 addr builtin function dcl 54 ref 200 200 200 200 after builtin function dcl 54 ref 197 alm_ 000010 constant entry external dcl 38 ref 200 alm_arguments 000300 automatic structure level 1 unaligned dcl 75 set ref 200 200 alm_info based structure level 1 unaligned dcl 1-17 alm_severity_ 000054 external static fixed bin(17,0) dcl 66 set ref 115* 200* arg 4 000300 automatic structure array level 2 unaligned dcl 75 set ref 140 arg_count 2 000300 automatic fixed bin(17,0) level 2 dcl 75 set ref 113* 139* 140 140 140 141 169 171 arg_ptr 4 000300 automatic pointer array level 3 dcl 75 set ref 142* 172 argument based char packed unaligned dcl 59 set ref 125 125 128 128 129 129 130 130 131 131 132 132 133 133 134 134 135 135 136 136 137 137 138 138 147 147 151 153* 174 argument_count 000103 automatic fixed bin(17,0) dcl 58 set ref 118* 122 139 145 argument_len 000102 automatic fixed bin(21,0) dcl 57 set ref 123* 125 125 128 128 129 129 130 130 131 131 132 132 133 133 134 134 135 135 136 136 137 137 138 138 147 147 149* 151 153 153 173* 174 argument_ptr 000100 automatic pointer dcl 56 set ref 123* 125 125 128 128 129 129 130 130 131 131 132 132 133 133 134 134 135 135 136 136 137 137 138 138 147 147 149* 151 153 172* 174 before builtin function dcl 54 ref 161 186 187 197 brief 2(01) 003404 automatic bit(1) level 3 packed packed unaligned dcl 82 set ref 89* 132* 133* 166 197 brief_table 2(04) 003404 automatic bit(1) level 3 packed packed unaligned dcl 82 set ref 92* 136* 137* 168 char builtin function dcl 54 ref 124 140 140 143 cleanup 000104 stack reference condition dcl 60 ref 183 code parameter fixed bin(35,0) dcl 218 set ref 217 221* com_err_ 000012 constant entry external dcl 39 ref 201 221 compname 000250 automatic char(33) packed unaligned dcl 70 set ref 158* 160 161 cu_$arg_count 000014 constant entry external dcl 40 ref 118 cu_$arg_ptr 000016 constant entry external dcl 41 ref 123 142 149 dirname 000112 automatic char(168) packed unaligned dcl 68 set ref 158* 160 161 ec 000236 automatic fixed bin(35,0) dcl 69 set ref 118* 119 119* 123* 124 124* 142* 143 143* 149* 150 150* 158* 159 159* 179* 181 181* 188* 189 189* 192* 194 194* 200* 201 201* 204* 206 206* 209* 211 211* 213* 214 214* entryname 000237 automatic char(33) packed unaligned dcl 70 set ref 158* 160 161 error_table_$badopt 000046 external static fixed bin(35,0) dcl 62 set ref 153* error_table_$noarg 000050 external static fixed bin(35,0) dcl 63 set ref 156* error_table_$too_many_args 000052 external static fixed bin(35,0) dcl 64 set ref 140* expand_pathname_$component_add_suffix 000020 constant entry external dcl 42 ref 158 find_source_file_ 000022 constant entry external dcl 43 ref 179 flags 2 003404 automatic structure level 2 packed packed unaligned dcl 82 gen_created 70 003404 automatic fixed bin(71,0) level 3 dcl 82 set ref 98* gen_number 16 003404 automatic fixed bin(17,0) level 3 dcl 82 set ref 96* gen_version 17 003404 automatic char(160) level 3 packed packed unaligned dcl 82 set ref 97* 197 generator 14 003404 automatic char(8) level 3 packed packed unaligned dcl 82 set ref 95* generator_info 14 003404 automatic structure level 2 unaligned dcl 82 get_wdir_ 000024 constant entry external dcl 44 ref 185 global_info 003404 automatic structure level 1 unaligned dcl 82 set ref 200 200 hbound builtin function dcl 54 ref 140 i 000261 automatic fixed bin(17,0) dcl 71 set ref 122* 123* 124 139 142 143 145* 148* 148 149* 171* 172 173* ioa_ 000026 constant entry external dcl 45 ref 197 j 000262 automatic fixed bin(17,0) dcl 71 set ref 141* 142 142 142 143* len 6 000300 automatic fixed bin(21,0) array level 3 dcl 75 set ref 142* 173 list 2(02) 003404 automatic bit(1) level 3 packed packed unaligned dcl 82 set ref 90* 128* 129* 164 191 list_aclinfo_ptr 000266 automatic pointer dcl 72 set ref 117* 192* 204* 227 227* list_bc 254 003404 automatic fixed bin(24,0) level 2 dcl 82 set ref 109* 204* list_component 255 003404 automatic fixed bin(17,0) level 2 dcl 82 set ref 110* 204* list_component_ptr 252 003404 automatic pointer level 2 dcl 82 set ref 108* 192* list_fcb_ptr 250 003404 automatic pointer level 2 dcl 82 set ref 107* 192* 203 204* 227* ltrim builtin function dcl 54 ref 124 143 null builtin function dcl 54 ref 103 105 107 108 116 117 203 227 228 229 object_aclinfo_ptr 000264 automatic pointer dcl 72 set ref 116* 188* 209* 228 228* object_bc 246 003404 automatic fixed bin(24,0) level 2 dcl 82 set ref 106* 209* object_ptr 244 003404 automatic pointer level 2 dcl 82 set ref 105* 188* 209* objectname 000270 automatic char(32) packed unaligned dcl 73 set ref 186* 187* 187 188* 192 option_string 72 003404 automatic varying char(200) level 2 dcl 82 set ref 100* 163* 163* 164* 164 165* 165 166* 166 167* 167 168* 168 170* 170 174* 174 rtrim builtin function dcl 54 ref 160 160 161 161 192 source_bc 242 003404 automatic fixed bin(24,0) level 2 dcl 82 set ref 104* 179* 213* source_entryname 227 003404 automatic char(32) level 2 packed packed unaligned dcl 82 set ref 102* 179* 186 source_path 155 003404 automatic char(168) level 2 packed packed unaligned dcl 82 set ref 101* 125 125* 156 158* 159* 160* 161* 179* 181* 201* source_ptr 240 003404 automatic pointer level 2 dcl 82 set ref 103* 179* 213* 229 229* string parameter char packed unaligned dcl 219 set ref 217 221* substr builtin function dcl 54 ref 125 symbols 2 003404 automatic bit(1) level 3 packed packed unaligned dcl 82 set ref 88* 130* 131* 165 table 2(03) 003404 automatic bit(1) level 3 packed packed unaligned dcl 82 set ref 91* 134* 135* 167 target 3(09) 003404 automatic char(32) level 2 packed packed unaligned dcl 82 set ref 93* 151* 163 163 terminate_file_ 000030 constant entry external dcl 46 ref 213 229 tssi_$clean_up_file 000032 constant entry external dcl 47 ref 227 tssi_$clean_up_segment 000034 constant entry external dcl 48 ref 228 tssi_$finish_file 000044 constant entry external dcl 52 ref 204 tssi_$finish_segment 000042 constant entry external dcl 51 ref 209 tssi_$get_file 000036 constant entry external dcl 49 ref 192 tssi_$get_segment 000040 constant entry external dcl 50 ref 188 usage_string 000004 constant char(31) initial packed unaligned dcl 36 set ref 156* version 000300 automatic char(8) level 2 in structure "alm_arguments" packed packed unaligned dcl 75 in procedure "alm" set ref 112* version 003404 automatic char(8) level 2 in structure "global_info" packed packed unaligned dcl 82 in procedure "alm" set ref 87* working_dir 000164 automatic char(168) packed unaligned dcl 68 set ref 185* 188* 192* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. alm_args based structure level 1 unaligned dcl 1-41 alm_args_ptr automatic pointer dcl 1-40 alm_info_ptr automatic pointer dcl 1-16 NAMES DECLARED BY EXPLICIT CONTEXT. abort 002513 constant label dcl 215 ref 223 alm 000263 constant entry external dcl 31 clean_up 002564 constant entry internal dcl 226 ref 183 222 error 002515 constant entry internal dcl 217 ref 119 124 127 140 143 150 153 156 159 181 189 194 206 211 214 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3346 3424 3074 3356 Length 3640 3074 56 200 252 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME alm 2038 external procedure is an external procedure. on unit on line 183 64 on unit error 80 internal procedure is called during a stack extension. clean_up 92 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME alm 000100 argument_ptr alm 000102 argument_len alm 000103 argument_count alm 000112 dirname alm 000164 working_dir alm 000236 ec alm 000237 entryname alm 000250 compname alm 000261 i alm 000262 j alm 000264 object_aclinfo_ptr alm 000266 list_aclinfo_ptr alm 000270 objectname alm 000300 alm_arguments alm 003404 global_info alm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry int_entry_desc set_chars_eis index_before_cs index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. alm_ com_err_ cu_$arg_count cu_$arg_ptr expand_pathname_$component_add_suffix find_source_file_ get_wdir_ ioa_ terminate_file_ tssi_$clean_up_file tssi_$clean_up_segment tssi_$finish_file tssi_$finish_segment tssi_$get_file tssi_$get_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. alm_severity_ error_table_$badopt error_table_$noarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000262 87 000270 88 000272 89 000274 90 000276 91 000300 92 000302 93 000304 95 000307 96 000311 97 000313 98 000316 100 000320 101 000321 102 000324 103 000327 104 000331 105 000332 106 000333 107 000334 108 000335 109 000336 110 000337 112 000340 113 000342 115 000343 116 000345 117 000347 118 000350 119 000360 122 000376 123 000405 124 000422 125 000476 127 000515 128 000536 129 000552 130 000565 131 000600 132 000613 133 000626 134 000641 135 000654 136 000667 137 000702 138 000715 139 000725 140 000730 141 000756 142 000765 143 001006 144 001065 145 001070 146 001072 147 001073 148 001103 149 001104 150 001121 151 001145 152 001152 153 001153 154 001173 156 001175 158 001216 159 001253 160 001271 161 001350 163 001453 163 001462 164 001504 165 001522 166 001537 167 001554 168 001571 169 001606 170 001610 171 001622 172 001631 173 001634 174 001636 175 001671 179 001674 181 001733 183 001751 185 001773 186 002002 187 002021 188 002032 189 002062 191 002103 192 002106 194 002167 197 002211 200 002262 201 002304 203 002331 204 002335 206 002360 209 002401 211 002422 213 002443 214 002472 215 002513 217 002514 221 002530 222 002553 223 002560 226 002563 227 002571 228 002606 229 002622 230 002660 ----------------------------------------------------------- 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