COMPILATION LISTING OF SEGMENT dfast_directory_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1554.3 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 dfast_directory_: proc (action, arg_pathname, edit_info_ptr, copy_info_ptr, code); 7 8 /* This procedure is used to read and write the current segment and to delete segments. 9* * 10* * (1) read Read into the current segment. If successful, it sets: 11* * 12* * basic_system ON Basic source or object code. 13* * OFF Fortran source or object code. 14* * (not set) Could not tell type of segment or segment was neither 15* * Fortran nor Basic. 16* * 17* * source_segment ON Segment is not an object segment. 18* * OFF Segment is an object segment. 19* * 20* * current_length Number of characters in new current segment. 21* * 22* * current_name Set to the entry name. If pathname contained an absolute pathname 23* * on entry, current_name will contain just the entry name on exit. 24* * 25* * (2) save Store only if the segment does not exist. 26* * 27* * (3) replace Store only if the segment does exist. 28* * 29* * (4) delete Delete the segment. 30* * 31* * (5) copy Add the segment onto the end of a segment supplied with the copy_info structure 32* * 33* * (6) truncate Truncate the segment. (scratch request) 34* * 35**/ 36 /* parameters */ 37 38 dcl action fixed bin; /* requested action: save, old etc. */ 39 dcl arg_pathname char (*); /* pathname */ 40 dcl edit_info_ptr ptr; /* ptr to dfast_edit_info structure */ 41 dcl copy_info_ptr ptr; /* ptr to copy_info structure (for COPY request only) */ 42 dcl code fixed bin (35); 43 44 /* automatic */ 45 dcl line char (256) var; /* TEST */ 46 47 dcl bit_count fixed bin (24); /* length of segment */ 48 dcl i fixed bin (35); 49 dcl directory_name char (168); 50 dcl access fixed bin (5); 51 dcl entry_name char (32); 52 dcl seg_ptr ptr; /* ptr. to segment in directory */ 53 dcl system bit (1) unal; 54 dcl system_name char (7); 55 dcl pathname char (256) var; /* complete pathname */ 56 dcl program_header_pt ptr; /* ONLY to prevent warn. (%include basic_program_header) */ 57 dcl message char (256) var; 58 59 60 dcl (addr, divide, index, length, null, reverse, substr) builtin; 61 62 /* external */ 63 64 dcl iox_$user_output ptr ext; 65 dcl error_table_$incorrect_access fixed bin (35) ext; 66 dcl error_table_$noentry fixed bin (35) ext; 67 dcl error_table_$segknown fixed bin (35) ext; 68 dcl dfast_error_ entry (fixed bin (35), char (*), char (*)); 69 dcl dfast_merge_ entry (bit (1) unal, ptr, fixed bin (35)); 70 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (12), ptr, fixed bin (35)); 71 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 72 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 73 dcl hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)); 74 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 75 dcl hcs_$truncate_seg entry (ptr, fixed bin (18), fixed bin (35)); 76 dcl ioa_$ioa_switch entry options (variable); 77 dcl com_err_$convert_status_code_ entry (fixed bin (35), char (*) aligned, char (*) aligned); 78 dcl object_info_$display entry (ptr, fixed bin (24), ptr, fixed bin (35)); 79 80 /* constants */ 81 82 dcl READ fixed bin int static init (1) options (constant); 83 dcl SAVE fixed bin int static init (2) options (constant); 84 dcl REPLACE fixed bin int static init (3) options (constant); 85 dcl DELETE fixed bin int static init (4) options (constant); 86 dcl COPY fixed bin int static init (5) options (constant); 87 dcl TRUNCATE fixed bin int static init (6) options (constant); 88 dcl MERGE fixed bin int static init (9) options (constant); 89 dcl RW_access fixed bin (5) int static init (01010b) options (constant); 90 dcl REW_access fixed bin (5) int static init (01110b) options (constant); 91 dcl request_id (6) char (7) int static init ("old", "save", "replace", "unsave", "edit", "scratch") options (constant); 92 93 /* based */ 94 95 dcl cur_seg char (f.current_length) based; 96 dcl string char (f.max_seg_size) based; 97 /* based */ 98 99 dcl 1 oi like object_info aligned; 100 dcl 1 f aligned based (edit_info_ptr) like dfast_edit_info; 101 dcl 1 copy_info aligned based (copy_info_ptr), 102 2 copy_ptr ptr, /* ptr to base of target segment */ 103 2 old_length fixed bin (21), /* length of segment before the copy */ 104 2 new_length fixed bin (21); /* length of segment after the copy */ 105 106 /* include files */ 107 1 1 /* BEGIN INCLUDE ... dfast_error_codes.incl.pl1 */ 1 2 1 3 dcl error_alt_empty fixed bin (35) int static init (1)options (constant); 1 4 dcl error_max_size fixed bin (35) int static init (2)options (constant); 1 5 dcl error_cur_empty fixed bin (35) int static init (3)options (constant); 1 6 dcl error_not_saved fixed bin (35) int static init (4)options (constant); 1 7 dcl error_name_dup fixed bin (35) int static init (5)options (constant); 1 8 dcl error_long_rec fixed bin (35) int static init (6)options (constant); 1 9 dcl error_unknown_arg fixed bin (35) int static init (7)options (constant); 1 10 dcl error_no_expl fixed bin (35) int static init (8)options (constant); 1 11 dcl error_bad_name fixed bin (35) int static init (9)options (constant); 1 12 dcl error_bad_req fixed bin (35) int static init (10)options (constant); 1 13 dcl error_syntax_string fixed bin (35) int static init (11)options (constant); 1 14 dcl error_name_miss fixed bin (35) int static init (12)options (constant); 1 15 dcl error_no_comp fixed bin (35) int static init (13)options (constant); 1 16 dcl error_no_main fixed bin (35) int static init (14)options (constant); 1 17 dcl error_block_spec fixed bin (35) int static init (15)options (constant); 1 18 dcl error_obj_nop fixed bin (35) int static init (16)options (constant); 1 19 dcl error_sav_cur fixed bin (35) int static init (17)options (constant); 1 20 dcl error_bad_type fixed bin (35) int static init (18)options (constant); 1 21 dcl error_unkn_sys fixed bin (35) int static init (19)options (constant); 1 22 dcl error_no_suffix fixed bin (35) int static init (20)options (constant); 1 23 dcl error_no_nl fixed bin (35) int static init (21)options (constant); 1 24 dcl error_bad_sort fixed bin (35) int static init (22)options (constant); 1 25 dcl error_no_num fixed bin (35) int static init (23)options (constant); 1 26 dcl error_line_miss fixed bin (35) int static init (24)options (constant); 1 27 dcl error_request_miss fixed bin (35) int static init (25)options (constant); 1 28 dcl error_bad_line fixed bin (35) int static init (26)options (constant); 1 29 dcl error_no_string fixed bin (35) int static init (27)options (constant); 1 30 dcl error_line_order fixed bin (35) int static init (28)options (constant); 1 31 dcl error_max_lines fixed bin (35) int static init (29)options (constant); 1 32 dcl error_bad_pathname fixed bin (35) int static init (30)options (constant); 1 33 dcl error_access_mode fixed bin (35) int static init (31)options (constant); 1 34 dcl error_delimiter_miss fixed bin (35) int static init (32)options (constant); 1 35 dcl error_size_fixed_record fixed bin (35) int static init (33)options (constant); 1 36 dcl error_bad_rec_len fixed bin (35) int static init (34)options (constant); 1 37 dcl error_string_size fixed bin (35) int static init (35)options (constant); 1 38 dcl error_max_line_number fixed bin (35) int static init (36)options (constant); 1 39 dcl error_max_args fixed bin (35) int static init (37)options (constant); 1 40 dcl error_name_sys fixed bin (35) int static init (38)options (constant); 1 41 dcl error_dprint_map fixed bin (35) int static init (39)options (constant); 1 42 dcl error_max_num fixed bin (35) int static options (constant) init (40); 1 43 dcl error_edit_max_num fixed bin (35) int static options (constant) init (41); 1 44 dcl error_un_num_text fixed bin (35) int static options (constant) init (42); 1 45 dcl error_no_new_line fixed bin (35) int static options (constant) init (43); 1 46 1 47 /* END INCLUDE ... dfast_error_codes.incl.pl1 */ 108 2 1 dcl 1 basic_program_header aligned based(program_header_pt), 2 2 2 version_number fixed binary, 2 3 2 numeric_storage like loc_number, 2 4 2 string_storage like loc_number, 2 5 2 numeric_data like loc_number, 2 6 2 string_data like loc_number, 2 7 2 incoming_args like loc_number, 2 8 2 time_limit float bin, 2 9 2 numeric_scalars like loc_number, 2 10 2 string_scalars like loc_number, 2 11 2 numeric_arrays like loc_number, 2 12 2 string_arrays like loc_number, 2 13 2 functions like loc_number, 2 14 2 statement_map like loc_number, 2 15 2 precision_ind fixed bin(17) unaligned, 2 16 2 definitions fixed bin(17) unaligned; 2 17 2 18 dcl 1 loc_number based, 2 19 2 location bit(18) unaligned, 2 20 2 number bit(18) unaligned; 109 3 1 /* BEGIN INCLUDE FILE -- dfast_edit_info.incl.pl1 3 2* written 5/75 by S.E.Barr 3 3**/ 3 4 dcl 1 dfast_edit_info aligned based (edit_info_ptr), 3 5 2 flags aligned, 3 6 3 brief_mode bit (1) unal, /* ON if short messages to be used */ 3 7 3 build_mode bit (1) unal, /* On if in build mode */ 3 8 3 source_segment bit (1) unal, /* ON if segment is source */ 3 9 3 edit_done bit (1) unal, /* ON if current segment has been edited since save */ 3 10 3 basic_system bit (1) unal, /* ON if basic, OFF if fortran */ 3 11 3 caps_mode bit (1) unal, /* ON if running in CAPS mode */ 3 12 3 dbasic bit (1) unal, /* ON if double prec basic */ 3 13 3 pad bit (29) unal, 3 14 2 system_info aligned, 3 15 3 max_seg_size fixed bin (21), /* maximum segment size in characters */ 3 16 3 user_name char (32) aligned, /* person id */ 3 17 3 tty_id char (6) unal, /* terminal id of the form "ttynnn" */ 3 18 3 current_name char (256) var aligned, /* name of current segment */ 3 19 3 current_length fixed bin (21), /* length in characters of current segment */ 3 20 3 alter_length fixed bin (21), /* length in characters of the alter segment */ 3 21 3 current_ptr ptr, /* ptr to current segment */ 3 22 3 alter_ptr ptr, 3 23 3 home_dir char (168) var, /* home directory from pit */ 3 24 3 user_id char (32) var, /* login id */ 3 25 3 project_id char (32) var, /* login home directory */ 3 26 3 source_directory char (168) aligned, /* directory of where the source was. For COMPILE. */ 3 27 3 source_entryname char (32); /* name of the source. For COMPILE. */ 3 28 3 29 /* END INCLUDE FILE -- dfast_edit_info.incl.pl1 */ 110 4 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 4 2*coded February 8, 1972 by Michael J. Spier */ 4 3 /* modified May 26, 1972 by M. Weaver */ 4 4 /* modified 15 April, 1975 by M. Weaver */ 4 5 4 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 4 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 4 8 2 textp pointer, /* pointer to beginning of text section */ 4 9 2 defp pointer, /* pointer to beginning of definition section */ 4 10 2 linkp pointer, /* pointer to beginning of linkage section */ 4 11 2 statp pointer, /* pointer to beginning of static section */ 4 12 2 symbp pointer, /* pointer to beginning of symbol section */ 4 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 4 14 2 tlng fixed bin, /* length in words of text section */ 4 15 2 dlng fixed bin, /* length in words of definition section */ 4 16 2 llng fixed bin, /* length in words of linkage section */ 4 17 2 ilng fixed bin, /* length in words of static section */ 4 18 2 slng fixed bin, /* length in words of symbol section */ 4 19 2 blng fixed bin, /* length in words of break map */ 4 20 2 format, /* word containing bit flags about object type */ 4 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 4 22 3 bound bit(1) unaligned, /* on if segment is bound */ 4 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 4 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 4 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 4 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 4 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 4 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 4 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 4 30 3 pad bit(27) unaligned, 4 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 4 32 2 textlinkp pointer, /* ptr to first link in text */ 4 33 4 34 /* LIMIT OF BRIEF STRUCTURE */ 4 35 4 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 4 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 4 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 4 39 2 cvers aligned, /* generator version name in printable char string form */ 4 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 4 41 3 length bit(18) unaligned, /* length of name in characters */ 4 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 4 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 4 44 3 length bit(18) unaligned, /* length of comment in characters */ 4 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 4 46 4 47 /* LIMIT OF DISPLAY STRUCTURE */ 4 48 4 49 2 rel_text pointer, /* pointer to text section relocation info */ 4 50 2 rel_def pointer, /* pointer to definition section relocation info */ 4 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 4 52 2 rel_static pointer, /* pointer to static section relocation info */ 4 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 4 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 4 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 4 56 /* currently not used by system */ 4 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 4 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 4 59 4 60 declare object_info_version_2 fixed bin int static init(2); 4 61 4 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 111 112 113 /* */ 114 seg_ptr = null; 115 if substr (arg_pathname, 1, 1) = ">" then pathname = arg_pathname; 116 else pathname = f.home_dir || ">" || arg_pathname; 117 i = length (pathname) - index (reverse (pathname), ">"); 118 directory_name = substr (pathname, 1, i); 119 message = pathname; 120 entry_name = substr (pathname, i + 2); 121 122 if action ^= SAVE then do; /* SAVE requires hcs_$make_seg */ 123 call hcs_$initiate_count (directory_name, entry_name, "", bit_count, 0, seg_ptr, code); 124 125 if code = error_table_$segknown then code = 0; 126 end; 127 128 if code = 0 then do; 129 if action = READ then do; 130 131 132 /* If the segment is object, the f.source_segment and f.basic_system can be set with assurance. 133* If the segment is not object, it is assumed to be a source segment. 134**/ 135 oi.version_number = 2; 136 call object_info_$display (seg_ptr, bit_count, addr (oi), code); 137 if code = 0 then do; 138 if oi.compiler = "basic" then do; 139 system = "1"b; 140 141 /* version is -1 if the language is dbasic (extended precision basic) */ 142 143 if oi.textp -> basic_program_header.version_number = -1 then f.dbasic = "1"b; 144 end; 145 else if oi.compiler = "fortran2" then system = "0"b; 146 else do; 147 code = error_unkn_sys; 148 message = oi.compiler; 149 end; 150 if code = 0 then do; 151 if system ^= f.basic_system then do; 152 system_name = oi.compiler; /* 'fortran2' gets shortened to 'fortran' */ 153 call ioa_$ioa_switch (iox_$user_output, "system changed to ^a", system_name); 154 f.basic_system = system; 155 end; 156 f.source_segment = "0"b; 157 end; 158 end; 159 else do; 160 code = 0; 161 f.source_segment = "1"b; 162 end; 163 164 if code = 0 then do; 165 i = divide (bit_count, 9, 17, 0); 166 if i > f.max_seg_size then code = error_max_size; 167 else do; 168 f.current_length = i; 169 f.current_ptr -> cur_seg = seg_ptr -> cur_seg; 170 i = index (entry_name, " "); /* ignore trailing blanks */ 171 f.current_name = substr (entry_name, 1, i -1); 172 f.alter_length = 0; /* ignore previous edit */ 173 f.edit_done = "0"b; 174 end; 175 end; 176 end; 177 178 else if action = DELETE then do; 179 call hcs_$delentry_seg (seg_ptr, code); 180 seg_ptr = null; 181 end; 182 183 else if action = TRUNCATE then do; 184 call hcs_$truncate_seg (seg_ptr, 0, code); 185 if code = 0 then call hcs_$set_bc_seg (seg_ptr, 0, code); 186 end; 187 188 else if action = COPY then do; 189 i = divide (bit_count, 9, 17, 0); 190 if i + copy_info.old_length > f.max_seg_size then code = error_max_size; 191 192 else do; 193 substr (copy_info.copy_ptr -> string, copy_info.old_length +1, i) = 194 substr (seg_ptr -> string, 1, i); 195 copy_info.new_length = copy_info.old_length +i; 196 end; 197 end; 198 199 else do; 200 if f.alter_length > 0 then call dfast_merge_ ("0"b, edit_info_ptr, code); 201 if code = 0 then do; 202 if action = SAVE then do; 203 if f.source_segment then access = RW_access; 204 else access = REW_access; 205 call hcs_$make_seg (directory_name, entry_name, "", access, seg_ptr, code); 206 if code = error_table_$segknown then code = error_name_dup; 207 end; 208 209 if code = 0 then do; 210 seg_ptr -> cur_seg = f.current_ptr -> cur_seg; 211 bit_count = f.current_length * 9; 212 call hcs_$set_bc_seg (seg_ptr, bit_count, code); 213 if code = 0 then call hcs_$truncate_seg (seg_ptr, divide (f.current_length + 3, 4, 18), code); 214 end; 215 end; 216 end; 217 end; 218 219 220 if code ^= 0 then do; 221 if code = error_table_$noentry then code = error_not_saved; 222 i = index (directory_name, " "); 223 if i = 0 then i = length (directory_name) +1; 224 call dfast_error_ (code, request_id (action), (message)); 225 end; 226 227 /* This code keps track of the pathname of the last OLD, SAVE, REPLACE for use with COMPILE command */ 228 229 else if action = READ | action = SAVE | action = REPLACE then do; 230 f.source_directory = directory_name; 231 f.source_entryname = entry_name; 232 end; 233 234 if seg_ptr ^= null then call hcs_$terminate_noname (seg_ptr, i); 235 236 return; 237 238 end dfast_directory_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1552.2 dfast_directory_.pl1 >spec>on>comp-dir>dfast_directory_.pl1 108 1 03/27/82 0439.4 dfast_error_codes.incl.pl1 >ldd>include>dfast_error_codes.incl.pl1 109 2 03/27/82 0439.4 basic_program_header.incl.pl1 >ldd>include>basic_program_header.incl.pl1 110 3 03/27/82 0439.4 dfast_edit_info.incl.pl1 >ldd>include>dfast_edit_info.incl.pl1 111 4 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_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. COPY constant fixed bin(17,0) initial dcl 86 ref 188 DELETE constant fixed bin(17,0) initial dcl 85 ref 178 READ constant fixed bin(17,0) initial dcl 82 ref 129 229 REPLACE constant fixed bin(17,0) initial dcl 84 ref 229 REW_access constant fixed bin(5,0) initial dcl 90 ref 204 RW_access constant fixed bin(5,0) initial dcl 89 ref 203 SAVE constant fixed bin(17,0) initial dcl 83 ref 122 202 229 TRUNCATE constant fixed bin(17,0) initial dcl 87 ref 183 access 000154 automatic fixed bin(5,0) dcl 50 set ref 203* 204* 205* action parameter fixed bin(17,0) dcl 38 ref 6 122 129 178 183 188 202 224 229 229 229 addr builtin function dcl 60 ref 136 136 alter_length 117 based fixed bin(21,0) level 3 dcl 100 set ref 172* 200 arg_pathname parameter char unaligned dcl 39 ref 6 115 115 116 basic_program_header based structure level 1 dcl 2-1 basic_system 0(04) based bit(1) level 3 packed unaligned dcl 100 set ref 151 154* bit_count 000100 automatic fixed bin(24,0) dcl 47 set ref 123* 136* 165 189 211* 212* code parameter fixed bin(35,0) dcl 42 set ref 6 123* 125 125* 128 136* 137 147* 150 160* 164 166* 179* 184* 185 185* 190* 200* 201 205* 206 206* 209 212* 213 213* 220 221 221* 224* compiler 30 000376 automatic char(8) level 2 dcl 99 set ref 138 145 148 152 copy_info based structure level 1 dcl 101 copy_info_ptr parameter pointer dcl 41 ref 6 190 193 193 195 195 copy_ptr based pointer level 2 dcl 101 ref 193 cur_seg based char unaligned dcl 95 set ref 169* 169 210* 210 current_length 116 based fixed bin(21,0) level 3 dcl 100 set ref 168* 169 169 210 210 211 213 213 current_name 15 based varying char(256) level 3 dcl 100 set ref 171* current_ptr 120 based pointer level 3 dcl 100 ref 169 210 dbasic 0(06) based bit(1) level 3 packed unaligned dcl 100 set ref 143* dfast_edit_info based structure level 1 dcl 3-4 dfast_error_ 000016 constant entry external dcl 68 ref 224 dfast_merge_ 000020 constant entry external dcl 69 ref 200 directory_name 000102 automatic char(168) unaligned dcl 49 set ref 118* 123* 205* 222 223 230 divide builtin function dcl 60 ref 165 189 213 213 edit_done 0(03) based bit(1) level 3 packed unaligned dcl 100 set ref 173* edit_info_ptr parameter pointer dcl 40 set ref 6 116 143 151 154 156 161 166 168 169 169 169 171 172 173 190 193 193 200 200* 203 210 210 210 211 213 213 230 231 entry_name 000155 automatic char(32) unaligned dcl 51 set ref 120* 123* 170 171 205* 231 error_max_size constant fixed bin(35,0) initial dcl 1-4 ref 166 190 error_name_dup constant fixed bin(35,0) initial dcl 1-7 ref 206 error_not_saved constant fixed bin(35,0) initial dcl 1-6 ref 221 error_table_$noentry 000012 external static fixed bin(35,0) dcl 66 ref 221 error_table_$segknown 000014 external static fixed bin(35,0) dcl 67 ref 125 206 error_unkn_sys constant fixed bin(35,0) initial dcl 1-21 ref 147 f based structure level 1 dcl 100 flags based structure level 2 dcl 100 hcs_$delentry_seg 000024 constant entry external dcl 71 ref 179 hcs_$initiate_count 000022 constant entry external dcl 70 ref 123 hcs_$make_seg 000026 constant entry external dcl 72 ref 205 hcs_$set_bc_seg 000030 constant entry external dcl 73 ref 185 212 hcs_$terminate_noname 000032 constant entry external dcl 74 ref 234 hcs_$truncate_seg 000034 constant entry external dcl 75 ref 184 213 home_dir 124 based varying char(168) level 3 dcl 100 ref 116 i 000101 automatic fixed bin(35,0) dcl 48 set ref 117* 118 120 165* 166 168 170* 171 189* 190 193 193 195 222* 223 223* 234* index builtin function dcl 60 ref 117 170 222 ioa_$ioa_switch 000036 constant entry external dcl 76 ref 153 iox_$user_output 000010 external static pointer dcl 64 set ref 153* length builtin function dcl 60 ref 117 223 loc_number based structure level 1 packed unaligned dcl 2-18 max_seg_size 2 based fixed bin(21,0) level 3 dcl 100 ref 166 190 193 193 message 000275 automatic varying char(256) dcl 57 set ref 119* 148* 224 new_length 3 based fixed bin(21,0) level 2 dcl 101 set ref 195* null builtin function dcl 60 ref 114 180 234 object_info based structure level 1 dcl 4-6 object_info_$display 000040 constant entry external dcl 78 ref 136 oi 000376 automatic structure level 1 dcl 99 set ref 136 136 old_length 2 based fixed bin(21,0) level 2 dcl 101 ref 190 193 195 pathname 000174 automatic varying char(256) dcl 55 set ref 115* 116* 117 117 118 119 120 request_id 000000 constant char(7) initial array unaligned dcl 91 set ref 224* reverse builtin function dcl 60 ref 117 seg_ptr 000166 automatic pointer dcl 52 set ref 114* 123* 136* 169 179* 180* 184* 185* 193 205* 210 212* 213* 234 234* source_directory 221 based char(168) level 3 dcl 100 set ref 230* source_entryname 273 based char(32) level 3 dcl 100 set ref 231* source_segment 0(02) based bit(1) level 3 packed unaligned dcl 100 set ref 156* 161* 203 string based char unaligned dcl 96 set ref 193* 193 substr builtin function dcl 60 set ref 115 118 120 171 193* 193 system 000170 automatic bit(1) unaligned dcl 53 set ref 139* 145* 151 154 system_info 2 based structure level 2 dcl 100 system_name 000172 automatic char(7) unaligned dcl 54 set ref 152* 153* textp 2 000376 automatic pointer level 2 dcl 99 set ref 143 version_number based fixed bin(17,0) level 2 in structure "basic_program_header" dcl 2-1 in procedure "dfast_directory_" ref 143 version_number 000376 automatic fixed bin(17,0) level 2 in structure "oi" dcl 99 in procedure "dfast_directory_" set ref 135* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. MERGE internal static fixed bin(17,0) initial dcl 88 com_err_$convert_status_code_ 000000 constant entry external dcl 77 error_access_mode internal static fixed bin(35,0) initial dcl 1-33 error_alt_empty internal static fixed bin(35,0) initial dcl 1-3 error_bad_line internal static fixed bin(35,0) initial dcl 1-28 error_bad_name internal static fixed bin(35,0) initial dcl 1-11 error_bad_pathname internal static fixed bin(35,0) initial dcl 1-32 error_bad_rec_len internal static fixed bin(35,0) initial dcl 1-36 error_bad_req internal static fixed bin(35,0) initial dcl 1-12 error_bad_sort internal static fixed bin(35,0) initial dcl 1-24 error_bad_type internal static fixed bin(35,0) initial dcl 1-20 error_block_spec internal static fixed bin(35,0) initial dcl 1-17 error_cur_empty internal static fixed bin(35,0) initial dcl 1-5 error_delimiter_miss internal static fixed bin(35,0) initial dcl 1-34 error_dprint_map internal static fixed bin(35,0) initial dcl 1-41 error_edit_max_num internal static fixed bin(35,0) initial dcl 1-43 error_line_miss internal static fixed bin(35,0) initial dcl 1-26 error_line_order internal static fixed bin(35,0) initial dcl 1-30 error_long_rec internal static fixed bin(35,0) initial dcl 1-8 error_max_args internal static fixed bin(35,0) initial dcl 1-39 error_max_line_number internal static fixed bin(35,0) initial dcl 1-38 error_max_lines internal static fixed bin(35,0) initial dcl 1-31 error_max_num internal static fixed bin(35,0) initial dcl 1-42 error_name_miss internal static fixed bin(35,0) initial dcl 1-14 error_name_sys internal static fixed bin(35,0) initial dcl 1-40 error_no_comp internal static fixed bin(35,0) initial dcl 1-15 error_no_expl internal static fixed bin(35,0) initial dcl 1-10 error_no_main internal static fixed bin(35,0) initial dcl 1-16 error_no_new_line internal static fixed bin(35,0) initial dcl 1-45 error_no_nl internal static fixed bin(35,0) initial dcl 1-23 error_no_num internal static fixed bin(35,0) initial dcl 1-25 error_no_string internal static fixed bin(35,0) initial dcl 1-29 error_no_suffix internal static fixed bin(35,0) initial dcl 1-22 error_obj_nop internal static fixed bin(35,0) initial dcl 1-18 error_request_miss internal static fixed bin(35,0) initial dcl 1-27 error_sav_cur internal static fixed bin(35,0) initial dcl 1-19 error_size_fixed_record internal static fixed bin(35,0) initial dcl 1-35 error_string_size internal static fixed bin(35,0) initial dcl 1-37 error_syntax_string internal static fixed bin(35,0) initial dcl 1-13 error_table_$incorrect_access external static fixed bin(35,0) dcl 65 error_un_num_text internal static fixed bin(35,0) initial dcl 1-44 error_unknown_arg internal static fixed bin(35,0) initial dcl 1-9 line automatic varying char(256) dcl 45 object_info_version_2 internal static fixed bin(17,0) initial dcl 4-60 program_header_pt automatic pointer dcl 56 NAME DECLARED BY EXPLICIT CONTEXT. dfast_directory_ 000050 constant entry external dcl 6 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1276 1340 1107 1306 Length 1620 1107 42 244 167 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dfast_directory_ 358 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dfast_directory_ 000100 bit_count dfast_directory_ 000101 i dfast_directory_ 000102 directory_name dfast_directory_ 000154 access dfast_directory_ 000155 entry_name dfast_directory_ 000166 seg_ptr dfast_directory_ 000170 system dfast_directory_ 000172 system_name dfast_directory_ 000174 pathname dfast_directory_ 000275 message dfast_directory_ 000376 oi dfast_directory_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dfast_error_ dfast_merge_ hcs_$delentry_seg hcs_$initiate_count hcs_$make_seg hcs_$set_bc_seg hcs_$terminate_noname hcs_$truncate_seg ioa_$ioa_switch object_info_$display THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noentry error_table_$segknown iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000043 114 000063 115 000065 116 000104 117 000142 118 000160 119 000163 120 000170 122 000206 123 000211 125 000252 128 000260 129 000263 135 000266 136 000270 137 000306 138 000311 139 000315 143 000317 144 000325 145 000326 147 000333 148 000335 150 000341 151 000343 152 000351 153 000354 154 000403 156 000412 158 000415 160 000416 161 000417 164 000422 165 000424 166 000427 168 000436 169 000437 170 000444 171 000455 172 000465 173 000466 176 000470 178 000471 179 000473 180 000503 181 000505 183 000506 184 000510 185 000523 186 000542 188 000543 189 000545 190 000550 193 000567 195 000576 197 000602 200 000603 201 000623 202 000626 203 000631 204 000640 205 000642 206 000677 209 000706 210 000710 211 000720 212 000723 213 000736 220 000762 221 000765 222 000772 223 001003 224 001006 225 001044 229 001046 230 001055 231 001062 234 001065 236 001102 ----------------------------------------------------------- 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