COMPILATION LISTING OF SEGMENT do_requests_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1150.35_Tue_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1991 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 10 do_requests_: 11 procedure; 12 13 /* Written April 1982 by C. Hornig */ 14 /* Modified 11 September 1982 by Richard Lamson to fix line_status problem in send and other requests. */ 15 /* Modified January 1983 by C. Hornig to reorganize functions */ 16 /* Modified March 1983 by K. Loepere so that send_file won't overflow FNP 17* input buffer with remote echo and so wait request can wait for a string 18* and so wait works in dial_out ecs */ 19 20 21 22 /****^ HISTORY COMMENTS: 23* 1) change(91-08-15,Schroth), approve(91-09-09,MCR8247), 24* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 25* Added -inhibit_error/-no_inhibit_error to wait request to inhibit active 26* function failure on timeouts. If -inhibit_error is used with -timeout, 27* whatever was received prior the the timer runout will be returned as the 28* value of the active request. 29* END HISTORY COMMENTS */ 30 31 32 33 dcl (Sci_ptr, Do_ptr) ptr parameter; 34 35 dcl NL char (1) static options (constant) init (" 36 "); 37 dcl SP char (1) static options (constant) init (" "); 38 39 dcl error_table_$bad_arg fixed bin (35) ext static; 40 dcl error_table_$bad_conversion fixed bin (35) ext static; 41 dcl error_table_$end_of_info fixed bin (35) ext static; 42 dcl error_table_$inconsistent fixed bin (35) ext static; 43 dcl error_table_$line_status_pending fixed bin (35) ext static; 44 dcl error_table_$long_record fixed bin (35) ext static; 45 dcl error_table_$noarg fixed bin (35) ext static; 46 dcl error_table_$short_record fixed bin (35) ext static; 47 dcl error_table_$wrong_no_of_args fixed bin (35) ext static; 48 49 dcl cu_$set_cl_intermediary entry (entry); 50 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 51 dcl dial_out_modes_$set entry (ptr, char (*), fixed bin (35)); 52 dcl dial_out_util_$interaction_loop entry (ptr, bit (1) aligned, bit (1) aligned); 53 dcl dial_out_util_$process_line_status entry (ptr); 54 dcl dial_out_util_$process_net_input entry (ptr, bit (1) aligned); 55 dcl dial_out_util_$reset_do_modes entry (ptr); 56 dcl dial_out_util_$send_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 57 dcl dial_out_util_$send_nl entry (ptr, fixed bin (35)); 58 dcl dial_out_util_$set_do_modes entry (ptr); 59 dcl ioa_ entry () options (variable); 60 dcl ioa_$rsnnl entry () options (variable); 61 dcl requote_string_ entry (char (*)) returns (char (*)); 62 dcl ssu_$abort_line entry options (variable); 63 dcl ssu_$arg_count entry (ptr, fixed bin); 64 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin (21)); 65 dcl ssu_$return_arg entry (ptr, fixed bin, bit (1) aligned, ptr, fixed bin (21)); 66 dcl unique_chars_ entry (bit (*)) returns (char (15)); 67 68 dcl abort_on_timeout bit (1) aligned; /* timeout causes wait to abort */ 69 dcl af_sw bit (1) aligned; /* request called as active request */ 70 dcl arg_num fixed bin; 71 dcl buff char (512); /* reading from send file */ 72 dcl code fixed bin (35); 73 dcl i fixed bin; 74 dcl iocbp ptr; 75 dcl nargs fixed bin; 76 dcl new_line bit (1) aligned; /* on end of wait str */ 77 dcl nin fixed bin (21); /* chars read from send file */ 78 dcl long_rec bit (1) aligned; /* didn't read whole line from file */ 79 dcl path_found bit (1) aligned; /* found path arg in send_file request */ 80 dcl silent bit (1) aligned; /* discard foreign chars during transfer */ 81 82 dcl arg char (al) based (ap); /* standard argument stuff */ 83 dcl al fixed bin (21); 84 dcl ap ptr; 85 dcl path char (path_len) based (path_ptr); /* pathname for send_file request */ 86 dcl path_len fixed bin (21); 87 dcl path_ptr ptr; 88 dcl str_to_match_area char (do_info.match_max_length) based (do_info.match_string_p); 89 dcl val varying char (val_len) based (val_ptr); /* active request value */ 90 dcl val_len fixed bin (21); 91 dcl val_ptr ptr; 92 93 dcl cleanup condition; 94 95 dcl (addr, codeptr, index, length, null, substr) builtin; 96 97 /* * * * * * * * * * QUIT * * * * * * * * * */ 98 99 quit_request: 100 entry (Sci_ptr, Do_ptr); 101 102 dop = Do_ptr; 103 do_info.abort_code = 0; 104 goto do_info.abort_label; 105 106 /* * * * * * * * * * INTERRUPT * * * * * * * * * */ 107 108 interrupt_request: 109 entry (Sci_ptr, Do_ptr); 110 111 dop = Do_ptr; 112 try_interrupt_request_again: 113 call iox_$control (do_info.ci.net_iocb, "interrupt", null (), code); 114 if code = error_table_$line_status_pending then do; 115 call dial_out_util_$process_line_status (dop); 116 go to try_interrupt_request_again; 117 end; 118 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code); 119 return; 120 121 /* * * * * * * * * * MODES * * * * * * * * * */ 122 123 modes_request: 124 entry (Sci_ptr, Do_ptr); 125 126 dop = Do_ptr; 127 128 call ssu_$return_arg (Sci_ptr, nargs, af_sw, val_ptr, val_len); 129 130 if af_sw then do; 131 call ioa_$rsnnl ("^[^^^]raw,^[^^^]echo,^[^^^]send_lf,^[^^^]echo_lf,^[^^^]quit,^[^^^]line", val, (0), 132 ^do_info.flags.raw_sw, ^do_info.flags.echo_sw, ^do_info.flags.send_lf_sw, ^do_info.flags.lfecho_sw, 133 ^do_info.flags.quit_sw, ^do_info.flags.no_breakall_sw); 134 end; 135 136 if nargs < 1 then do; 137 if ^af_sw 138 then call ioa_ ("^[^^^]raw,^[^^^]echo,^[^^^]send_lf,^[^^^]echo_lf,^[^^^]quit,^[^^^]line", 139 ^do_info.flags.raw_sw, ^do_info.flags.echo_sw, ^do_info.flags.send_lf_sw, 140 ^do_info.flags.lfecho_sw, ^do_info.flags.quit_sw, ^do_info.flags.no_breakall_sw); 141 return; 142 end; 143 144 if nargs > 1 then call ssu_$abort_line (Sci_ptr, error_table_$wrong_no_of_args); 145 146 call ssu_$arg_ptr (Sci_ptr, 1, ap, al); 147 148 call dial_out_modes_$set (dop, arg, code); 149 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code); 150 151 return; 152 153 /* * * * * * * * * * ESCAPE * * * * * * * * * */ 154 155 escape_request: 156 entry (Sci_ptr, Do_ptr); 157 158 dop = Do_ptr; 159 160 call ssu_$return_arg (Sci_ptr, nargs, af_sw, val_ptr, val_len); 161 162 if af_sw then do; 163 val = requote_string_ ((do_info.esc_char)); 164 end; 165 166 if nargs < 1 & ^af_sw then do; 167 call ioa_ ("^1a", do_info.esc_char); 168 return; 169 end; 170 171 if nargs > 1 then call ssu_$abort_line (Sci_ptr, error_table_$wrong_no_of_args); 172 173 call ssu_$arg_ptr (Sci_ptr, 1, ap, al); 174 175 if length (arg) = 1 176 then do_info.esc_char = arg; 177 else call ssu_$abort_line (Sci_ptr, error_table_$bad_arg, "^a", arg); 178 return; 179 180 /* * * * * * * * * * SEND * * * * * * * * * */ 181 182 send_request: 183 entry (Sci_ptr, Do_ptr); 184 185 dop = Do_ptr; 186 187 call ssu_$arg_count (Sci_ptr, nargs); 188 if nargs < 1 then return; 189 call ssu_$arg_ptr (Sci_ptr, 1, ap, al); 190 call dial_out_util_$send_chars (dop, ap, al, code); 191 if code ^= 0 192 then 193 bad_write: 194 call ssu_$abort_line (Sci_ptr, code, "Writing."); 195 do i = 2 to nargs; 196 call dial_out_util_$send_chars (dop, addr (SP), 1, code); 197 if code ^= 0 then goto bad_write; 198 call ssu_$arg_ptr (Sci_ptr, i, ap, al); 199 call dial_out_util_$send_chars (dop, ap, al, code); 200 if code ^= 0 then goto bad_write; 201 end; 202 return; 203 204 /* * * * * * * * * * SEND_FILE_REQUEST * * * * * * * * * */ 205 206 send_file_request: 207 entry (Sci_ptr, Do_ptr); 208 209 dop = Do_ptr; 210 silent = "1"b; 211 212 call ssu_$arg_count (Sci_ptr, nargs); 213 if nargs < 1 | nargs > 2 then call ssu_$abort_line (Sci_ptr, 0, "Usage: send_file path {-display_input}"); 214 path_found = "0"b; 215 do i = 1 to nargs; 216 call ssu_$arg_ptr (Sci_ptr, i, ap, al); 217 if arg = "-display_input" | arg = "-dsin" then silent = "0"b; 218 else if arg = "-no_display_input" | arg = "-ndsin" then silent = "1"b; 219 else if index (arg, "-") = 1 then call ssu_$abort_line (Sci_ptr, error_table_$bad_arg, "^a", arg); 220 else do; 221 if path_found then call ssu_$abort_line (Sci_ptr, 0, "More than one path specified. ^a", arg); 222 path_found = "1"b; 223 path_ptr = ap; 224 path_len = al; 225 end; 226 end; 227 228 iocbp = null (); 229 on cleanup 230 begin; 231 call reset_do_state; 232 call clean_iocb (iocbp); 233 end; 234 235 call iox_$attach_name ("do.send_file." || unique_chars_ (""b), iocbp, "vfile_ " || path, 236 codeptr (send_file_request), code); 237 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Attaching vfile_ ^a", path); 238 call iox_$open (iocbp, Stream_input, "0"b, code); 239 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Opening vfile_ ^a", path); 240 241 call set_do_state; /* coming here reset do state, we need it 242* back so process_net_input works */ 243 244 do while ("1"b); 245 call iox_$control (do_info.ci.net_iocb, "read_status", addr (do_info.net_rs), code); 246 /* get incoming (echo?) */ 247 if code ^= 0 then do_info.net_rs.data_available = "1"b; 248 if do_info.net_rs.data_available then call dial_out_util_$process_net_input (dop, silent); 249 250 long_rec = "0"b; 251 call iox_$get_line (iocbp, addr (buff), length (buff), nin, code); 252 if (code = error_table_$long_record) | (code = error_table_$short_record) then long_rec = "1"b; 253 else if (nin = 0) & (code = error_table_$end_of_info) then goto done_send_file; 254 else if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Reading from ^a", path); 255 else nin = nin - 1; /* trim NL */ 256 257 call dial_out_util_$send_chars (dop, addr (buff), nin, code); 258 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Writing.", path); 259 if ^long_rec then do; 260 call dial_out_util_$send_nl (dop, code); 261 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Writing NL.", path); 262 end; 263 end; 264 265 done_send_file: 266 call reset_do_state; 267 call clean_iocb (iocbp); 268 return; 269 270 /* * * * * * * * * * SWITCH_NAME_REQUEST * * * * * * * * */ 271 272 switch_name_request: 273 entry (Sci_ptr, Do_ptr); 274 275 dop = Do_ptr; 276 277 call ssu_$return_arg (Sci_ptr, nargs, af_sw, val_ptr, val_len); 278 if nargs ^= 0 then call ssu_$abort_line (Sci_ptr, 0, "Usage: switch_name"); 279 280 if af_sw 281 then val = do_info.ci.net_iocb -> iocb.name; 282 else call ioa_ ("^a", do_info.ci.net_iocb -> iocb.name); 283 return; 284 285 /* * * * * * * * * * * FILE_OUTPUT_REQUEST * * * * * * * * * * */ 286 287 file_output_request: 288 entry (Sci_ptr, Do_ptr); 289 290 dop = Do_ptr; 291 292 call ssu_$arg_count (Sci_ptr, nargs); 293 if nargs ^= 1 then call ssu_$abort_line (Sci_ptr, 0, "Usage: file_output path"); 294 if do_info.fo_iocbp ^= null () then call ssu_$abort_line (Sci_ptr, 0, "file_output already in progress."); 295 call ssu_$arg_ptr (Sci_ptr, 1, ap, al); 296 297 on cleanup call clean_iocb (do_info.fo_iocbp); 298 299 call iox_$attach_name ("do.file_output." || unique_chars_ (""b), do_info.fo_iocbp, 300 "vfile_ " || arg || " -extend", codeptr (file_output_request), code); 301 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Attaching vfile_ ^a.", arg); 302 call iox_$open (do_info.fo_iocbp, Stream_output, "1"b, code); 303 if code ^= 0 then call ssu_$abort_line (Sci_ptr, code, "Opening vfile_ ^a.", arg); 304 return; 305 306 /* * * * * * * * * * REVERT_OUTPUT_REQUEST * * * * * * * * * * */ 307 308 revert_output_request: 309 entry (Sci_ptr, Do_ptr); 310 311 dop = Do_ptr; 312 313 call ssu_$arg_count (Sci_ptr, nargs); 314 if nargs ^= 0 then call ssu_$abort_line (Sci_ptr, 0, "Usage: revert_output"); 315 if do_info.fo_iocbp = null () then call ssu_$abort_line (Sci_ptr, 0, "No file_output in progress."); 316 call clean_iocb (do_info.fo_iocbp); 317 return; 318 319 /* * * * * * * * * * WAIT * * * * * * * * * * */ 320 321 wait_request: 322 entry (Sci_ptr, Do_ptr); 323 324 dop = Do_ptr; 325 326 call ssu_$return_arg (Sci_ptr, nargs, af_sw, val_ptr, val_len); 327 328 do_info.time_out = 0; 329 abort_on_timeout = "1"b; 330 new_line = "0"b; 331 do_info.match_length = 0; 332 do arg_num = 1 to nargs; 333 call ssu_$arg_ptr (Sci_ptr, arg_num, ap, al); 334 if arg = "-timeout" | arg = "-tm" then do; 335 if arg_num = nargs 336 then call ssu_$abort_line (Sci_ptr, error_table_$noarg, "Timeout value."); 337 else do; 338 arg_num = arg_num + 1; 339 call ssu_$arg_ptr (Sci_ptr, arg_num, ap, al); 340 do_info.time_out = cv_dec_check_ (arg, code); 341 if code ^= 0 | do_info.time_out < 1 342 then call ssu_$abort_line (Sci_ptr, error_table_$bad_conversion, "^a", arg); 343 end; 344 end; 345 else if arg = "-no_timeout" | arg = "-ntm" then do_info.time_out = 0; 346 else if arg = "-nl" then new_line = "1"b; 347 else if arg = "-nnl" then new_line = "0"b; 348 else if arg = "-no_inhibit_error" | arg = "-nihe" then abort_on_timeout = "1"b; 349 else if arg = "-inhibit_error" | arg = "-ihe" then abort_on_timeout = "0"b; 350 else if substr (arg, 1, 1) = "-" then call ssu_$abort_line (Sci_ptr, error_table_$bad_arg, "^a", arg); 351 else do; 352 if length (arg) > do_info.match_max_length - 1 353 /* room for NL */ 354 then call ssu_$abort_line (Sci_ptr, 0, "Wait string too long; max is ^d.", 355 do_info.match_max_length - 1);/* arg too long to print with error */ 356 else do; 357 substr (str_to_match_area, 1, length (arg)) = arg; 358 do_info.match_length = length (arg); 359 end; 360 end; 361 end; 362 if ^abort_on_timeout & do_info.time_out = 0 363 then call ssu_$abort_line (Sci_ptr, error_table_$inconsistent, 364 "The use of -inhibit_error requires that -timeout be used as well."); 365 if new_line then do; 366 do_info.match_length = do_info.match_length + 1; 367 substr (str_to_match_area, do_info.match_length, 1) = NL; 368 end; 369 370 if af_sw then do; 371 do_info.active_result_ptr = val_ptr; 372 do_info.active_result_max_len = val_len; 373 val = ""; 374 end; 375 376 on cleanup call reset_do_state; 377 call set_do_state; /* get back do state so that interaction loop works 378* (it was reset on its way into here */ 379 380 call dial_out_util_$interaction_loop (dop, "1"b, af_sw); 381 /* do normal net stuff 'til condition met */ 382 if do_info.abort_code ^= 0 383 then if ^af_sw | abort_on_timeout then call ssu_$abort_line (Sci_ptr, do_info.abort_code); 384 385 call reset_do_state; 386 return; 387 388 /* * * * * * * * * * CLEAN_IOCB * * * * * * * * * * * */ 389 390 clean_iocb: 391 procedure (Iocbp); 392 dcl code fixed bin (35); 393 dcl Iocbp ptr parameter; 394 395 if Iocbp ^= null () then do; 396 call iox_$close (Iocbp, code); 397 call iox_$detach_iocb (Iocbp, code); 398 call iox_$destroy_iocb (Iocbp, code); 399 Iocbp = null (); 400 end; 401 return; 402 end clean_iocb; 403 404 reset_do_state: 405 proc; 406 407 call dial_out_util_$reset_do_modes (dop); 408 call cu_$set_cl_intermediary (do_info.saved_cl_intermediary); 409 return; 410 end; 411 412 set_do_state: 413 proc; 414 415 call dial_out_util_$set_do_modes (dop); 416 call cu_$set_cl_intermediary (do_info.my_cl_intermediary); 417 return; 418 end; 419 1 1 /* Begin include file dial_out_invocation.incl.pl1 */ 1 2 1 3 /* Written by C. Hornig, April 1982 */ 1 4 1 5 dcl dop ptr; 1 6 dcl 1 do_info aligned based (dop), 1 7 2 ci like dial_out_info, /* user supplied */ 1 8 2 version varying char (16), 1 9 2 sci_ptr ptr, /* ssu_ info found here */ 1 10 2 abort_label label, /* place to die to */ 1 11 2 fo_iocbp ptr, /* non-null => file output in progress */ 1 12 2 temp_seg_p ptr, 1 13 2 match_string_p ptr, /* pts to string to match on wait */ 1 14 2 match_length fixed bin (21), /* length of string we are waiting to find */ 1 15 2 match_max_length fixed bin (21), /* len area for match string */ 1 16 2 net_rs, /* read_status result about net */ 1 17 3 ev_chn fixed bin (71), 1 18 3 data_available bit (1), 1 19 2 abort_code fixed bin (35), /* general horrible error */ 1 20 2 flags, 1 21 3 raw_mode bit (1) unaligned, 1 22 3 echo_mode bit (1) unaligned, 1 23 3 lfecho_mode bit (1) unaligned, 1 24 3 pad1 bit (33) unaligned, 1 25 2 old_modes char (512) unaligned, /* modes before we screwed them up */ 1 26 2 saved_cl_intermediary entry variable, 1 27 2 my_cl_intermediary entry variable, 1 28 2 cmd_ptr ptr, /* to area to hold outgoing chars or request line being built */ 1 29 2 cmd_buff_len fixed bin (21), 1 30 2 time_out fixed bin, /* max time to wait for net line */ 1 31 2 net_input_buff_ptr ptr, /* area we accumulate net input so we can do match scan */ 1 32 2 net_input_buff_len fixed bin (21), 1 33 2 net_input_last_char_filled fixed bin (21), /* last pos in net_input_buff of chars read */ 1 34 2 net_input_last_char_output fixed bin (21), /* last pos in buffer output or used by wait scan */ 1 35 2 active_result_max_len fixed bin (21), 1 36 2 active_result_ptr ptr; 1 37 2 1 /* Begin include file dial_out_info.incl.pl1 */ 2 2 2 3 /* Written by C. Hornig, April 1982 */ 2 4 2 5 dcl DIAL_OUT_INFO_VERSION_2 2 6 char (8) static options (constant) init ("doinfo_2"); 2 7 dcl dial_out_info_ptr ptr; 2 8 dcl 1 dial_out_info aligned based (dial_out_info_ptr), 2 9 2 version char (8), /* version of this structure */ 2 10 2 command_name char (32) unaligned, /* name of command invoking subsystem */ 2 11 2 net_iocb pointer, /* switch to which data is sent */ 2 12 2 request_table_ptr 2 13 pointer, /* points to ssu_ request table */ 2 14 2 profile_ptr pointer, /* points to abbrev profile */ 2 15 2 request_ptr pointer, /* points to initial request */ 2 16 2 request_length fixed bin (21), /* length of initial request */ 2 17 2 esc_char character (1), /* command prefix character */ 2 18 2 flags, 2 19 3 raw_sw bit (1) unaligned, /* do not do Multics terminal management */ 2 20 3 echo_sw bit (1) unaligned, /* echo characters typed by user */ 2 21 3 abbrev_sw bit (1) unaligned, /* do abbrev processing in request lines */ 2 22 3 lfecho_sw bit (1) unaligned, /* treat CR's as LF's */ 2 23 3 send_lf_sw bit (1) unaligned, /* send LF on CR */ 2 24 3 quit_sw bit (1) unaligned, /* send interrupt on quit */ 2 25 3 brief_sw bit (1) unaligned, /* don't print unneeded messages */ 2 26 3 no_startup_sw bit (1) unaligned, /* don't run start_up. */ 2 27 3 no_breakall_sw 2 28 bit (1) unaligned, /* transmit on every vs. transmit on NL */ 2 29 3 pad bit (27) unaligned, /* END OF VERSION 0 STRUCTURE */ 2 30 2 cmd_version varying char (8), /* version of command calling dial_out */ 2 31 /* END OF VERSION 1 STRUCTURE */ 2 32 2 modes_ptr ptr, /* ptr to initial modes */ 2 33 2 modes_len fixed bin (21); /* length of same */ 2 34 /* END OF VERSION 2 STRUCTURE */ 2 35 2 36 /* End include file dial_out_info.incl.pl1 */ 1 38 1 39 1 40 /* End include file dial_out_invocation.incl.pl1 */ 420 3 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 3 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 3 3* version number to IOX2. */ 3 4 /* format: style2 */ 3 5 3 6 dcl 1 iocb aligned based, /* I/O control block. */ 3 7 2 version character (4) aligned, /* IOX2 */ 3 8 2 name char (32), /* I/O name of this block. */ 3 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 3 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 3 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 3 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 3 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 3 14 2 reserved bit (72), /* Reserved for future use. */ 3 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 3 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 3 17 /* open(p,mode,not_used,s) */ 3 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 3 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 20 /* get_line(p,bufptr,buflen,actlen,s) */ 3 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 3 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 3 24 /* put_chars(p,bufptr,buflen,s) */ 3 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 3 26 /* modes(p,newmode,oldmode,s) */ 3 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 3 28 /* position(p,u1,u2,s) */ 3 29 2 control entry (ptr, char (*), ptr, fixed (35)), 3 30 /* control(p,order,infptr,s) */ 3 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 32 /* read_record(p,bufptr,buflen,actlen,s) */ 3 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 3 34 /* write_record(p,bufptr,buflen,s) */ 3 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 3 36 /* rewrite_record(p,bufptr,buflen,s) */ 3 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 3 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 39 /* seek_key(p,key,len,s) */ 3 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 41 /* read_key(p,key,len,s) */ 3 42 2 read_length entry (ptr, fixed (21), fixed (35)), 3 43 /* read_length(p,len,s) */ 3 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 3 45 /* open_file(p,mode,desc,not_used,s) */ 3 46 2 close_file entry (ptr, char (*), fixed bin (35)), 3 47 /* close_file(p,desc,s) */ 3 48 2 detach entry (ptr, char (*), fixed bin (35)); 3 49 /* detach(p,desc,s) */ 3 50 3 51 declare iox_$iocb_version_sentinel 3 52 character (4) aligned external static; 3 53 3 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 421 4 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 4 2 4 3 /* Written 05/04/78 by C. D. Tavares */ 4 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 4 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 4 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 4 7 4 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 4 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 4 10 iox_$close entry (pointer, fixed bin (35)), 4 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 4 12 iox_$delete_record entry (pointer, fixed bin (35)), 4 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 4 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 4 15 iox_$err_not_attached entry options (variable), 4 16 iox_$err_not_closed entry options (variable), 4 17 iox_$err_no_operation entry options (variable), 4 18 iox_$err_not_open entry options (variable), 4 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 4 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 4 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 4 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 4 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 4 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 4 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 4 28 iox_$propagate entry (pointer), 4 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 4 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 4 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 4 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 4 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 4 40 4 41 dcl (iox_$user_output, 4 42 iox_$user_input, 4 43 iox_$user_io, 4 44 iox_$error_output) external static pointer; 4 45 4 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 422 5 1 /* Begin include file ..... iox_modes.incl.pl1 */ 5 2 5 3 /* Written by C. D. Tavares, 03/17/75 */ 5 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 5 5 5 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 5 7 ("stream_input", "stream_output", "stream_input_output", 5 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 5 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 5 10 "direct_input", "direct_output", "direct_update"); 5 11 5 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 5 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 5 14 5 15 dcl (Stream_input initial (1), 5 16 Stream_output initial (2), 5 17 Stream_input_output initial (3), 5 18 Sequential_input initial (4), 5 19 Sequential_output initial (5), 5 20 Sequential_input_output initial (6), 5 21 Sequential_update initial (7), 5 22 Keyed_sequential_input initial (8), 5 23 Keyed_sequential_output initial (9), 5 24 Keyed_sequential_update initial (10), 5 25 Direct_input initial (11), 5 26 Direct_output initial (12), 5 27 Direct_update initial (13)) fixed bin int static options (constant); 5 28 5 29 /* End include file ..... iox_modes.incl.pl1 */ 423 424 425 end do_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1150.3 do_requests_.pl1 >udd>sm>ds>w>ml>do_requests_.pl1 420 1 07/18/83 1102.2 dial_out_invocation.incl.pl1 >ldd>incl>dial_out_invocation.incl.pl1 1-38 2 07/18/83 1102.2 dial_out_info.incl.pl1 >ldd>incl>dial_out_info.incl.pl1 421 3 05/20/83 1946.4 iocb.incl.pl1 >ldd>incl>iocb.incl.pl1 422 4 05/23/83 1016.6 iox_dcls.incl.pl1 >ldd>incl>iox_dcls.incl.pl1 423 5 02/02/78 1329.7 iox_modes.incl.pl1 >ldd>incl>iox_modes.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. Do_ptr parameter pointer dcl 33 ref 99 102 108 111 123 126 155 158 182 185 206 209 272 275 287 290 308 311 321 324 Iocbp parameter pointer dcl 393 set ref 390 395 396* 397* 398* 399* NL constant char(1) initial packed unaligned dcl 35 ref 367 SP 000000 constant char(1) initial packed unaligned dcl 37 set ref 196 196 Sci_ptr parameter pointer dcl 33 set ref 99 108 118* 123 128* 144* 146* 149* 155 160* 171* 173* 177* 182 187* 189* 191* 198* 206 212* 213* 216* 219* 221* 237* 239* 254* 258* 261* 272 277* 278* 287 292* 293* 294* 295* 301* 303* 308 313* 314* 315* 321 326* 333* 335* 339* 341* 350* 352* 362* 382* Stream_input 000045 constant fixed bin(17,0) initial dcl 5-15 set ref 238* Stream_output 000044 constant fixed bin(17,0) initial dcl 5-15 set ref 302* abort_code 61 based fixed bin(35,0) level 2 dcl 1-6 set ref 103* 382 382* abort_label 42 based label variable level 2 dcl 1-6 ref 104 abort_on_timeout 000100 automatic bit(1) dcl 68 set ref 329* 348* 349* 362 382 active_result_max_len 305 based fixed bin(21,0) level 2 dcl 1-6 set ref 372* active_result_ptr 306 based pointer level 2 dcl 1-6 set ref 371* addr builtin function dcl 95 ref 196 196 245 245 251 251 257 257 af_sw 000101 automatic bit(1) dcl 69 set ref 128* 130 137 160* 162 166 277* 280 326* 370 380* 382 al 000316 automatic fixed bin(21,0) dcl 83 set ref 146* 148 148 173* 175 175 177 177 189* 190* 198* 199* 216* 217 217 218 218 219 219 219 221 221 224 295* 299 301 301 303 303 333* 334 334 339* 340 340 341 341 345 345 346 347 348 348 349 349 350 350 350 352 357 357 358 ap 000320 automatic pointer dcl 84 set ref 146* 148 173* 175 175 177 189* 190* 198* 199* 216* 217 217 218 218 219 219 221 223 295* 299 301 303 333* 334 334 339* 340 341 345 345 346 347 348 348 349 349 350 350 352 357 357 358 arg based char packed unaligned dcl 82 set ref 148* 175 175 177* 217 217 218 218 219 219* 221* 299 301* 303* 334 334 340* 341* 345 345 346 347 348 348 349 349 350 350* 352 357 357 358 arg_num 000102 automatic fixed bin(17,0) dcl 70 set ref 332* 333* 335 338* 338 339* buff 000103 automatic char(512) packed unaligned dcl 71 set ref 251 251 251 251 257 257 ci based structure level 2 dcl 1-6 cleanup 000332 stack reference condition dcl 93 ref 229 297 376 code 000100 automatic fixed bin(35,0) dcl 392 in procedure "clean_iocb" set ref 396* 397* 398* code 000303 automatic fixed bin(35,0) dcl 72 in procedure "do_requests_" set ref 112* 114 118 118* 148* 149 149* 190* 191 191* 196* 197 199* 200 235* 237 237* 238* 239 239* 245* 247 251* 252 252 253 254 254* 257* 258 258* 260* 261 261* 299* 301 301* 302* 303 303* 340* 341 codeptr builtin function dcl 95 ref 235 235 299 299 cu_$set_cl_intermediary 000032 constant entry external dcl 49 ref 408 416 cv_dec_check_ 000034 constant entry external dcl 50 ref 340 data_available 60 based bit(1) level 3 dcl 1-6 set ref 247* 248 dial_out_info based structure level 1 dcl 2-8 dial_out_modes_$set 000036 constant entry external dcl 51 ref 148 dial_out_util_$interaction_loop 000040 constant entry external dcl 52 ref 380 dial_out_util_$process_line_status 000042 constant entry external dcl 53 ref 115 dial_out_util_$process_net_input 000044 constant entry external dcl 54 ref 248 dial_out_util_$reset_do_modes 000046 constant entry external dcl 55 ref 407 dial_out_util_$send_chars 000050 constant entry external dcl 56 ref 190 196 199 257 dial_out_util_$send_nl 000052 constant entry external dcl 57 ref 260 dial_out_util_$set_do_modes 000054 constant entry external dcl 58 ref 415 do_info based structure level 1 dcl 1-6 dop 000340 automatic pointer dcl 1-5 set ref 102* 103 104 111* 112 115* 126* 131 131 131 131 131 131 137 137 137 137 137 137 148* 158* 163 167 175 185* 190* 196* 199* 209* 245 245 245 247 248 248* 257* 260* 275* 280 282 290* 294 297 299 302 311* 315 316 324* 328 331 340 341 345 352 352 357 357 358 362 366 366 367 367 367 371 372 380* 382 382 407* 408 415* 416 echo_sw 24(01) based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 error_table_$bad_arg 000010 external static fixed bin(35,0) dcl 39 set ref 177* 219* 350* error_table_$bad_conversion 000012 external static fixed bin(35,0) dcl 40 set ref 341* error_table_$end_of_info 000014 external static fixed bin(35,0) dcl 41 ref 253 error_table_$inconsistent 000016 external static fixed bin(35,0) dcl 42 set ref 362* error_table_$line_status_pending 000020 external static fixed bin(35,0) dcl 43 ref 114 error_table_$long_record 000022 external static fixed bin(35,0) dcl 44 ref 252 error_table_$noarg 000024 external static fixed bin(35,0) dcl 45 set ref 335* error_table_$short_record 000026 external static fixed bin(35,0) dcl 46 ref 252 error_table_$wrong_no_of_args 000030 external static fixed bin(35,0) dcl 47 set ref 144* 171* esc_char 23 based char(1) level 3 dcl 1-6 set ref 163 167* 175* flags 24 based structure level 3 dcl 1-6 fo_iocbp 46 based pointer level 2 dcl 1-6 set ref 294 297* 299* 302* 315 316* i 000304 automatic fixed bin(17,0) dcl 73 set ref 195* 198* 215* 216* index builtin function dcl 95 ref 219 ioa_ 000056 constant entry external dcl 59 ref 137 167 282 ioa_$rsnnl 000060 constant entry external dcl 60 ref 131 iocb based structure level 1 dcl 3-6 iocbp 000306 automatic pointer dcl 74 set ref 228* 232* 235* 238* 251* 267* iox_$attach_name 000076 constant entry external dcl 4-8 ref 235 299 iox_$close 000100 constant entry external dcl 4-8 ref 396 iox_$control 000102 constant entry external dcl 4-8 ref 112 245 iox_$destroy_iocb 000104 constant entry external dcl 4-8 ref 398 iox_$detach_iocb 000106 constant entry external dcl 4-8 ref 397 iox_$get_line 000110 constant entry external dcl 4-8 ref 251 iox_$open 000112 constant entry external dcl 4-8 ref 238 302 length builtin function dcl 95 ref 175 251 251 352 357 358 lfecho_sw 24(03) based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 long_rec 000313 automatic bit(1) dcl 78 set ref 250* 252* 259 match_length 54 based fixed bin(21,0) level 2 dcl 1-6 set ref 331* 358* 366* 366 367 match_max_length 55 based fixed bin(21,0) level 2 dcl 1-6 ref 352 352 357 367 match_string_p 52 based pointer level 2 dcl 1-6 ref 357 367 my_cl_intermediary 270 based entry variable level 2 dcl 1-6 set ref 416* name 1 based char(32) level 2 dcl 3-6 set ref 280 282* nargs 000310 automatic fixed bin(17,0) dcl 75 set ref 128* 136 144 160* 166 171 187* 188 195 212* 213 213 215 277* 278 292* 293 313* 314 326* 332 335 net_iocb 12 based pointer level 3 dcl 1-6 set ref 112* 245* 280 282 net_rs 56 based structure level 2 dcl 1-6 set ref 245 245 new_line 000311 automatic bit(1) dcl 76 set ref 330* 346* 347* 365 nin 000312 automatic fixed bin(21,0) dcl 77 set ref 251* 253 255* 255 257* no_breakall_sw 24(08) based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 null builtin function dcl 95 ref 112 112 228 294 315 395 399 path based char packed unaligned dcl 85 set ref 235 237* 239* 254* 258* 261* path_found 000314 automatic bit(1) dcl 79 set ref 214* 221 222* path_len 000322 automatic fixed bin(21,0) dcl 86 set ref 224* 235 237 237 239 239 254 254 258 258 261 261 path_ptr 000324 automatic pointer dcl 87 set ref 223* 235 237 239 254 258 261 quit_sw 24(05) based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 raw_sw 24 based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 requote_string_ 000062 constant entry external dcl 61 ref 163 saved_cl_intermediary 264 based entry variable level 2 dcl 1-6 set ref 408* send_lf_sw 24(04) based bit(1) level 4 packed packed unaligned dcl 1-6 ref 131 137 silent 000315 automatic bit(1) dcl 80 set ref 210* 217* 218* 248* ssu_$abort_line 000064 constant entry external dcl 62 ref 118 144 149 171 177 191 213 219 221 237 239 254 258 261 278 293 294 301 303 314 315 335 341 350 352 362 382 ssu_$arg_count 000066 constant entry external dcl 63 ref 187 212 292 313 ssu_$arg_ptr 000070 constant entry external dcl 64 ref 146 173 189 198 216 295 333 339 ssu_$return_arg 000072 constant entry external dcl 65 ref 128 160 277 326 str_to_match_area based char packed unaligned dcl 88 set ref 357* 367* substr builtin function dcl 95 set ref 350 357* 367* time_out 277 based fixed bin(17,0) level 2 dcl 1-6 set ref 328* 340* 341 345* 362 unique_chars_ 000074 constant entry external dcl 66 ref 235 299 val based varying char dcl 89 set ref 131* 163* 280* 373* val_len 000326 automatic fixed bin(21,0) dcl 90 set ref 128* 131 160* 163 277* 280 326* 372 373 val_ptr 000330 automatic pointer dcl 91 set ref 128* 131 160* 163 277* 280 326* 371 373 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DIAL_OUT_INFO_VERSION_2 internal static char(8) initial packed unaligned dcl 2-5 Direct_input internal static fixed bin(17,0) initial dcl 5-15 Direct_output internal static fixed bin(17,0) initial dcl 5-15 Direct_update internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 5-15 Sequential_input internal static fixed bin(17,0) initial dcl 5-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_update internal static fixed bin(17,0) initial dcl 5-15 Stream_input_output internal static fixed bin(17,0) initial dcl 5-15 dial_out_info_ptr automatic pointer dcl 2-7 iox_$attach_loud 000000 constant entry external dcl 4-8 iox_$attach_ptr 000000 constant entry external dcl 4-8 iox_$close_file 000000 constant entry external dcl 4-8 iox_$delete_record 000000 constant entry external dcl 4-8 iox_$detach 000000 constant entry external dcl 4-8 iox_$err_no_operation 000000 constant entry external dcl 4-8 iox_$err_not_attached 000000 constant entry external dcl 4-8 iox_$err_not_closed 000000 constant entry external dcl 4-8 iox_$err_not_open 000000 constant entry external dcl 4-8 iox_$error_output external static pointer dcl 4-41 iox_$find_iocb 000000 constant entry external dcl 4-8 iox_$find_iocb_n 000000 constant entry external dcl 4-8 iox_$get_chars 000000 constant entry external dcl 4-8 iox_$iocb_version_sentinel external static char(4) dcl 3-51 iox_$look_iocb 000000 constant entry external dcl 4-8 iox_$modes 000000 constant entry external dcl 4-8 iox_$move_attach 000000 constant entry external dcl 4-8 iox_$open_file 000000 constant entry external dcl 4-8 iox_$position 000000 constant entry external dcl 4-8 iox_$propagate 000000 constant entry external dcl 4-8 iox_$put_chars 000000 constant entry external dcl 4-8 iox_$read_key 000000 constant entry external dcl 4-8 iox_$read_length 000000 constant entry external dcl 4-8 iox_$read_record 000000 constant entry external dcl 4-8 iox_$rewrite_record 000000 constant entry external dcl 4-8 iox_$seek_key 000000 constant entry external dcl 4-8 iox_$user_input external static pointer dcl 4-41 iox_$user_io external static pointer dcl 4-41 iox_$user_output external static pointer dcl 4-41 iox_$write_record 000000 constant entry external dcl 4-8 iox_modes internal static char(24) initial array dcl 5-6 short_iox_modes internal static char(4) initial array dcl 5-12 NAMES DECLARED BY EXPLICIT CONTEXT. bad_write 001357 constant label dcl 191 ref 197 200 clean_iocb 004215 constant entry internal dcl 390 ref 232 267 297 316 do_requests_ 000331 constant entry external dcl 10 done_send_file 002530 constant label dcl 265 ref 253 escape_request 001042 constant entry external dcl 155 file_output_request 002673 constant entry external dcl 287 ref 299 299 interrupt_request 000361 constant entry external dcl 108 modes_request 000463 constant entry external dcl 123 quit_request 000343 constant entry external dcl 99 reset_do_state 004270 constant entry internal dcl 404 ref 231 265 376 385 revert_output_request 003301 constant entry external dcl 308 send_file_request 001500 constant entry external dcl 206 ref 235 235 send_request 001272 constant entry external dcl 182 set_do_state 004316 constant entry internal dcl 412 ref 241 377 switch_name_request 002545 constant entry external dcl 272 try_interrupt_request_again 000372 constant label dcl 112 ref 116 wait_request 003420 constant entry external dcl 321 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5110 5224 4340 5120 Length 5626 4340 114 365 547 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME do_requests_ 334 external procedure is an external procedure. on unit on line 229 70 on unit on unit on line 297 70 on unit on unit on line 376 64 on unit clean_iocb 72 internal procedure is called by several nonquick procedures. reset_do_state 68 internal procedure is called by several nonquick procedures. set_do_state internal procedure shares stack frame of external procedure do_requests_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME clean_iocb 000100 code clean_iocb do_requests_ 000100 abort_on_timeout do_requests_ 000101 af_sw do_requests_ 000102 arg_num do_requests_ 000103 buff do_requests_ 000303 code do_requests_ 000304 i do_requests_ 000306 iocbp do_requests_ 000310 nargs do_requests_ 000311 new_line do_requests_ 000312 nin do_requests_ 000313 long_rec do_requests_ 000314 path_found do_requests_ 000315 silent do_requests_ 000316 al do_requests_ 000320 ap do_requests_ 000322 path_len do_requests_ 000324 path_ptr do_requests_ 000326 val_len do_requests_ 000330 val_ptr do_requests_ 000340 dop do_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_2 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$set_cl_intermediary cv_dec_check_ dial_out_modes_$set dial_out_util_$interaction_loop dial_out_util_$process_line_status dial_out_util_$process_net_input dial_out_util_$reset_do_modes dial_out_util_$send_chars dial_out_util_$send_nl dial_out_util_$set_do_modes ioa_ ioa_$rsnnl iox_$attach_name iox_$close iox_$control iox_$destroy_iocb iox_$detach_iocb iox_$get_line iox_$open requote_string_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$return_arg unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bad_conversion error_table_$end_of_info error_table_$inconsistent error_table_$line_status_pending error_table_$long_record error_table_$noarg error_table_$short_record error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000330 99 000336 102 000350 103 000354 104 000355 108 000357 111 000366 112 000372 114 000426 115 000432 116 000440 118 000441 119 000460 123 000461 126 000470 128 000474 130 000513 131 000516 136 000630 137 000633 141 000733 144 000734 146 000753 148 000773 149 001017 151 001037 155 001040 158 001047 160 001053 162 001072 163 001075 164 001133 166 001134 167 001142 168 001162 171 001163 173 001203 175 001223 177 001235 178 001267 182 001270 185 001277 187 001303 188 001314 189 001320 190 001340 191 001355 195 001403 196 001413 197 001434 198 001436 199 001454 200 001471 201 001473 202 001475 206 001476 209 001505 210 001511 212 001513 213 001524 214 001557 215 001560 216 001567 217 001605 218 001621 219 001634 221 001702 222 001741 223 001743 224 001745 226 001747 228 001751 229 001753 231 001767 232 001774 233 002004 235 002005 237 002100 238 002142 239 002161 241 002217 245 002220 247 002254 248 002261 250 002275 251 002276 252 002321 253 002332 254 002337 255 002376 257 002400 258 002417 259 002454 260 002456 261 002467 263 002527 265 002530 267 002534 268 002542 272 002543 275 002552 277 002556 278 002575 280 002630 282 002647 283 002670 287 002671 290 002700 292 002704 293 002715 294 002751 295 003004 297 003024 299 003052 301 003156 302 003215 303 003235 304 003276 308 003277 311 003306 313 003312 314 003323 315 003353 316 003406 317 003415 321 003416 324 003425 326 003431 328 003450 329 003452 330 003454 331 003455 332 003456 333 003465 334 003503 335 003515 338 003547 339 003550 340 003566 341 003614 344 003654 345 003655 346 003670 347 003677 348 003705 349 003720 350 003732 352 003772 357 004035 358 004041 361 004043 362 004045 365 004077 366 004101 367 004103 370 004110 371 004113 372 004116 373 004120 376 004121 377 004143 380 004144 382 004161 385 004207 386 004213 390 004214 395 004222 396 004227 397 004237 398 004251 399 004263 401 004266 404 004267 407 004275 408 004304 409 004315 412 004316 415 004317 416 004326 417 004336 ----------------------------------------------------------- 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