COMPILATION LISTING OF SEGMENT apl_directory_commands_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 11/29/83 1601.8 mst Tue 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 apl_directory_commands_: 11 procedure (command_name, argument); 12 13 /* 14* * this module contains miscellaneous APL commands dealing with directories. 15* * currently the ")LIB", ")LIBD", ")V1LIB", ")V1DROP", and ")DROP" commands are included. 16* * written 73.9.15 by DAM 17* * Modified 741009 by PG to use ioa_$ioa_stream, and add )V1LIB. 18* * Modified 770113 by PG to add )V1DROP. 19* Modified 781208 by PG to switch to clock builtin 20* */ 21 22 /* parameters */ 23 24 dcl command_name char (4) aligned parameter, /* name of command to be executed */ 25 argument char (*) parameter; /* the argument to the command (a wsid) */ 26 27 /* automatic */ 28 29 dcl wsid char (168), 30 dname char (168), 31 ename char (32), 32 fcbp pointer, 33 code fixed bin (35), 34 date_time_used fixed bin (71), 35 date_time_modified fixed bin (71), 36 v1 bit (1) aligned; 37 38 /* builtins */ 39 40 dcl (addr, before, clock, fixed, null, unspec) builtin; 41 /* entries */ 42 43 dcl ioa_$ioa_stream entry options (variable), 44 apl_print_string_ entry (char (*)), 45 apl_print_newline_ entry, 46 apl_flush_buffer_ entry, 47 (apl_translate_pathname_, apl_translate_pathname_$allow_version_one) entry (char (*), char (*), char (*), pointer, fixed bin (35)), 48 apl_date_time_ entry (fixed bin (71)) returns (char (17)), 49 com_err_ entry options (variable), 50 msf_manager_$close entry (pointer), 51 delete_$path entry (char (*), char (*), bit (6), char (*), fixed bin (35)), 52 get_wdir_ entry returns (char (168)aligned), 53 hcs_$star_ entry (char (*), char (*), fixed bin (2), pointer, fixed bin, pointer, pointer, fixed bin (35)), 54 get_system_free_area_ entry returns (pointer), 55 freen_ entry (pointer); /* required because hardcode won't say how many Names */ 56 57 /* conditions */ 58 59 dcl cleanup condition; 60 61 /* external static */ 62 63 dcl error_table_$nomatch fixed bin (35) external; 64 65 /* internal static */ 66 67 dcl apl_output_stream char (11) internal static initial ("apl_output_"); 68 69 dcl suffix char (7) varying; 70 dcl eptr pointer, 71 nptr pointer, 72 ecount fixed bin, 73 e_x fixed bin, 74 n_x fixed bin, 75 nct fixed bin, 76 77 Names (100 /* or so */ ) char (32) based (nptr), 78 79 1 Entries (ecount) based (eptr) aligned, 80 2 ( 81 type bit (2), 82 nnames bit (16), 83 nindex bit (18)) unaligned; 84 85 /* dispatch on command_name */ 86 87 if command_name = "drop" 88 then do; 89 v1 = "0"b; 90 go to drop; 91 end; 92 else 93 if command_name = "v1dr" 94 then do; 95 v1 = "1"b; 96 go to drop; 97 end; 98 else 99 if command_name = "lib " 100 then go to lib; 101 else 102 if command_name = "libd" 103 then go to libd; 104 else 105 if command_name = "v1li" 106 then go to v1lib; 107 else return; /* random error, not too serious so just ignore */ 108 109 drop: /* )DROP */ 110 111 if argument ^= "" then wsid = argument; 112 else wsid = ws_info.wsid; 113 114 if wsid = "clear ws" then do; 115 call ioa_$ioa_stream (apl_output_stream, "not dropped, this ws is clear ws"); 116 return; 117 end; 118 119 if v1 120 then call apl_translate_pathname_$allow_version_one (wsid, dname, ename, fcbp, code); 121 else call apl_translate_pathname_ (wsid, dname, ename, fcbp, code); 122 if code ^= 0 then do; 123 bad_code: 124 call com_err_ (code, "apl", "^a>^a", dname, ename); /* tell loser that he lost */ 125 return; 126 end; 127 128 call msf_manager_$close (fcbp); /* we didn't really want it opened anyway */ 129 call delete_$path (dname, ename, "100111"b, "", code); 130 if code ^= 0 then go to bad_code; 131 call ioa_$ioa_stream (apl_output_stream, "^a", apl_date_time_ (clock ())); 132 return; 133 134 lib: 135 libd: 136 v1lib: 137 /* commands to list directories - libd also gives dates */ 138 139 if argument = "" then dname = get_wdir_ (); 140 else do; 141 call apl_translate_pathname_ (argument, dname, (""), fcbp, code); /* "" as ename says I want a directory */ 142 if code ^= 0 then do; /* not there fail - fails later if there but not dir. */ 143 ename = ""; /* get better looking error message (slightly) */ 144 go to bad_code; 145 end; 146 end; 147 148 if command_name ^= "v1li" 149 then do; 150 ename = "**.sv.apl"; 151 suffix = ".sv.apl"; 152 end; 153 else do; 154 ename = "*.apl"; 155 suffix = ".apl"; 156 end; 157 nptr, eptr = null; 158 on cleanup call cleanup_proc; 159 160 call hcs_$star_ (dname, ename, 3, get_system_free_area_ (), ecount, eptr, nptr, code); 161 if code = error_table_$nomatch then go to empty_directory; 162 if code ^= 0 then go to bad_code; 163 164 /* OK, produce the directory listing */ 165 166 if command_name = "libd" then /* put headings if long listing */ 167 call ioa_$ioa_stream (apl_output_stream, "^5xname^3-^4xdate used^-^4xdate saved^/"); 168 169 do e_x = 1 by 1 while (e_x <= ecount); /* process each entry */ 170 171 n_x = fixed (Entries (e_x).nindex, 18); /* index of first name for entry */ 172 if command_name = "libd" then do; /* if long format, make line of listing */ 173 ename = Names (n_x); 174 call get_date_time_modified; 175 call ioa_$ioa_stream (apl_output_stream, "^30a^20a^a", before (ename, suffix), apl_date_time_ (date_time_used), 176 apl_date_time_ (date_time_modified)); 177 do nct = fixed (Entries (e_x).nnames, 16) by -1 while (nct > 1); /* do auxiliary names */ 178 n_x = n_x + 1; 179 call ioa_$ioa_stream (apl_output_stream, "^a", before (Names (n_x), suffix)); 180 end; 181 end; 182 183 else do; /* normal )LIB listing */ 184 185 do nct = fixed (Entries (e_x).nnames,16) by -1 while (nct > 0); 186 call apl_print_string_ (before (Names (n_x), suffix)); 187 n_x = n_x + 1; 188 end; 189 end; 190 191 end; 192 193 /* Listing has been produced - clean up */ 194 195 if command_name = "libd" then call ioa_$ioa_stream (apl_output_stream, ""); 196 else do; 197 call apl_print_newline_; 198 call apl_flush_buffer_; 199 end; 200 201 call cleanup_proc; 202 return; 203 204 empty_directory: 205 call ioa_$ioa_stream (apl_output_stream, "no workspaces"); 206 return; 207 208 cleanup_proc: 209 procedure; 210 211 if nptr ^= null 212 then call freen_ (nptr); 213 214 if eptr ^= null 215 then call freen_ (eptr); 216 217 end cleanup_proc; 218 219 get_date_time_modified: 220 procedure; 221 222 /* sets date_time_modified to the dtm for dname>ename */ 223 224 dcl hcs_$status_ entry (char (*), char (*), fixed bin (1), pointer, pointer, fixed bin (35)), 225 be_sure_to_chase_links fixed bin (1) static init (1), 226 1 branch_info aligned automatic structure, /* return data from status_ */ 227 2 ( 228 type bit (2), 229 nnames bit (16), 230 nrp bit (18), 231 dtm bit (36), 232 dtu bit (36), 233 mode bit (5), 234 padding bit (13), 235 records bit (18)) unaligned; 236 237 call hcs_$status_ (dname, ename, be_sure_to_chase_links, addr (branch_info), null, code); 238 if code ^= 0 then dtm, dtu = (36)"0"b; /* if no status permission on entry, return the year one */ 239 code = 0; 240 241 unspec (date_time_modified) = (20)"0"b || dtm || (16)"0"b; /* unpack kludgey file-system time */ 242 unspec (date_time_used) = (20)"0"b || dtu || (16)"0"b; /* .. */ 243 end get_date_time_modified; 244 245 /* include files */ 246 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_ws_info.incl.pl1 ====================================== */ 1 2 1 3 /* This structure contains all of the global data (or pointers to it) for the APL subsystem */ 1 4 1 5 /* automatic */ 1 6 1 7 declare ws_info_ptr ptr initial (apl_static_$ws_info_ptr.static_ws_info_ptr); 1 8 1 9 /* external static */ 1 10 1 11 declare 1 apl_static_$ws_info_ptr external static aligned structure, 1 12 2 static_ws_info_ptr unaligned pointer; 1 13 1 14 /* based */ 1 15 1 16 declare 1 ws_info aligned based (ws_info_ptr), 1 17 2 version_number fixed bin, /* version of this structure (3) */ 1 18 2 switches unaligned, /* mainly ws parameters */ 1 19 3 long_error_mode bit, /* if 1, long Multics format, else APL/360 format */ 1 20 3 debug_mode bit, /* if 1, system error causes escape to command level */ 1 21 3 canonicalize_mode bit, /* if 1, the editor canonicalizes user input */ 1 22 3 restrict_exec_command bit, /* if 1, the )EXEC command may not be used */ 1 23 3 restrict_debug_command bit, /* if 1, the )DEBUG command may not be used */ 1 24 3 restrict_external_functions 1 25 bit, /* if 1, the )ZFN, )MFN, and )DFN commands may not be used */ 1 26 3 restrict_load bit, /* if 1, the )LOAD and )COPY commands may not be used */ 1 27 3 restrict_load_directory bit, /* if 1, no directory allowed in )LOAD or )COPY pathnames */ 1 28 3 restrict_save bit, /* if 1, the )SAVE command may not be used */ 1 29 3 restrict_save_directory bit, /* if 1, no directory allowed in )SAVE pathnames */ 1 30 3 off_hold bit, /* if 1, )OFF HOLD was typed, else just )OFF */ 1 31 3 transparent_to_signals bit, /* if 1, any conditions slip right past APL */ 1 32 3 meter_mode bit, /* if 1, metering may be done, else speed is all-important */ 1 33 3 restrict_msg_command bit, /* if 1, the )MSG command may not be used. */ 1 34 3 compatibility_check_mode 1 35 bit, /* if 1, check for incompatible operators */ 1 36 3 no_quit_handler bit, /* if 1, do not trap QUITs. */ 1 37 /* remaining 20 bits not presently used */ 1 38 1 39 2 values, /* attributes of the workspace */ 1 40 3 digits fixed bin, /* number of digits of precision printed on output */ 1 41 3 width fixed bin, /* line length for formatted output */ 1 42 3 index_origin fixed bin, /* the index origin (0 or 1) */ 1 43 3 random_link fixed bin(35), /* seed for random number generator */ 1 44 3 fuzz float, /* comparison tolerance (relative fuzz) */ 1 45 3 float_index_origin float, /* the index origin in floating point */ 1 46 3 number_of_symbols fixed bin, /* the number of symbol_beads currently in existence */ 1 47 3 maximum_value_stack_size 1 48 fixed bin (18), /* maximum number of words in one segment of value stack */ 1 49 1 50 2 pointers, /* pointers to various internal tables */ 1 51 3 symbol_table_ptr unaligned pointer, /* -> symbol_table (apl_symbol_table.incl.pl1) */ 1 52 3 current_parse_frame_ptr unaligned pointer, /* -> topmost parse frame */ 1 53 3 value_stack_ptr unaligned pointer, /* -> next free location on value stack */ 1 54 3 alloc_free_info_ptr unaligned pointer, /* -> apl_storage_mngr_ data (apl_storage_system_data.incl.pl1) */ 1 55 1 56 2 time_invoked fixed bin(71), /* clock time that APL was entered */ 1 57 2 integer_fuzz float, /* the absolute fuzz used in checking for integers */ 1 58 2 user_number fixed bin(35), /* number under which the user is signed on */ 1 59 2 latent_expression unaligned pointer, /* -> value_bead for QuadLX */ 1 60 2 lock char(32), /* the lock currently set on this workspace (password) */ 1 61 2 wsid char(100), /* the workspace identification: name, number name, or clear ws */ 1 62 2 last_error_code fixed bin(35), /* last code passed to apl_error_ */ 1 63 2 signoff_lock character (32), 1 64 1 65 2 interrupt_info aligned, /* bits used by apl_interpreter_ to tell when to abort */ 1 66 3 dont_interrupt_parse bit, /* if 1, don't do a dirty stop because the parser is running */ 1 67 3 dont_interrupt_operator bit, /* if 1, don't do a dirty stop because an operator is running */ 1 68 3 dont_interrupt_storage_manager /* if 1, don't stop because apl_storage_mngr_ is */ 1 69 bit, /* munging his tables */ 1 70 3 unused_interrupt_bit bit, /* not presently used */ 1 71 3 dont_interrupt_command bit, 1 72 3 can_be_interrupted bit, /* if 1, OK to do a clean stop (we are between lines, reading) */ 1 73 3 clean_interrupt_pending bit, /* interrupt occured, break cleanly (between lines) */ 1 74 3 dirty_interrupt_pending bit, /* interrupt occured, break as soon as not inhibited */ 1 75 1 76 2 user_name char (32), /* process group id of user */ 1 77 2 immediate_input_prompt char (32) varying, /* normal input */ 1 78 2 evaluated_input_prompt char (32) varying, /* quad input */ 1 79 2 character_input_prompt char (32) varying, /* quad-quote input */ 1 80 2 vcpu_time aligned, 1 81 3 total fixed bin (71), 1 82 3 setup fixed bin (71), 1 83 3 parse fixed bin (71), 1 84 3 lex fixed bin (71), 1 85 3 operator fixed bin (71), 1 86 3 storage_manager fixed bin (71), 1 87 2 output_info aligned, /* data pertaining to output buffer */ 1 88 3 output_buffer_ptr unal ptr, /* ptr to output buffer */ 1 89 3 output_buffer_len fixed bin (21), /* length (bytes) of output buffer */ 1 90 3 output_buffer_pos fixed bin (21), /* index of next byte to write in */ 1 91 3 output_buffer_ll fixed bin (21), /* print positions used up so far */ 1 92 2 tab_width fixed bin (21); /* number of columns a tabs moves cursor */ 1 93 1 94 declare output_buffer char (ws_info.output_buffer_len) based (ws_info.output_buffer_ptr); 1 95 1 96 /* internal static */ 1 97 1 98 declare max_parse_stack_depth fixed bin int static init(64536); 1 99 1 100 /* ------ END INCLUDE SEGMENT apl_ws_info.incl.pl1 -------------------------------------- */ 247 2 1 /* ====== BEGIN INCLUDE SEGMENT apl_number_data.incl.pl1 ================================== */ 2 2 2 3 /* 2 4* This include file contains information about the machine representation of numbers. 2 5* In all programs numbers should simply be declared 'float'. 2 6* All default statements should be in this include file. 2 7* 2 8* This is the binary version. The manifest constant Binary should be used by programs 2 9* that need to know whether we are using binary or decimal. 2 10* */ 2 11 2 12 /* format: style3,initlm0,idind30 */ 2 13 2 14 default (float & ^decimal & ^binary & ^precision & ^constant) float binary (63); 2 15 2 16 declare ( 2 17 TheBiggestNumberWeveGot float initial (0.1701411834604692317e+39), 2 18 TheSmallestNumberWeveGot float initial (.1469367938527859385e-38), 2 19 Binary bit (1) aligned initial ("1"b) 2 20 ) internal static options (constant); 2 21 2 22 /* Number of characters in a number datum entry; used for copying float number arrays as strings. 2 23* (Obsolete! use array copies!) */ 2 24 2 25 declare NumberSize fixed binary precision (4) internal static initial (8); 2 26 2 27 /* ------ END INCLUDE SEGMENT apl_number_data.incl.pl1 ---------------------------------- */ 248 249 250 251 252 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/29/83 1346.3 apl_directory_commands_.pl1 >special_ldd>on>apl.1129>apl_directory_commands_.pl1 247 1 03/27/82 0439.2 apl_ws_info.incl.pl1 >ldd>include>apl_ws_info.incl.pl1 248 2 03/27/82 0429.8 apl_number_data.incl.pl1 >ldd>include>apl_number_data.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. Entries based structure array level 1 dcl 70 Names based char(32) array unaligned dcl 70 ref 173 179 179 186 186 addr builtin function dcl 40 ref 237 237 apl_date_time_ 000030 constant entry external dcl 43 ref 131 131 175 175 175 175 apl_flush_buffer_ 000022 constant entry external dcl 43 ref 198 apl_output_stream 000010 internal static char(11) initial unaligned dcl 67 set ref 115* 131* 166* 175* 179* 195* 204* apl_print_newline_ 000020 constant entry external dcl 43 ref 197 apl_print_string_ 000016 constant entry external dcl 43 ref 186 apl_static_$ws_info_ptr 000052 external static structure level 1 dcl 1-11 apl_translate_pathname_ 000024 constant entry external dcl 43 ref 121 141 apl_translate_pathname_$allow_version_one 000026 constant entry external dcl 43 ref 119 argument parameter char unaligned dcl 24 set ref 10 109 109 134 141* be_sure_to_chase_links 000013 internal static fixed bin(1,0) initial dcl 224 set ref 237* before builtin function dcl 40 ref 175 175 179 179 186 186 branch_info 000300 automatic structure level 1 dcl 224 set ref 237 237 cleanup 000246 stack reference condition dcl 59 ref 158 clock builtin function dcl 40 ref 131 131 131 131 code 000236 automatic fixed bin(35,0) dcl 29 set ref 119* 121* 122 123* 129* 130 141* 142 160* 161 162 237* 238 239* com_err_ 000032 constant entry external dcl 43 ref 123 command_name parameter char(4) dcl 24 ref 10 87 92 98 101 104 148 166 172 195 date_time_modified 000242 automatic fixed bin(71,0) dcl 29 set ref 175* 175* 241* date_time_used 000240 automatic fixed bin(71,0) dcl 29 set ref 175* 175* 242* delete_$path 000036 constant entry external dcl 43 ref 129 dname 000152 automatic char(168) unaligned dcl 29 set ref 119* 121* 123* 129* 134* 141* 160* 237* dtm 1 000300 automatic bit(36) level 2 packed unaligned dcl 224 set ref 238* 241 dtu 2 000300 automatic bit(36) level 2 packed unaligned dcl 224 set ref 238* 242 e_x 000265 automatic fixed bin(17,0) dcl 70 set ref 169* 169* 171 177 185* ecount 000264 automatic fixed bin(17,0) dcl 70 set ref 160* 169 ename 000224 automatic char(32) unaligned dcl 29 set ref 119* 121* 123* 129* 143* 150* 154* 160* 173* 175 175 237* eptr 000260 automatic pointer dcl 70 set ref 157* 160* 171 177 185 214 214* error_table_$nomatch 000050 external static fixed bin(35,0) dcl 63 ref 161 fcbp 000234 automatic pointer dcl 29 set ref 119* 121* 128* 141* fixed builtin function dcl 40 ref 171 177 185 freen_ 000046 constant entry external dcl 43 ref 211 214 get_system_free_area_ 000044 constant entry external dcl 43 ref 160 160 get_wdir_ 000040 constant entry external dcl 43 ref 134 hcs_$star_ 000042 constant entry external dcl 43 ref 160 hcs_$status_ 000054 constant entry external dcl 224 ref 237 ioa_$ioa_stream 000014 constant entry external dcl 43 ref 115 131 166 175 179 195 204 msf_manager_$close 000034 constant entry external dcl 43 ref 128 n_x 000266 automatic fixed bin(17,0) dcl 70 set ref 171* 173 178* 178 179 179 186 186 187* 187 nct 000267 automatic fixed bin(17,0) dcl 70 set ref 177* 177* 185* 185* nindex 0(18) based bit(18) array level 2 packed unaligned dcl 70 ref 171 nnames 0(02) based bit(16) array level 2 packed unaligned dcl 70 ref 177 185 nptr 000262 automatic pointer dcl 70 set ref 157* 160* 173 179 179 186 186 211 211* null builtin function dcl 40 ref 157 211 214 237 237 static_ws_info_ptr 000052 external static pointer level 2 packed unaligned dcl 1-11 ref 1-7 suffix 000254 automatic varying char(7) dcl 69 set ref 151* 155* 175 175 179 179 186 186 unspec builtin function dcl 40 set ref 241* 242* v1 000244 automatic bit(1) dcl 29 set ref 89* 95* 119 ws_info based structure level 1 dcl 1-16 ws_info_ptr 000270 automatic pointer initial dcl 1-7 set ref 112 1-7* wsid 000100 automatic char(168) unaligned dcl 29 in procedure "apl_directory_commands_" set ref 109* 112* 114 119* 121* wsid 36 based char(100) level 2 in structure "ws_info" dcl 1-16 in procedure "apl_directory_commands_" ref 112 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Binary internal static bit(1) initial dcl 2-16 NumberSize internal static fixed bin(4,0) initial dcl 2-25 TheBiggestNumberWeveGot internal static float bin(63) initial dcl 2-16 TheSmallestNumberWeveGot internal static float bin(63) initial dcl 2-16 max_parse_stack_depth internal static fixed bin(17,0) initial dcl 1-98 output_buffer based char unaligned dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. apl_directory_commands_ 000112 constant entry external dcl 10 bad_code 000274 constant label dcl 123 ref 130 144 162 cleanup_proc 001240 constant entry internal dcl 208 ref 158 201 drop 000151 constant label dcl 109 ref 90 96 empty_directory 001216 constant label dcl 204 ref 161 get_date_time_modified 001275 constant entry internal dcl 219 ref 174 lib 000435 constant label dcl 134 ref 98 libd 000435 constant label dcl 134 ref 101 v1lib 000435 constant label dcl 134 ref 104 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1632 1710 1366 1642 Length 2162 1366 56 235 244 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME apl_directory_commands_ 316 external procedure is an external procedure. on unit on line 158 64 on unit cleanup_proc 68 internal procedure is called by several nonquick procedures. get_date_time_modified internal procedure shares stack frame of external procedure apl_directory_commands_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 apl_output_stream apl_directory_commands_ 000013 be_sure_to_chase_links get_date_time_modified STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME apl_directory_commands_ 000100 wsid apl_directory_commands_ 000152 dname apl_directory_commands_ 000224 ename apl_directory_commands_ 000234 fcbp apl_directory_commands_ 000236 code apl_directory_commands_ 000240 date_time_used apl_directory_commands_ 000242 date_time_modified apl_directory_commands_ 000244 v1 apl_directory_commands_ 000254 suffix apl_directory_commands_ 000260 eptr apl_directory_commands_ 000262 nptr apl_directory_commands_ 000264 ecount apl_directory_commands_ 000265 e_x apl_directory_commands_ 000266 n_x apl_directory_commands_ 000267 nct apl_directory_commands_ 000270 ws_info_ptr apl_directory_commands_ 000300 branch_info get_date_time_modified THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return enable shorten_stack ext_entry_desc int_entry set_cs_eis index_before_cs clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_date_time_ apl_flush_buffer_ apl_print_newline_ apl_print_string_ apl_translate_pathname_ apl_translate_pathname_$allow_version_one com_err_ delete_$path freen_ get_system_free_area_ get_wdir_ hcs_$star_ hcs_$status_ ioa_$ioa_stream msf_manager_$close THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. apl_static_$ws_info_ptr error_table_$nomatch LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000106 1 7 000125 87 000127 89 000133 90 000134 92 000135 95 000137 96 000141 98 000142 101 000144 104 000146 107 000150 109 000151 112 000162 114 000165 115 000171 116 000210 119 000211 121 000243 122 000272 123 000274 125 000331 128 000332 129 000341 130 000374 131 000376 132 000434 134 000435 141 000454 142 000504 143 000506 144 000511 148 000512 150 000516 151 000521 152 000526 154 000527 155 000532 157 000536 158 000541 160 000563 161 000637 162 000643 166 000645 169 000670 171 000675 172 000701 173 000705 174 000713 175 000714 177 001011 178 001023 179 001024 180 001074 181 001100 185 001101 186 001110 187 001146 188 001150 191 001153 195 001155 197 001177 198 001204 201 001211 202 001215 204 001216 206 001236 208 001237 211 001245 214 001260 217 001274 219 001275 237 001276 238 001336 239 001342 241 001343 242 001354 243 001365 ----------------------------------------------------------- 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