COMPILATION LISTING OF SEGMENT dfast_command_processor_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/05/82 1305.3 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 dfast_command_processor_: proc (edit_info_ptr, name, arg_line, code); 7 8 /* * This procedure is given a command name and a command line. If the command is one of the Multics commands 9* * allowed, a descriptor list is filled in and the command is called. 10* * 11* * Special casing is done for: 12* * 13* * catalog This is mapped into a call to "list" and the error message is changed to use "catalog" 14* * 15* * dprint If the -map options is dprinted, the uppercase segment name.map is created and dprinted. 16**/ 17 18 /* parameters */ 19 20 dcl edit_info_ptr ptr; 21 dcl name char (*); /* command name */ 22 dcl arg_line char (*); /* user's command line */ 23 dcl code fixed bin (35); /* error code */ 24 25 /* automatic */ 26 dcl seg_ptr ptr; /* pointer to original segment for dprint_map problem */ 27 dcl (start, num_chars) fixed bin; /* start and number of characters in argument */ 28 dcl line_length fixed bin; /* number of characters in line */ 29 dcl i fixed bin; 30 dcl command_index fixed bin; /* index to procedure ptr */ 31 dcl delete_orig_segment bit (1); 32 dcl arg_length (10) fixed bin; /* temporarily holds argument lengths */ 33 dcl 1 descriptors (10) aligned based (addr (al.pointers)), 34 2 desc_pointers bit (18) unal, 35 2 pad_pointers bit (18) unal, 36 2 flag bit (1) unal, 37 2 type bit (6) unal, 38 2 packed bit (1) unal, 39 2 ndims bit (4) unal, 40 2 size bit (24) unal; 41 dcl 1 al aligned, 42 2 dum_ptr ptr, 43 2 num_args fixed bin (16) unaligned, 44 2 tag bit (19) initial ("0000000000000000100"b) unaligned, 45 2 ndescs fixed bin (16) unaligned, 46 2 pad bit (19) unaligned, 47 2 pointers (20) ptr; 48 dcl (addr, hbound, length, mod, null, rel, search, substr, verify) builtin; 49 dcl (bin, bit, divide, index, reverse, unspec) builtin; 50 dcl dprint_change bit (1); 51 dcl line char (256); 52 dcl skip bit (1); 53 dcl command_error condition; 54 55 /* internal static */ 56 57 dcl white_space char (2) int static options (constant) init (" "); /* TAB BLANK */ 58 dcl command_names (14) char (15) int static options (constant) init ("catalog", "cat", "dprint", "dp", "set_tty", "stty", "delete_acl", 59 "da", "set_acl", "sa", "list_acl", "la", "dpunch", "dpn"); 60 61 /* based */ 62 63 dcl proc_ptr (14) ptr based (addr (entry_value (1))); 64 65 /* external */ 66 67 dcl cu_$gen_call entry (ptr, ptr); 68 dcl dfast_error_ entry (fixed bin (35), char (*), char (*)); 69 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 70 dcl entry_value (7) entry init (list, dprint, set_tty, delete_acl, set_acl, list_acl, dpunch); 71 dcl (list, dprint, set_tty, delete_acl, set_acl, list_acl, dpunch) entry; 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 */ 72 73 74 code = 0; 75 unspec (al) = "0"b; 76 command_index = 0; 77 do i = 1 to hbound (command_names, 1) while (command_index = 0); 78 if name = command_names (i) then command_index = i - mod (i+1, 2); 79 end; 80 81 if command_index > 0 then do; 82 num_args = 0; 83 line = arg_line; 84 line_length = length (arg_line); 85 86 delete_orig_segment = "0"b; 87 if command_names (command_index) = "dprint" then call dprint_map; 88 89 start = 1; 90 91 do while (get_arg (start, num_chars) & code = 0); 92 if num_args < 10 then do; 93 num_args = num_args + 1; 94 al.pointers (num_args) = addr (substr (line, start, 1)); 95 arg_length (num_args) = num_chars; 96 start = start + num_chars; 97 end; 98 else code = error_max_args; 99 end; 100 101 if code = 0 then do; 102 103 al.tag = "0000000000000000100"b; 104 al.ndescs = num_args; 105 106 do i = 1 to num_args; 107 desc_pointers (i+num_args) = rel (addr (descriptors (i+num_args).flag)); 108 descriptors (i+num_args).flag = "1"b; 109 descriptors (i+num_args).size = bit (bin (arg_length (i), 24)); 110 descriptors (i+num_args).type = bit (bin (21, 6)); 111 descriptors (i+num_args).packed = "1"b; 112 end; 113 114 if command_names (command_index) = "catalog" then on command_error call reformat; 115 if command_names (command_index) = "dprint" then on command_error delete_orig_segment = "0"b; 116 call cu_$gen_call (proc_ptr (command_index), addr (al.num_args)); 117 118 end; 119 end; 120 else do; 121 code = error_bad_req; 122 call dfast_error_ (code, "", name); 123 return; 124 end; 125 126 if code ^= 0 & command_names (command_index) ^= "dprint" then call dfast_error_ (code, name, ""); 127 128 if delete_orig_segment then do; 129 if code = 0 then call hcs_$delentry_seg (seg_ptr, code); 130 end; 131 RETURN: 132 return; 133 134 /* */ 135 /* This procedure gets the index of the next argument on the line. 136* * 137* * "1"b the argument was found 138* * "0"b no arguments remain on the line 139**/ 140 get_arg: proc (start, num_chars) returns (bit (1)); 141 142 dcl start fixed bin; /* index on line of start of argument */ 143 dcl num_chars fixed bin; /* number of characters */ 144 145 dcl i fixed bin; 146 147 if start <= line_length then do; 148 i = verify (substr (line, start, line_length - start + 1), white_space); 149 if i > 0 then do; 150 start = start + i -1; 151 num_chars = search (substr (line, start, line_length - start + 1), white_space) -1; 152 if num_chars = -1 then num_chars = line_length - start + 1; 153 return ("1"b); 154 end; 155 start = line_length + 1; 156 num_chars = 0; 157 end; 158 159 return ("0"b); 160 161 end get_arg; 162 163 /* */ 164 /* This procedure reformats an error message for LIST so that FAST users think they are using a command called 165* CATALOG */ 166 reformat: proc; 167 168 dcl i fixed bin; 169 dcl acode fixed bin (35); 170 dcl length builtin; 171 172 dcl 1 cond_info aligned, 2 1 /* BEGIN INCLUDE FILE ... cond_info.incl.pl1 2 2* coded by M. Weaver 12 July 1973 */ 2 3 2 4 2 mcptr ptr, /* ptr to machine conditions at time of fault */ 2 5 2 version fixed bin, /* version of this structure (now=1) */ 2 6 2 condition_name char(32) var, /* name of condition */ 2 7 2 infoptr ptr, /* ptr to software info structure */ 2 8 2 wcptr ptr, /* ptr to wall crossing machine conditions */ 2 9 2 loc_ptr ptr, /* ptr to location where condition occurred */ 2 10 2 flags aligned, 2 11 3 crawlout bit(1) unal, /* = "1"b if condition occurred in inner ring */ 2 12 3 pad1 bit(35) unal, 2 13 2 pad_word bit(36) aligned, 2 14 2 user_loc_ptr ptr, /* ptr to last non-support loc before condition */ 2 15 2 pad (4) bit(36) aligned; 2 16 2 17 /* END INCLUDE FILE ... cond_info.incl.pl1 */ 173 174 dcl 1 info_structure aligned based (infoptr), 3 1 3 2 /* begin include file ... cond_info_structure.incl.pl1 */ 3 3 /* last modified 5/7/73 */ 3 4 3 5 2 length fixed bin, /* length in words of this structure */ 3 6 2 version fixed bin, /* version number of this structure */ 3 7 2 action_flags aligned, /* tell handler how to proceed */ 3 8 3 cant_restart bit(1) unal, /* caller doesn't ever want to be returned to */ 3 9 3 default_restart bit(1) unal, /* caller can be returned to with no further action */ 3 10 3 pad bit(34) unal, 3 11 2 info_string char(256) var, /* may contain printable message */ 3 12 2 status_code fixed bin(35), /* if^=0, code interpretable by com_err_ */ 3 13 /* end include file ... cond_info_structure.incl.pl1 */ 175 176 2 name_ptr ptr, 177 2 name_lth fixed bin, 178 2 err_mess_ptr ptr, 179 2 err_mess_lth fixed bin, 180 2 max_err_mess_lth fixed bin, 181 2 print_sw bit (1); 182 183 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 184 185 cond_info.version = 1; 186 call find_condition_info_ (null, addr (cond_info), acode); 187 i = index (info_string, ":"); 188 info_string = "catalog" || substr (info_string, i); 189 err_mess_lth = length (info_string); 190 err_mess_ptr = addr (substr (info_string, 1, 1)); 191 192 end reformat; 193 194 /* */ 195 /* * If dprint is called with the -map option, the command line is reformated. The new line 196* * has these changes: 197* * 198* * seg_name seg_name.map 199* * -map "" 200* * "" "-dl" 201* * 202* * The original segment is copied and converted into an uppercase segment is the user's home directory. 203* * If the user requested deletion of the original segment, the segment is deleted after the dprint 204* * request is made. (If dprint calls com_err_ then the segment is not deleted.) 205**/ 206 dprint_map: proc; 207 208 /* automatic */ 209 210 dcl temp_ptr ptr; /* pointer to copy of segment */ 211 dcl seg_length fixed bin (21); /* no. of characters in original segment */ 212 dcl pathname char (168) var; 213 dcl directory char (168); 214 dcl entry_name char (32); 215 dcl bit_count fixed bin (24); 216 dcl arg char (158) var; 217 dcl new_line char (256); 218 dcl new_line_length fixed bin ; 219 dcl i fixed bin; 220 dcl num_print fixed bin; 221 222 dcl (translate, substr, index) builtin; 223 224 /* constants */ 225 226 dcl RW_access fixed bin (5) int static options (constant) init (01010b) options (constant); 227 dcl UPPERCASE char (26) int static options (constant) init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ") options (constant); 228 dcl LOWERCASE char (26) int static options (constant) init ("abcdefghijklmnopqrstuvwxyz") options (constant); 229 dcl options (8) char (10) init ("-copy", "-cp", "-queue", "-q", "-header", "-he", "-destination", "-ds"); 230 231 /* external */ 232 233 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (12), ptr, fixed bin (35)); 234 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 235 dcl hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)); 236 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 237 dcl error_table_$entlong ext static fixed bin (35); 238 239 /* based */ 240 241 dcl seg_string char (seg_length) based; 242 dcl 1 f aligned based like dfast_edit_info based (edit_info_ptr); 243 4 1 /* BEGIN INCLUDE FILE -- dfast_edit_info.incl.pl1 4 2* written 5/75 by S.E.Barr 4 3**/ 4 4 dcl 1 dfast_edit_info aligned based (edit_info_ptr), 4 5 2 flags aligned, 4 6 3 brief_mode bit (1) unal, /* ON if short messages to be used */ 4 7 3 build_mode bit (1) unal, /* On if in build mode */ 4 8 3 source_segment bit (1) unal, /* ON if segment is source */ 4 9 3 edit_done bit (1) unal, /* ON if current segment has been edited since save */ 4 10 3 basic_system bit (1) unal, /* ON if basic, OFF if fortran */ 4 11 3 caps_mode bit (1) unal, /* ON if running in CAPS mode */ 4 12 3 dbasic bit (1) unal, /* ON if double prec basic */ 4 13 3 pad bit (29) unal, 4 14 2 system_info aligned, 4 15 3 max_seg_size fixed bin (21), /* maximum segment size in characters */ 4 16 3 user_name char (32) aligned, /* person id */ 4 17 3 tty_id char (6) unal, /* terminal id of the form "ttynnn" */ 4 18 3 current_name char (256) var aligned, /* name of current segment */ 4 19 3 current_length fixed bin (21), /* length in characters of current segment */ 4 20 3 alter_length fixed bin (21), /* length in characters of the alter segment */ 4 21 3 current_ptr ptr, /* ptr to current segment */ 4 22 3 alter_ptr ptr, 4 23 3 home_dir char (168) var, /* home directory from pit */ 4 24 3 user_id char (32) var, /* login id */ 4 25 3 project_id char (32) var, /* login home directory */ 4 26 3 source_directory char (168) aligned, /* directory of where the source was. For COMPILE. */ 4 27 3 source_entryname char (32); /* name of the source. For COMPILE. */ 4 28 4 29 /* END INCLUDE FILE -- dfast_edit_info.incl.pl1 */ 244 245 246 /* */ 247 num_print = 0; 248 i = index (line, "-map"); 249 if i > 0 then do; 250 251 new_line_length = 0; 252 start = 1; 253 skip = "0"b; 254 do while (code = 0 & get_arg (start, num_chars)); 255 arg = substr (line, start, num_chars); 256 if substr (arg, 1, 1) ^= "-" then do; 257 if ^skip then do; 258 if num_print = 0 then do; 259 if substr (arg, 1, 1) = ">" then pathname = arg; 260 else pathname = f.home_dir || ">" || arg; 261 i = index (reverse (pathname), ">"); 262 directory = substr (pathname, 1, length (pathname) -i); 263 if i <= 29 then do; 264 entry_name = substr (pathname, length (pathname) -i + 2, i-1); 265 call hcs_$initiate_count (directory, entry_name, "", bit_count, 0, seg_ptr, code); 266 if seg_ptr ^= null then do; 267 call hcs_$make_seg ((f.home_dir), substr (entry_name, 1, i -1) || ".map", "", RW_access, temp_ptr, code); 268 if temp_ptr ^= null then do; 269 code = 0; 270 seg_length = divide (bit_count, 9, 17, 0); 271 temp_ptr -> seg_string = translate (seg_ptr -> seg_string, UPPERCASE, LOWERCASE); 272 substr (new_line, new_line_length + 1, num_chars + 5) = arg || ".map "; 273 new_line_length = new_line_length + num_chars + 5; 274 call hcs_$set_bc_seg (temp_ptr, bit_count, code); 275 num_print = num_print + 1; 276 end; 277 call hcs_$terminate_noname (temp_ptr, (0)); 278 end; 279 end; 280 else code = error_table_$entlong; 281 end; 282 else code = error_dprint_map; 283 end; 284 else do; 285 substr (new_line, new_line_length + 1, num_chars + 1) = arg || " "; 286 new_line_length = new_line_length + num_chars + 1; 287 skip = "0"b; 288 end; 289 end; 290 else do; 291 if arg = "-dl" | arg = "-delete" then delete_orig_segment = "1"b; 292 else if arg ^= "-map" then do; 293 substr (new_line, new_line_length + 1, num_chars + 1) = arg || " "; 294 new_line_length = new_line_length + num_chars + 1; 295 skip = "0"b; 296 do i = 1 to 8; 297 if arg = rtrim(options (i)) then skip = "1"b; 298 end; 299 end; 300 end; 301 start = start + num_chars; 302 if code ^= 0 then call dfast_error_ (code, "dprint", (pathname)); 303 end; 304 if code = 0 then do; 305 line_length = new_line_length + 4; 306 line = "-dl " || new_line; 307 end; 308 end; 309 310 return; 311 312 end dprint_map; 313 end dfast_command_processor_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1644.1 dfast_command_processor_.pl1 >spec>on>comp-dir>dfast_command_processor_.pl1 72 1 03/27/82 0439.4 dfast_error_codes.incl.pl1 >ldd>include>dfast_error_codes.incl.pl1 173 2 05/06/74 1741.0 cond_info.incl.pl1 >ldd>include>cond_info.incl.pl1 175 3 05/06/74 1741.0 cond_info_structure.incl.pl1 >ldd>include>cond_info_structure.incl.pl1 244 4 03/27/82 0439.4 dfast_edit_info.incl.pl1 >ldd>include>dfast_edit_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. LOWERCASE 000000 constant char(26) initial unaligned dcl 228 ref 271 RW_access 000122 constant fixed bin(5,0) initial dcl 226 set ref 267* UPPERCASE 000007 constant char(26) initial unaligned dcl 227 ref 271 acode 000107 automatic fixed bin(35,0) dcl 169 set ref 186* addr builtin function dcl 48 ref 94 107 107 107 108 109 110 111 116 116 116 186 186 190 al 000122 automatic structure level 1 dcl 41 set ref 75* arg 000543 automatic varying char(158) dcl 216 set ref 255* 256 259 259 260 272 285 291 291 292 293 297 arg_length 000110 automatic fixed bin(17,0) array dcl 32 set ref 95* 109 arg_line parameter char unaligned dcl 22 ref 6 83 84 bin builtin function dcl 49 ref 109 110 bit builtin function dcl 49 ref 109 110 bit_count 000542 automatic fixed bin(24,0) dcl 215 set ref 265* 270 274* code parameter fixed bin(35,0) dcl 23 set ref 6 74* 91 98* 101 121* 122* 126 126* 129 129* 254 265* 267* 269* 274* 280* 282* 302 302* 304 command_error 000300 stack reference condition dcl 53 ref 114 115 command_index 000106 automatic fixed bin(17,0) dcl 30 set ref 76* 77 78* 81 87 114 115 116 126 command_names 000016 constant char(15) initial array unaligned dcl 58 ref 77 78 87 114 115 126 cond_info 000110 automatic structure level 1 dcl 172 set ref 186 186 cu_$gen_call 000010 constant entry external dcl 67 ref 116 delete_acl 000024 constant entry external dcl 71 ref 70 delete_orig_segment 000107 automatic bit(1) unaligned dcl 31 set ref 86* 115* 128 291* desc_pointers based bit(18) array level 2 packed unaligned dcl 33 set ref 107* descriptors based structure array level 1 dcl 33 dfast_edit_info based structure level 1 dcl 4-4 dfast_error_ 000012 constant entry external dcl 68 ref 122 126 302 directory 000460 automatic char(168) unaligned dcl 213 set ref 262* 265* divide builtin function dcl 49 ref 270 dprint 000020 constant entry external dcl 71 ref 70 dpunch 000032 constant entry external dcl 71 ref 70 edit_info_ptr parameter pointer dcl 20 ref 6 260 267 entry_name 000532 automatic char(32) unaligned dcl 214 set ref 264* 265* 267 entry_value 000306 automatic entry variable initial array dcl 70 set ref 70* 70* 70* 70* 70* 70* 70* 116 err_mess_lth 114 based fixed bin(17,0) level 2 dcl 174 set ref 189* err_mess_ptr 112 based pointer level 2 dcl 174 set ref 190* error_bad_req constant fixed bin(35,0) initial dcl 1-12 ref 121 error_dprint_map constant fixed bin(35,0) initial dcl 1-41 ref 282 error_max_args constant fixed bin(35,0) initial dcl 1-39 ref 98 error_table_$entlong 000046 external static fixed bin(35,0) dcl 237 ref 280 f based structure level 1 dcl 242 find_condition_info_ 000034 constant entry external dcl 183 ref 186 flag 1 based bit(1) array level 2 packed unaligned dcl 33 set ref 107 108* hbound builtin function dcl 48 ref 77 hcs_$delentry_seg 000014 constant entry external dcl 69 ref 129 hcs_$initiate_count 000036 constant entry external dcl 233 ref 265 hcs_$make_seg 000040 constant entry external dcl 234 ref 267 hcs_$set_bc_seg 000042 constant entry external dcl 235 ref 274 hcs_$terminate_noname 000044 constant entry external dcl 236 ref 277 home_dir 124 based varying char(168) level 3 dcl 242 ref 260 267 i 000106 automatic fixed bin(17,0) dcl 168 in procedure "reformat" set ref 187* 188 i 000372 automatic fixed bin(17,0) dcl 145 in procedure "get_arg" set ref 148* 149 150 i 000715 automatic fixed bin(17,0) dcl 219 in procedure "dprint_map" set ref 248* 249 261* 262 263 264 264 267 296* 297* i 000105 automatic fixed bin(17,0) dcl 29 in procedure "dfast_command_processor_" set ref 77* 78 78 78* 106* 107 107 108 109 109 110 111* index builtin function dcl 49 in procedure "dfast_command_processor_" ref 187 index builtin function dcl 222 in procedure "dprint_map" ref 248 261 info_string 3 based varying char(256) level 2 dcl 174 set ref 187 188* 188 189 190 info_structure based structure level 1 dcl 174 infoptr 14 000110 automatic pointer level 2 dcl 172 set ref 187 188 188 189 189 190 190 length builtin function dcl 170 in procedure "reformat" ref 189 length builtin function dcl 48 in procedure "dfast_command_processor_" ref 84 262 264 line 000176 automatic char(256) unaligned dcl 51 set ref 83* 94 148 151 248 255 306* line_length 000104 automatic fixed bin(17,0) dcl 28 set ref 84* 147 148 151 152 155 305* list 000016 constant entry external dcl 71 ref 70 list_acl 000030 constant entry external dcl 71 ref 70 mod builtin function dcl 48 ref 78 name parameter char unaligned dcl 21 set ref 6 78 122* 126* ndescs 3 000122 automatic fixed bin(16,0) level 2 packed unaligned dcl 41 set ref 104* new_line 000614 automatic char(256) unaligned dcl 217 set ref 272* 285* 293* 306 new_line_length 000714 automatic fixed bin(17,0) dcl 218 set ref 251* 272 273* 273 285 286* 286 293 294* 294 305 null builtin function dcl 48 ref 186 186 266 268 num_args 2 000122 automatic fixed bin(16,0) level 2 packed unaligned dcl 41 set ref 82* 92 93* 93 94 95 104 106 107 107 108 109 110 111 116 116 num_chars parameter fixed bin(17,0) dcl 143 in procedure "get_arg" set ref 140 151* 152 152* 156* num_chars 000103 automatic fixed bin(17,0) dcl 27 in procedure "dfast_command_processor_" set ref 91* 95 96 254* 255 272 273 285 286 293 294 301 num_print 000716 automatic fixed bin(17,0) dcl 220 set ref 247* 258 275* 275 options 000717 automatic char(10) initial array unaligned dcl 229 set ref 229* 229* 229* 229* 229* 229* 229* 229* 297 packed 1(07) based bit(1) array level 2 packed unaligned dcl 33 set ref 111* pathname 000405 automatic varying char(168) dcl 212 set ref 259* 260* 261 262 262 264 264 302 pointers 4 000122 automatic pointer array level 2 dcl 41 set ref 94* 107 107 108 109 110 111 proc_ptr based pointer array dcl 63 set ref 116* rel builtin function dcl 48 ref 107 reverse builtin function dcl 49 ref 261 search builtin function dcl 48 ref 151 seg_length 000404 automatic fixed bin(21,0) dcl 211 set ref 270* 271 271 seg_ptr 000100 automatic pointer dcl 26 set ref 129* 265* 266 271 seg_string based char unaligned dcl 241 set ref 271* 271 set_acl 000026 constant entry external dcl 71 ref 70 set_tty 000022 constant entry external dcl 71 ref 70 size 1(12) based bit(24) array level 2 packed unaligned dcl 33 set ref 109* skip 000276 automatic bit(1) unaligned dcl 52 set ref 253* 257 287* 295* 297* start parameter fixed bin(17,0) dcl 142 in procedure "get_arg" set ref 140 147 148 148 150* 150 151 151 152 155* start 000102 automatic fixed bin(17,0) dcl 27 in procedure "dfast_command_processor_" set ref 89* 91* 94 96* 96 252* 254* 255 301* 301 substr builtin function dcl 222 in procedure "dprint_map" set ref 255 256 259 262 264 267 272* 285* 293* substr builtin function dcl 48 in procedure "dfast_command_processor_" ref 94 148 151 188 190 system_info 2 based structure level 2 dcl 242 tag 2(17) 000122 automatic bit(19) initial level 2 packed unaligned dcl 41 set ref 41* 103* temp_ptr 000402 automatic pointer dcl 210 set ref 267* 268 271 274* 277* translate builtin function dcl 222 ref 271 type 1(01) based bit(6) array level 2 packed unaligned dcl 33 set ref 110* unspec builtin function dcl 49 set ref 75* verify builtin function dcl 48 ref 148 version 2 000110 automatic fixed bin(17,0) level 2 dcl 172 set ref 185* white_space constant char(2) initial unaligned dcl 57 ref 148 151 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. dprint_change automatic bit(1) unaligned dcl 50 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_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_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_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_max_size internal static fixed bin(35,0) initial dcl 1-4 error_name_dup internal static fixed bin(35,0) initial dcl 1-7 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_not_saved internal static fixed bin(35,0) initial dcl 1-6 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_un_num_text internal static fixed bin(35,0) initial dcl 1-44 error_unkn_sys internal static fixed bin(35,0) initial dcl 1-21 error_unknown_arg internal static fixed bin(35,0) initial dcl 1-9 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 000705 constant label dcl 131 dfast_command_processor_ 000164 constant entry external dcl 6 dprint_map 001066 constant entry internal dcl 206 ref 87 get_arg 000706 constant entry internal dcl 140 ref 91 254 reformat 000776 constant entry internal dcl 166 ref 114 NAME DECLARED BY CONTEXT OR IMPLICATION. rtrim builtin function ref 297 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3060 3130 2640 3070 Length 3426 2640 50 261 217 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dfast_command_processor_ 548 external procedure is an external procedure. on unit on line 114 111 on unit on unit on line 115 64 on unit get_arg internal procedure shares stack frame of external procedure dfast_command_processor_. reformat internal procedure shares stack frame of on unit on line 114. dprint_map internal procedure shares stack frame of external procedure dfast_command_processor_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dfast_command_processor_ 000100 seg_ptr dfast_command_processor_ 000102 start dfast_command_processor_ 000103 num_chars dfast_command_processor_ 000104 line_length dfast_command_processor_ 000105 i dfast_command_processor_ 000106 command_index dfast_command_processor_ 000107 delete_orig_segment dfast_command_processor_ 000110 arg_length dfast_command_processor_ 000122 al dfast_command_processor_ 000176 line dfast_command_processor_ 000276 skip dfast_command_processor_ 000306 entry_value dfast_command_processor_ 000372 i get_arg 000402 temp_ptr dprint_map 000404 seg_length dprint_map 000405 pathname dprint_map 000460 directory dprint_map 000532 entry_name dprint_map 000542 bit_count dprint_map 000543 arg dprint_map 000614 new_line dprint_map 000714 new_line_length dprint_map 000715 i dprint_map 000716 num_print dprint_map 000717 options dprint_map on unit on line 114 000106 i reformat 000107 acode reformat 000110 cond_info reformat THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return mod_fx1 enable shorten_stack ext_entry_desc int_entry set_cs_eis index_cs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$gen_call delete_acl dfast_error_ dprint dpunch find_condition_info_ hcs_$delentry_seg hcs_$initiate_count hcs_$make_seg hcs_$set_bc_seg hcs_$terminate_noname list list_acl set_acl set_tty THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$entlong LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000157 41 000204 70 000210 74 000301 75 000303 76 000306 77 000307 78 000316 79 000337 81 000341 82 000343 83 000347 84 000355 86 000357 87 000360 89 000367 91 000371 92 000403 93 000410 94 000415 95 000426 96 000431 97 000432 98 000433 99 000435 101 000436 103 000440 104 000444 106 000453 107 000462 108 000472 109 000474 110 000503 111 000513 112 000515 114 000517 115 000544 116 000570 119 000605 121 000606 122 000611 123 000633 126 000634 128 000667 129 000671 131 000705 140 000706 147 000710 148 000713 149 000731 150 000732 151 000735 152 000752 153 000760 155 000765 156 000770 159 000771 166 000776 185 000777 186 001001 187 001020 188 001033 189 001060 190 001063 192 001065 206 001066 229 001067 247 001150 248 001151 249 001160 251 001161 252 001162 253 001164 254 001165 255 001177 256 001210 257 001215 258 001217 259 001221 260 001232 261 001270 262 001303 263 001310 264 001314 265 001321 266 001364 267 001370 268 001455 269 001462 270 001464 271 001467 272 001501 273 001524 274 001531 275 001544 277 001545 279 001557 280 001560 281 001563 282 001564 283 001566 285 001567 286 001611 287 001616 289 001617 291 001620 292 001635 293 001642 294 001664 295 001671 296 001672 297 001677 298 001721 301 001723 302 001725 303 001763 304 001765 305 001767 306 001772 307 002005 310 002006 ----------------------------------------------------------- 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