COMPILATION LISTING OF SEGMENT dial_out Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1150.18_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 dial_out: 11 procedure options (variable); 12 13 /* dial_out: make a dial_out connection for a user. */ 14 /* Written by C. Hornig, March 1980. */ 15 /* Modified for installation by C. Hornig, April 1982 */ 16 /* Modified January 1983 by C. Hornig for new features */ 17 /* Modified April 1983 for connect entrypoint. */ 18 19 20 /****^ HISTORY COMMENTS: 21* 1) change(91-08-16,Schroth), approve(91-09-09,MCR8247), 22* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 23* Added 'force' mode to modes string for -8bit connections. 24* 2) change(91-08-19,JRGray), approve(91-09-09,MCR8247), 25* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 26* Modified to note that 'dial_out_' prevents cleanup of profile_ptr 27* after ssu_ takes responsibility for it. (Communications 457) 28* 3) change(91-08-19,JRGray), approve(91-09-09,MCR8247), 29* audit(92-04-24,WAAnderson), install(92-04-24,MR12.5-1012): 30* Modified to add 'force' to the mode string for '-8bit' communication. 31* This allows communication on those connections that don't support 32* 'no_outp' mode. 33* END HISTORY COMMENTS */ 34 35 36 37 dcl error_table_$bad_arg fixed bin (35) ext static; 38 dcl error_table_$badopt fixed bin (35) ext static; 39 dcl error_table_$io_no_permission fixed bin (35) ext static; 40 dcl error_table_$wrong_no_of_args fixed bin (35) ext static; 41 42 dcl com_err_ options (variable); 43 dcl com_err_$suppress_name entry () options (variable); 44 dcl cu_$arg_count_rel entry (fixed bin, ptr, fixed bin (35)); 45 dcl cu_$arg_list_ptr entry returns (ptr); 46 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 47 dcl dial_out_ entry (ptr, fixed bin (35)); 48 dcl expand_pathname_$add_suffix entry (char (*), char (*), char (*), char (*), fixed bin (35)); 49 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 50 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 51 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 52 dcl ioa_ entry options (variable); 53 dcl ioa_$rsnnl entry options (variable); 54 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 55 dcl requote_string_ entry (char (*)) returns (char (*)); 56 dcl unique_chars_ entry (bit (*)) returns (char (15)); 57 58 dcl alp ptr; 59 dcl dial_not_connect bit (1) aligned; 60 dcl 1 doi aligned like dial_out_info; 61 dcl code fixed bin (35); 62 dcl user_request_length fixed bin (21); 63 dcl user_request_ptr ptr; 64 65 dcl cleanup condition; 66 67 dcl (addr, codeptr, index, length, null, rtrim, string, substr) builtin; 68 69 dcl connect_request char (doi.request_length) based (doi.request_ptr); 70 dcl user_request char (user_request_length) based (user_request_ptr); 71 72 dial_not_connect = "1"b; 73 doi.command_name = "dial_out"; 74 goto dial; 75 76 connect: 77 entry options (variable); 78 dial_not_connect = "0"b; 79 doi.command_name = "connect"; 80 goto dial; 81 82 dial: 83 doi.version = DIAL_OUT_INFO_VERSION_2; 84 doi.cmd_version = "2"; 85 doi.net_iocb = null (); 86 doi.request_table_ptr = null (); 87 doi.request_ptr, doi.profile_ptr, doi.modes_ptr = null (); 88 user_request_ptr = null (); 89 doi.request_length, doi.modes_len = 0; 90 doi.esc_char = "!"; 91 string (doi.flags) = ""b; 92 if ^dial_not_connect then doi.no_startup_sw = "1"b; 93 doi.flags.raw_sw = "1"b; 94 95 on cleanup call cleaner; 96 97 if ^dial_not_connect then do; 98 call get_temp_segment_ (doi.command_name, doi.request_ptr, code); 99 if doi.request_ptr = null () then do; 100 call com_err_ (code, doi.command_name, "Getting temp segment."); 101 go to return_to_caller; 102 end; 103 end; 104 105 alp = cu_$arg_list_ptr (); 106 107 begin options (non_quick); /* save stack space */ 108 109 dcl arg char (al) based (ap); 110 111 dcl ap ptr; 112 dcl al fixed bin (21); 113 dcl nargs fixed bin; 114 dcl i fixed bin; 115 dcl (phone_given, bit8_sw) bit (1) aligned; 116 dcl channel char (32); 117 dcl phone varying char (48); 118 dcl resource varying char (64); 119 dcl atd char (168); 120 dcl dirname char (168); 121 dcl ename char (32); 122 dcl 1 stti aligned like set_term_type_info; 123 124 call cu_$arg_count_rel (nargs, alp, code); 125 if code ^= 0 then do; 126 call com_err_ (code, doi.command_name); 127 goto return_to_caller; 128 end; 129 130 channel, phone, stti.name, resource = ""; 131 phone_given, bit8_sw = "0"b; 132 133 do i = 1 to nargs; 134 call cu_$arg_ptr_rel (i, ap, al, code, alp); 135 136 if index (arg, "-") = 1 137 then if (arg = "-raw") | (arg = "-send_cr") | (arg = "-line") then ; 138 139 else if arg = "-echo" then doi.echo_sw = "1"b; 140 141 else if arg = "-8bit" then bit8_sw = "1"b; 142 143 else if (arg = "-escape") | (arg = "-esc") then do; 144 i = i + 1; 145 call cu_$arg_ptr_rel (i, ap, al, code, alp); 146 if code ^= 0 then do; 147 call com_err_ (code, doi.command_name, "Missing escape character."); 148 goto return_to_caller; 149 end; 150 if length (arg) ^= 1 then do; 151 call com_err_ (error_table_$bad_arg, doi.command_name, 152 "Escape sequence must be one character."); 153 goto return_to_caller; 154 end; 155 doi.esc_char = arg; 156 end; 157 158 else if (arg = "-terminal_type") | (arg = "-ttp") then do; 159 i = i + 1; 160 call cu_$arg_ptr_rel (i, ap, al, code, alp); 161 if code ^= 0 then do; 162 call com_err_ (code, doi.command_name, "Missing terminal type."); 163 goto return_to_caller; 164 end; 165 stti.name = arg; 166 end; 167 168 else if (arg = "-resource") | (arg = "-rsc") then do; 169 i = i + 1; 170 call cu_$arg_ptr_rel (i, ap, al, code, alp); 171 if code ^= 0 then do; 172 call com_err_ (code, doi.command_name, "Missing resource description."); 173 goto return_to_caller; 174 end; 175 resource = arg; 176 end; 177 178 else if (arg = "-request") | (arg = "-rq") then do; 179 i = i + 1; 180 call cu_$arg_ptr_rel (i, ap, al, code, alp); 181 if code ^= 0 then do; 182 call com_err_ (code, doi.command_name, "Missing request."); 183 goto return_to_caller; 184 end; 185 user_request_ptr = ap; 186 user_request_length = al; 187 end; 188 189 else if arg = "-modes" then do; 190 i = i + 1; 191 call cu_$arg_ptr_rel (i, ap, al, code, alp); 192 if code ^= 0 then do; 193 call com_err_ (code, doi.command_name, "Missing modes."); 194 goto return_to_caller; 195 end; 196 doi.modes_ptr = ap; 197 doi.modes_len = al; 198 end; 199 200 else if (arg = "-abbrev") | (arg = "-ab") then doi.flags.abbrev_sw = "1"b; 201 202 else if (arg = "-profile") then do; 203 i = i + 1; 204 call cu_$arg_ptr_rel (i, ap, al, code, alp); 205 if code ^= 0 then do; 206 call com_err_ (code, doi.command_name, "Missing profile pathname."); 207 goto return_to_caller; 208 end; 209 call expand_pathname_$add_suffix (arg, "profile", dirname, ename, code); 210 if code ^= 0 then do; 211 call com_err_ (code, doi.command_name, "^a", arg); 212 goto return_to_caller; 213 end; 214 doi.flags.abbrev_sw = "1"b; 215 call hcs_$initiate (dirname, ename, "", 0, 0, doi.profile_ptr, code); 216 if doi.profile_ptr = null () then do; 217 call com_err_ (code, doi.command_name, "^a>^a", dirname, ename); 218 goto return_to_caller; 219 end; 220 end; 221 222 else if (arg = "-brief") | (arg = "-bf") then doi.flags.brief_sw = "1"b; 223 224 else if (arg = "-no_start_up") | (arg = "-nsu") | (arg = "-ns") 225 then doi.flags.no_startup_sw = "1"b; 226 227 else do; 228 call com_err_ (error_table_$badopt, doi.command_name, "^a", arg); 229 goto return_to_caller; 230 end; 231 232 else if /* case */ channel = "" then channel = arg; 233 234 else if ^phone_given then do; 235 phone = arg; 236 phone_given = "1"b; 237 end; 238 239 else do; 240 call com_err_ (error_table_$wrong_no_of_args, doi.command_name, "^a", arg); 241 goto return_to_caller; 242 end; 243 end; 244 245 if ^doi.raw_sw then doi.echo_sw = "1"b; 246 247 if channel = "" then do; 248 call com_err_$suppress_name (0, doi.command_name, "Usage: ^a CHANNEL {DEST} {-control_args}", 249 doi.command_name); 250 goto return_to_caller; 251 end; 252 253 phone = requote_string_ ((phone)); 254 255 if ^dial_not_connect then do; 256 doi.request_length = 3; 257 connect_request = "ec "; 258 if phone_given then do; 259 doi.request_length = 3 + length (phone); 260 substr (connect_request, 4) = phone; 261 end; 262 else do; 263 doi.request_length = 3 + length (rtrim (channel)); 264 substr (connect_request, 4) = channel; 265 end; 266 if user_request_ptr ^= null () then do; /* add user command to this */ 267 doi.request_length = doi.request_length + 1; 268 substr (connect_request, doi.request_length, 1) = ";"; 269 doi.request_length = doi.request_length + user_request_length; 270 substr (connect_request, doi.request_length - user_request_length + 1) = user_request; 271 end; 272 end; 273 else do; 274 doi.request_ptr = user_request_ptr; 275 doi.request_length = user_request_length; 276 end; 277 278 call ioa_$rsnnl ("tty_ ^a^[ -destination ^a^;^s^]^[ -resource ^a^;^s^]", atd, (0), channel, phone_given, 279 phone, (resource ^= ""), requote_string_ ((resource))); 280 call iox_$attach_name ("dial_out." || unique_chars_ (""b), doi.net_iocb, atd, codeptr (dial_out), code); 281 if code ^= 0 then do; 282 call com_err_ (code, doi.command_name, "Attaching ^a.", atd); 283 goto return_to_caller; 284 end; 285 286 call iox_$open (doi.net_iocb, Stream_input_output, "0"b, code); 287 if code ^= 0 then do; 288 call com_err_ (code, doi.command_name, "Opening ^a.", atd); 289 goto return_to_caller; 290 end; 291 292 if stti.name ^= "" then do; 293 stti.version = stti_version_1; 294 string (stti.flags) = ""b; 295 stti.flags.set_modes, stti.flags.send_initial_string = "1"b; 296 call iox_$control (doi.net_iocb, "set_term_type", addr (stti), code); 297 end; 298 else do; 299 call iox_$modes (doi.net_iocb, "force,init,rawi,rawo,breakall,ctl_char,^ll,fulldpx", (""), code); 300 end; 301 if code ^= 0 then do; 302 call com_err_ (code, doi.command_name, "Setting terminal type."); 303 goto return_to_caller; 304 end; 305 306 if bit8_sw then do; 307 call iox_$modes (doi.net_iocb, "force,8bit,no_outp", (""), code); 308 end; 309 end; 310 311 call dial_out_ (addr (doi), code); 312 313 if code = error_table_$io_no_permission then do; 314 if ^doi.flags.brief_sw then call ioa_ ("dial_out: Connection closed."); 315 end; 316 else if code ^= 0 then call com_err_ (code, doi.command_name); 317 318 return_to_caller: 319 call cleaner; 320 return; 321 322 323 cleaner: 324 procedure; 325 326 if doi.net_iocb ^= null () then do; 327 call iox_$close (doi.net_iocb, code); 328 call iox_$detach_iocb (doi.net_iocb, code); 329 call iox_$destroy_iocb (doi.net_iocb, code); 330 doi.net_iocb = null (); 331 end; 332 /* COM 457: Note that dial_out_ sets profile_ptr to null() after ssu_ takes responsibility for it */ 333 if doi.profile_ptr ^= null () then do; 334 call hcs_$terminate_noname (doi.profile_ptr, code); 335 doi.profile_ptr = null (); 336 end; 337 if ^dial_not_connect then call release_temp_segment_ (doi.command_name, doi.request_ptr, code); 338 return; 339 end cleaner; 340 1 1 /* Begin include file dial_out_info.incl.pl1 */ 1 2 1 3 /* Written by C. Hornig, April 1982 */ 1 4 1 5 dcl DIAL_OUT_INFO_VERSION_2 1 6 char (8) static options (constant) init ("doinfo_2"); 1 7 dcl dial_out_info_ptr ptr; 1 8 dcl 1 dial_out_info aligned based (dial_out_info_ptr), 1 9 2 version char (8), /* version of this structure */ 1 10 2 command_name char (32) unaligned, /* name of command invoking subsystem */ 1 11 2 net_iocb pointer, /* switch to which data is sent */ 1 12 2 request_table_ptr 1 13 pointer, /* points to ssu_ request table */ 1 14 2 profile_ptr pointer, /* points to abbrev profile */ 1 15 2 request_ptr pointer, /* points to initial request */ 1 16 2 request_length fixed bin (21), /* length of initial request */ 1 17 2 esc_char character (1), /* command prefix character */ 1 18 2 flags, 1 19 3 raw_sw bit (1) unaligned, /* do not do Multics terminal management */ 1 20 3 echo_sw bit (1) unaligned, /* echo characters typed by user */ 1 21 3 abbrev_sw bit (1) unaligned, /* do abbrev processing in request lines */ 1 22 3 lfecho_sw bit (1) unaligned, /* treat CR's as LF's */ 1 23 3 send_lf_sw bit (1) unaligned, /* send LF on CR */ 1 24 3 quit_sw bit (1) unaligned, /* send interrupt on quit */ 1 25 3 brief_sw bit (1) unaligned, /* don't print unneeded messages */ 1 26 3 no_startup_sw bit (1) unaligned, /* don't run start_up. */ 1 27 3 no_breakall_sw 1 28 bit (1) unaligned, /* transmit on every vs. transmit on NL */ 1 29 3 pad bit (27) unaligned, /* END OF VERSION 0 STRUCTURE */ 1 30 2 cmd_version varying char (8), /* version of command calling dial_out */ 1 31 /* END OF VERSION 1 STRUCTURE */ 1 32 2 modes_ptr ptr, /* ptr to initial modes */ 1 33 2 modes_len fixed bin (21); /* length of same */ 1 34 /* END OF VERSION 2 STRUCTURE */ 1 35 1 36 /* End include file dial_out_info.incl.pl1 */ 341 2 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 2 2 2 3 /* Written 05/04/78 by C. D. Tavares */ 2 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 2 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 2 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 2 7 2 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 2 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 2 10 iox_$close entry (pointer, fixed bin (35)), 2 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 2 12 iox_$delete_record entry (pointer, fixed bin (35)), 2 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 2 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 2 15 iox_$err_not_attached entry options (variable), 2 16 iox_$err_not_closed entry options (variable), 2 17 iox_$err_no_operation entry options (variable), 2 18 iox_$err_not_open entry options (variable), 2 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 2 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 2 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 2 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 2 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 2 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 2 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 2 28 iox_$propagate entry (pointer), 2 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 2 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 2 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 2 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 2 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 2 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 2 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 2 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 2 40 2 41 dcl (iox_$user_output, 2 42 iox_$user_input, 2 43 iox_$user_io, 2 44 iox_$error_output) external static pointer; 2 45 2 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 342 3 1 /* Begin include file ..... iox_modes.incl.pl1 */ 3 2 3 3 /* Written by C. D. Tavares, 03/17/75 */ 3 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 3 5 3 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 3 7 ("stream_input", "stream_output", "stream_input_output", 3 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 3 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 3 10 "direct_input", "direct_output", "direct_update"); 3 11 3 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 3 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 3 14 3 15 dcl (Stream_input initial (1), 3 16 Stream_output initial (2), 3 17 Stream_input_output initial (3), 3 18 Sequential_input initial (4), 3 19 Sequential_output initial (5), 3 20 Sequential_input_output initial (6), 3 21 Sequential_update initial (7), 3 22 Keyed_sequential_input initial (8), 3 23 Keyed_sequential_output initial (9), 3 24 Keyed_sequential_update initial (10), 3 25 Direct_input initial (11), 3 26 Direct_output initial (12), 3 27 Direct_update initial (13)) fixed bin int static options (constant); 3 28 3 29 /* End include file ..... iox_modes.incl.pl1 */ 343 4 1 /* BEGIN INCLUDE FILE ... set_term_type_info.incl.pl1 */ 4 2 /* Created 7/18/77 by Robert Coren */ 4 3 /* Defines info structure for set_term_type order */ 4 4 4 5 dcl stti_version_1 fixed bin int static options (constant) init (1); 4 6 dcl sttip ptr; 4 7 4 8 dcl 1 set_term_type_info aligned based (sttip), 4 9 2 version fixed bin, 4 10 2 name char (32) unal, 4 11 2 flags unal, 4 12 3 send_initial_string bit (1), 4 13 3 set_modes bit (1), 4 14 3 ignore_line_type bit (1), 4 15 3 mbz bit (33); 4 16 4 17 /* END INCLUDE FILE ... set_term_type_info.incl.pl1 */ 344 345 346 end dial_out; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1150.1 dial_out.pl1 >udd>sm>ds>w>ml>dial_out.pl1 341 1 07/18/83 1102.2 dial_out_info.incl.pl1 >ldd>incl>dial_out_info.incl.pl1 342 2 05/23/83 1016.6 iox_dcls.incl.pl1 >ldd>incl>iox_dcls.incl.pl1 343 3 02/02/78 1329.7 iox_modes.incl.pl1 >ldd>incl>iox_modes.incl.pl1 344 4 09/01/77 1459.3 set_term_type_info.incl.pl1 >ldd>incl>set_term_type_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. DIAL_OUT_INFO_VERSION_2 000000 constant char(8) initial packed unaligned dcl 1-5 ref 82 Stream_input_output 000014 constant fixed bin(17,0) initial dcl 3-15 set ref 286* abbrev_sw 24(02) 000104 automatic bit(1) level 3 packed packed unaligned dcl 60 set ref 200* 214* addr builtin function dcl 67 ref 296 296 311 311 al 000102 automatic fixed bin(21,0) dcl 112 set ref 134* 136 136 136 136 139 141 143 143 145* 150 155 158 158 160* 165 168 168 170* 175 178 178 180* 186 189 191* 197 200 200 202 204* 209 209 211 211 222 222 224 224 224 228 228 232 235 240 240 alp 000100 automatic pointer dcl 58 set ref 105* 124* 134* 145* 160* 170* 180* 191* 204* ap 000100 automatic pointer dcl 111 set ref 134* 136 136 136 136 139 141 143 143 145* 150 155 158 158 160* 165 168 168 170* 175 178 178 180* 185 189 191* 196 200 200 202 204* 209 211 222 222 224 224 224 228 232 235 240 arg based char packed unaligned dcl 109 set ref 136 136 136 136 139 141 143 143 150 155 158 158 165 168 168 175 178 178 189 200 200 202 209* 211* 222 222 224 224 224 228* 232 235 240* atd 000155 automatic char(168) packed unaligned dcl 119 set ref 278* 280* 282* 288* bit8_sw 000106 automatic bit(1) dcl 115 set ref 131* 141* 306 brief_sw 24(06) 000104 automatic bit(1) level 3 packed packed unaligned dcl 60 set ref 222* 314 channel 000107 automatic char(32) packed unaligned dcl 116 set ref 130* 232 232* 247 263 264 278* cleanup 000144 stack reference condition dcl 65 ref 95 cmd_version 25 000104 automatic varying char(8) level 2 dcl 60 set ref 84* code 000137 automatic fixed bin(35,0) dcl 61 set ref 98* 100* 124* 125 126* 134* 145* 146 147* 160* 161 162* 170* 171 172* 180* 181 182* 191* 192 193* 204* 205 206* 209* 210 211* 215* 217* 280* 281 282* 286* 287 288* 296* 299* 301 302* 307* 311* 313 316 316* 327* 328* 329* 334* 337* codeptr builtin function dcl 67 ref 280 280 com_err_ 000020 constant entry external dcl 42 ref 100 126 147 151 162 172 182 193 206 211 217 228 240 282 288 302 316 com_err_$suppress_name 000022 constant entry external dcl 43 ref 248 command_name 2 000104 automatic char(32) level 2 packed packed unaligned dcl 60 set ref 73* 79* 98* 100* 126* 147* 151* 162* 172* 182* 193* 206* 211* 217* 228* 240* 248* 248* 282* 288* 302* 316* 337* connect_request based char packed unaligned dcl 69 set ref 257* 260* 264* 268* 270* cu_$arg_count_rel 000024 constant entry external dcl 44 ref 124 cu_$arg_list_ptr 000026 constant entry external dcl 45 ref 105 cu_$arg_ptr_rel 000030 constant entry external dcl 46 ref 134 145 160 170 180 191 204 dial_not_connect 000102 automatic bit(1) dcl 59 set ref 72* 78* 92 97 255 337 dial_out_ 000032 constant entry external dcl 47 ref 311 dial_out_info based structure level 1 dcl 1-8 dirname 000227 automatic char(168) packed unaligned dcl 120 set ref 209* 215* 217* doi 000104 automatic structure level 1 dcl 60 set ref 311 311 echo_sw 24(01) 000104 automatic bit(1) level 3 packed packed unaligned dcl 60 set ref 139* 245* ename 000301 automatic char(32) packed unaligned dcl 121 set ref 209* 215* 217* error_table_$bad_arg 000010 external static fixed bin(35,0) dcl 37 set ref 151* error_table_$badopt 000012 external static fixed bin(35,0) dcl 38 set ref 228* error_table_$io_no_permission 000014 external static fixed bin(35,0) dcl 39 ref 313 error_table_$wrong_no_of_args 000016 external static fixed bin(35,0) dcl 40 set ref 240* esc_char 23 000104 automatic char(1) level 2 dcl 60 set ref 90* 155* expand_pathname_$add_suffix 000034 constant entry external dcl 48 ref 209 flags 11 000311 automatic structure level 2 in structure "stti" packed packed unaligned dcl 122 in begin block on line 107 set ref 294* flags 24 000104 automatic structure level 2 in structure "doi" dcl 60 in procedure "dial_out" set ref 91* get_temp_segment_ 000036 constant entry external dcl 49 ref 98 hcs_$initiate 000040 constant entry external dcl 50 ref 215 hcs_$terminate_noname 000042 constant entry external dcl 51 ref 334 i 000104 automatic fixed bin(17,0) dcl 114 set ref 133* 134* 144* 144 145* 159* 159 160* 169* 169 170* 179* 179 180* 190* 190 191* 203* 203 204* index builtin function dcl 67 ref 136 ioa_ 000044 constant entry external dcl 52 ref 314 ioa_$rsnnl 000046 constant entry external dcl 53 ref 278 iox_$attach_name 000056 constant entry external dcl 2-8 ref 280 iox_$close 000060 constant entry external dcl 2-8 ref 327 iox_$control 000062 constant entry external dcl 2-8 ref 296 iox_$destroy_iocb 000064 constant entry external dcl 2-8 ref 329 iox_$detach_iocb 000066 constant entry external dcl 2-8 ref 328 iox_$modes 000070 constant entry external dcl 2-8 ref 299 307 iox_$open 000072 constant entry external dcl 2-8 ref 286 length builtin function dcl 67 ref 150 259 263 modes_len 32 000104 automatic fixed bin(21,0) level 2 dcl 60 set ref 89* 197* modes_ptr 30 000104 automatic pointer level 2 dcl 60 set ref 87* 196* name 1 000311 automatic char(32) level 2 packed packed unaligned dcl 122 set ref 130* 165* 292 nargs 000103 automatic fixed bin(17,0) dcl 113 set ref 124* 133 net_iocb 12 000104 automatic pointer level 2 dcl 60 set ref 85* 280* 286* 296* 299* 307* 326 327* 328* 329* 330* no_startup_sw 24(07) 000104 automatic bit(1) level 3 packed packed unaligned dcl 60 set ref 92* 224* null builtin function dcl 67 ref 85 86 87 88 99 216 266 326 330 333 335 phone 000117 automatic varying char(48) dcl 117 set ref 130* 235* 253* 253 259 260 278* phone_given 000105 automatic bit(1) dcl 115 set ref 131* 234 236* 258 278* profile_ptr 16 000104 automatic pointer level 2 dcl 60 set ref 87* 215* 216 333 334* 335* raw_sw 24 000104 automatic bit(1) level 3 packed packed unaligned dcl 60 set ref 93* 245 release_temp_segment_ 000050 constant entry external dcl 54 ref 337 request_length 22 000104 automatic fixed bin(21,0) level 2 dcl 60 set ref 89* 256* 257 259* 260 263* 264 267* 267 268 268 269* 269 270 270 275* request_ptr 20 000104 automatic pointer level 2 dcl 60 set ref 87* 98* 99 257 260 264 268 270 274* 337* request_table_ptr 14 000104 automatic pointer level 2 dcl 60 set ref 86* requote_string_ 000052 constant entry external dcl 55 ref 253 278 resource 000134 automatic varying char(64) dcl 118 set ref 130* 175* 278 278 rtrim builtin function dcl 67 ref 263 send_initial_string 11 000311 automatic bit(1) level 3 packed packed unaligned dcl 122 set ref 295* set_modes 11(01) 000311 automatic bit(1) level 3 packed packed unaligned dcl 122 set ref 295* set_term_type_info based structure level 1 dcl 4-8 string builtin function dcl 67 set ref 91* 294* stti 000311 automatic structure level 1 dcl 122 set ref 296 296 stti_version_1 constant fixed bin(17,0) initial dcl 4-5 ref 293 substr builtin function dcl 67 set ref 260* 264* 268* 270* unique_chars_ 000054 constant entry external dcl 56 ref 280 user_request based char packed unaligned dcl 70 ref 270 user_request_length 000140 automatic fixed bin(21,0) dcl 62 set ref 186* 269 270 270 275 user_request_ptr 000142 automatic pointer dcl 63 set ref 88* 185* 266 270 274 version 000104 automatic char(8) level 2 in structure "doi" dcl 60 in procedure "dial_out" set ref 82* version 000311 automatic fixed bin(17,0) level 2 in structure "stti" dcl 122 in begin block on line 107 set ref 293* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 3-15 Direct_output internal static fixed bin(17,0) initial dcl 3-15 Direct_update internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 3-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 3-15 Sequential_input internal static fixed bin(17,0) initial dcl 3-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 3-15 Sequential_output internal static fixed bin(17,0) initial dcl 3-15 Sequential_update internal static fixed bin(17,0) initial dcl 3-15 Stream_input internal static fixed bin(17,0) initial dcl 3-15 Stream_output internal static fixed bin(17,0) initial dcl 3-15 dial_out_info_ptr automatic pointer dcl 1-7 iox_$attach_loud 000000 constant entry external dcl 2-8 iox_$attach_ptr 000000 constant entry external dcl 2-8 iox_$close_file 000000 constant entry external dcl 2-8 iox_$delete_record 000000 constant entry external dcl 2-8 iox_$detach 000000 constant entry external dcl 2-8 iox_$err_no_operation 000000 constant entry external dcl 2-8 iox_$err_not_attached 000000 constant entry external dcl 2-8 iox_$err_not_closed 000000 constant entry external dcl 2-8 iox_$err_not_open 000000 constant entry external dcl 2-8 iox_$error_output external static pointer dcl 2-41 iox_$find_iocb 000000 constant entry external dcl 2-8 iox_$find_iocb_n 000000 constant entry external dcl 2-8 iox_$get_chars 000000 constant entry external dcl 2-8 iox_$get_line 000000 constant entry external dcl 2-8 iox_$look_iocb 000000 constant entry external dcl 2-8 iox_$move_attach 000000 constant entry external dcl 2-8 iox_$open_file 000000 constant entry external dcl 2-8 iox_$position 000000 constant entry external dcl 2-8 iox_$propagate 000000 constant entry external dcl 2-8 iox_$put_chars 000000 constant entry external dcl 2-8 iox_$read_key 000000 constant entry external dcl 2-8 iox_$read_length 000000 constant entry external dcl 2-8 iox_$read_record 000000 constant entry external dcl 2-8 iox_$rewrite_record 000000 constant entry external dcl 2-8 iox_$seek_key 000000 constant entry external dcl 2-8 iox_$user_input external static pointer dcl 2-41 iox_$user_io external static pointer dcl 2-41 iox_$user_output external static pointer dcl 2-41 iox_$write_record 000000 constant entry external dcl 2-8 iox_modes internal static char(24) initial array dcl 3-6 short_iox_modes internal static char(4) initial array dcl 3-12 sttip automatic pointer dcl 4-6 NAMES DECLARED BY EXPLICIT CONTEXT. cleaner 003011 constant entry internal dcl 323 ref 95 318 connect 000333 constant entry external dcl 76 dial 000345 constant label dcl 82 ref 74 80 dial_out 000317 constant entry external dcl 10 ref 280 280 return_to_caller 003003 constant label dcl 318 ref 101 127 148 153 163 173 183 194 207 212 218 229 241 250 283 289 303 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3456 3552 3126 3466 Length 4060 3126 74 272 327 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dial_out 138 external procedure is an external procedure. on unit on line 95 64 on unit begin block on line 107 350 begin block is declared options(non_quick). cleaner 84 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 107 000100 ap begin block on line 107 000102 al begin block on line 107 000103 nargs begin block on line 107 000104 i begin block on line 107 000105 phone_given begin block on line 107 000106 bit8_sw begin block on line 107 000107 channel begin block on line 107 000117 phone begin block on line 107 000134 resource begin block on line 107 000155 atd begin block on line 107 000227 dirname begin block on line 107 000301 ename begin block on line 107 000311 stti begin block on line 107 dial_out 000100 alp dial_out 000102 dial_not_connect dial_out 000104 doi dial_out 000137 code dial_out 000140 user_request_length dial_out 000142 user_request_ptr dial_out THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp enter_begin_block leave_begin_block call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name cu_$arg_count_rel cu_$arg_list_ptr cu_$arg_ptr_rel dial_out_ expand_pathname_$add_suffix get_temp_segment_ hcs_$initiate hcs_$terminate_noname ioa_ ioa_$rsnnl iox_$attach_name iox_$close iox_$control iox_$destroy_iocb iox_$detach_iocb iox_$modes iox_$open release_temp_segment_ requote_string_ unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt error_table_$io_no_permission error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000316 72 000324 73 000326 74 000331 76 000332 78 000340 79 000341 80 000344 82 000345 84 000347 85 000353 86 000355 87 000356 88 000362 89 000363 90 000365 91 000367 92 000370 93 000376 95 000400 97 000422 98 000424 99 000445 100 000451 101 000475 105 000476 107 000505 124 000510 125 000524 126 000527 127 000544 130 000547 131 000557 133 000561 134 000571 136 000611 139 000642 141 000652 143 000661 144 000671 145 000672 146 000712 147 000715 148 000741 150 000744 151 000747 153 000773 155 000776 156 001003 158 001004 159 001014 160 001015 161 001035 162 001040 163 001064 165 001067 166 001074 168 001075 169 001105 170 001106 171 001126 172 001131 173 001155 175 001160 176 001171 178 001172 179 001202 180 001203 181 001223 182 001226 183 001253 185 001256 186 001260 187 001262 189 001263 190 001267 191 001270 192 001310 193 001313 194 001340 196 001343 197 001345 198 001347 200 001350 202 001364 203 001370 204 001371 205 001411 206 001414 207 001440 209 001443 210 001501 211 001504 212 001536 214 001541 215 001543 216 001606 217 001613 218 001645 220 001650 222 001651 224 001665 228 001705 229 001740 230 001743 232 001744 234 001754 235 001757 236 001767 237 001771 240 001772 241 002025 243 002030 245 002032 247 002040 248 002044 250 002074 253 002077 255 002140 256 002144 257 002146 258 002152 259 002155 260 002160 261 002165 263 002166 264 002201 266 002205 267 002211 268 002212 269 002216 270 002220 272 002235 274 002236 275 002240 278 002242 280 002345 281 002424 282 002427 283 002460 286 002463 287 002502 288 002505 289 002536 292 002541 293 002545 294 002547 295 002550 296 002554 297 002606 299 002607 301 002637 302 002642 303 002666 306 002671 307 002673 309 002726 311 002727 313 002742 314 002746 315 002764 316 002765 318 003003 320 003007 323 003010 326 003016 327 003023 328 003033 329 003045 330 003057 333 003062 334 003066 335 003077 337 003102 338 003125 ----------------------------------------------------------- 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