COMPILATION LISTING OF SEGMENT basic Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 04/19/88 0837.9 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(88-04-05,Huen), approve(88-04-05,MCR7868), audit(88-04-13,RWaters), 17* install(88-04-19,MR12.2-1040): 18* The basic compiler can now associate severity levels with error messages. 19* The severity command will now work with basic. 20* END HISTORY COMMENTS */ 21 22 23 /* Main program for basic compiler 24* 25* Initial Version: Spring 1973 by BLW 26* Modified: 14 May 1974 by BLW to fix bug 030 */ 27 /* Modified 1 November 1974 by MBW for extended precision */ 28 /* Args made non-positional 11/08/79 S. Herbst */ 29 /* Modified 31 July by M. Weaver to print full pathname in error message */ 30 /* Modified 27 October 1980 by M. Weaver to treat zero length segments as an error */ 31 /* Modified 8 March 1988 by S. Huen to implement SCP6356 basic severity */ 32 33 /* format: style2 */ 34 35 basic: 36 proc; 37 38 dcl (i, k, input_length, code, err_count, arglen, bitcnt, arg_count) 39 fixed bin, 40 level fixed bin static init (0), 41 time_limit fixed bin (71) init (0), 42 time1 fixed bin (71), 43 (executing, got_path, had_bad_option) 44 bit (1), 45 work_seg ptr static init (null), 46 (source_info_pt, input_pt, output_pt) 47 ptr init (null), 48 (argpt, object_hold, main_pt) 49 ptr, 50 program_interrupt condition, 51 cleanup condition, 52 s char (1) varying, 53 arg char (arglen) based (argpt) unaligned, 54 my_name char (5) static init ("basic"), 55 (ent, sourcename) char (32), 56 (dir, wdir) char (168); 57 58 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin), 59 cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin), 60 cu_$ptr_call entry (ptr), 61 cv_dec_check_ entry (char (*) aligned, fixed bin) returns (fixed bin), 62 ioa_ entry options (variable), 63 ( 64 active_fnc_err_, 65 com_err_, 66 com_err_$suppress_name 67 ) entry options (variable), 68 command_query_ entry options (variable), 69 expand_pathname_$add_suffix 70 entry (char (*), char (*), char (*), char (*), fixed bin), 71 hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin, fixed bin, ptr, fixed bin), 72 hcs_$terminate_noname entry (ptr, fixed bin), 73 get_wdir_ entry (char (168)), 74 hcs_$delentry_seg entry (ptr, fixed bin), 75 hcs_$make_seg entry (char (*), char (*), char (*), fixed bin, ptr, fixed bin), 76 hcs_$status_long entry options (variable), 77 tssi_$get_segment entry (char (*), char (*), ptr, ptr, fixed bin), 78 tssi_$finish_segment entry (ptr, fixed bin, bit (5), ptr, fixed bin), 79 hcs_$truncate_seg entry (ptr, fixed bin, fixed bin), 80 virtual_cpu_time_ entry (fixed bin (71)), 81 timer_manager_$cpu_call 82 entry (fixed bin (71), bit (2), entry), 83 timer_manager_$reset_cpu_call 84 entry (entry), 85 basic_ entry (ptr, fixed bin, ptr, ptr, ptr, fixed bin); 86 87 dcl (addr, divide, fixed, float, index, length, null, rtrim, search, substr) 88 builtin; 89 90 dcl ( 91 error_table_$bad_conversion, 92 error_table_$badopt, 93 error_table_$entlong, 94 error_table_$zero_length_seg 95 ) fixed binary external; 96 dcl basic_data$precision_length 97 fixed bin (35) ext static; 98 99 dcl 1 basic_error_messages_$ 100 aligned ext, 101 2 index_block (0:500), 102 3 loc fixed bin, 103 3 sev fixed bin, 104 3 len fixed bin, 105 2 message_block char (248000); 106 107 dcl basic_severity_ fixed bin ext static; 108 109 dcl 1 branch aligned automatic, 110 2 type bit (2) unaligned, 111 2 nnames bit (16) unaligned, 112 2 nrp bit (18) unaligned, 113 2 dtm bit (36) unaligned, 114 2 dtu bit (36) unaligned, 115 2 mode bit (5) unaligned, 116 2 padding bit (13) unaligned, 117 2 records bit (18) unaligned, 118 2 dtd bit (36) unaligned, 119 2 dtem bit (36) unaligned, 120 2 acct bit (36) unaligned, 121 2 curlen bit (12) unaligned, 122 2 bitcnt bit (24) unaligned, 123 2 did bit (4) unaligned, 124 2 mdid bit (4) unaligned, 125 2 copysw bit (1) unaligned, 126 2 pad2 bit (9) unaligned, 127 2 rbs (0:2) bit (6) unaligned, 128 2 uid bit (36) unaligned; 129 130 dcl 1 source_info aligned, 1 1 2 dirname char(168) varying, 1 2 2 segname char(32) varying, 1 3 2 date_time_modified fixed bin(71), 1 4 2 unique_id bit(36), 1 5 2 word_count fixed bin; 131 132 133 /* precision_length is not set here because this is the primary entry 134* for extended precision use as well */ 135 136 start: 137 word_count = 0; 138 basic_severity_ = 5; 139 140 on program_interrupt goto done; 141 142 got_path, had_bad_option = "0"b; 143 144 call cu_$af_return_arg (arg_count, null, 0, code);/* make sure called as a command */ 145 if code = 0 146 then do; 147 call active_fnc_err_ (0, my_name, "Cannot be called as an active function."); 148 return; 149 end; 150 151 do i = 1 to arg_count; 152 153 call cu_$arg_ptr (i, argpt, arglen, code); 154 155 if substr (arg, 1, 1) ^= "-" 156 then do; 157 if got_path 158 then do; 159 USAGE: 160 call com_err_$suppress_name (0, my_name, "Usage: ^a path {-control_args}", my_name); 161 return; 162 end; 163 got_path = "1"b; 164 call expand_pathname_$add_suffix (arg, "basic", dir, sourcename, code); 165 if code ^= 0 166 then do; 167 if code = error_table_$entlong & substr (arg, arglen - 5, 6) ^= ".basic" 168 then call com_err_ (code, my_name, "^a.basic", arg); 169 else call com_err_ (code, my_name, "^a", arg); 170 return; 171 end; 172 ent = substr (sourcename, 1, length (rtrim (sourcename)) - length (".basic")); 173 end; 174 175 else if arg = "-time" | arg = "-tm" 176 then do; 177 i = i + 1; 178 if i > arg_count 179 then time_limit = 1; 180 else do; 181 call cu_$arg_ptr (i, argpt, arglen, code); 182 time_limit = cv_dec_check_ ((arg), code); 183 if code ^= 0 184 then do; 185 call com_err_ (error_table_$bad_conversion, my_name, "^a", arg); 186 return; 187 end; 188 end; 189 end; 190 else if arg = "-compile" | arg = "-cp" 191 then source_info_pt = addr (source_info); 192 else do; 193 call com_err_ (error_table_$badopt, my_name, "^a", arg); 194 had_bad_option = "1"b; 195 end; 196 end; 197 198 if ^got_path 199 then go to USAGE; 200 if had_bad_option 201 then return; 202 203 have_source: 204 call hcs_$initiate_count (dir, sourcename, "", bitcnt, 1, input_pt, code); 205 206 if input_pt = null 207 then do; 208 ent_err: 209 call com_err_ (code, my_name, "^a>^a", dir, sourcename); 210 return; 211 end; 212 if bitcnt = 0 213 then do; 214 code = error_table_$zero_length_seg; 215 go to ent_err; 216 end; 217 218 input_length = divide (bitcnt, 9, 17, 0); 219 220 on cleanup call clean_up; 221 222 level = level + 1; 223 224 if source_info_pt ^= null 225 then do; 226 227 /* generate object segment */ 228 229 source_info.segname = rtrim (ent); 230 231 source_info.dirname = rtrim (dir); 232 233 call hcs_$status_long (dir, sourcename, 0, addr (branch), null, code); 234 235 if code ^= 0 236 then goto ent_err; 237 238 source_info.unique_id = branch.uid; 239 source_info.date_time_modified = fixed (branch.dtm || (16)"0"b, 71); 240 241 call get_wdir_ (wdir); 242 call tssi_$get_segment (wdir, ent, output_pt, object_hold, code); 243 end; 244 else if level = 1 245 then do; 246 if work_seg = null 247 then call hcs_$make_seg ("", "basic_temporary_", "", 01111b, work_seg, code); 248 249 output_pt = work_seg; 250 end; 251 else call hcs_$make_seg ("", "", "", 01111b, output_pt, code); 252 253 if output_pt = null 254 then do; 255 call com_err_ (code, my_name, "^a>^a", dir, sourcename); 256 goto done; 257 end; 258 259 basic_severity_ = 0; 260 call basic_ (input_pt, input_length, output_pt, source_info_pt, main_pt, err_count); 261 262 if source_info_pt = null 263 then if err_count = 0 264 then if main_pt = null 265 then call fatal_err (180); 266 else if time_limit = 0 267 then call cu_$ptr_call (main_pt); 268 else do; 269 call virtual_cpu_time_ (time1); 270 271 call timer_manager_$cpu_call (time_limit, "11"b, cpu_limit); 272 273 executing = "1"b; 274 call cu_$ptr_call (main_pt); 275 executing = "0"b; 276 end; 277 else do; 278 if err_count = 1 279 then s = ""; 280 else s = "s"; 281 call ioa_ ("^d error^a found, no execution.", err_count, s); 282 call ioa_ (""); 283 end; 284 285 done: 286 call clean_up; 287 return; 288 289 290 291 292 ep_basic: 293 entry; 294 295 basic_data$precision_length = 2; /* make entry work as expected */ 296 go to start; 297 298 clean_up: 299 proc; 300 301 if input_pt ^= null 302 then call hcs_$terminate_noname (input_pt, code); 303 304 if source_info_pt ^= null 305 then if output_pt ^= null 306 then do; 307 call hcs_$truncate_seg (output_pt, word_count, code); 308 309 if code ^= 0 310 then call com_err_ (code, my_name, "^a>^a", dir, sourcename); 311 312 call tssi_$finish_segment (output_pt, word_count * 36, "1100"b, object_hold, code); 313 314 if code ^= 0 315 then call com_err_ (code, my_name, "^a>^a", dir, sourcename); 316 end; 317 else ; 318 else if level > 1 319 then call hcs_$delentry_seg (output_pt, code); 320 else call hcs_$truncate_seg (output_pt, 0, code); 321 322 level = level - 1; 323 324 if time_limit ^= 0 325 then call timer_manager_$reset_cpu_call (cpu_limit); 326 end; 327 328 cpu_limit: 329 proc; 330 331 dcl answer char (3) varying, 332 time2 fixed bin (71); 333 334 dcl 1 query_info aligned, 335 2 version fixed bin init (2), 336 2 yes_or_no unaligned bit (1) init ("1"b), 337 2 surpress_name unaligned bit (1) init ("0"b), 338 2 status_code fixed bin init (0), 339 2 query_code fixed bin; 340 341 if executing 342 then do; 343 call virtual_cpu_time_ (time2); 344 345 call command_query_ (addr (query_info), answer, my_name, 346 "^a has used ^.3f seconds of cpu time. Do you want to continue?", ent, 347 float (time2 - time1, 27) / 1.0e6); 348 349 if answer = "no" 350 then goto done; 351 352 call timer_manager_$cpu_call (time_limit, "11"b, cpu_limit); 353 end; 354 355 end; 356 357 fatal_err: 358 proc (err_num); 359 dcl err_num fixed bin; 360 dcl (i, k) fixed bin; 361 362 dcl 1 message_overlay aligned based (addr (basic_error_messages_$)), 363 2 index_block_skip (0:500), 364 3 (a, b, c) fixed bin, 365 2 skip unal char (k), 366 2 message unal char (index_block (i).len - 1); 367 368 i = abs (err_num); 369 call ioa_ (""); 370 call ioa_ ("FATAL ERROR - ^d", i); 371 k = index_block (i).loc; 372 if k ^= -1 then call ioa_ (message);; 373 call ioa_ (""); 374 basic_severity_ = 5; 375 return; 376 end; 377 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/19/88 0837.9 basic.pl1 >spec>install>1040>basic.pl1 131 1 03/27/82 0439.4 basic_source_info.incl.pl1 >ldd>include>basic_source_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. active_fnc_err_ 000030 constant entry external dcl 58 ref 147 addr builtin function dcl 87 ref 190 233 233 345 345 372 answer 000100 automatic varying char(3) dcl 331 set ref 345* 349 arg based char packed unaligned dcl 38 set ref 155 164* 167 167* 169* 175 175 182 185* 190 190 193* arg_count 000106 automatic fixed bin(17,0) dcl 38 set ref 144* 151 178 arglen 000104 automatic fixed bin(17,0) dcl 38 set ref 153* 155 164 164 167 167 167 167 169 169 175 175 181* 182 185 185 190 190 193 193 argpt 000126 automatic pointer dcl 38 set ref 153* 155 164 167 167 169 175 175 181* 182 185 190 190 193 basic_ 000072 constant entry external dcl 58 ref 260 basic_data$precision_length 000104 external static fixed bin(35,0) dcl 96 set ref 295* basic_error_messages_$ 000106 external static structure level 1 dcl 99 set ref 372 basic_severity_ 000110 external static fixed bin(17,0) dcl 107 set ref 138* 259* 374* bitcnt 000105 automatic fixed bin(17,0) dcl 38 set ref 203* 212 218 branch 000316 automatic structure level 1 dcl 109 set ref 233 233 cleanup 000142 stack reference condition dcl 38 ref 220 code 000102 automatic fixed bin(17,0) dcl 38 set ref 144* 145 153* 164* 165 167 167* 169* 181* 182* 183 203* 208* 214* 233* 235 242* 246* 251* 255* 301* 307* 309 309* 312* 314 314* 318* 320* com_err_ 000032 constant entry external dcl 58 ref 167 169 185 193 208 255 309 314 com_err_$suppress_name 000034 constant entry external dcl 58 ref 159 command_query_ 000036 constant entry external dcl 58 ref 345 cu_$af_return_arg 000020 constant entry external dcl 58 ref 144 cu_$arg_ptr 000016 constant entry external dcl 58 ref 153 181 cu_$ptr_call 000022 constant entry external dcl 58 ref 266 274 cv_dec_check_ 000024 constant entry external dcl 58 ref 182 date_time_modified 64 000330 automatic fixed bin(71,0) level 2 dcl 130 set ref 239* dir 000172 automatic char(168) packed unaligned dcl 38 set ref 164* 203* 208* 231 233* 255* 309* 314* dirname 000330 automatic varying char(168) level 2 dcl 130 set ref 231* divide builtin function dcl 87 ref 218 dtm 1 000316 automatic bit(36) level 2 packed packed unaligned dcl 109 set ref 239 ent 000152 automatic char(32) packed unaligned dcl 38 set ref 172* 229 242* 345* err_count 000103 automatic fixed bin(17,0) dcl 38 set ref 260* 262 278 281* err_num parameter fixed bin(17,0) dcl 359 ref 357 368 error_table_$bad_conversion 000074 external static fixed bin(17,0) dcl 90 set ref 185* error_table_$badopt 000076 external static fixed bin(17,0) dcl 90 set ref 193* error_table_$entlong 000100 external static fixed bin(17,0) dcl 90 ref 167 error_table_$zero_length_seg 000102 external static fixed bin(17,0) dcl 90 ref 214 executing 000114 automatic bit(1) packed unaligned dcl 38 set ref 273* 275* 341 expand_pathname_$add_suffix 000040 constant entry external dcl 58 ref 164 fixed builtin function dcl 87 ref 239 float builtin function dcl 87 ref 345 get_wdir_ 000046 constant entry external dcl 58 ref 241 got_path 000115 automatic bit(1) packed unaligned dcl 38 set ref 142* 157 163* 198 had_bad_option 000116 automatic bit(1) packed unaligned dcl 38 set ref 142* 194* 200 hcs_$delentry_seg 000050 constant entry external dcl 58 ref 318 hcs_$initiate_count 000042 constant entry external dcl 58 ref 203 hcs_$make_seg 000052 constant entry external dcl 58 ref 246 251 hcs_$status_long 000054 constant entry external dcl 58 ref 233 hcs_$terminate_noname 000044 constant entry external dcl 58 ref 301 hcs_$truncate_seg 000062 constant entry external dcl 58 ref 307 320 i 000100 automatic fixed bin(17,0) dcl 38 in procedure "basic" set ref 151* 153* 177* 177 178 181* i 000430 automatic fixed bin(17,0) dcl 360 in procedure "fatal_err" set ref 368* 370* 371 372 372 index_block 000106 external static structure array level 2 dcl 99 input_length 000101 automatic fixed bin(17,0) dcl 38 set ref 218* 260* input_pt 000122 automatic pointer initial dcl 38 set ref 38* 203* 206 260* 301 301* ioa_ 000026 constant entry external dcl 58 ref 281 282 369 370 372 373 k 000431 automatic fixed bin(17,0) dcl 360 set ref 371* 372 372 len 2 000106 external static fixed bin(17,0) array level 3 dcl 99 set ref 372 372 length builtin function dcl 87 ref 172 172 level 000010 internal static fixed bin(17,0) initial dcl 38 set ref 222* 222 244 318 322* 322 loc 000106 external static fixed bin(17,0) array level 3 dcl 99 set ref 371 main_pt 000132 automatic pointer dcl 38 set ref 260* 262 266* 274* message based char level 2 packed packed unaligned dcl 362 set ref 372* message_overlay based structure level 1 dcl 362 my_name 000014 internal static char(5) initial packed unaligned dcl 38 set ref 147* 159* 159* 167* 169* 185* 193* 208* 255* 309* 314* 345* null builtin function dcl 87 ref 38 38 38 144 144 206 224 233 233 246 253 262 262 301 304 304 object_hold 000130 automatic pointer dcl 38 set ref 242* 312* output_pt 000124 automatic pointer initial dcl 38 set ref 38* 242* 249* 251* 253 260* 304 307* 312* 318* 320* program_interrupt 000134 stack reference condition dcl 38 ref 140 query_info 000104 automatic structure level 1 dcl 334 set ref 345 345 rtrim builtin function dcl 87 ref 172 229 231 s 000150 automatic varying char(1) dcl 38 set ref 278* 280* 281* segname 53 000330 automatic varying char(32) level 2 dcl 130 set ref 229* source_info 000330 automatic structure level 1 dcl 130 set ref 190 source_info_pt 000120 automatic pointer initial dcl 38 set ref 38* 190* 224 260* 262 304 sourcename 000162 automatic char(32) packed unaligned dcl 38 set ref 164* 172 172 203* 208* 233* 255* 309* 314* status_code 2 000104 automatic fixed bin(17,0) initial level 2 dcl 334 set ref 334* substr builtin function dcl 87 ref 155 167 172 surpress_name 1(01) 000104 automatic bit(1) initial level 2 packed packed unaligned dcl 334 set ref 334* time1 000112 automatic fixed bin(71,0) dcl 38 set ref 269* 345 time2 000102 automatic fixed bin(71,0) dcl 331 set ref 343* 345 time_limit 000110 automatic fixed bin(71,0) initial dcl 38 set ref 38* 178* 182* 266 271* 324 352* timer_manager_$cpu_call 000066 constant entry external dcl 58 ref 271 352 timer_manager_$reset_cpu_call 000070 constant entry external dcl 58 ref 324 tssi_$finish_segment 000060 constant entry external dcl 58 ref 312 tssi_$get_segment 000056 constant entry external dcl 58 ref 242 uid 11 000316 automatic bit(36) level 2 packed packed unaligned dcl 109 set ref 238 unique_id 66 000330 automatic bit(36) level 2 dcl 130 set ref 238* version 000104 automatic fixed bin(17,0) initial level 2 dcl 334 set ref 334* virtual_cpu_time_ 000064 constant entry external dcl 58 ref 269 343 wdir 000244 automatic char(168) packed unaligned dcl 38 set ref 241* 242* word_count 67 000330 automatic fixed bin(17,0) level 2 dcl 130 set ref 136* 307* 312 work_seg 000012 internal static pointer initial dcl 38 set ref 246 246* 249 yes_or_no 1 000104 automatic bit(1) initial level 2 packed packed unaligned dcl 334 set ref 334* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. index builtin function dcl 87 k automatic fixed bin(17,0) dcl 38 search builtin function dcl 87 NAMES DECLARED BY EXPLICIT CONTEXT. USAGE 000311 constant label dcl 159 ref 198 basic 000153 constant entry external dcl 35 clean_up 001605 constant entry internal dcl 298 ref 220 285 cpu_limit 002050 constant entry internal dcl 328 ref 271 271 324 324 352 352 done 001564 constant label dcl 285 ref 140 256 349 ent_err 000770 constant label dcl 208 ref 215 235 ep_basic 001572 constant entry external dcl 292 fatal_err 002202 constant entry internal dcl 357 ref 262 have_source 000723 constant label dcl 203 start 000161 constant label dcl 136 ref 296 NAME DECLARED BY CONTEXT OR IMPLICATION. abs builtin function ref 368 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2740 3052 2321 2750 Length 3336 2321 112 250 417 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME basic 403 external procedure is an external procedure. on unit on line 140 64 on unit on unit on line 220 64 on unit clean_up 104 internal procedure is called by several nonquick procedures. cpu_limit 122 internal procedure is assigned to an entry variable. fatal_err internal procedure shares stack frame of external procedure basic. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 level basic 000012 work_seg basic 000014 my_name basic STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME basic 000100 i basic 000101 input_length basic 000102 code basic 000103 err_count basic 000104 arglen basic 000105 bitcnt basic 000106 arg_count basic 000110 time_limit basic 000112 time1 basic 000114 executing basic 000115 got_path basic 000116 had_bad_option basic 000120 source_info_pt basic 000122 input_pt basic 000124 output_pt basic 000126 argpt basic 000130 object_hold basic 000132 main_pt basic 000150 s basic 000152 ent basic 000162 sourcename basic 000172 dir basic 000244 wdir basic 000316 branch basic 000330 source_info basic 000430 i fatal_err 000431 k fatal_err cpu_limit 000100 answer cpu_limit 000102 time2 cpu_limit 000104 query_info cpu_limit THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac move_label_var make_label_var tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ basic_ com_err_ com_err_$suppress_name command_query_ cu_$af_return_arg cu_$arg_ptr cu_$ptr_call cv_dec_check_ expand_pathname_$add_suffix get_wdir_ hcs_$delentry_seg hcs_$initiate_count hcs_$make_seg hcs_$status_long hcs_$terminate_noname hcs_$truncate_seg ioa_ timer_manager_$cpu_call timer_manager_$reset_cpu_call tssi_$finish_segment tssi_$get_segment virtual_cpu_time_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. basic_data$precision_length basic_error_messages_$ basic_severity_ error_table_$bad_conversion error_table_$badopt error_table_$entlong error_table_$zero_length_seg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 38 000142 35 000152 136 000161 138 000162 140 000165 142 000204 144 000206 145 000226 147 000230 148 000255 151 000256 153 000265 155 000302 157 000307 159 000311 161 000341 163 000342 164 000344 165 000402 167 000404 169 000447 170 000500 172 000501 173 000516 175 000517 177 000530 178 000531 181 000537 182 000554 183 000607 185 000612 186 000644 189 000645 190 000646 193 000661 194 000713 196 000715 198 000717 200 000721 203 000723 206 000764 208 000770 210 001023 212 001024 214 001026 215 001031 218 001032 220 001034 222 001056 224 001060 229 001064 231 001104 233 001124 235 001164 238 001166 239 001170 241 001174 242 001203 243 001233 244 001234 246 001237 249 001303 250 001306 251 001307 253 001342 255 001346 256 001401 259 001402 260 001404 262 001424 266 001443 269 001455 271 001464 273 001504 274 001506 275 001515 276 001516 278 001517 280 001523 281 001527 282 001553 285 001564 287 001570 292 001571 295 001600 296 001603 298 001604 301 001612 304 001627 307 001640 309 001653 312 001711 314 001736 317 001774 318 001775 320 002012 322 002025 324 002030 326 002046 328 002047 334 002055 341 002064 343 002067 345 002075 349 002146 352 002156 355 002201 357 002202 368 002204 369 002211 370 002222 371 002243 372 002251 373 002274 374 002305 375 002310 ----------------------------------------------------------- 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