COMPILATION LISTING OF SEGMENT mowse_io_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/24/89 0852.5 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 10 mowse_io_: 11 proc (); 12 13 14 /* PROGRAM FUNCTION 15* 16*This is the main driver for "mowse_io_" module which includes I/O protocols 17*between a user's process on Multics and a Personal Computer (PC) through which 18*the user has logged into using the PC version of MOWSE. The following I/O 19*system calls are provided for this module: 20* 21* attach mowse_io_$mowse_io_attach 22* close mowse_io_$mowse_io_close 23* close_file mowse_io_$mowse_io_close_file 24* control mowse_io_$mowse_io_control 25* detach_iocb mowse_io_$mowse_io_detach_iocb 26* get_chars mowse_io_$mowse_io_get_chars 27* get_line mowse_io_$mowse_io_get_line 28* modes mowse_io_$mowse_io_modes 29* open mowse_io_$mowse_io_open 30* open_file mowse_io_$mowse_io_open_file 31* put_chars mowse_io_$mowse_io_put_chars 32**/ 33 34 35 /* NOTES 36**/ 37 38 /****^ HISTORY COMMENTS: 39* 1) change(87-04-16,Flegel), approve(87-06-23,MCR7649), 40* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 41* Created. 42* 2) change(87-08-18,LJAdams), approve(87-08-18,PBF7649), 43* audit(87-08-18,Wallman), install(87-08-18,MR12.1-1091): 44* Changed references to editing_chars_version to editing_chars_version_3. 45* 3) change(88-10-06,Flegel), approve(88-11-16,MCR8023), audit(88-12-12,Lee), 46* install(89-01-24,MR12.3-1012): 47* phx21215 - Changed (read write)_status control to use a mowse created 48* event channel as the channel information returned. This 49* channel will have events transmitted on it when foregrond data 50* is processed. 51* - Added control order "get_event_channel". 52* END HISTORY COMMENTS */ 53 54 /* INPUT PARAMETERS */ 55 dcl p_newmodes char (*) parameter; /* Modes string */ 56 dcl p_descrip char (*) parameter; /* Open description */ 57 dcl p_unused bit (1) parameter; 58 dcl p_mode fixed bin parameter; /* Open mode */ 59 dcl p_buf_len fixed bin (21) parameter; /* Buffer length */ 60 dcl p_buf_ptr ptr parameter; /* buffer pointer */ 61 dcl p_order char (*) parameter; /* Control order */ 62 dcl p_info_ptr ptr parameter; /* Control info pointer */ 63 dcl p_options (*) char (*) var parameter;/* Option array */ 64 dcl p_loud bit (1) aligned parameter; /* Turn on error printing here */ 65 dcl p_iocb_ptr ptr parameter; /* IOCB structure pointer */ 66 67 /* OUTPUT PARAMETERS */ 68 dcl p_oldmodes char (*) parameter; /* Old modes string */ 69 dcl p_chars_read fixed bin (21) parameter; 70 dcl p_code fixed bin (35) parameter; /* Error code */ 71 72 /* MISC VARIABLES */ 73 dcl new_modes char (512); /* Mode string */ 74 dcl confirmed_disconnect bit (1); /* If disconnect will require confirmation */ 75 dcl printer_msg char (5); /* POx00 message to WSTERM */ 76 dcl order char (32) var; /* Control order */ 77 dcl pl fixed bin; /* Page length */ 78 dcl ll fixed bin; /* Line length */ 79 dcl erkl_esc char (3); /* Erase, Kill, Escape chars */ 80 dcl i fixed bin; 81 dcl iocb_ptr ptr; /* IOCB */ 82 dcl system_free_area area based (system_free_area_ptr); 83 dcl system_free_area_ptr ptr; 84 dcl ind fixed bin; /* Index counter */ 85 dcl target_iocb_ptr ptr; 86 dcl mask bit (36) aligned; /* IPS mask */ 87 dcl mio_data_ptr ptr; /* mowse_io_ data */ 88 89 /* STRUCTURES */ 90 dcl fixedbin21 fixed bin (21) based; 91 dcl fixedbin71al fixed bin (71) aligned based; 92 dcl 01 ipc_arg like ipc_create_arg_structure aligned automatic; 93 dcl 01 trans like cv_trans_struc aligned automatic; 94 dcl ll_overlay fixed bin (9) based; /* Info for line_length order */ 95 dcl buf (p_buf_len) char (1) based (p_buf_ptr); 96 dcl 01 mio_data like mowse_io_data based (mio_data_ptr); 97 dcl 01 fatal_error_info aligned, 98 02 version fixed bin, /* Must be 0 */ 99 02 status_code fixed bin (35); /* Error code */ 100 101 /* SYSTEM CALLS */ 102 dcl ipc_$create_event_channel entry (ptr, fixed bin (71), fixed bin (35)); 103 dcl clock_ entry () returns (fixed bin (71)); 104 dcl ttt_info_$initial_string entry (char (*), char (*) var, fixed bin (35)); 105 dcl ttt_info_$modes entry (char (*), char (*), fixed bin (35)); 106 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 107 dcl sct_manager_$get entry (fixed bin, ptr, fixed bin (35)); 108 dcl sct_manager_$set entry (fixed bin, ptr, fixed bin (35)); 109 dcl mode_string_$get_mode entry (char (*), char (*), ptr, fixed bin (35)); 110 dcl mode_string_$parse entry (char (*), ptr, ptr, fixed bin (35)); 111 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 112 dcl get_process_id_ entry () returns (bit (36)); 113 dcl iox_$modes entry (ptr, char (*), char (*), fixed bin (35)); 114 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 115 dcl iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 116 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 117 dcl iox_$get_chars entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 118 dcl terminate_process_ entry (char (*), ptr); 119 dcl iox_$propagate entry (ptr); 120 dcl hcs_$reset_ips_mask entry (bit (36) aligned, bit (36) aligned); 121 dcl com_err_ entry () options (variable); 122 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 123 dcl get_system_free_area_ entry () returns (ptr); 124 dcl iox_$look_iocb entry (char (*), ptr, fixed bin (35)); 125 126 /* SYSTEM CALL SUPPORT */ 127 dcl error_table_$no_initial_string fixed bin (35) ext static; 128 dcl error_table_$unsupported_operation fixed bin (35) ext static; 129 dcl error_table_$unimplemented_version fixed bin (35) ext static; 130 dcl error_table_$null_info_ptr fixed bin (35) ext static; 131 dcl error_table_$long_record fixed bin (35) ext static; 132 dcl iox_$err_no_operation entry () options (variable); 133 dcl error_table_$bad_mode fixed bin (35) ext static; 134 dcl iox_$err_not_open entry () options (variable); 135 dcl error_table_$unable_to_do_io fixed bin (35) ext static; 136 dcl error_table_$invalid_device fixed bin (35) ext static; 137 dcl error_table_$wrong_no_of_args fixed bin (35) ext static; 138 dcl error_table_$not_detached fixed bin (35) ext static; 139 140 /* EXTERNAL CALLS */ 141 dcl ws_timer_$reset_connect entry (); 142 dcl ws_debug_$line entry () options (variable); 143 dcl ws_packet_transmitter_$terminate entry (ptr); 144 dcl ws_packet_transmitter_$local_data entry (ptr, fixed bin, ptr, fixed bin (21), fixed bin); 145 dcl ws_packet_dispatcher_$terminate entry (); 146 dcl ws_packet_dispatcher_$initialize entry (ptr, fixed bin (35) 147 ); 148 dcl ws_timer_$queue_sleeper entry (fixed bin (71)); 149 dcl ws_$find_capability_number entry (char (*), fixed bin, fixed bin, fixed bin (35)); 150 dcl capability_$pack entry (fixed bin, fixed bin, fixed bin, fixed bin (35)); 151 dcl terminate_mowse_ entry (ptr, fixed bin (35)); 152 dcl bound_process_env_$err_no_operation entry options (variable); 153 dcl ws_timer_$terminate entry (); 154 dcl ws_timer_$reset_disconnect entry (); 155 dcl ws_timer_$initialize entry (ptr); 156 dcl ws_channel_$wait_block entry (ptr, ptr, char (*), ptr); 157 dcl ws_tools_$reset_data entry (ptr); 158 dcl ws_packet_transmitter_$supervisory entry (ptr, char (1)); 159 dcl ws_channel_$wait_wakeup entry (ptr, ptr); 160 dcl ws_packet_transmitter_$reset entry (ptr); 161 dcl ws_packet_transmitter_$initialize entry (ptr, ptr, fixed bin (35)); 162 dcl ws_debug_$trace_open entry (ptr, ptr, fixed bin (35)); 163 dcl ws_debug_$trace_close entry (ptr, fixed bin (35)); 164 dcl ws_debug_$debug_open entry (ptr, ptr, fixed bin (35)); 165 dcl ws_debug_$debug_close entry (ptr, fixed bin (35)); 166 dcl mowse_io_call_control_ entry (ptr, char (*), ptr, fixed bin (35)); 167 dcl ws_packet_receiver_$sus_handler entry (); 168 dcl ws_packet_receiver_$terminate entry (fixed bin (35)); 169 dcl ws_packet_receiver_$initialize entry (ptr, ptr, fixed bin (35)); 170 dcl ws_packet_transmitter_$data entry (ptr, fixed bin, ptr, fixed bin (21), fixed bin); 171 172 /* EXTERNAL CALL SUPPORT */ 173 dcl ws_error_$unsupported_ws_terminal 174 fixed bin (35) ext static; 175 dcl ws_error_$already_sleeping fixed bin (35) ext static; 176 dcl ws_error_$invalid_sleep_interval fixed bin (35) ext static; 177 dcl ws_error_$inconsistent_mowse_tables fixed bin (35) ext static; 178 179 /* BUILTINS */ 180 dcl ltrim builtin; 181 dcl divide builtin; 182 dcl convert builtin; 183 dcl codeptr builtin; 184 dcl byte builtin; 185 dcl addr builtin; 186 dcl rank builtin; 187 dcl rtrim builtin; 188 dcl mod builtin; 189 dcl unspec builtin; 190 dcl substr builtin; 191 dcl length builtin; 192 dcl index builtin; 193 dcl null builtin; 194 dcl hbound builtin; 195 196 /* CONDITIONS */ 197 dcl any_other condition; 198 dcl cleanup condition; 199 200 /* CONSTANTS */ 201 dcl False bit (1) int static options (constant) init ("0"b); 202 dcl True bit (1) int static options (constant) init ("1"b); 203 dcl Stream_input_output_mode fixed bin int static options (constant) init (3); 204 205 /* */ 206 207 /* INITIALIZATION */ 208 209 /* MAIN */ 210 211 return; 212 213 /* */ 214 215 216 217 /* INTERNAL ENTRIES */ 218 219 220 /* *** Entry: mowse_io_attach - Internal entry for mowse_io_ *** */ 221 222 mowse_io_attach: 223 entry (p_iocb_ptr, p_options, p_loud, p_code); 224 225 226 /* ENTRY FUNCTION 227* 228*Attach the MOWSE io module and allocate the MOWSE data space from system 229*free area. 230**/ 231 232 /* NOTES 233* 234*MOWSE will not be up until the call to iox_$open is performed by the caller. 235**/ 236 237 call setup_entry (); 238 mask = ""b; 239 target_iocb_ptr = null; 240 241 /* If the current iocb is not detached, error! */ 242 243 if iocb_ptr -> iocb.attach_descrip_ptr ^= null then do; 244 p_code = error_table_$not_detached; 245 if p_loud then 246 call com_err_ (p_code, "mowse_io_"); 247 return; 248 end; 249 250 /* Check number of arguments */ 251 252 if hbound (p_options, 1) ^= 1 then do; 253 p_code = error_table_$wrong_no_of_args; 254 if p_loud then 255 call com_err_ (p_code, "mowse_io_"); 256 return; 257 end; 258 259 /* Get an iocb for mowse_io_ */ 260 261 call iox_$look_iocb ((p_options (1)), target_iocb_ptr, p_code); 262 if p_code ^= 0 then do; 263 if p_loud then 264 call com_err_ (p_code, "mowse_io_"); 265 return; 266 end; 267 268 /* Is the device valid */ 269 270 if target_iocb_ptr -> iocb.attach_descrip_ptr = null then do; 271 p_code = error_table_$invalid_device; 272 if p_loud then 273 call com_err_ (p_code, "mowse_io_"); 274 return; 275 end; 276 277 /* Is the description valid */ 278 279 if target_iocb_ptr -> iocb.open_descrip_ptr = null then do; 280 p_code = error_table_$invalid_device; 281 if p_loud then 282 call com_err_ (p_code, "mowse_io_"); 283 return; 284 end; 285 286 /* Get attach data space from system free */ 287 288 mio_data_ptr = null; 289 system_free_area_ptr = null; 290 on cleanup call clean_up_mio_data (); 291 system_free_area_ptr = get_system_free_area_ (); 292 allocate mio_data in (system_free_area) set (mio_data_ptr); 293 unspec (mio_data) = ""b; 294 295 /* Set options on the attach description */ 296 297 ind = index (p_options (1), " "); 298 if ind = 0 then 299 ind = length (p_options (1)); 300 mio_data.attach_descrip = 301 "mowse_io_ " || substr (p_options (1), 1, ind); 302 do i = 2 to hbound (p_options, 1); 303 mio_data.attach_descrip = mio_data.attach_descrip || " "; 304 mio_data.attach_descrip 305 = mio_data.attach_descrip || p_options (i); 306 end; 307 308 /* Initialize the fields of mowse_io_data (attach data) */ 309 310 mio_data.iocb_ptr = target_iocb_ptr; 311 mio_data.default_iocb_ptr = iocb_ptr; 312 call initialize_attach_data (p_code); 313 if p_code ^= 0 then do; 314 if p_loud then 315 call com_err_ (p_code, "mowse_io_"); 316 call clean_up_mio_data (); 317 return; 318 end; 319 320 /* Set up the iocb for mowse_io_ */ 321 322 on any_other begin; 323 fatal_error_info.version = 0; 324 fatal_error_info.status_code = error_table_$unable_to_do_io; 325 call terminate_process_ ("fatal_error", addr (fatal_error_info)); 326 end; 327 328 call hcs_$set_ips_mask (""b, mask); 329 iocb_ptr -> iocb.attach_data_ptr = mio_data_ptr; 330 iocb_ptr -> iocb.attach_descrip_ptr = addr (mio_data.attach_descrip); 331 iocb_ptr -> iocb.detach_iocb = mowse_io_detach_iocb; 332 iocb_ptr -> iocb.open = mowse_io_open; 333 iocb_ptr -> iocb.open_file = mowse_io_open_file; 334 iocb_ptr -> iocb.close = iox_$err_not_open; 335 iocb_ptr -> iocb.close_file = iox_$err_not_open; 336 call iox_$propagate (iocb_ptr); 337 call hcs_$reset_ips_mask (mask, mask); 338 revert any_other; 339 340 return; 341 342 /* */ 343 344 /* *** Entry: mowse_io_close - Internal entry for mowse_io_ *** */ 345 346 /* ENTRY FUNCTION 347* 348*There are two entries into this section, dtm (detach_mowse) calls with options 349*(confirmed_disconnect) and other routines call without options, or to close. 350**/ 351 352 /* NOTES 353**/ 354 355 mowse_io_close: 356 entry (p_iocb_ptr, p_code); 357 358 call setup_entry (); 359 360 confirmed_disconnect = False; 361 362 goto JOIN_CLOSE; 363 364 mowse_io_close_file: 365 entry (p_iocb_ptr, p_descrip, p_code); 366 367 call setup_entry (); 368 369 confirmed_disconnect = False; 370 if length (p_descrip) > 0 then 371 confirmed_disconnect = (p_descrip = "confirmed_disconnect"); 372 373 JOIN_CLOSE: 374 375 mask = ""b; 376 377 mio_data.disconnect_active = True; 378 379 /* Check the sus_ flag to determine if this process has been disconnected, 380* if so, then DO NOT TELL THE TERMINAL as it is no longer valid otherwise, 381* perform the necessary to notify the terminal */ 382 383 if ^mio_data.sus_data.activated then do; 384 if mio_data.info_ptr ^= null then do; 385 call terminate_mowse_ (mio_data.info_ptr, (0)); 386 if mio_data.info_ptr ^= null then do; 387 free mio_data.info_ptr -> mowse_info; 388 mio_data.info_ptr = null; 389 end; 390 end; 391 392 /* Perform the requested disconnect type */ 393 394 call disconnect (confirmed_disconnect); 395 396 /* Turn off the the protocol stuff */ 397 398 call ws_packet_receiver_$terminate ((0)); 399 call ws_timer_$terminate (); 400 call ws_packet_dispatcher_$terminate (); 401 call ws_packet_transmitter_$terminate (mio_data_ptr); 402 403 /* MF - phx21215 - Return the foreground events channel to the system */ 404 405 call ipc_$delete_ev_chn ( 406 mio_data.channel_info.foreground.channel, (0)); 407 408 /* Close the trace and debug mechanisms */ 409 410 call ws_debug_$debug_close (mio_data.debug_iocb_ptr, (0)); 411 call ws_debug_$trace_close (mio_data.trace_iocb_ptr, (0)); 412 end; 413 414 /* Adjust the IOCB */ 415 416 on any_other begin; 417 fatal_error_info.version = 0; 418 fatal_error_info.status_code = error_table_$unable_to_do_io; 419 call terminate_process_ ("fatal_error", addr (fatal_error_info)); 420 end; 421 422 /* Must be masked */ 423 424 call hcs_$set_ips_mask (""b, mask); 425 426 /* Replace the sus_signal_handler_ to what it use to be */ 427 428 if ^mio_data.sus_data.activated then do; 429 call sct_manager_$set (susp_sct_index, 430 mio_data.sus_data.sus_entry, p_code); 431 if p_code ^= 0 then do; 432 call hcs_$reset_ips_mask (mask, mask); 433 return; 434 end; 435 end; 436 437 /* Fix iocb data */ 438 439 call initialize_iocb (iocb_ptr -> iocb.actual_iocb_ptr); 440 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open_descrip_ptr 441 = null; 442 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.detach_iocb 443 = mowse_io_detach_iocb; 444 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open 445 = mowse_io_open; 446 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open_file 447 = mowse_io_open_file; 448 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close_file 449 = iox_$err_not_open; 450 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close 451 = iox_$err_not_open; 452 call iox_$propagate (iocb_ptr); 453 454 if ^mio_data.sus_data.activated then 455 call iox_$modes (mio_data.iocb_ptr, mio_data.old_modes, "", (0)); 456 457 call hcs_$reset_ips_mask (mask, mask); 458 revert any_other; 459 460 if ^mio_data.sus_data.activated then 461 call iox_$control (mio_data.iocb_ptr, "quit_enable", null, (0)); 462 return; 463 464 /* */ 465 466 /* *** Entry: mowse_io_control - Internal entry for mowse_io_ *** */ 467 468 mowse_io_control: 469 entry (p_iocb_ptr, p_order, p_info_ptr, p_code); 470 471 472 /* ENTRY FUNCTION 473* 474*Handle the following iox_$control orders: 475* 476* MOWSE Specific: 477* --------------- 478* 479* debug_off debug_on 480* flush_subchannel get_mowse_info 481* get_terminal_emulator_state put_to_sleep 482* send_local_message send_message 483* set_video_mode store_mowse_info 484* trace_off trace_on 485* 486* Multics Specific (requiring special support): 487* --------------------------------------------- 488* 489* abort get_editing_chars 490* get_event_channel get_input_conversion 491* io_call io_call_af 492* line_length printer_off 493* printer_on quit_disable 494* quit_enable reconnection 495* resetread resetwrite 496* read_status set_default_modes 497* set_editing_chars set_input_conversion 498* set_term_type write_status 499**/ 500 501 /* NOTES 502**/ 503 504 call setup_entry (); 505 order = ltrim (rtrim (p_order)); 506 507 /* <<<<<<<<<<<<< MOWSE Specific Control Orders >>>>>>>>>>>>>> */ 508 509 /* debug_off */ 510 511 if order = "debug_off" then 512 call ws_debug_$debug_close (mio_data.debug_iocb_ptr, p_code); 513 514 /* debug_on */ 515 516 else if order = "debug_on" then do; 517 call ws_debug_$debug_open (p_info_ptr, mio_data.debug_iocb_ptr, 518 p_code); 519 if p_code = 0 then 520 call ws_debug_$line (mio_data.debug_iocb_ptr, 521 "Process ID: ^b^/" 522 || "Channel ID: user_input^9x^24d^/" 523 || "^12xpacket_receiver^4x^24d^/" 524 || "^12xpacket_transmitter ^24d^/" 525 || "Dispatcher: async channel^6x^24d^/" 526 || "^12xsync channel^7x^24d^/^/", 527 mio_data.channel_info.process_id, 528 mio_data.channel_info.user_input.channel, 529 mio_data.channel_info.packet_receiver.channel, 530 mio_data.channel_info.packet_transmitter.channel, 531 mio_data.channel_info.packet_dispatcher.async_channel, 532 mio_data.channel_info.packet_dispatcher.sync_channel); 533 end; 534 535 /* flush_subchannel */ 536 537 else if order = "flush_subchannel" then 538 call flush_subchannel (p_info_ptr, p_code); 539 540 /* get_mowse_info */ 541 542 else if order = "get_mowse_info" then do; 543 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 544 return; 545 546 p_info_ptr -> mowse_io_info.mcb_ptr = mio_data.mcb_ptr; 547 p_info_ptr -> mowse_io_info.info_ptr = mio_data.info_ptr; 548 end; 549 550 /* get_terminal_emulator_state */ 551 552 else if order = "get_terminal_emulator_state" then 553 call get_emulator_state (p_info_ptr, p_code); 554 555 /* put_to_sleep */ 556 557 else if order = "put_to_sleep" then 558 call insert_sleeper (p_info_ptr, p_code); 559 560 /* send_local_message */ 561 562 else if order = "send_local_message" then do; 563 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 564 return; 565 566 call ws_packet_transmitter_$local_data (mio_data_ptr, 567 p_info_ptr -> mowse_io_message.channel, 568 p_info_ptr -> mowse_io_message.io_message_ptr, 569 p_info_ptr -> mowse_io_message.io_message_len, 570 NO_MINOR); 571 end; 572 573 /* send_message */ 574 575 else if order = "send_message" then do; 576 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 577 return; 578 579 call ws_packet_transmitter_$data (mio_data_ptr, 580 p_info_ptr -> mowse_io_message.channel, 581 p_info_ptr -> mowse_io_message.io_message_ptr, 582 p_info_ptr -> mowse_io_message.io_message_len, 583 NO_MINOR); 584 end; 585 586 /* set_video_mode */ 587 588 else if order = "set_video_mode" then do; 589 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 590 return; 591 592 mio_data.ws.flags.video_mode 593 = p_info_ptr -> mowse_io_set_video_mode_info.mode; 594 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 9, 1) 595 = mio_data.ws.flags.video_mode; 596 call send_terminal_modes (byte (0) || byte (0) || byte (0), -1, -1); 597 end; 598 599 /* store_mowse_info */ 600 601 else if order = "store_mowse_info" then do; 602 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 603 return; 604 605 mio_data.info_ptr = p_info_ptr -> mowse_io_store_info.info_ptr; 606 mio_data.info_stored = True; 607 mio_data.mcb_ptr -> mcb.mowse_info_ptr = mio_data.info_ptr; 608 end; 609 610 /* trace_off */ 611 612 else if order = "trace_off" then do; 613 call ws_debug_$trace_close (mio_data.trace_iocb_ptr, p_code); 614 mio_data.info_ptr -> mowse_info.mowse_flags.trace = False; 615 mio_data.info_ptr -> mowse_info.mowse_flags.trace_file_iocb 616 = null; 617 end; 618 619 /* trace_on */ 620 621 else if order = "trace_on" then do; 622 call ws_debug_$trace_open (p_info_ptr, mio_data.trace_iocb_ptr, 623 p_code); 624 if p_code = 0 then do; 625 mio_data.info_ptr -> mowse_info.mowse_flags.trace = True; 626 mio_data.info_ptr -> mowse_info.mowse_flags.trace_file_iocb 627 = mio_data.trace_iocb_ptr; 628 end; 629 end; 630 631 /* <<<<<<<<<<<< Multics Specific Control Orders >>>>>>>>>>>>> */ 632 633 /* abort */ 634 635 else if order = "abort" then 636 mio_data.user_input.out = mio_data.user_input.in; 637 638 /* get_editing_chars */ 639 640 else if order = "get_editing_chars" then do; 641 if ^check_validity_int (p_info_ptr, editing_chars_version_3, p_code) then 642 return; 643 644 p_info_ptr -> editing_chars.kill = mio_data.WSTERM_modes (WST_KILL); 645 p_info_ptr -> editing_chars.erase = mio_data.WSTERM_modes (WST_ERASE); 646 end; 647 648 /* MF - phx21215 - get_event_channel */ 649 650 else if order = "get_event_channel" then do; 651 p_info_ptr -> fixedbin71al 652 = mio_data.channel_info.foreground.channel; 653 end; 654 655 /* io_call, io_call_af */ 656 657 else if order = "io_call" | order = "io_call_af" then 658 call mowse_io_call_control_ (p_iocb_ptr, p_order, p_info_ptr, 659 p_code); 660 661 /* line_length */ 662 663 else if order = "line_length" then do; 664 ll = convert (ll, p_info_ptr -> ll_overlay); 665 call send_terminal_modes ("", -1, ll); 666 end; 667 668 /* printer_off */ 669 670 else if order = "printer_off" then do; 671 printer_msg = "POF" || byte (0) || byte (0); 672 call ws_packet_transmitter_$data (mio_data_ptr, FG, 673 addr (printer_msg), convert (fixedbin21, MinPktLen), 674 FG_CONTROL_MESSAGE); 675 end; 676 677 /* printer_on */ 678 679 else if order = "printer_on" then do; 680 printer_msg = "PON" || byte (0) || byte (0); 681 call ws_packet_transmitter_$data (mio_data_ptr, FG, 682 addr (printer_msg), convert (fixedbin21, MinPktLen), 683 FG_CONTROL_MESSAGE); 684 end; 685 686 /* quit_disable */ 687 688 else if order = "quit_disable" then 689 mio_data.switches.quit_enable = False; 690 691 /* quit_enable */ 692 693 else if order = "quit_enable" then 694 mio_data.switches.quit_enable = True; 695 696 /* reconnection */ 697 698 else if order = "reconnection" then 699 call iox_$control (mio_data.iocb_ptr, p_order, p_info_ptr, 700 p_code); 701 702 /* resetread */ 703 704 else if order = "resetread" then 705 mio_data.user_input.in = mio_data.user_input.out; 706 707 /* resetwrite */ 708 709 else if order = "resetwrite" then 710 mio_data.switches.reset_write = True; 711 712 /* read_status */ 713 714 else if order = "read_status" then do; 715 if p_info_ptr = null then do; 716 p_code = error_table_$null_info_ptr; 717 return; 718 end; 719 p_info_ptr -> tty_read_status_info.event_channel 720 = mio_data.channel_info.foreground.channel; /* MF - phx21215 */ 721 p_info_ptr -> tty_read_status_info.input_pending 722 = (mio_data.user_input.out ^= mio_data.user_input.in); 723 end; 724 725 /* set_default_modes */ 726 727 else if order = "set_default_modes" then 728 call send_terminal_modes ("@#\", WST_INIT_PL, WST_INIT_LL); 729 730 /* set_editing_chars */ 731 732 else if order = "set_editing_chars" then do; 733 if ^check_validity_int (p_info_ptr, 1, p_code) then 734 return; 735 736 call send_terminal_modes ( 737 p_info_ptr -> editing_chars.kill 738 || p_info_ptr -> editing_chars.erase 739 || byte (0), 740 -1, -1); 741 end; 742 743 /* set_input_conversion */ 744 745 else if order = "set_input_conversion" then do; 746 if ^check_validity_int (p_info_ptr, 1, p_code) then 747 return; 748 749 trans.version = 1; 750 call iox_$control (mio_data.iocb_ptr, "get_input_conversion", 751 addr (trans), p_code); 752 if p_code ^= 0 then 753 return; 754 call send_terminal_modes ( 755 byte (0) || byte (0) || get_escape_char (addr (trans)), 756 -1, -1); 757 end; 758 759 /* set_term_type */ 760 761 else if order = "set_term_type" then 762 call set_terminal (p_info_ptr, p_code); 763 764 /* start */ 765 766 else if order = "start" then do; 767 mio_data.switches.start_issued = True; 768 call ws_channel_$wait_wakeup (mio_data_ptr, 769 addr (mio_data.channel_info.user_input)); 770 call iox_$control (mio_data.iocb_ptr, p_order, p_info_ptr, 771 p_code); 772 end; 773 774 /* write_status */ 775 776 else if order = "write_status" then do; 777 if p_info_ptr = null then do; 778 p_code = error_table_$null_info_ptr; 779 return; 780 end; 781 p_info_ptr -> tty_read_status_info.event_channel 782 = mio_data.channel_info.foreground.channel; /* MF - phx21215 */ 783 p_info_ptr -> tty_read_status_info.input_pending 784 = (mio_data.user_input.out ^= mio_data.user_input.in); 785 end; 786 787 /* Bad order? YES - reject it; NO - pass to tty_ */ 788 789 else do; 790 do i = 1 to N_BAD_CONTROL; 791 if order = MOWSE_IO_BAD_CONTROL (i) then do; 792 p_code = error_table_$unsupported_operation; 793 return; 794 end; 795 end; 796 797 call iox_$control (mio_data.iocb_ptr, p_order, p_info_ptr, 798 p_code); 799 return; 800 end; 801 802 return; 803 804 /* */ 805 806 /* *** Entry: mowse_io_detach - Internal entry for mowse_io_ *** */ 807 808 mowse_io_detach_iocb: 809 entry (p_iocb_ptr, p_code); 810 811 812 /* ENTRY FUNCTION 813* 814*Detach the mowse i/o module. 815**/ 816 817 /* NOTES 818**/ 819 820 call setup_entry (); 821 mask = ""b; 822 823 /* Get rid of used space */ 824 825 call clean_up_mio_data (); 826 827 /* Adjust the iocb */ 828 829 on any_other begin; 830 fatal_error_info.version = 0; 831 fatal_error_info.status_code = error_table_$unable_to_do_io; 832 call terminate_process_ ("fatal_error", addr (fatal_error_info)); 833 end; 834 835 call hcs_$set_ips_mask (""b, mask); 836 iocb_ptr -> iocb.attach_descrip_ptr = null; 837 call iox_$propagate (iocb_ptr); 838 call hcs_$reset_ips_mask (mask, mask); 839 840 revert any_other; 841 return; 842 843 /* */ 844 845 /* *** Entry: mowse_io_get_chars - Internal entry for mowse_io_ *** */ 846 847 mowse_io_get_chars: 848 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_chars_read, p_code); 849 850 851 /* ENTRY FUNCTION 852* 853*Retrieve "interactive" data from the terminal buffer. 854**/ 855 856 /* NOTES 857* 858*This routine is the counterpart of the PC routine "gettdata" which retrieves 859*data which is destined to be displayed on the crt. In this case (since there 860*is no crt associated at the Multics end, it is usually destined to be 861*processed by the Multics as "raw" character data. 862**/ 863 864 p_chars_read = 0; 865 call setup_entry (); 866 867 /* Buffer large enough ? */ 868 869 if p_buf_len < 1 then 870 return; 871 if p_buf_ptr = null then 872 return; 873 874 /* Block while no data is ready on user_input */ 875 876 mio_data.switches.start_issued = False; 877 do while (mio_data.user_input.in = mio_data.user_input.out 878 & ^mio_data.switches.start_issued); 879 880 call ws_channel_$wait_block (mio_data_ptr, 881 addr (mio_data.channel_info.user_input), 882 "user_input (get_chars)", mio_data.debug_iocb_ptr); 883 end; 884 885 /* If a start was issued to break the loop, then we're done */ 886 887 if mio_data.switches.start_issued then do; 888 mio_data.switches.start_issued = False; 889 return; 890 end; 891 892 /* Load the caller's buffer */ 893 894 do while (p_chars_read < p_buf_len 895 & mio_data.user_input.in ^= mio_data.user_input.out); 896 897 p_chars_read = p_chars_read + 1; 898 899 buf (p_chars_read) 900 = mio_data.user_input.queue (mio_data.user_input.out); 901 902 mio_data.user_input.out 903 = mod (mio_data.user_input.out + 1, 904 hbound (mio_data.user_input.queue, 1) + 1); 905 end; 906 907 return; 908 909 /* */ 910 911 /* *** Entry: mowse_io_get_line - Internal entry for mowse_io_ *** */ 912 913 mowse_io_get_line: 914 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_chars_read, p_code); 915 916 917 /* ENTRY FUNCTION 918* 919*Retrieve one line of "interactive" data from the terminal buffer. 920**/ 921 922 /* NOTES 923* 924*This routine is the counterpart of the PC routine "gettdata" which retrieves 925*data which is destined to be displayed on the crt. In this case (since there 926*is no crt associated at the Multics end), it is usually destined to be 927*processed by the Multics end as "raw" character data. 928**/ 929 930 p_chars_read = 0; 931 call setup_entry (); 932 933 /* Supplied buffer large enough */ 934 935 if p_buf_len < 1 then 936 return; 937 if p_buf_ptr = null then 938 return; 939 940 /* While there is still room in the supplied buffer */ 941 942 do while (p_chars_read < p_buf_len); 943 944 /* - While the buffer is empty 945* -- Block until something is read from tty_ */ 946 947 mio_data.switches.start_issued = False; 948 do while (mio_data.user_input.out = mio_data.user_input.in 949 & ^mio_data.switches.start_issued); 950 951 call ws_channel_$wait_block (mio_data_ptr, 952 addr (mio_data.channel_info.user_input), 953 "user_input (get_line)", mio_data.debug_iocb_ptr); 954 end; 955 956 /* - If start caused the loop to break, quit here */ 957 958 if mio_data.switches.start_issued then do; 959 mio_data.switches.start_issued = False; 960 return; 961 end; 962 963 /* - Copy the character into the supplied buffer */ 964 965 p_chars_read = p_chars_read + 1; 966 buf (p_chars_read) = 967 mio_data.user_input.queue (mio_data.user_input.out); 968 mio_data.user_input.out 969 = mod (mio_data.user_input.out + 1, 970 hbound (mio_data.user_input.queue, 1) + 1); 971 972 /* - found then return */ 973 974 if buf (p_chars_read) = LF then do; 975 return; 976 end; 977 end; 978 979 /* Too much data for supplied buffer */ 980 981 p_code = error_table_$long_record; 982 return; 983 984 /* */ 985 986 /* *** Entry: mowse_io_modes - Internal entry for mowse_io_ *** */ 987 988 mowse_io_modes: 989 entry (p_iocb_ptr, p_newmodes, p_oldmodes, p_code); 990 991 992 /* ENTRY FUNCTION 993* 994*Handle the following iox_$modes orders: 995* 996* pl = nn; 997* ll = nn; 998* crecho 999* lfecho 1000* more (ignored) 1001* more_mode (ignored) 1002* 1003*Remaining control orders are NOT acceptable as MOWSE needs full control over 1004*the communications line, thus only "terminal description" modes are 1005*acceptable. 1006**/ 1007 1008 /* NOTES 1009**/ 1010 1011 call setup_entry (); 1012 1013 /* Parse the new_modes string and update the MOWSE modes and send the modes 1014* message */ 1015 1016 call get_new_modes (p_newmodes, p_oldmodes, erkl_esc, pl, ll, p_code); 1017 if p_code ^= 0 then do; 1018 p_oldmodes = ""; 1019 return; 1020 end; 1021 1022 /* wake_tbl can only be altered by mowse, if it is specified, then 1023* initialization / termination is occuring and it is NOT to be sent */ 1024 1025 if index (p_newmodes, "wake_tbl") = 0 then 1026 call send_terminal_modes (erkl_esc, pl, ll); 1027 1028 return; 1029 1030 /* */ 1031 1032 /* *** Entry: mowse_io_open_file - Internal entry for mowse_io_ *** */ 1033 1034 /* ENTRY FUNCTION 1035* 1036*Open MOWSE io module. Performs all of the necessary functions that open MOWSE 1037*IO; starts up the "tasking" (scheduler); and sends a reset to the "other" 1038*MOWSE (PC) to tell it that this one is up and running. 1039**/ 1040 1041 /* NOTES 1042**/ 1043 1044 mowse_io_open: 1045 entry (p_iocb_ptr, p_mode, p_unused, p_code); 1046 1047 call setup_entry (); 1048 open_struc_ptr = null; 1049 goto JOIN_OPEN; 1050 1051 mowse_io_open_file: 1052 entry (p_iocb_ptr, p_mode, p_descrip, p_unused, p_code); 1053 1054 call setup_entry (); 1055 open_struc_ptr = null; 1056 1057 if length (p_descrip) <= 0 then 1058 goto JOIN_OPEN; 1059 1060 open_struc_ptr = addr (p_descrip); 1061 1062 JOIN_OPEN: 1063 1064 mask = ""b; 1065 1066 /* Check the requested mode setting */ 1067 1068 if p_mode ^= Stream_input_output_mode then do; 1069 p_code = error_table_$bad_mode; 1070 return; 1071 end; 1072 1073 /* Initialize the mowse_io_ iocb */ 1074 1075 on any_other begin; 1076 fatal_error_info.version = 0; 1077 fatal_error_info.status_code = error_table_$unable_to_do_io; 1078 call terminate_process_ ("fatal_error", addr (fatal_error_info)); 1079 end; 1080 1081 /* Must be masked */ 1082 1083 call hcs_$set_ips_mask (""b, mask); 1084 1085 /* Establish sus_signal_handler replacement */ 1086 1087 call sct_manager_$get (susp_sct_index, mio_data.sus_data.sus_entry, 1088 p_code); 1089 if p_code ^= 0 then do; 1090 call hcs_$reset_ips_mask (mask, mask); 1091 return; 1092 end; 1093 1094 call sct_manager_$set (susp_sct_index, 1095 codeptr (ws_packet_receiver_$sus_handler), p_code); 1096 if p_code ^= 0 then do; 1097 call hcs_$reset_ips_mask (mask, mask); 1098 return; 1099 end; 1100 1101 /* Set up the iocb */ 1102 1103 call initialize_iocb (iocb_ptr -> iocb.actual_iocb_ptr); 1104 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close 1105 = mowse_io_close; 1106 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close_file 1107 = mowse_io_close_file; 1108 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.control 1109 = mowse_io_control; 1110 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.get_chars 1111 = mowse_io_get_chars; 1112 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.get_line 1113 = mowse_io_get_line; 1114 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.put_chars 1115 = mowse_io_put_chars; 1116 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.modes 1117 = mowse_io_modes; 1118 iocb_ptr -> iocb.open_descrip_ptr = addr (mio_data.open_descrip); 1119 mio_data.open_descrip = "stream_input_output"; 1120 call iox_$propagate (iocb_ptr); 1121 call hcs_$reset_ips_mask (mask, mask); 1122 1123 revert any_other; 1124 1125 /* Set the mcb.iocb_ptr to mowse_i/o */ 1126 1127 mio_data.mcb_ptr -> mcb.iocb_ptr = p_iocb_ptr; 1128 1129 /* Turn OFF quit processing */ 1130 1131 call iox_$control (mio_data.iocb_ptr, "quit_disable", null, (0)); 1132 1133 /* Set the modes on the line */ 1134 1135 new_modes 1136 = "force,^crecho,^lfecho,^echoplex,^tabecho,rawi,rawo"; 1137 call iox_$modes (mio_data.iocb_ptr, rtrim (new_modes), 1138 mio_data.old_modes, (0)); 1139 1140 mio_data.current_modes = mio_data.old_modes; 1141 call adjust_modes ("^echoplex,tabs,^tabecho,rawi,rawo"); 1142 1143 /* Set up a foreground event channel */ 1144 1145 ipc_arg.version = ipc_create_arg_structure_v1; 1146 ipc_arg.channel_type = FAST_EVENT_CHANNEL_TYPE; 1147 ipc_arg.call_entry = mowse_io_dummy; 1148 ipc_arg.call_data_ptr = null; 1149 ipc_arg.call_priority = 0; 1150 call ipc_$create_event_channel (addr (ipc_arg), 1151 mio_data.channel_info.foreground.channel, p_code); /* MF - phx21215 */ 1152 if (p_code ^= 0) then 1153 goto CREATE_CHANNEL_ERROR; 1154 1155 /* Initialize protocol */ 1156 1157 call ws_timer_$initialize (mio_data_ptr); 1158 call ws_tools_$reset_data (mio_data_ptr); 1159 1160 call ws_packet_transmitter_$initialize (mio_data_ptr, open_struc_ptr, 1161 p_code); 1162 if p_code ^= 0 then 1163 goto OPEN_TRANSMITTER_ERROR; 1164 1165 call ws_packet_dispatcher_$initialize (mio_data_ptr, p_code); 1166 if p_code ^= 0 then 1167 goto OPEN_DISPATCHER_ERROR; 1168 1169 call ws_packet_receiver_$initialize (mio_data_ptr, open_struc_ptr, 1170 p_code); 1171 if p_code ^= 0 then 1172 goto OPEN_RECEIVER_ERROR; 1173 1174 call connect (p_code); 1175 if p_code ^= 0 then 1176 goto OPEN_CONNECT_ERROR; 1177 1178 return; 1179 1180 OPEN_CONNECT_ERROR: 1181 call ws_packet_receiver_$terminate ((0)); 1182 OPEN_RECEIVER_ERROR: 1183 call ws_packet_dispatcher_$terminate (); 1184 OPEN_DISPATCHER_ERROR: 1185 call ws_packet_transmitter_$terminate (mio_data_ptr); 1186 OPEN_TRANSMITTER_ERROR: 1187 call ws_timer_$terminate (); 1188 CREATE_CHANNEL_ERROR: 1189 call ipc_$delete_ev_chn ( 1190 mio_data.channel_info.foreground.channel, (0)); /* MF - phx21215 */ 1191 1192 /* Put the IOCB back into a closed state */ 1193 1194 call hcs_$set_ips_mask (""b, mask); 1195 1196 call initialize_iocb (iocb_ptr -> iocb.actual_iocb_ptr); 1197 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open_descrip_ptr 1198 = null; 1199 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.detach_iocb 1200 = mowse_io_detach_iocb; 1201 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open 1202 = mowse_io_open; 1203 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.open_file 1204 = mowse_io_open_file; 1205 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close_file 1206 = iox_$err_not_open; 1207 iocb_ptr -> iocb.actual_iocb_ptr -> iocb.close 1208 = iox_$err_not_open; 1209 call iox_$propagate (iocb_ptr); 1210 1211 call iox_$modes (mio_data.iocb_ptr, mio_data.old_modes, "", (0)); 1212 1213 call hcs_$reset_ips_mask (mask, mask); 1214 1215 return; 1216 1217 /* */ 1218 1219 /* *** Entry: mowse_io_put_chars - Internal entry for mowse_io_ *** */ 1220 1221 mowse_io_put_chars: 1222 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_code); 1223 1224 1225 /* ENTRY FUNCTION 1226* 1227*Handle transmission of foreground terminal data to the remote (PC). 1228**/ 1229 1230 /* NOTES 1231**/ 1232 1233 call setup_entry (); 1234 1235 call ws_packet_transmitter_$data (mio_data_ptr, FG, p_buf_ptr, 1236 p_buf_len, FG_TERMINAL_DATA); 1237 return; 1238 1239 /* */ 1240 1241 /* *** Entry: mowse_io_tty_control - Internal entry for mowse_io_ *** */ 1242 /* *** Entry: mowse_io_tty_get_chars - Internal entry for mowse_io_ *** */ 1243 /* *** Entry: mowse_io_tty_get_line - Internal entry for mowse_io_ *** */ 1244 /* *** Entry: mowse_io_tty_put_chars - Internal entry for mowse_io_ *** */ 1245 /* *** Entry: mowse_io_tty_modes - Internal entry for mowse_io_ *** */ 1246 /* *** Entry: mowse_io_dummy - Internal entry for mowse_io_ *** */ 1247 1248 /* ENTRY FUNCTION 1249* 1250*These entries are designed to merely pass on control to tty_ while mowse_i/o 1251*is attached but not open. Except for the dummy entry, it is used on the 1252*foreground event wait channel and shold never be called. 1253**/ 1254 1255 mowse_io_tty_control: 1256 entry (p_iocb_ptr, p_order, p_info_ptr, p_code); 1257 call setup_entry (); 1258 call iox_$control (mio_data.iocb_ptr, p_order, p_info_ptr, 1259 p_code); 1260 return; 1261 1262 mowse_io_tty_get_chars: 1263 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_chars_read, p_code); 1264 call setup_entry (); 1265 call iox_$get_chars (mio_data.iocb_ptr, p_buf_ptr, p_buf_len, 1266 p_chars_read, p_code); 1267 return; 1268 1269 mowse_io_tty_get_line: 1270 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_chars_read, p_code); 1271 call setup_entry (); 1272 call iox_$get_line (mio_data.iocb_ptr, p_buf_ptr, p_buf_len, 1273 p_chars_read, p_code); 1274 return; 1275 1276 mowse_io_tty_put_chars: 1277 entry (p_iocb_ptr, p_buf_ptr, p_buf_len, p_code); 1278 call setup_entry (); 1279 call iox_$put_chars (mio_data.iocb_ptr, p_buf_ptr, p_buf_len, 1280 p_code); 1281 return; 1282 1283 mowse_io_tty_modes: 1284 entry (p_iocb_ptr, p_newmodes, p_oldmodes, p_code); 1285 call setup_entry (); 1286 call iox_$modes (mio_data.iocb_ptr, p_newmodes, p_oldmodes, 1287 p_code); 1288 return; 1289 1290 mowse_io_dummy: 1291 entry (); 1292 return; 1293 1294 /* */ 1295 1296 1297 1298 /* INTERNAL PROCEDURES */ 1299 1300 1301 /* *** Procedure: adjust_modes - Internal proc for mowse_io_ *** */ 1302 1303 adjust_modes: 1304 proc (p_newmodes); 1305 1306 1307 /* PROCEDURE FUNCTION 1308* 1309*Adjust the current mode settings maintained by mowse_io_ to the new modes 1310*supplied. 1311**/ 1312 1313 /* NOTES 1314**/ 1315 1316 /* INPUT PARAMETERS */ 1317 dcl p_newmodes char (*) parameter; /* New modes settings */ 1318 1319 /* MISC VARIABLES */ 1320 dcl new_mode char (32) var; /* New mode value */ 1321 dcl j fixed bin; 1322 dcl found bit (1); 1323 dcl i fixed bin; 1324 dcl newmodes_ptr ptr; /* Mode value info ptr fot new modes */ 1325 dcl oldmodes_ptr ptr; /* Mode value info ptr for old modes */ 1326 dcl recover_modes char (256); /* In case of cleanup these are old values */ 1327 1328 /* INITIALIZATION */ 1329 recover_modes = mio_data.current_modes; 1330 oldmodes_ptr = null; 1331 newmodes_ptr = null; 1332 on cleanup begin; 1333 call cleanup_modes_info (oldmodes_ptr); 1334 call cleanup_modes_info (newmodes_ptr); 1335 mio_data.current_modes = recover_modes; 1336 end; 1337 1338 /* MAIN */ 1339 1340 /* Form two mode_string_info structures and then recombine them to one 1341* to form the resultant modes character string in mio_data.current_modes */ 1342 1343 call mode_string_$parse (mio_data.current_modes, null, oldmodes_ptr, 1344 (0)); 1345 call mode_string_$parse (p_newmodes, null, newmodes_ptr, (0)); 1346 1347 /* For each of the modes in the old string, look in the new string to see if 1348* it exists, put the new value into the current modes (if it exists else put 1349* the old one back) */ 1350 1351 mio_data.current_modes = ""; 1352 do i = 1 to oldmodes_ptr -> mode_string_info.number; 1353 found = "0"b; 1354 do j = 1 to newmodes_ptr -> mode_string_info.number; 1355 if oldmodes_ptr -> mode_string_info.modes (i).mode_name 1356 = newmodes_ptr -> mode_string_info.modes (j).mode_name 1357 then do; 1358 found = "1"b; 1359 newmodes_ptr -> mode_string_info.modes (j).code = 1; 1360 call parse_modes ( 1361 addr (newmodes_ptr -> mode_string_info.modes (j)), 1362 ("0"b), (0), new_mode); 1363 end; 1364 end; 1365 1366 /* If the newmode changes an old mode, then insert it 1367* Else put the old mode in the string */ 1368 1369 if found then 1370 mio_data.current_modes 1371 = rtrim (mio_data.current_modes) || "," || new_mode; 1372 else do; 1373 call parse_modes ( 1374 addr (oldmodes_ptr -> mode_string_info.modes (i)), 1375 ("0"b), (0), new_mode); 1376 mio_data.current_modes 1377 = rtrim (mio_data.current_modes) || "," || new_mode; 1378 end; 1379 end; 1380 1381 /* For each of the modes in the new string that were not seen, append */ 1382 1383 do i = 1 to newmodes_ptr -> mode_string_info.number; 1384 if newmodes_ptr -> mode_string_info.modes (i).code ^= 1 then do; 1385 call parse_modes ( 1386 addr (newmodes_ptr -> mode_string_info.modes (i)), 1387 ("0"b), (0), new_mode); 1388 mio_data.current_modes 1389 = rtrim (mio_data.current_modes) || "," || new_mode; 1390 end; 1391 end; 1392 1393 /* Strip off the leading "," that was placed in */ 1394 1395 mio_data.current_modes = substr (rtrim (mio_data.current_modes), 2); 1396 1397 /* Release the space occupied back to the system */ 1398 1399 call cleanup_modes_info (oldmodes_ptr); 1400 call cleanup_modes_info (newmodes_ptr); 1401 1402 end adjust_modes; 1403 1404 /* */ 1405 1406 /* *** Procedure: check_validity - Internal proc for mowse_io_ *** */ 1407 1408 check_validity: 1409 proc (p_info_ptr, p_version, p_code) returns (bit (1)); 1410 1411 1412 /* PROCEDURE FUNCTION 1413* 1414* 1415**/ 1416 1417 /* NOTES 1418**/ 1419 1420 /* INPUT PARAMETERS */ 1421 dcl p_info_ptr ptr parameter; /* Info structure */ 1422 dcl p_version char (8) parameter; /* Version number in characters */ 1423 1424 /* OUTPUT PARAMETERS */ 1425 dcl p_code fixed bin (35) parameter; 1426 1427 /* MISC VARIABLES */ 1428 1429 /* STRUCTURES */ 1430 dcl 01 struc based (p_info_ptr), 1431 02 version char (8); 1432 1433 /* INITIALIZATION */ 1434 p_code = 0; 1435 1436 /* MAIN */ 1437 if p_info_ptr = null then do; 1438 p_code = error_table_$null_info_ptr; 1439 return (False); 1440 end; 1441 1442 if p_info_ptr -> struc.version ^= p_version then do; 1443 p_code = error_table_$unimplemented_version; 1444 return (False); 1445 end; 1446 1447 return (True); 1448 1449 end check_validity; 1450 1451 /* */ 1452 1453 /* *** Procedure: check_validity_int - Internal proc for mowse_io_ *** */ 1454 1455 check_validity_int: 1456 proc (p_info_ptr, p_version, p_code) returns (bit (1)); 1457 1458 1459 /* PROCEDURE FUNCTION 1460* 1461*Check the validity of an integer version field as well as test for null info. 1462**/ 1463 1464 /* NOTES 1465* 1466*Version number of the structure must be in the first field and fixed bin (17). 1467**/ 1468 1469 /* INPUT PARAMETERS */ 1470 dcl p_info_ptr ptr parameter; /* Info structure */ 1471 dcl p_version fixed bin parameter; /* Structure version field */ 1472 1473 /* OUTPUT PARAMETERS */ 1474 dcl p_code fixed bin (35) parameter; 1475 1476 /* MISC VARIABLES */ 1477 1478 /* STRUCTURES */ 1479 dcl 01 structure based (p_info_ptr), 1480 02 version fixed bin; 1481 1482 /* INITIALIZATION */ 1483 p_code = 0; 1484 1485 /* MAIN */ 1486 if p_info_ptr = null then do; 1487 p_code = error_table_$null_info_ptr; 1488 return (False); 1489 end; 1490 1491 if p_info_ptr -> structure.version ^= p_version then do; 1492 p_code = error_table_$unimplemented_version; 1493 return (False); 1494 end; 1495 1496 return (True); 1497 1498 end check_validity_int; 1499 1500 /* */ 1501 1502 /* *** Procedure: clean_up_cv_trans - Internal proc for mowse_io_ *** */ 1503 1504 clean_up_cv_trans: 1505 proc (p_cv_trans_ptr); 1506 1507 1508 /* PROCEDURE FUNCTION 1509* 1510*Free the cv_trans_struc associated with the pointer provided. 1511**/ 1512 1513 /* NOTES 1514**/ 1515 1516 /* INPUT PARAMETERS */ 1517 dcl p_cv_trans_ptr ptr parameter; 1518 1519 /* OUTPUT PARAMETERS */ 1520 1521 /* MISC VARIABLES */ 1522 1523 /* STRUCTURES */ 1524 1525 /* INITIALIZATION */ 1526 1527 /* MAIN */ 1528 1529 if p_cv_trans_ptr ^= null then do; 1530 free p_cv_trans_ptr -> cv_trans_struc; 1531 p_cv_trans_ptr = null; 1532 end; 1533 1534 end clean_up_cv_trans; 1535 1536 /* */ 1537 1538 /* *** Procedure: clean_up_mio_data - Internal proc for mowse_io_ *** */ 1539 1540 clean_up_mio_data: 1541 proc (); 1542 1543 1544 /* PROCEDURE FUNCTION 1545* 1546*Free allocated attach data space back to the system, including possible 1547*existence of the mcb. 1548**/ 1549 1550 /* NOTES 1551**/ 1552 1553 /* MISC VARIABLES */ 1554 dcl temp_ptr ptr; 1555 dcl data char (data_len) based (data_ptr); 1556 dcl data_len fixed bin (21); 1557 dcl data_ptr ptr; 1558 dcl node_ptr ptr; 1559 dcl i fixed bin; 1560 1561 /* MAIN */ 1562 1563 /* If mio_data is not null */ 1564 1565 if mio_data_ptr ^= null then do; 1566 if mio_data.channel_info.user_input.channel ^= 0 then 1567 call ipc_$delete_ev_chn ( 1568 mio_data.channel_info.user_input.channel, (0)); 1569 1570 if mio_data.mcb_ptr ^= null then do; 1571 free mio_data.mcb_ptr -> mcb; 1572 mio_data.mcb_ptr = null; 1573 end; 1574 1575 call clean_up_cv_trans (mio_data.cv_trans_struc_ptr); 1576 1577 do i = 0 to ChnCnt - 1; 1578 node_ptr = mio_data.l_dat (i).out_ptr; 1579 do while (node_ptr ^= null); 1580 data_ptr = node_ptr -> local_data_node.data_ptr; 1581 data_len = node_ptr -> local_data_node.data_len; 1582 free data_ptr -> data; 1583 temp_ptr = node_ptr; 1584 node_ptr = node_ptr -> local_data_node.next; 1585 free temp_ptr -> local_data_node; 1586 end; 1587 end; 1588 1589 free mio_data_ptr -> mowse_io_data; 1590 mio_data_ptr = null; 1591 end; 1592 1593 end clean_up_mio_data; 1594 1595 /* */ 1596 1597 /* *** Procedure: cleanup_modes_info - Internal proc for mowse_io_ *** */ 1598 1599 cleanup_modes_info: 1600 proc (p_info_ptr); 1601 1602 1603 /* PROCEDURE FUNCTION 1604* 1605*Release the modes info structure back to the system_free if it exists. 1606**/ 1607 1608 /* NOTES 1609**/ 1610 1611 /* INPUT PARAMETERS */ 1612 dcl p_info_ptr ptr parameter; 1613 1614 /* MAIN */ 1615 1616 if p_info_ptr ^= null then 1617 free p_info_ptr -> mode_string_info; 1618 1619 end cleanup_modes_info; 1620 1621 /* */ 1622 1623 /* *** Procedure: connect - Internal proc for mowse_io_ *** */ 1624 1625 connect: 1626 proc (p_code); 1627 1628 1629 /* PROCEDURE FUNCTION 1630* 1631*Perform the necessary functions to establish connection with the remote. 1632**/ 1633 1634 /* NOTES 1635**/ 1636 1637 /* INPUT PARAMETERS */ 1638 1639 /* OUTPUT PARAMETERS */ 1640 dcl p_code fixed bin (35) parameter; 1641 1642 /* MISC VARIABLES */ 1643 1644 /* STRUCTURES */ 1645 1646 /* INITIALIZATION */ 1647 p_code = 0; 1648 1649 /* MAIN */ 1650 1651 mio_data.switches.connect_active = True; 1652 call ws_timer_$reset_connect (); 1653 call ws_packet_transmitter_$reset (mio_data_ptr); 1654 1655 do while (mio_data.switches.rs_pending (1) & mio_data.switches.connect_active); 1656 call ws_channel_$wait_block (mio_data_ptr, 1657 addr (mio_data.channel_info.user_input), 1658 "user_input (connect)", mio_data.debug_iocb_ptr); 1659 end; 1660 1661 if ^mio_data.switches.connect_active then do; 1662 p_code = ws_error_$unsupported_ws_terminal; 1663 return; 1664 end; 1665 1666 call ws_channel_$wait_wakeup (mio_data_ptr, 1667 addr (mio_data.channel_info.user_input)); 1668 1669 end connect; 1670 1671 /* */ 1672 1673 /* *** Procedure: disconnect - Internal proc for mowse_io_ *** */ 1674 1675 disconnect: 1676 proc (p_confirmed); 1677 1678 1679 /* PROCEDURE FUNCTION 1680* 1681*Perform the necessary functions to establish a disconnection from the PC 1682*MOWSE in the following manner: 1683* 1684* send disconnect message; 1685* (accept only disconnect confirmation messages) 1686* block until disconnect confirmation received; 1687* send confirmation to disconnect message confirmation; 1688* return to caller; 1689**/ 1690 1691 /* NOTES 1692**/ 1693 1694 /* INPUT PARAMETERS */ 1695 dcl p_confirmed bit (1) parameter; /* Fast or confirmed disconnect */ 1696 1697 /* OUTPUT PARAMETERS */ 1698 1699 /* MISC VARIABLES */ 1700 1701 /* STRUCTURES */ 1702 1703 /* INITIALIZATION */ 1704 1705 /* MAIN */ 1706 1707 /* If interactive_initiated_disconnect is False, then process no further */ 1708 1709 if ^p_confirmed then do; 1710 call ws_packet_transmitter_$supervisory (mio_data_ptr, 1711 byte (FastDis)); 1712 return; 1713 end; 1714 1715 /* Send the disconnect request message */ 1716 1717 call ws_timer_$reset_disconnect (); 1718 call ws_packet_transmitter_$supervisory (mio_data_ptr, 1719 byte (DisCon + Request)); 1720 1721 /* Block until disconnect confirmation received */ 1722 1723 mio_data.ds_pending (1) = True; 1724 do while (mio_data.ds_pending (1)); 1725 call ws_channel_$wait_block (mio_data_ptr, 1726 addr (mio_data.channel_info.user_input), 1727 "user_input (disconnect)", mio_data.debug_iocb_ptr); 1728 end; 1729 call ws_channel_$wait_wakeup (mio_data_ptr, 1730 addr (mio_data.channel_info.user_input)); 1731 1732 /* Send the disconnect confirm confirmation */ 1733 1734 call ws_packet_transmitter_$supervisory (mio_data_ptr, 1735 byte (DisCon + Confirm)); 1736 1737 call ws_tools_$reset_data (mio_data_ptr); 1738 1739 end disconnect; 1740 1741 /* */ 1742 1743 /* *** Procedure: flush_subchannel - Internal proc for mowse_io_ *** */ 1744 1745 flush_subchannel: 1746 proc (p_info_ptr, p_code); 1747 1748 1749 /* PROCEDURE FUNCTION 1750* 1751*Wait until the specified subchannel has been cleared of all pending packets. 1752**/ 1753 1754 /* NOTES 1755**/ 1756 1757 /* INPUT PARAMETERS */ 1758 dcl p_info_ptr ptr parameter; /* Flush info */ 1759 1760 /* OUTPUT PARAMETERS */ 1761 dcl p_code fixed bin (35) parameter; 1762 1763 /* MISC VARIABLES */ 1764 dcl channel fixed bin; /* Channel ID */ 1765 1766 /* STRUCTURES */ 1767 1768 /* INITIALIZATION */ 1769 p_code = 0; 1770 1771 /* MAIN */ 1772 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 1773 return; 1774 1775 channel = p_info_ptr -> mowse_io_flush_subchannel_info.subchannel; 1776 do while (mio_data.s.psn (channel) ^= mio_data.r.asn (channel)); 1777 call ws_channel_$wait_block (mio_data_ptr, 1778 addr (mio_data.channel_info.user_input), 1779 "flush_subchannel", mio_data.debug_iocb_ptr); 1780 end; 1781 call ws_channel_$wait_wakeup (mio_data_ptr, 1782 addr (mio_data.channel_info.user_input)); 1783 1784 end flush_subchannel; 1785 1786 /* */ 1787 1788 /* *** Procedure: get_emulator_state - Internal proc for mowse_io_ *** */ 1789 1790 get_emulator_state: 1791 proc (p_info_ptr, p_code); 1792 1793 1794 /* PROCEDURE FUNCTION 1795* 1796*Determine whether or not WSTERM is attached, if so return True in the info. 1797**/ 1798 1799 /* NOTES 1800**/ 1801 1802 /* INPUT PARAMETERS */ 1803 dcl p_info_ptr ptr parameter; /* Info structure */ 1804 1805 /* OUTPUT PARAMETERS */ 1806 dcl p_code fixed bin (35) parameter; 1807 1808 /* MISC VARIABLES */ 1809 dcl code fixed bin (35); 1810 dcl cap_num fixed bin; /* Capability number of WSTERM */ 1811 1812 /* STRUCTURES */ 1813 1814 /* INITIALIZATION */ 1815 cap_num = 0; 1816 p_code = 0; 1817 1818 /* MAIN */ 1819 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 1820 return; 1821 1822 /* Look for WSTERM on the remote system */ 1823 1824 cap_num = 0; 1825 call ws_$find_capability_number ("WSTERM", REMOTE_SYSTEM, 1826 cap_num, code); 1827 1828 /* Code = 0, there; code = ^0, not there */ 1829 1830 if code ^= 0 then 1831 p_info_ptr -> mowse_io_terminal_state.state = False; 1832 else 1833 p_info_ptr -> mowse_io_terminal_state.state = True; 1834 1835 if code = ws_error_$inconsistent_mowse_tables then 1836 p_code = code; 1837 1838 end get_emulator_state; 1839 1840 /* */ 1841 1842 /* *** Procedure: get_escape_char - Internal proc for mowse_io_ *** */ 1843 1844 get_escape_char: 1845 proc (p_cv_trans_ptr) returns (char (1)); 1846 1847 1848 /* PROCEDURE FUNCTION 1849* 1850*Extracts the escape character from the conversion table. 1851**/ 1852 1853 /* NOTES 1854**/ 1855 1856 /* INPUT PARAMETERS */ 1857 dcl p_cv_trans_ptr ptr parameter; /* Pointer to conversion table */ 1858 1859 /* MISC VARIABLES */ 1860 dcl i fixed bin; 1861 1862 /* INITIALIZATION */ 1863 1864 /* MAIN */ 1865 1866 /* Get a copy of the new translation */ 1867 1868 mio_data.cv_trans_struc_ptr -> cv_trans_struc = 1869 p_cv_trans_ptr -> cv_trans_struc; 1870 1871 /* If there exists a "\" then return it */ 1872 1873 if p_cv_trans_ptr -> cv_trans_struc.cv_trans.value (rank ("\")) 1874 = INPUT_CONVERT_ESCAPE 1875 then 1876 return ("\"); 1877 1878 else do; 1879 i = 0; 1880 do while (i < 256); /* There are 256 elements */ 1881 if p_cv_trans_ptr -> cv_trans_struc.value (i) 1882 = INPUT_CONVERT_ESCAPE 1883 then 1884 return (byte (i)); 1885 else 1886 i = i + 1; 1887 end; 1888 return ("\"); 1889 end; 1890 1891 end get_escape_char; 1892 1893 /* */ 1894 1895 /* *** Procedure: get_new_modes - Internal proc for mowse_io_ *** */ 1896 1897 get_new_modes: 1898 proc (p_newmodes, p_oldmodes, p_erkl_esc, p_pl, p_ll, p_code); 1899 1900 1901 /* PROCEDURE FUNCTION 1902* 1903*Parse the p_newmodes string and extract the necessary information, setting 1904*p_oldmodes to the new modes setting, p_erkl_esc, p_pl, and p_ll to their new 1905*values unless they haven't been changed. 1906**/ 1907 1908 /* NOTES 1909**/ 1910 1911 /* INPUT PARAMETERS */ 1912 dcl p_newmodes char (*) parameter; /* New modes string */ 1913 1914 /* OUTPUT PARAMETERS */ 1915 dcl p_ll fixed bin parameter; /* Line length */ 1916 dcl p_code fixed bin (35) parameter; 1917 dcl p_oldmodes char (*) parameter; /* Modes string */ 1918 dcl p_erkl_esc char (3) parameter; /* Erase, Kill, Escape */ 1919 dcl p_pl fixed bin parameter; /* Page length */ 1920 1921 /* MISC VARIABLES */ 1922 dcl boolean_val bit (1); /* Boolean mode value */ 1923 dcl temp_chmod char (32) var; /* Single mode value string */ 1924 dcl i fixed bin; 1925 dcl force_flag bit (1); /* Force reqyested */ 1926 dcl chmod char (512) var; /* New modes to be changed */ 1927 dcl r_len fixed bin (21); /* Return string length */ 1928 dcl code fixed bin (35); 1929 1930 /* INITIALIZATION */ 1931 boolean_val = ""b; 1932 temp_chmod = ""; 1933 force_flag = ""b; 1934 chmod = ""; 1935 code = 0; 1936 r_len = 0; 1937 p_erkl_esc = byte (0) || byte (0) || byte (0); 1938 p_pl = -1; 1939 p_ll = -1; 1940 p_code = 0; 1941 1942 /* MAIN */ 1943 1944 /* Set the oldmodes value to current settings */ 1945 1946 if length (p_oldmodes) > 0 then 1947 p_oldmodes = mio_data.current_modes; 1948 1949 /* If there are no newmodes (0 length) then return */ 1950 1951 if length (p_newmodes) <= 0 then 1952 return; 1953 1954 /* Parse the new modes string */ 1955 1956 mode_string_info_ptr = null; 1957 on cleanup call cleanup_modes_info (mode_string_info_ptr); 1958 call mode_string_$parse (p_newmodes, null, mode_string_info_ptr, 1959 p_code); 1960 if p_code ^= 0 then do; 1961 call cleanup_modes_info (mode_string_info_ptr); 1962 return; 1963 end; 1964 1965 /* Check and interpret each */ 1966 1967 do i = 1 to mode_string_info.number; 1968 if mode_string_info.modes (i).mode_name = "force" then 1969 force_flag = True; 1970 1971 else if mode_string_info.modes (i).mode_name = "pl" then do; 1972 call parse_modes (addr (mode_string_info.modes (i)), 1973 ("0"b), p_pl, temp_chmod); 1974 chmod = chmod || ","; 1975 chmod = chmod || temp_chmod; 1976 end; 1977 1978 else if mode_string_info.modes (i).mode_name = "ll" then do; 1979 call parse_modes (addr (mode_string_info.modes (i)), 1980 ("0"b), p_ll, temp_chmod); 1981 chmod = chmod || ","; 1982 chmod = chmod || temp_chmod; 1983 end; 1984 1985 else if mode_string_info.modes (i).mode_name = "wake_tbl" 1986 then do; 1987 call parse_modes (addr (mode_string_info.modes (i)), 1988 ("0"b), (0), temp_chmod); 1989 chmod = chmod || ","; 1990 chmod = chmod || temp_chmod; 1991 end; 1992 1993 else if mode_string_info.modes (i).mode_name = "more" 1994 | mode_string_info.modes (i).mode_name = "more_mode" 1995 then 1996 ; /* IGNORE */ 1997 1998 else if mode_string_info.modes (i).mode_name = "crecho" then do; 1999 call parse_modes (addr (mode_string_info.modes (i)), 2000 boolean_val, (0), temp_chmod); 2001 2002 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 8, 1) 2003 = boolean_val; 2004 chmod = chmod || ","; 2005 chmod = chmod || temp_chmod; 2006 end; 2007 2008 else if mode_string_info.modes (i).mode_name = "lfecho" then do; 2009 call parse_modes ( 2010 addr (mode_string_info.modes (i)), boolean_val, 2011 (0), temp_chmod); 2012 2013 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 7, 1) 2014 = boolean_val; 2015 chmod = chmod || ","; 2016 chmod = chmod || temp_chmod; 2017 end; 2018 2019 else if ^force_flag then do; 2020 call cleanup_modes_info (mode_string_info_ptr); 2021 p_code = error_table_$bad_mode; 2022 return; 2023 end; 2024 end; 2025 2026 /* Save the new settings in the current modes */ 2027 2028 if length (chmod) ^= 0 then 2029 call adjust_modes (substr (chmod, 2, length (chmod) - 1)); 2030 2031 /* Release the space to system */ 2032 2033 call cleanup_modes_info (mode_string_info_ptr); 2034 2035 end get_new_modes; 2036 2037 /* */ 2038 2039 /* *** Procedure: initialize_attach_data - Internal proc for mowse_io_ *** */ 2040 2041 initialize_attach_data: 2042 proc (p_code); 2043 2044 2045 /* PROCEDURE FUNCTION 2046* 2047*Initialize the mowse_io_ data. 2048**/ 2049 2050 /* NOTES 2051**/ 2052 2053 /* INPUT PARAMETERS */ 2054 2055 /* OUTPUT PARAMETERS */ 2056 dcl p_code fixed bin (35) parameter; 2057 2058 /* MISC VARIABLES */ 2059 dcl system_free_area_ptr ptr; 2060 dcl system_free_area area based (system_free_area_ptr); 2061 dcl code fixed bin (35); 2062 2063 /* STRUCTURES */ 2064 dcl 01 mode_val like mode_value automatic; 2065 dcl 01 trans like cv_trans_struc automatic; 2066 dcl 01 ed_chars like editing_chars automatic; 2067 2068 /* INITIALIZATION */ 2069 system_free_area_ptr = get_system_free_area_ (); 2070 p_code = 0; 2071 2072 /* MAIN */ 2073 2074 /* Modes */ 2075 2076 call iox_$modes (mio_data.iocb_ptr, "", mio_data.old_modes, p_code); 2077 if p_code ^= 0 then 2078 return; 2079 mio_data.current_modes = mio_data.old_modes; 2080 2081 /* Channel info */ 2082 2083 mio_data.channel_info.process_id = get_process_id_ (); 2084 mio_data.channel_info.packet_receiver.channel = 0; 2085 2086 mio_data.channel_info.user_input.count = 0; 2087 mio_data.channel_info.user_input.flags.transmitted = False; 2088 call ipc_$create_ev_chn (mio_data.channel_info.user_input.channel, 2089 p_code); 2090 if p_code ^= 0 then 2091 return; 2092 2093 /* Get the current conversion table */ 2094 2095 mio_data.cv_trans_struc_ptr = null; 2096 on cleanup call clean_up_cv_trans (mio_data.cv_trans_struc_ptr); 2097 allocate cv_trans_struc in (system_free_area) 2098 set (mio_data.cv_trans_struc_ptr); 2099 mio_data.cv_trans_struc_ptr -> cv_trans_struc.version = 1; 2100 call iox_$control (mio_data.iocb_ptr, "get_input_conversion", 2101 mio_data.cv_trans_struc_ptr, code); 2102 if code ^= 0 then 2103 mio_data.cv_trans_struc_ptr -> cv_trans_struc.default = 1; 2104 2105 /* WSTERM modes header */ 2106 2107 mio_data.WSTERM_modes (WST_HEADER_1) = "S"; 2108 mio_data.WSTERM_modes (WST_HEADER_2) = "T"; 2109 mio_data.WSTERM_modes (WST_HEADER_3) = "M"; 2110 mio_data.WSTERM_modes (WST_LENGTH_HIGH) = byte (0); 2111 mio_data.WSTERM_modes (WST_LENGTH_LOW) = byte (6); 2112 2113 /* WSTERM modes modes (00000xy0 forced) lfecho,crecho,video_mode */ 2114 2115 mio_data.WSTERM_modes (WST_MODES) = byte (0); 2116 mode_val.version = mode_value_version_3; 2117 call mode_string_$get_mode (mio_data.old_modes, "crecho", 2118 addr (mode_val), (0)); 2119 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 8, 1) 2120 = mode_val.flags.boolean_value; 2121 call mode_string_$get_mode (mio_data.old_modes, "lfecho", 2122 addr (mode_val), (0)); 2123 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 7, 1) 2124 = mode_val.flags.boolean_value; 2125 2126 /* WSTERM modes Kill / Erase chars */ 2127 2128 ed_chars.version = editing_chars_version_3; 2129 call iox_$control (mio_data.iocb_ptr, "get_editing_chars", 2130 addr (ed_chars), code); 2131 if code ^= 0 then do; 2132 mio_data.WSTERM_modes (WST_KILL) = "@"; 2133 mio_data.WSTERM_modes (WST_ERASE) = "#"; 2134 end; 2135 else do; 2136 mio_data.WSTERM_modes (WST_KILL) = ed_chars.kill; 2137 mio_data.WSTERM_modes (WST_ERASE) = ed_chars.erase; 2138 end; 2139 2140 /* WSTERM modes Escape character */ 2141 2142 trans.version = 1; 2143 call iox_$control (mio_data.iocb_ptr, "get_input_conversion", 2144 addr (trans), code); 2145 if code ^= 0 then 2146 mio_data.WSTERM_modes (WST_ESCAPE) = "\"; 2147 else 2148 mio_data.WSTERM_modes (WST_ESCAPE) = get_escape_char (addr (trans)); 2149 2150 /* WSTERM modes PL and LL */ 2151 2152 mode_val.version = mode_value_version_3; 2153 call mode_string_$get_mode (mio_data.old_modes, "pl", 2154 addr (mode_val), code); 2155 if code ^= 0 then 2156 mio_data.WSTERM_modes (WST_PAGE_LENGTH) = byte (24); 2157 else 2158 mio_data.WSTERM_modes (WST_PAGE_LENGTH) = byte (mode_val.numeric_value); 2159 2160 call mode_string_$get_mode (mio_data.old_modes, "ll", 2161 addr (mode_val), code); 2162 if code ^= 0 then 2163 mio_data.WSTERM_modes (WST_LINE_LENGTH) = byte (79); 2164 else 2165 mio_data.WSTERM_modes (WST_LINE_LENGTH) = byte (mode_val.numeric_value); 2166 2167 /* Application control info segment */ 2168 2169 mio_data.switches.info_stored = False; 2170 mio_data.info_ptr = null; 2171 mio_data.sleepers = null; 2172 mio_data.dozers = 0; 2173 2174 /* Get an MCB */ 2175 2176 allocate mcb in (system_free_area) set (mio_data.mcb_ptr); 2177 mio_data.mcb_ptr -> mcb.version = MOWSE_VERSION_; 2178 mio_data.mcb_ptr -> mcb.capability_name = "internal_mowse_"; 2179 call capability_$pack (LOCAL_SYSTEM, INTERNAL, 2180 mio_data.mcb_ptr -> mcb.major_capability, (0)); 2181 mio_data.mcb_ptr -> mcb.inbuff_length = 0; 2182 mio_data.mcb_ptr -> mcb.inbuff_position_index = 0; 2183 mio_data.mcb_ptr -> mcb.inbuff_data_length = 0; 2184 mio_data.mcb_ptr -> mcb.outbuff_length = 0; 2185 mio_data.mcb_ptr -> mcb.mbz1 = ""b; 2186 mio_data.mcb_ptr -> mcb.entry_var = bound_process_env_$err_no_operation; 2187 mio_data.mcb_ptr -> mcb.data_block_ptr = null; 2188 mio_data.mcb_ptr -> inbuff = null; 2189 mio_data.mcb_ptr -> mcb.outbuff_list_start = null; 2190 mio_data.mcb_ptr -> mcb.outbuff_list_end = null; 2191 mio_data.mcb_ptr -> mcb.iocb_ptr = null; 2192 mio_data.mcb_ptr -> mcb.mowse_info_ptr = mio_data.info_ptr; 2193 2194 /* Video system (ws_tty) information */ 2195 2196 mio_data.ws.flags.trace = False; 2197 mio_data.ws.flags.debug = False; 2198 mio_data.ws.flags.mark_set = False; 2199 mio_data.ws.flags.video_mode = False; 2200 mio_data.ws.flags.more_input = False; 2201 mio_data.ws.flags.pad = ""b; 2202 mio_data.ws.ips_mask = ""b; 2203 2204 /* Local message data */ 2205 2206 mio_data.l_dat (*).in_ptr = null; 2207 mio_data.l_dat (*).out_ptr = null; 2208 2209 /* sus_ handler information */ 2210 2211 mio_data.sus_data.activated = False; 2212 mio_data.sus_data.pad = ""b; 2213 mio_data.sus_data.sus_entry = null; 2214 2215 /* Buffer space */ 2216 2217 mio_data.user_input.in = 0; 2218 mio_data.user_input.out = 0; 2219 2220 /* State control switches */ 2221 2222 mio_data.switches.quit_enable = True; 2223 mio_data.switches.reset_write = False; 2224 mio_data.switches.disconnect_active = False; 2225 mio_data.switches.rs_pending (*) = False; 2226 mio_data.switches.ds_pending (*) = False; 2227 mio_data.switches.brk_pending = False; 2228 mio_data.switches.br_pending = False; 2229 mio_data.switches.connect_active = False; 2230 mio_data.switches.start_issued = False; 2231 2232 /* Tasking data */ 2233 2234 mio_data.task.active (*) = False; 2235 2236 /* Debug information */ 2237 2238 mio_data.debug_iocb_ptr = null; 2239 mio_data.trace_iocb_ptr = null; 2240 2241 end initialize_attach_data; 2242 2243 /* */ 2244 2245 /* *** Procedure: initialize_iocb - Internal proc for mowse_io_ *** */ 2246 2247 initialize_iocb: 2248 proc (p_iocb_ptr); 2249 2250 2251 /* PROCEDURE FUNCTION 2252* 2253*Initialize the fields of the IOCB. 2254**/ 2255 2256 /* NOTES 2257**/ 2258 2259 /* INPUT PARAMETERS */ 2260 dcl p_iocb_ptr ptr parameter; /* IOCB to be initialized */ 2261 2262 /* MAIN */ 2263 2264 p_iocb_ptr -> iocb.detach_iocb = iox_$err_no_operation; 2265 p_iocb_ptr -> iocb.open = iox_$err_no_operation; 2266 p_iocb_ptr -> iocb.open_file = iox_$err_no_operation; 2267 p_iocb_ptr -> iocb.close = iox_$err_no_operation; 2268 p_iocb_ptr -> iocb.close_file = iox_$err_no_operation; 2269 p_iocb_ptr -> iocb.get_line = iox_$err_no_operation; 2270 p_iocb_ptr -> iocb.get_chars = iox_$err_no_operation; 2271 p_iocb_ptr -> iocb.put_chars = iox_$err_no_operation; 2272 p_iocb_ptr -> iocb.modes = iox_$err_no_operation; 2273 p_iocb_ptr -> iocb.position = iox_$err_no_operation; 2274 p_iocb_ptr -> iocb.control = iox_$err_no_operation; 2275 p_iocb_ptr -> iocb.read_record = iox_$err_no_operation; 2276 p_iocb_ptr -> iocb.write_record = iox_$err_no_operation; 2277 p_iocb_ptr -> iocb.rewrite_record = iox_$err_no_operation; 2278 p_iocb_ptr -> iocb.delete_record = iox_$err_no_operation; 2279 p_iocb_ptr -> iocb.seek_key = iox_$err_no_operation; 2280 p_iocb_ptr -> iocb.read_key = iox_$err_no_operation; 2281 p_iocb_ptr -> iocb.read_length = iox_$err_no_operation; 2282 end initialize_iocb; 2283 2284 /* */ 2285 2286 /* *** Procedure: insert_sleeper - Internal proc for mowse_io_ *** */ 2287 2288 insert_sleeper: 2289 proc (p_info_ptr, p_code); 2290 2291 2292 /* PROCEDURE FUNCTION 2293* 2294*Insert the application to be put to sleep in the sleeper queue positioned 2295*according to when it will wake up. 2296**/ 2297 2298 /* NOTES 2299**/ 2300 2301 /* INPUT PARAMETERS */ 2302 dcl p_info_ptr ptr parameter; /* Info structure */ 2303 2304 /* OUTPUT PARAMETERS */ 2305 dcl p_code fixed bin (35) parameter; 2306 2307 /* MISC VARIABLES */ 2308 dcl fixed71 fixed bin (71) based; 2309 dcl current_time fixed bin (71); 2310 dcl new_ptr ptr; /* New node */ 2311 dcl system_free_area area based (system_free_area_ptr); 2312 dcl system_free_area_ptr ptr; 2313 dcl look_ptr ptr; /* Sleep list search ptr */ 2314 2315 /* STRUCTURES */ 2316 dcl 01 node like mowse_io_sleep_node based; 2317 2318 /* INITIALIZATION */ 2319 p_code = 0; 2320 2321 /* MAIN */ 2322 if ^check_validity (p_info_ptr, mowse_io_info_version_1, p_code) then 2323 return; 2324 2325 /* Make sure it is not trying for <= 0 sleep time */ 2326 2327 if p_info_ptr -> mowse_io_sleep_info.sleep_seconds <= 0 then do; 2328 p_code = ws_error_$invalid_sleep_interval; 2329 return; 2330 end; 2331 2332 /* Make sure caller is not already sleeping */ 2333 2334 look_ptr = mio_data.sleepers; 2335 do while (look_ptr ^= null); 2336 if look_ptr -> mowse_io_sleep_node.major 2337 = p_info_ptr -> mowse_io_sleep_info.major_index 2338 then do; 2339 p_code = ws_error_$already_sleeping; 2340 return; 2341 end; 2342 look_ptr = look_ptr -> mowse_io_sleep_node.next; 2343 end; 2344 2345 /* Get a node and set the info fields */ 2346 2347 system_free_area_ptr = get_system_free_area_ (); 2348 allocate node in (system_free_area) set (new_ptr); 2349 2350 new_ptr -> node.major = 2351 p_info_ptr -> mowse_io_sleep_info.major_index; 2352 new_ptr -> node.last = null; 2353 new_ptr -> node.next = null; 2354 current_time = divide (clock_ (), 1000000, 0); 2355 new_ptr -> node.when = 2356 convert (fixed71, 2357 p_info_ptr -> mowse_io_sleep_info.sleep_seconds) + current_time; 2358 2359 /* Insert the node into the list 2360* - Null list */ 2361 2362 if mio_data.sleepers = null then do; 2363 mio_data.sleepers = new_ptr; 2364 call ws_timer_$queue_sleeper (new_ptr -> node.when); 2365 return; 2366 end; 2367 2368 /* Insert somewhere else 2369* -- End of list */ 2370 2371 look_ptr = mio_data.sleepers; 2372 do while (new_ptr -> node.when >= look_ptr -> node.when); 2373 if look_ptr -> node.next = null then do; 2374 new_ptr -> node.last = look_ptr; 2375 look_ptr -> node.next = new_ptr; 2376 call ws_timer_$queue_sleeper (new_ptr -> node.when); 2377 return; 2378 end; 2379 look_ptr = look_ptr -> node.next; 2380 end; 2381 2382 /* -- Front of list */ 2383 2384 if look_ptr -> node.last = null then do; 2385 new_ptr -> node.next = mio_data.sleepers; 2386 mio_data.sleepers = new_ptr; 2387 look_ptr -> node.last = new_ptr; 2388 call ws_timer_$queue_sleeper (new_ptr -> node.when); 2389 return; 2390 end; 2391 2392 /* Between two nodes */ 2393 2394 else do; 2395 new_ptr -> node.next = look_ptr; 2396 new_ptr -> node.last = look_ptr -> node.last; 2397 look_ptr -> node.last -> node.next = new_ptr; 2398 look_ptr -> node.last = new_ptr; 2399 call ws_timer_$queue_sleeper (new_ptr -> node.when); 2400 return; 2401 end; 2402 2403 end insert_sleeper; 2404 2405 /* */ 2406 2407 /* *** Procedure: parse_modes - Internal proc for mowse_io_ *** */ 2408 2409 parse_modes: 2410 proc (p_mode_info_ptr, p_boolean_value, p_numeric_value, 2411 p_char_value); 2412 2413 2414 /* PROCEDURE FUNCTION 2415* 2416*Look at the mode_value structure and return the appropriate data. 2417**/ 2418 2419 /* NOTES 2420**/ 2421 2422 /* INPUT PARAMETERS */ 2423 dcl p_mode_info_ptr ptr parameter; /* mode_value structure */ 2424 2425 /* OUTPUT PARAMETERS */ 2426 dcl p_boolean_value bit (1) parameter; /* Boolean value of mode */ 2427 dcl p_numeric_value fixed bin parameter; /* Numeric value of mode */ 2428 dcl p_char_value char (*) var parameter; /* Character value of mode */ 2429 2430 /* MISC VARIABLES */ 2431 2432 /* INITIALIZATION */ 2433 p_boolean_value = "0"b; 2434 p_numeric_value = 0; 2435 p_char_value = rtrim (p_mode_info_ptr -> mode_value.mode_name); 2436 2437 /* MAIN */ 2438 2439 if p_mode_info_ptr -> mode_value.flags.boolean_valuep then do; 2440 p_boolean_value 2441 = p_mode_info_ptr -> mode_value.flags.boolean_value; 2442 if ^p_mode_info_ptr -> mode_value.flags.boolean_value then 2443 p_char_value = "^" || p_char_value; 2444 end; 2445 2446 else if p_mode_info_ptr -> mode_value.flags.numeric_valuep then do; 2447 p_numeric_value 2448 = p_mode_info_ptr -> mode_value.numeric_value; 2449 p_char_value 2450 = p_char_value || p_mode_info_ptr -> mode_value.char_value; 2451 end; 2452 2453 else if p_mode_info_ptr -> mode_value.flags.char_valuep then do; 2454 p_char_value 2455 = p_char_value || "=" || p_mode_info_ptr -> mode_value.char_value; 2456 end; 2457 2458 end parse_modes; 2459 2460 /* */ 2461 2462 /* *** Procedure: send_terminal_modes - Internal proc for mowse_io_ *** */ 2463 2464 send_terminal_modes: 2465 proc (p_chars, p_PL, p_LL); 2466 2467 2468 /* PROCEDURE FUNCTION 2469* 2470*Send a predefined mode message string to the MOWSE terminal emulator WSTERM. 2471* 2472*A modes message is formulated and sent through the foreground channel to 2473*be interpretted by WSTERM - the smart terminal emulator. 2474**/ 2475 2476 /* NOTES 2477* 2478*If WSTERM does not exist in the Capability Address Table the message will not 2479*be sent and the error code error_table_$incompatible_term_type will be 2480*returned. 2481* 2482*Below is the format of the modes message: 2483* 2484* -------------------------------------------------------------- 2485*|S|T|M|0|6|mode_switches|kill|erase|esc|line_length|page_length| 2486* -------------------------------------------------------------- 2487* 2488* STM - message header 2489* 06 - "\000\006" length of data of message 2490* mode_switches - "00000111" lfecho, crecho, video mode 2491* kill - kill character 2492* erase - erase character 2493* *esc - escape character 2494* page_length - lines per page 2495* line_length - columns per line 2496* 2497* *If more than one escape characters are defined, then if one of the 2498* characters is "\" it will be specified, otherwise the first 2499* character in the list will be used. 2500* 2501*Values of p_chars, p_PL, or p_LL which are invalid will be looked for in the 2502*current settings and filled in. Invalid settings are as follows: 2503* 2504* p_chars(1:3) = ""; 2505* p_PL < 0; 2506* p_LL < 0: 2507**/ 2508 2509 /* INPUT PARAMETERS */ 2510 dcl p_chars char (3) parameter; /* Kill, Erase, Escape chars */ 2511 dcl p_PL fixed bin parameter; /* Page length */ 2512 dcl p_LL fixed bin parameter; /* Line length */ 2513 2514 /* MISC VARIABLES */ 2515 dcl r_len fixed bin (21); 2516 2517 /* INITIALIZATION */ 2518 r_len = 0; 2519 2520 /* MAIN */ 2521 2522 /* Set the kill character */ 2523 2524 if substr (p_chars, 1, 1) ^= byte (0) then 2525 mio_data.WSTERM_modes (WST_KILL) = substr (p_chars, 1, 1); 2526 2527 /* Set the erase character */ 2528 2529 if substr (p_chars, 2, 1) ^= byte (0) then 2530 mio_data.WSTERM_modes (WST_ERASE) = substr (p_chars, 2, 1); 2531 2532 /* Set the escape character */ 2533 2534 if substr (p_chars, 3, 1) ^= byte (0) then 2535 mio_data.WSTERM_modes (WST_ESCAPE) = substr (p_chars, 3, 1); 2536 2537 /* Set the line length */ 2538 2539 if p_LL >= 0 then 2540 mio_data.WSTERM_modes (WST_LINE_LENGTH) = byte (p_LL); 2541 2542 /* Set the page length */ 2543 2544 if p_PL >= 0 then 2545 mio_data.WSTERM_modes (WST_PAGE_LENGTH) = byte (p_PL); 2546 2547 /* Send the modes message to the Foreground channel */ 2548 2549 call ws_packet_transmitter_$data (mio_data_ptr, FG, 2550 addr (mio_data.WSTERM_modes), 11, FG_CONTROL_MESSAGE); 2551 2552 end send_terminal_modes; 2553 2554 /* */ 2555 2556 /* *** Procedure: set_terminal - Internal proc for mowse_io_ *** */ 2557 2558 set_terminal: 2559 proc (p_info_ptr, p_code); 2560 2561 2562 /* PROCEDURE FUNCTION 2563* 2564*Parse through the termianal info and handle accordingly. 2565**/ 2566 2567 /* NOTES 2568**/ 2569 2570 /* INPUT PARAMETERS */ 2571 dcl p_info_ptr ptr parameter; /* set_term_type_info pointer */ 2572 2573 /* OUTPUT PARAMETERS */ 2574 dcl p_code fixed bin (35) parameter; 2575 2576 /* MISC VARIABLES */ 2577 dcl code fixed bin (35); 2578 dcl ll fixed bin; /* Line length */ 2579 dcl pl fixed bin; /* Page length */ 2580 dcl erkl_esc char (3); /* Erase, kill, escape chars */ 2581 dcl initial_modes char (256); /* Initial modes */ 2582 dcl initial_string char (512) var; /* Initial terminal string */ 2583 2584 /* STRUCTURES */ 2585 dcl 01 initial_string_struc based (addr (initial_string)), 2586 02 data_len fixed bin (21) aligned, 2587 02 data char (512); 2588 dcl 01 term_info like terminal_info aligned automatic; 2589 dcl 01 stty_info like set_term_type_info automatic; 2590 2591 /* INITIALIZATION */ 2592 if ^check_validity_int (p_info_ptr, 1, p_code) then 2593 return; 2594 2595 /* MAIN */ 2596 2597 /* Copy callers set_term_type_info structure */ 2598 2599 stty_info = p_info_ptr -> set_term_type_info; 2600 2601 /* Tell tty_ of the change in terminal info, send init string and set modes 2602* must be nulled out as they are handled differently */ 2603 2604 stty_info.flags.send_initial_string = False; 2605 stty_info.flags.set_modes = False; 2606 stty_info.ignore_line_type = True; 2607 call iox_$control (mio_data.iocb_ptr, "set_term_type", 2608 addr (stty_info), p_code); 2609 if p_code ^= 0 then 2610 return; 2611 2612 /* Get terminal info from tty_ */ 2613 2614 term_info.version = 1; 2615 call iox_$control (mio_data.iocb_ptr, "terminal_info", 2616 addr (term_info), p_code); 2617 if p_code ^= 0 then 2618 return; 2619 2620 /* If terminal modes are to be set, set default modes from the TTT and 2621* ^video_mode and send */ 2622 2623 if p_info_ptr -> set_term_type_info.flags.set_modes then do; 2624 call ttt_info_$modes (rtrim (term_info.term_type), 2625 initial_modes, p_code); 2626 if p_code ^= 0 then 2627 return; 2628 2629 if length (rtrim (initial_modes)) > 0 then do; 2630 call get_new_modes ("force," || initial_modes, "", 2631 erkl_esc, pl, ll, p_code); 2632 if p_code ^= 0 then 2633 return; 2634 end; 2635 2636 substr (unspec (mio_data.WSTERM_modes (WST_MODES)), 9, 1) = "0"b; 2637 call send_terminal_modes (erkl_esc, pl, ll); 2638 end; 2639 2640 if p_info_ptr -> set_term_type_info.flags.send_initial_string then do; 2641 call ttt_info_$initial_string (rtrim (term_info.term_type), 2642 initial_string, code); 2643 if code = 0 then do; 2644 if initial_string_struc.data_len = 0 then do; 2645 p_code = error_table_$no_initial_string; 2646 return; 2647 end; 2648 2649 call ws_packet_transmitter_$data (mio_data_ptr, FG, 2650 addr (initial_string_struc.data), 2651 initial_string_struc.data_len, FG_TERMINAL_DATA); 2652 end; 2653 end; 2654 2655 end set_terminal; 2656 2657 /* */ 2658 2659 /* *** Procedure: setup_entry - Internal proc for mowse_io_ *** */ 2660 2661 setup_entry: 2662 proc (); 2663 2664 2665 /* PROCEDURE FUNCTION 2666* 2667*Initialize all the ENTRY point parameters and mowsish stuff. 2668**/ 2669 2670 /* NOTES 2671**/ 2672 2673 /* MISC VARIABLES */ 2674 2675 /* INITIALIZATION */ 2676 2677 /* MAIN */ 2678 2679 p_code = 0; 2680 iocb_ptr = p_iocb_ptr; 2681 mio_data_ptr 2682 = iocb_ptr -> iocb.actual_iocb_ptr -> iocb.attach_data_ptr; 2683 2684 end setup_entry; 2685 2686 /* */ 2687 2688 2689 2690 /* INCLUDE FILES */ 1 1 /*----------BEGIN ipc_create_arg.incl.pl1------------------------------------*/ 1 2 1 3 /* 1 4* This include file declares the structure which is the input argument to 1 5* ipc_$create_event_channel. 1 6**/ 1 7 1 8 /****^ HISTORY COMMENTS: 1 9* 1) change(86-08-12,Kissel), approve(86-08-12,MCR7479), 1 10* audit(86-10-08,Fawcett), install(86-11-03,MR12.0-1206): 1 11* New include file added to support async event channels. 1 12* END HISTORY COMMENTS */ 1 13 1 14 /* format: style3,linecom,ifthenstmt,indthenelse,^indnoniterdo,indnoniterend,initcol3,dclind5,idind32 */ 1 15 1 16 dcl ipc_create_arg_structure_ptr ptr; 1 17 dcl ipc_create_arg_structure_v1 char (8) internal static options (constant) init ("ipcarg01"); 1 18 1 19 dcl 1 ipc_create_arg_structure aligned based (ipc_create_arg_structure_ptr), 1 20 2 version char (8) unaligned, /* From above. */ 1 21 2 channel_type fixed bin, /* See constants below. */ 1 22 2 call_entry variable entry (ptr), /* For event call channels -- who to call. */ 1 23 2 call_data_ptr ptr, /* For event call channels -- something to tell them. */ 1 24 2 call_priority fixed bin (17); /* For event call channels -- who's first? */ 1 25 1 26 /* Constants for the event channel type. */ 1 27 1 28 dcl FAST_EVENT_CHANNEL_TYPE fixed bin internal static options (constant) init (1); 1 29 dcl WAIT_EVENT_CHANNEL_TYPE fixed bin internal static options (constant) init (2); 1 30 dcl CALL_EVENT_CHANNEL_TYPE fixed bin internal static options (constant) init (3); 1 31 dcl ASYNC_CALL_EVENT_CHANNEL_TYPE fixed bin internal static options (constant) init (4); 1 32 1 33 dcl ANY_CALL_EVENT_CHANNEL_TYPE fixed bin internal static options (constant) init (10); 1 34 1 35 /*----------END ipc_create_arg.incl.pl1--------------------------------------*/ 2691 2 1 /* BEGIN INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-11-11,Flegel), approve(87-07-15,MCR7580), 2 6* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 7* Created from portion of mowse_io_data.incl.pl1 2 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 2 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 10* Approved. 2 11* END HISTORY COMMENTS */ 2 12 2 13 /* : Structure for local data linked list queue */ 2 14 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 2 15 dcl 01 local_data_node based, 2 16 02 data_ptr ptr, /* Local data */ 2 17 02 data_len fixed bin (21), /* Amount of data */ 2 18 02 next ptr; /* Next in line */ 2 19 2 20 /* : Structure for link list of sleeping applications */ 2 21 dcl 01 mowse_io_sleep_node based, 2 22 02 major fixed bin, /* Capability index of sleeper */ 2 23 02 mbz bit (36), 2 24 02 when fixed bin (71), /* Multics wakeup time */ 2 25 02 next ptr, /* Next node in list */ 2 26 02 last ptr; /* Last node in list */ 2 27 2 28 /* END INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 2692 3 1 /* BEGIN INCLUDE FILE: mowse_mcb.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-05-17,Smith), approve(87-07-15,MCR7580), 3 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 6* Created to define the mcb (Mowse Control Block) 3 7* for information on capabilities. 3 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 10* Approved. 3 11* END HISTORY COMMENTS */ 3 12 /* MOWSE control block */ 3 13 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 14 dcl 01 mcb based, 3 15 02 version char (8), 3 16 02 capability_name char (32), /* Name of capability */ 3 17 02 major_capability fixed bin (17), /* Capability number */ 3 18 02 inbuff_length fixed bin (17), /* Length of buffer */ 3 19 02 inbuff_position_index 3 20 fixed bin (17), /* Current position in inbuffer */ 3 21 02 inbuff_data_length 3 22 fixed bin (17), /* Amoiunt of data in inbuffer */ 3 23 02 outbuff_length fixed bin (17), /* Length of outbuffer */ 3 24 02 mbz1 bit (36) unal, 3 25 02 entry_var entry options (variable), /* Message processor entry point of capability */ 3 26 02 data_block_ptr ptr, /* Capability data */ 3 27 02 inbuff ptr, /* Message input buffer */ 3 28 02 outbuff_list_start 3 29 ptr, /* Pointer to outbuffer data */ 3 30 02 outbuff_list_end ptr, /* Last node in outbuffer data */ 3 31 02 iocb_ptr ptr, /* IOCB to mowse_io_ */ 3 32 02 mowse_info_ptr ptr; /* MOWSE information */ 3 33 /* Output buffer linked list node */ 3 34 dcl 01 output_buffer based, 3 35 02 destination_system 3 36 char, /* Destination of message */ 3 37 02 destination_major char, 3 38 02 destination_minor char, 3 39 02 buffer_position fixed bin, /* Position in buffer of message */ 3 40 02 buffer_length fixed bin, /* Length of buffer */ 3 41 02 next_buffer ptr, /* Next buffer of message */ 3 42 02 data ptr; /* Pointer to message */ 3 43 3 44 /* END INCLUDE FILE: mowse_mcb.incl.pl1 * * * * * * * * * * * * */ 2693 4 1 /* BEGIN INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-06-15,Flegel), approve(86-12-16,MCR7580), 4 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 6* Created for control support for mowse_io_. 4 7* 2) change(86-08-01,Flegel), approve(86-12-16,MCR7580), 4 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 9* Changed version fields to char (8) and 4 10* installed version constant. 4 11* 3) change(86-10-08,Flegel), approve(86-12-16,MCR7580), 4 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 13* Added flush_subchannel_info structure. 4 14* 4) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 4 15* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 16* Approved. 4 17* 5) change(86-12-05,Flegel), approve(86-12-05,MCR7580), 4 18* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 19* Added mowse_io_set_video_mode_info structure. 4 20* 6) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 4 21* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 4 22* Changes to support async call channels. 4 23* END HISTORY COMMENTS */ 4 24 4 25 /* : Version number */ 4 26 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 27 dcl mowse_io_info_version_1 4 28 char (8) int static options (constant) 4 29 init ("miover_1"); 4 30 4 31 /* : Mowse store info structure */ 4 32 dcl mowse_io_store_info_ptr 4 33 ptr; 4 34 dcl 01 mowse_io_store_info based (mowse_io_store_info_ptr), 4 35 02 version char (8), 4 36 02 info_ptr ptr; /* Pointer to mowse_info_ structure */ 4 37 4 38 /* : Mowse info structure */ 4 39 dcl mowse_io_info_ptr ptr; 4 40 dcl 01 mowse_io_info based (mowse_io_info_ptr), 4 41 02 version char (8), 4 42 02 mcb_ptr ptr, /* Pointer to mowse_mcb */ 4 43 02 info_ptr ptr; /* Pointer to Mowse information (CATs etc.) */ 4 44 4 45 /* : Control info overlay for debug_on */ 4 46 dcl mowse_io_debug_info_ptr 4 47 ptr; 4 48 dcl 01 mowse_io_debug_info based (mowse_io_debug_info_ptr), 4 49 02 version char (8), 4 50 02 segment_name char (512) var; /* Debug file name */ 4 51 4 52 /* : Control info overlay for get_terminal_emulator_state */ 4 53 dcl mowse_io_terminal_state_ptr 4 54 ptr; 4 55 dcl 01 mowse_io_terminal_state 4 56 based (mowse_io_terminal_state_ptr), 4 57 02 version char (8), 4 58 02 state bit (1) unal, /* WSTERM state */ 4 59 02 mbz bit (35) unal; 4 60 4 61 /* : Control info overlay for send_message and send_local_message */ 4 62 dcl mowse_io_message_ptr ptr; 4 63 dcl 01 mowse_io_message based (mowse_io_message_ptr), 4 64 02 version char (8), 4 65 02 channel fixed bin, /* Channel of message */ 4 66 02 io_message_ptr ptr, /* Pointer to the nonvarying message */ 4 67 02 io_message_len fixed bin (21); /* Length of message */ 4 68 4 69 /* : Control info overlay for put_to_sleep */ 4 70 dcl mowse_io_sleep_info_ptr 4 71 ptr; 4 72 dcl 01 mowse_io_sleep_info based (mowse_io_sleep_info_ptr), 4 73 02 version char (8), 4 74 02 major_index fixed bin, /* CAT index of sleeper */ 4 75 02 sleep_seconds fixed bin; /* Sleep interval */ 4 76 4 77 /* : Control info for flush_subchannel */ 4 78 dcl mowse_io_flush_subchannel_info_ptr 4 79 ptr; 4 80 dcl 01 mowse_io_flush_subchannel_info 4 81 based (mowse_io_flush_subchannel_info_ptr), 4 82 02 version char (8), 4 83 02 subchannel fixed bin; /* The subchannel to be flushed (BG/FG) */ 4 84 4 85 /* : Control info to set the video mode */ 4 86 dcl mowse_io_set_video_mode_info_ptr 4 87 ptr; 4 88 dcl 01 mowse_io_set_video_mode_info 4 89 based (mowse_io_set_video_mode_info_ptr), 4 90 02 version char (8), 4 91 02 mode bit (1) unal, /* On or off */ 4 92 02 mbz bit (35) unal; 4 93 4 94 /* END INCLUDE FILE: mowse_io_control_info.incl.pl1 * * * * * * * * * * * * */ 2694 5 1 /* BEGIN INCLUDE FILE: mowse_info.incl.pl1 * * * * * * * * * * * * */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-07-19,Smith), approve(87-07-15,MCR7580), 5 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 6* Created to define MOWSE information to be 5 7* placed into a temp segment. 5 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 5 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 10* Approved. 5 11* 3) change(87-02-25,Flegel), approve(87-02-25,MCR7580), 5 12* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 13* Added bit switches to the init_mowse_info structure as well as the force 5 14* flag. 5 15* 4) change(87-03-24,Flegel), approve(87-03-24,MCR7580), 5 16* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 17* Added open_struc for passing EOP and escape char info from attach_mowse 5 18* to mowse_io_. 5 19* END HISTORY COMMENTS */ 5 20 5 21 /* CAT index limits */ 5 22 5 23 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 5 24 dcl MINIMUM_CAT_ENTRY fixed bin int static options (constant) init (33); 5 25 dcl MAXIMUM_CAT_ENTRY fixed bin int static options (constant) init (64); 5 26 5 27 dcl CAPABILITY_NAME_LENGTH fixed bin int static options (constant) init (32); 5 28 5 29 /* Mowse information structure */ 5 30 5 31 dcl 01 mowse_info based aligned, 5 32 02 version char (8), 5 33 02 local_cat dimension (33:64), /* Multics CAT table */ 5 34 03 flags, 5 35 04 reset bit (1) unal, /* Reset in progress */ 5 36 04 suspended bit (1) unal, /* Suspended applciation */ 5 37 04 status bit (1) unal, /* Status pending */ 5 38 04 mbz1 bit (33) unal, 5 39 03 sleep_time fixed bin, /* Time application is sleeping */ 5 40 03 mcb_ptr ptr, /* Capability MCB */ 5 41 02 remote_cat dimension (33:64), /* PC CAT table */ 5 42 03 major_capability 5 43 fixed bin, /* Capability number */ 5 44 03 capability_name char (32), /* Name of capability */ 5 45 03 flags, 5 46 04 reset bit (1) unal, /* Reset in progress */ 5 47 04 suspended bit (1) unal, /* Suspended capability */ 5 48 04 sleep_time bit (1) unal, /* Application sleeping */ 5 49 04 mbz2 bit (33) unal, 5 50 02 message_manager_info, /* Info for processing messages */ 5 51 03 head_list_ptr ptr, /* Head of message list */ 5 52 03 tail_list_ptr ptr, /* Tail of message list */ 5 53 03 pending_messages 5 54 fixed bin, /* Number of pending messages */ 5 55 02 mowse_flags, 5 56 03 trace bit (1) unal, /* Message tracing facility active */ 5 57 03 debug bit (1) unal, /* Debugging packets facility active */ 5 58 03 error_handled bit (1) unal, /* In mowse_error_handler procedure */ 5 59 03 mbz1 bit (33) unal, 5 60 03 trace_file_iocb ptr, /* Trace file iocb */ 5 61 03 debug_file_iocb ptr, /* Debug file iocb */ 5 62 02 init_mowse_info_ptr 5 63 ptr; /* Initialization information */ 5 64 5 65 /* MOWSE initialization information */ 5 66 5 67 dcl init_mowse_info_ptr ptr; 5 68 dcl 01 init_mowse_info based (init_mowse_info_ptr), 5 69 02 version char (8), 5 70 02 flags, /* Bit switches */ 5 71 03 trace_sw bit (1) unal, 5 72 03 debug_sw bit (1) unal, 5 73 03 io_switch_sw bit (1) unal, 5 74 03 force_sw bit (1) unal, 5 75 03 start_up_sw bit (1) unal, 5 76 03 escape_sw bit (1) unal, 5 77 03 network_sw bit (1) unal, 5 78 03 pad bit (29) unal, 5 79 02 escape, 5 80 03 chars (0:255) bit (1) unal, /* Character escapes */ 5 81 03 pad bit (32) unal, 5 82 02 trace char (512) var, /* Trace file name */ 5 83 02 debug char (512) var, /* Debug file name */ 5 84 02 io_switch char (512) var, /* Io switch name of mowse_io_ attachment */ 5 85 02 startup (MAXIMUM_CAT_ENTRY - MINIMUM_CAT_ENTRY + 1) 5 86 char (168) var; /* Capability to be autoloaded */ 5 87 5 88 /* Open description structure (this is padded to character bounds as it 5 89* is a character overlay structure - passed as a character string) */ 5 90 5 91 dcl open_struc_ptr ptr; 5 92 dcl 01 open_struc based (open_struc_ptr), 5 93 02 flags, 5 94 03 network_sw bit (1) unal, 5 95 03 escape_sw bit (1) unal, 5 96 03 pad bit (7) unal, 5 97 02 escape, 5 98 03 switches (0:255) bit (1) unal, 5 99 03 pad bit (32) unal, 5 100 02 mbz bit (16) unal; 5 101 5 102 /* END INCLUDE FILE: mowse_info.incl.pl1 * * * * * * * * * * * * */ 2695 6 1 /* BEGIN INCLUDE FILE ... tty_read_status_info.incl.pl1 6 2* 6 3* control structure for the read_status and write_status orders to tty_ 6 4* 6 5* Modified 2/1/83 by Olin Sibert to add tty_write_status_info structure in 6 6* support of lap_simplex_ MPX. 6 7**/ 6 8 6 9 6 10 /****^ HISTORY COMMENTS: 6 11* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 6 12* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 6 13* Prepared for installation. 6 14* END HISTORY COMMENTS */ 6 15 6 16 6 17 dcl 1 tty_read_status_info aligned based (tty_read_status_info_ptr), 6 18 2 event_channel fixed bin (71), 6 19 2 input_pending bit (1); 6 20 6 21 dcl tty_read_status_info_ptr ptr; 6 22 6 23 dcl 1 tty_write_status_info aligned based (tty_write_status_info_ptr), 6 24 2 event_channel fixed bin (71), 6 25 2 output_pending bit (1); 6 26 6 27 dcl tty_write_status_info_ptr ptr; 6 28 6 29 /* END INCLUDE FILE ... tty_read_status_info.incl.pl1 */ 2696 7 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 7 2 7 3 /* Created 5/25/77 by J. Stern */ 7 4 7 5 7 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 7 7 2 version fixed bin, /* version number of this sturcture */ 7 8 2 id char (4) unaligned, /* terminal id from answerback */ 7 9 2 term_type char (32) unaligned, /* terminal type name */ 7 10 2 line_type fixed bin, /* line type number */ 7 11 2 baud_rate fixed bin, 7 12 2 reserved (4) fixed bin; /* reserved for future use */ 7 13 7 14 7 15 dcl terminal_info_ptr ptr; 7 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 7 17 7 18 7 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 2697 8 1 /* BEGIN INCLUDE FILE ... set_term_type_info.incl.pl1 */ 8 2 /* Created 7/18/77 by Robert Coren */ 8 3 /* Defines info structure for set_term_type order */ 8 4 8 5 dcl stti_version_1 fixed bin int static options (constant) init (1); 8 6 dcl sttip ptr; 8 7 8 8 dcl 1 set_term_type_info aligned based (sttip), 8 9 2 version fixed bin, 8 10 2 name char (32) unal, 8 11 2 flags unal, 8 12 3 send_initial_string bit (1), 8 13 3 set_modes bit (1), 8 14 3 ignore_line_type bit (1), 8 15 3 mbz bit (33); 8 16 8 17 /* END INCLUDE FILE ... set_term_type_info.incl.pl1 */ 2698 9 1 /* BEGIN INCLUDE FILE: mowse_io_bad_control.incl.pl1 * * * * * * * * * * * * */ 9 2 9 3 /****^ HISTORY COMMENTS: 9 4* 1) change(86-09-12,Flegel), approve(87-07-15,MCR7580), 9 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 9 6* Created to detect control orders which mowse_io_ deems detrimental to 9 7* its functionality. 9 8* 2) change(86-10-14,Flegel), approve(87-07-15,MCR7580), 9 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 9 10* Removed "set_output_conversion" from the list. 9 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 9 12* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 9 13* Approved. 9 14* END HISTORY COMMENTS */ 9 15 9 16 /* tty_ documented control orders */ 9 17 9 18 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 9 19 dcl N_BAD_CONTROL fixed bin internal static options (constant) 9 20 init (20); 9 21 9 22 dcl MOWSE_IO_BAD_CONTROL (20) char (32) var internal static 9 23 options (constant) init 9 24 ("get_chars_timeout", /* 1 */ 9 25 "get_line_timeout", /* 2 */ 9 26 "interrupt", /* 3 */ 9 27 "listen", /* 4 */ 9 28 "position", /* 5 */ 9 29 "put_chars_timeout", /* 6 */ 9 30 "start_xmit_hd", /* 7 */ 9 31 "stop_xmit_hd", /* 8 */ 9 32 "input_flow_control_info", /* 9 */ 9 33 "output_flow_control_chars", 9 34 /* 10 */ 9 35 "set_delay", /* 11 */ 9 36 "set_framing_chars", /* 12 */ 9 37 "set_input_translation", /* 13 */ 9 38 "set_line_type", /* 14 */ 9 39 "set_output_translation", /* 15 */ 9 40 "set_wakeup_table", /* 16 */ 9 41 "send_initial_string", /* 17 */ 9 42 "set_event_channel", /* 18 */ 9 43 "wru", /* 19 */ 9 44 "modes" /* 20 */ 9 45 ); 9 46 9 47 /* END INCLUDE FILE: mowse_io_bad_control.incl.pl1 * * * * * * * * * * * * */ 2699 10 1 /* BEGIN INCLUDE FILE static_handlers.incl.pl1 */ 10 2 10 3 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 10 4 10 5 /* HISTORY: 10 6*Written by S. H. Webber, 06/20/75. 10 7*Modified: 10 8*12/15/83 by Benson Margulies: added undefined_pointer_sct_index and 10 9* pgt_sct_index. 10 10*06/11/84 by Lee A. Newcomb: added dm_shutdown_warning_sct_index and 10 11* dm_user_shutdown_sct_index for handling of Data Management 10 12* shutdown. 10 13*08/22/84 by R. Michael Tague: Removed dm_shutdown_warning_sct_index and 10 14* dm_user_shutdown_sct_index. Added 10 15* system_shutdown_scheduled_sct_index and 10 16* dm_shutdown_scheduled_sct_index. 10 17**/ 10 18 10 19 10 20 /****^ HISTORY COMMENTS: 10 21* 1) change(85-11-13,Herbst), approve(87-07-21,MCR7697), 10 22* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 10 23* Add system_message_sct_index. 10 24* END HISTORY COMMENTS */ 10 25 10 26 10 27 dcl ( 10 28 shutdown_sct_index init (0), 10 29 store_sct_index init (1), 10 30 mme1_sct_index init (2), 10 31 fault_tag_1_sct_index init (3), 10 32 timer_runout_sct_index init (4), 10 33 command_sct_index init (5), 10 34 derail_sct_index init (6), 10 35 lockup_sct_index init (7), 10 36 connect_sct_index init (8), 10 37 parity_sct_index init (9), 10 38 illegal_procedure_sct_index init (10), 10 39 op_not_complete_sct_index init (11), 10 40 startup_sct_index init (12), 10 41 ovrflo_sct_index init (13), 10 42 zerodivide_sct_index init (14), 10 43 execute_sct_index init (15), 10 44 seg_fault_error_sct_index init (16), 10 45 page_fault_error_sct_index init (17), 10 46 directed_fault_2_sct_index init (18), 10 47 directed_fault_3_sct_index init (19), 10 48 accessviolation_sct_index init (20), 10 49 mme2_sct_index init (21), 10 50 mme3_sct_index init (22), 10 51 mme4_sct_index init (23), 10 52 linkage_error_sct_index init (24), 10 53 fault_tag_3_sct_index init (25), 10 54 undefined_fault_sct_index init (26), 10 55 trouble_sct_index init (31), 10 56 illegal_opcode_sct_index init (32), 10 57 simfault_000000_sct_index init (33), 10 58 illegal_modifier_sct_index init (34), 10 59 illegal_ring_order_sct_index init (35), 10 60 not_in_execute_bracket_sct_index init (36), 10 61 no_execute_permission_sct_index init (37), 10 62 not_in_read_bracket_sct_index init (38), 10 63 no_read_permission_sct_index init (39), 10 64 not_in_write_bracket_sct_index init (40), 10 65 no_write_permission_sct_index init (41), 10 66 not_a_gate_sct_index init (42), 10 67 not_in_call_bracket_sct_index init (43), 10 68 outward_call_sct_index init (44), 10 69 bad_outward_call_sct_index init (45), 10 70 inward_return_sct_index init (46), 10 71 cross_ring_transfer_sct_index init (47), 10 72 ring_alarm_fault_sct_index init (48), 10 73 am_fault_sct_index init (49), 10 74 out_of_bounds_sct_index init (50), 10 75 fixedoverflow_sct_index init (51), 10 76 overflow_sct_index init (52), 10 77 underflow_sct_index init (53), 10 78 stringsize_sct_index init (54), 10 79 other_illegal_proc_sct_index init (55), 10 80 storage_sct_index init (56), 10 81 packed_pointer_fault_sct_index init (57), 10 82 lot_fault_sct_index init (58), 10 83 isot_fault_sct_index init (59), 10 84 system_packed_pointer_sct_index init (60), 10 85 quit_sct_index init (61), 10 86 alrm_sct_index init (62), 10 87 cput_sct_index init (63), 10 88 record_quota_overflow_sct_index init (64), 10 89 size_sct_index init (65), 10 90 neti_sct_index init (66), 10 91 other_command_sct_index init (67), 10 92 susp_sct_index init (68), 10 93 term_sct_index init (69), 10 94 wkp_sct_index init (70), 10 95 undefined_pointer_sct_index init (71), 10 96 pgt_sct_index init (72), 10 97 system_shutdown_scheduled_sct_index 10 98 init (73), 10 99 dm_shutdown_scheduled_sct_index init (74), 10 100 system_message_sct_index init (75) 10 101 ) fixed bin (17) int static options (constant); 10 102 10 103 /* END INCLUDE FILE static_handlers.incl.pl1 */ 2700 11 1 /* BEGIN INCLUDE FILE ... tty_convert.incl.pl1 */ 11 2 11 3 /* tty_ conversion tables */ 11 4 /* Created 11/3/75 by Robert S. Coren */ 11 5 /* Info structures added 5/19/77 by Robert S. Coren */ 11 6 /* Length of cv_trans changed from 128 to 256 05/03/78 by Robert Coren */ 11 7 /* conversion table mnemonics added JRDavis 21 Aug 80 */ 11 8 /* fix special_chars_struc to have good refers Fri 13 Feb 81 JRDavis */ 11 9 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(85-12-01,Negaret), approve(87-07-23,MCR7742), 11 13* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1056): 11 14* Added INPUT_CONVERT_DSA_CR_PROCESSING constant. 11 15* 2) change(88-01-22,Brunelle), approve(88-01-22,MCR7813), 11 16* audit(88-10-05,Blair), install(88-10-17,MR12.2-1171): 11 17* Expand c_chars definition from 3 chars to 15. Change SPECIAL_VERSION 11 18* from 1 to 2. Add version variable to get_special_info_struc and define 11 19* SPECIAL_INFO_STRUCT_VERSION_1. 11 20* END HISTORY COMMENTS */ 11 21 11 22 11 23 /* format: style2,linecom,^indnoniterdo,indcomtxt,^inditerdo,dclind5,idind25 */ 11 24 11 25 11 26 dcl 1 special_chars aligned based, /* table of special character sequences */ 11 27 2 nl_seq aligned like c_chars, /* new-line sequence */ 11 28 2 cr_seq aligned like c_chars, /* carriage-return sequence */ 11 29 2 bs_seq aligned like c_chars, /* backspace sequence */ 11 30 2 tab_seq aligned like c_chars, /* horizontal tab sequence */ 11 31 2 vt_seq aligned like c_chars, /* vertical tab sequence */ 11 32 2 ff_seq aligned like c_chars, /* form-feed sequence */ 11 33 2 printer_on aligned like c_chars, /* printer-on sequence */ 11 34 2 printer_off aligned like c_chars, /* printer_off sequence */ 11 35 2 red_ribbon_shift aligned like c_chars, /* red ribbon shift sequence */ 11 36 2 black_ribbon_shift aligned like c_chars, /* black ribbon shift sequence */ 11 37 2 end_of_page aligned like c_chars, /* end-of-page warning sequence */ 11 38 2 escape_length fixed bin, /* number of escape sequences */ 11 39 2 not_edited_escapes (sc_escape_len refer (special_chars.escape_length)) like c_chars, 11 40 /* use in ^edited mode */ 11 41 2 edited_escapes (sc_escape_len refer (special_chars.escape_length)) like c_chars, 11 42 /* use in edited mode */ 11 43 2 input_escapes aligned, 11 44 3 len fixed bin (8) unaligned, /* length of string */ 11 45 3 str char (sc_input_escape_len refer (special_chars.input_escapes.len)) unaligned, 11 46 /* escape sequence characters */ 11 47 2 input_results aligned, 11 48 3 pad bit (9) unaligned, /* so that strings will look the same */ 11 49 3 str char (sc_input_escape_len refer (special_chars.input_escapes.len)) unaligned; 11 50 /* results of escape sequences */ 11 51 11 52 11 53 dcl c_chars_ptr ptr; 11 54 dcl 1 c_chars based (c_chars_ptr) aligned, 11 55 2 count fixed bin (8) unaligned, 11 56 2 chars (15) char (1) unaligned; 11 57 11 58 dcl sc_escape_len fixed bin; /* count of output escapes to allocate in special_chars */ 11 59 dcl sc_input_escape_len fixed bin; /* count of input escapes to allocate in special_chars */ 11 60 11 61 11 62 dcl 1 cv_trans based aligned, /* conversion/translation table format */ 11 63 2 value (0:255) fixed bin (8) unal; 11 64 11 65 11 66 dcl 1 delay based aligned, /* delay counts for output */ 11 67 2 vert_nl fixed bin, 11 68 2 horz_nl float bin, 11 69 2 const_tab fixed bin, 11 70 2 var_tab float bin, 11 71 2 backspace fixed bin, 11 72 2 vt_ff fixed bin; 11 73 11 74 /* info structures used with orders */ 11 75 11 76 dcl 1 special_chars_struc aligned based, 11 77 2 version fixed bin, 11 78 2 default fixed bin, /* non-zero indicates use default */ 11 79 2 special_chars, /* same as level-1 above */ 11 80 /* has to be spelled out instead of using like */ 11 81 /* because of refer options */ 11 82 3 nl_seq aligned like c_chars, /* new-line sequence */ 11 83 3 cr_seq aligned like c_chars, /* carriage-return sequence */ 11 84 3 bs_seq aligned like c_chars, /* backspace sequence */ 11 85 3 tab_seq aligned like c_chars, /* horizontal tab sequence */ 11 86 3 vt_seq aligned like c_chars, /* vertical tab sequence */ 11 87 3 ff_seq aligned like c_chars, /* form-feed sequence */ 11 88 3 printer_on aligned like c_chars, /* printer-on sequence */ 11 89 3 printer_off aligned like c_chars, /* printer_off sequence */ 11 90 3 red_ribbon_shift aligned like c_chars, /* red ribbon shift sequence */ 11 91 3 black_ribbon_shift aligned like c_chars, /* black ribbon shift sequence */ 11 92 3 end_of_page aligned like c_chars, /* end-of-page warning sequence */ 11 93 3 escape_length fixed bin, /* number of escape sequences */ 11 94 3 not_edited_escapes (sc_escape_len refer (special_chars_struc.escape_length)) like c_chars, 11 95 /* use in ^edited mode */ 11 96 3 edited_escapes (sc_escape_len refer (special_chars_struc.escape_length)) like c_chars, 11 97 /* use in edited mode */ 11 98 3 input_escapes aligned, 11 99 4 len fixed bin (8) unaligned, /* length of string */ 11 100 4 str char (sc_input_escape_len refer (special_chars_struc.input_escapes.len)) unaligned, 11 101 /* escape sequence characters */ 11 102 3 input_results aligned, 11 103 4 pad bit (9) unaligned, /* so that strings will look the same */ 11 104 4 str char (sc_input_escape_len refer (special_chars_struc.input_escapes.len)) unaligned; 11 105 /* results of escape sequences */ 11 106 11 107 dcl 1 cv_trans_struc aligned based, /* all conversion/translation tables */ 11 108 2 version fixed bin, 11 109 2 default fixed bin, /* as above */ 11 110 2 cv_trans like cv_trans; 11 111 11 112 dcl 1 delay_struc aligned based, 11 113 2 version fixed bin, 11 114 2 default fixed bin, /* as above */ 11 115 2 delay like delay; 11 116 11 117 dcl 1 get_special_info_struc based aligned, /* get_special order */ 11 118 2 version char (8), 11 119 2 area_ptr pointer, 11 120 2 table_ptr pointer; 11 121 11 122 dcl SPECIAL_INFO_STRUCT_VERSION_1 11 123 char (8) int static options (constant) init ("sisv1000"); 11 124 dcl SPECIAL_VERSION fixed bin int static options (constant) init (1); 11 125 dcl SPECIAL_VERSION_2 fixed bin int static options (constant) init (2); 11 126 dcl DELAY_VERSION fixed bin int static options (constant) init (1); 11 127 dcl CV_TRANS_VERSION fixed bin int static options (constant) init (2); 11 128 11 129 dcl CV_TRANS_SIZE (2) fixed bin int static options (constant) init (127, 255); 11 130 /* indexed by version number */ 11 131 11 132 11 133 /* values for input and output conversion tables */ 11 134 11 135 dcl ( 11 136 INPUT_CONVERT_ORDINARY init (0), 11 137 INPUT_CONVERT_BREAK init (1), 11 138 INPUT_CONVERT_ESCAPE init (2), 11 139 INPUT_CONVERT_DISCARD init (3), 11 140 INPUT_CONVERT_FORMFEED init (4), 11 141 INPUT_CONVERT_PRECEDENCE_DISCARD 11 142 init (5), 11 143 INPUT_CONVERT_DSA_CR_PROCESSING 11 144 init (6) 11 145 ) fixed bin (8) unaligned internal static options (constant); 11 146 11 147 dcl ( 11 148 OUTPUT_CONVERT_ORDINARY init (0), 11 149 OUTPUT_CONVERT_NEWLINE init (1), 11 150 OUTPUT_CONVERT_CR init (2), 11 151 OUTPUT_CONVERT_HT init (3), 11 152 OUTPUT_CONVERT_BS init (4), 11 153 OUTPUT_CONVERT_VT init (5), 11 154 OUTPUT_CONVERT_FF init (6), 11 155 OUTPUT_CONVERT_OCTAL init (7), 11 156 OUTPUT_CONVERT_RRS init (8), 11 157 OUTPUT_CONVERT_BRS init (9), 11 158 OUTPUT_CONVERT_NO_MOTION init (10), 11 159 OUTPUT_CONVERT_PRECEDENCE_NO_MOTION 11 160 init (11), 11 161 OUTPUT_CONVERT_DONT_SEND init (12), 11 162 OUTPUT_CONVERT_NOT_USED_13 11 163 init (13), 11 164 OUTPUT_CONVERT_NOT_USED_14 11 165 init (14), 11 166 OUTPUT_CONVERT_NOT_USED_15 11 167 init (15), 11 168 OUTPUT_CONVERT_NOT_USED_16 11 169 init (16), 11 170 OUTPUT_CONVERT_FIRST_SPECIAL 11 171 init (17) 11 172 ) fixed bin (8) unaligned internal static options (constant); 11 173 11 174 /* END INCLUDE FILE ... tty_convert.incl.pl1 */ 2701 12 1 12 2 /* BEGIN INCLUDE FILE tty_editing_chars.incl.pl1 */ 12 3 12 4 12 5 /****^ HISTORY COMMENTS: 12 6* 1) change(80-11-19,JRDavis), approve(), audit(), install(): 12 7* Created file to declare structure for (get set)_editing_chars 12 8* control order of tty_. 12 9* 2) change(85-10-16,Negaret), approve(87-06-16,MCR7584), 12 10* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1056): 12 11* Add redisplay char (version 3). 12 12* END HISTORY COMMENTS */ 12 13 12 14 12 15 dcl 1 editing_chars aligned based (editing_chars_ptr), 12 16 2 version fixed bin, 12 17 2 erase char (1) unaligned, 12 18 2 kill char (1) unaligned, 12 19 2 redisplay char (1) unaligned; 12 20 12 21 dcl editing_chars_version_2 fixed bin internal static init (2); 12 22 dcl editing_chars_version_3 fixed bin internal static init (3); 12 23 dcl editing_chars_ptr pointer; 12 24 12 25 /* END INCLUDE FILE tty_editing_chars.incl.pl1 */ 2702 13 1 /* Begin include file ..... iox_modes.incl.pl1 */ 13 2 13 3 /* Written by C. D. Tavares, 03/17/75 */ 13 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 13 5 13 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 13 7 ("stream_input", "stream_output", "stream_input_output", 13 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 13 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 13 10 "direct_input", "direct_output", "direct_update"); 13 11 13 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 13 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 13 14 13 15 dcl (Stream_input initial (1), 13 16 Stream_output initial (2), 13 17 Stream_input_output initial (3), 13 18 Sequential_input initial (4), 13 19 Sequential_output initial (5), 13 20 Sequential_input_output initial (6), 13 21 Sequential_update initial (7), 13 22 Keyed_sequential_input initial (8), 13 23 Keyed_sequential_output initial (9), 13 24 Keyed_sequential_update initial (10), 13 25 Direct_input initial (11), 13 26 Direct_output initial (12), 13 27 Direct_update initial (13)) fixed bin int static options (constant); 13 28 13 29 /* End include file ..... iox_modes.incl.pl1 */ 2703 14 1 /* BEGIN INCLUDE FILE mode_string_info.incl.pl1 */ 14 2 14 3 /* Structure for parse_mode_string_ JRDavis 20 October 1980 14 4* Last modified 12 January 1981 by J. Spencer Love for version 2, make char_value varying string */ 14 5 14 6 declare mode_value_ptr ptr, 14 7 number_of_modes fixed bin; 14 8 14 9 declare 1 mode_string_info aligned based (mode_string_info_ptr), 14 10 2 version fixed bin, 14 11 2 number fixed bin, 14 12 2 modes (number_of_modes refer (mode_string_info.number)) like mode_value; 14 13 14 14 declare mode_string_info_ptr ptr; 14 15 14 16 declare 1 mode_value aligned based (mode_value_ptr), 14 17 2 version fixed bin, 14 18 2 mode_name char (32) unaligned, 14 19 2 flags, 14 20 3 boolean_valuep bit (1) unaligned, 14 21 3 numeric_valuep bit (1) unaligned, 14 22 3 char_valuep bit (1) unaligned, 14 23 3 boolean_value bit (1) unaligned, 14 24 3 pad1 bit (32) unaligned, 14 25 2 numeric_value fixed bin (35), 14 26 2 char_value char (32) varying, 14 27 2 code fixed bin (35), 14 28 2 pad2 bit (36); 14 29 14 30 declare mode_string_info_version_2 fixed bin static options (constant) initial (2), 14 31 mode_value_version_3 fixed bin static options (constant) initial (3); 14 32 14 33 /* END INCLUDE FILE mode_string_info.incl.pl1 */ 2704 15 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 15 2 15 3 /****^ HISTORY COMMENTS: 15 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 15 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 15 6* Created. 15 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 15 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 15 9* Combined mowse_minor_caps.incl.pl1 and 15 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 15 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 15 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 15 13* Approved. 15 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 15 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 15 16* Changes to support async call channels. 15 17* END HISTORY COMMENTS */ 15 18 15 19 /* Name of MOWSE temp seg for data */ 15 20 15 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 15 22 dcl temp_seg_name char (6) init ("MOWSE_"); 15 23 15 24 /* Version number */ 15 25 15 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 15 27 15 28 /* System identification */ 15 29 15 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 15 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 15 32 15 33 /* Status request return codes */ 15 34 15 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 15 36 init (32); 15 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 15 38 init (33); 15 39 15 40 /* Input/output capability buffer size limits */ 15 41 15 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 15 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 15 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 15 45 15 46 /* Packet size (communication) constants */ 15 47 15 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 15 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 15 50 15 51 /* Query message constants */ 15 52 15 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 15 54 dcl ACCEPT fixed bin int static options (constant) init (32); 15 55 dcl REJECT fixed bin int static options (constant) init (33); 15 56 15 57 /* Trace information constants */ 15 58 15 59 dcl RECEIVE fixed bin int static options (constant) init (1); 15 60 dcl SEND fixed bin int static options (constant) init (0); 15 61 15 62 /* Limits on dedicated minor capabilities */ 15 63 15 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 15 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 15 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 15 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 15 68 15 69 /* Dedicated Minor Capabilities */ 15 70 15 71 dcl LAST fixed bin int static options (constant) init (0); 15 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 15 73 dcl EXECUTE_CAPABILITY_REPLY 15 74 fixed bin int static options (constant) init (33); 15 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 15 76 dcl INTERNAL fixed bin int static options (constant) init (32); 15 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 15 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 15 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 15 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 15 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 15 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 15 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 15 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 15 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 15 86 dcl STATUS fixed bin int static options (constant) init (43); 15 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 15 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 15 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 15 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 15 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 15 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 15 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 15 94 dcl CONTINUE fixed bin int static options (constant) init (51); 15 95 dcl MORE fixed bin int static options (constant) init (52); 15 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 15 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 15 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 15 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 15 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 15 101 15 102 /* Foreground */ 15 103 15 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 15 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 15 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 15 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 15 108 dcl PUT_TO_BACKGROUND_BUFFER 15 109 fixed bin int static options (constant) init (37); 15 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 15 111 fixed bin int static options (constant) init (38); 15 112 15 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 2705 16 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 16 2 16 3 /****^ HISTORY COMMENTS: 16 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 16 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 16 6* Created to define MOWSE message formats. 16 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 16 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 16 9* Approved. 16 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 16 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 16 12* Changes to support async call channels. 16 13* END HISTORY COMMENTS */ 16 14 16 15 /* Message Channels */ 16 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 16 17 dcl BG fixed bin int static options (constant) init (0); 16 18 /* Fore ground */ 16 19 dcl FG fixed bin int static options (constant) init (1); 16 20 /* Back ground */ 16 21 16 22 /* Message types: 16 23* 16 24*Each intersystem message is labelled with one of the following types. Upon 16 25*reciept of the message suitable action is undertaken. This scheme was 16 26*introduced to allow the transmission of messsages longer than the maximum 16 27*packet size. 16 28**/ 16 29 16 30 /* Templates for the various messages used throughout the mowse environment. 16 31* Non-allocatable */ 16 32 16 33 dcl message_len fixed bin init (6); 16 34 dcl message_ptr ptr; 16 35 16 36 /* expected format of message */ 16 37 16 38 dcl 01 input_message based (message_ptr), 16 39 02 header, 16 40 03 system char (1) unal, 16 41 03 major char (1) unal, 16 42 03 minor char (1) unal, 16 43 03 source_system char (1) unal, 16 44 03 source_major char (1) unal, 16 45 02 data char (message_len - 5) unal; 16 46 16 47 /* expected format of message to be handled by mowse internal execute command */ 16 48 16 49 dcl 01 execom_message based (message_ptr), 16 50 02 header, 16 51 03 system char (1) unal, 16 52 03 major char (1) unal, 16 53 03 minor char (1) unal, 16 54 03 source_system char (1) unal, 16 55 03 source_major char (1) unal, 16 56 02 data, 16 57 03 cmd_id fixed bin (17) unal, 16 58 03 command char (message_len - 7) unal; 16 59 16 60 /* expected format of message recieved when a request to alter a CAT table 16 61* is made by a remote system */ 16 62 16 63 dcl 01 alter_cat_message based (message_ptr), 16 64 02 header, 16 65 03 system char (1) unal, 16 66 03 major char (1) unal, 16 67 03 minor char (1) unal, 16 68 03 source_system char (1) unal, 16 69 03 source_major char (1) unal, 16 70 02 data, 16 71 03 major char unal, 16 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 16 73 16 74 /* Template used to parse message recieved from some remote system. */ 16 75 16 76 dcl 01 event_message based (message_ptr), 16 77 02 header, 16 78 03 system char (1) unal, 16 79 03 major char (1) unal, 16 80 03 msg_type char (1) unal; 16 81 16 82 /* format of message of MORE type */ 16 83 16 84 dcl 01 request_more_message 16 85 based (message_ptr), 16 86 02 header, 16 87 03 system char (1) unal, 16 88 03 major char (1) unal, 16 89 03 more char (1) unal, 16 90 03 source_system char (1) unal, 16 91 03 source_major char (1) unal, 16 92 03 source_minor char (1) unal; 16 93 16 94 /* format of message of CONTINUE type */ 16 95 16 96 dcl 01 more_remaining_message 16 97 based (message_ptr), 16 98 02 header, 16 99 03 system char (1) unal, 16 100 03 major char (1) unal, 16 101 03 continue char (1) unal, 16 102 03 minor char (1) unal, 16 103 03 source_system char (1) unal, 16 104 03 source_major char (1) unal, 16 105 02 data, 16 106 03 data_buf char (message_len - 6) unal; 16 107 16 108 /* format of message of LAST type */ 16 109 16 110 dcl 01 last_message based (message_ptr), 16 111 02 header, 16 112 03 system char (1) unal, 16 113 03 major char (1) unal, 16 114 03 minor char (1) unal, 16 115 03 source_system char (1) unal, 16 116 03 source_major char (1) unal, 16 117 02 data, 16 118 03 data_buf char (message_len - 5) unal; 16 119 16 120 /* Execute_command_reply message format */ 16 121 16 122 dcl 01 execom_reply_msg based (message_ptr), 16 123 02 header, 16 124 03 system char (1) unal, 16 125 03 major char (1) unal, 16 126 03 minor char (1) unal, 16 127 03 source_system char (1) unal, 16 128 03 source_major char (1) unal, 16 129 02 data, 16 130 03 cmd_id fixed bin unal, 16 131 03 status char unal; 16 132 16 133 /* Used to manage partial messages destined for any application */ 16 134 16 135 dcl msg_node_ptr ptr; 16 136 dcl 01 message_node based (msg_node_ptr), 16 137 02 major fixed bin, 16 138 02 partial_msg_list_ptr 16 139 ptr, 16 140 02 next_node ptr, 16 141 02 prev_node ptr, 16 142 02 last_part_msg ptr; 16 143 16 144 dcl part_msg_ptr ptr; 16 145 dcl 01 partial_message based (part_msg_ptr), 16 146 02 msg_ptr ptr, 16 147 02 msg_len fixed bin, 16 148 02 next_msg ptr; 16 149 16 150 16 151 dcl part_msg_length fixed bin; 16 152 dcl part_msg char (part_msg_length) based; 16 153 16 154 /* Trace information structure */ 16 155 dcl 01 trace_message_info, 16 156 02 direction fixed bin, 16 157 02 from_system fixed bin, 16 158 02 from_major fixed bin, 16 159 02 dest_system fixed bin, 16 160 02 dest_major fixed bin, 16 161 02 dest_minor fixed bin, 16 162 02 msg_type fixed bin, 16 163 02 message char (PACKET_SIZE) var; 16 164 16 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 2706 17 1 /* BEGIN INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 17 2 17 3 /****^ HISTORY COMMENTS: 17 4* 1) change(86-11-06,Flegel), approve(87-07-15,MCR7580), 17 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 17 6* Created. 17 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 17 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 17 9* Approved. 17 10* END HISTORY COMMENTS */ 17 11 17 12 /* Protocol constants */ 17 13 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 17 14 dcl INIT_CRC fixed bin int static options (constant) init (63); 17 15 dcl CONVERT_CRC fixed bin int static options (constant) init (32); 17 16 dcl REVPOLY fixed bin int static options (constant) init (101001b); /* Bit N is coeff of x**(5-N) of generator */ 17 17 dcl OR bit (4) int static options (constant) init ("0111"b); 17 18 dcl XOR bit (4) int static options (constant) init ("0110"b); 17 19 dcl And bit (4) int static options (constant) init ("0001"b); 17 20 17 21 /* Debugging Switches */ 17 22 dcl DBGPKTS bit (1) int static options (constant) init ("0"b); 17 23 /* show packets */ 17 24 dcl DBGREJS bit (1) int static options (constant) init ("1"b); 17 25 /* diagnose rejects */ 17 26 dcl DBGXCHRS bit (1) int static options (constant) init ("0"b); 17 27 /* show extraneous received chars */ 17 28 17 29 /* ASCII Control Characters */ 17 30 17 31 dcl CR char (1) int static options (constant) 17 32 init (" "); 17 33 dcl ESC char (1) int static options (constant) 17 34 init (""); 17 35 dcl LF char (1) int static options (constant) 17 36 init (" 17 37 "); 17 38 dcl SI char (1) int static options (constant) 17 39 init (""); 17 40 dcl SO char (1) int static options (constant) 17 41 init (""); 17 42 dcl SOH char (1) int static options (constant) 17 43 init (""); 17 44 17 45 /* Protocol Bit-field Constants */ 17 46 dcl ChnCnt fixed bin int static options (constant) init (2); 17 47 /* no. logical channels */ 17 48 dcl SeqFld fixed bin int static options (constant) init (2); 17 49 /* no. bits in seq. field */ 17 50 dcl SeqCnt fixed bin int static options (constant) init (4); 17 51 /* 2**SeqFld */ 17 52 dcl SeqMsk fixed bin int static options (constant) init (3); 17 53 /* SeqCnt-1 */ 17 54 17 55 /* Protocol Byte-field Constants */ 17 56 dcl MaxDatLen fixed bin int static options (constant) init (124); 17 57 /* Maximum packet length */ 17 58 dcl SOPLen fixed bin int static options (constant) init (1); 17 59 /* Characters in SOP field */ 17 60 dcl TypLen fixed bin int static options (constant) init (1); 17 61 /* Characters in type field */ 17 62 dcl ChkLen fixed bin int static options (constant) init (1); 17 63 /* Characters in check field */ 17 64 dcl LenLen fixed bin int static options (constant) init (1); 17 65 /* Characters in length field */ 17 66 dcl EOPLen fixed bin int static options (constant) init (1); 17 67 /* Characters in EOP field */ 17 68 dcl MinPktLen fixed bin int static options (constant) init (5); 17 69 /* SOPLen+TypLen+LenLen+ChkLen+EOPLen */ 17 70 dcl MaxPktLen fixed bin int static options (constant) init (129); 17 71 /* MinPktLen+MaxDatLen */ 17 72 17 73 /* Protocol Packet Type Constants */ 17 74 dcl RstOff fixed bin (8) int static options (constant) 17 75 init (32); /* */ 17 76 dcl Request fixed bin (8) int static options (constant) 17 77 init (0); 17 78 dcl Confirm fixed bin (8) int static options (constant) 17 79 init (1); 17 80 dcl RstCnt fixed bin (8) int static options (constant) 17 81 init (2); /* Confirm+1 */ 17 82 dcl FGBrk fixed bin (8) int static options (constant) 17 83 init (36); /* BrkOff+2*FG*/ 17 84 dcl DisCon fixed bin (8) int static options (constant) 17 85 init (34); /* BrkOff+2*BG */ 17 86 dcl FastDis fixed bin (8) int static options (constant) 17 87 init (86); /* NakOff+NakCnt */ 17 88 dcl BrkOff fixed bin (8) int static options (constant) 17 89 init (34); /* RstOff+RstCnt */ 17 90 dcl BrkCnt fixed bin (8) int static options (constant) 17 91 init (4); /* ChnCnt*(Confirm+1) */ 17 92 dcl DatOff fixed bin (8) int static options (constant) 17 93 init (38); /* BrkOff+BrkCnt */ 17 94 dcl DatCnt fixed bin (8) int static options (constant) 17 95 init (32); /* ChnCnt*SeqCnt*SeqCnt */ 17 96 dcl AckOff fixed bin (8) int static options (constant) 17 97 init (70); /* DatOff+DatCnt */ 17 98 dcl AckCnt fixed bin (8) int static options (constant) 17 99 init (8); /* ChnCnt*SeqCnt */ 17 100 dcl NakOff fixed bin (8) int static options (constant) 17 101 init (78); /* AckOff+AckCnt */ 17 102 dcl NakCnt fixed bin (8) int static options (constant) 17 103 init (8); /* ChnCnt*SeqCnt */ 17 104 17 105 /* Protocol Parameters */ 17 106 dcl RQS fixed bin int static options (constant) init (2); 17 107 /* rcvchr's queue size (upper bound of r_pkt) */ 17 108 dcl RWS fixed bin int static options (constant) init (3); 17 109 /* Receiver's window size (upper bound of r_dat */ 17 110 dcl SWS fixed bin int static options (constant) init (3); 17 111 /* Sender's window size (upper bound of s_dat */ 17 112 dcl Lim_r_timer fixed bin int static options (constant) init (7); 17 113 /* Limit for r_timer */ 17 114 dcl Lim_s_timer fixed bin int static options (constant) init (15); 17 115 /* Limit for s_timer */ 17 116 dcl Lim_p_timer fixed bin int static options (constant) init (30); 17 117 /* Limit for pending_timer */ 17 118 dcl Timer_Interval fixed bin (71) int static options (constant) 17 119 init (125000); /* Next wakeup of timer */ 17 120 17 121 /* Tasking priority values */ 17 122 dcl Modem_Reader_Task fixed bin int static options (constant) init (0); 17 123 /* Modem Reader */ 17 124 dcl FG_task fixed bin int static options (constant) init (1); 17 125 /* FG processing */ 17 126 dcl BG_task fixed bin int static options (constant) init (2); 17 127 /* BG processing */ 17 128 dcl Idle bit (1) int static options (constant) init ("0"b); 17 129 /* Task not executing */ 17 130 17 131 /* Capability constants */ 17 132 dcl NO_MINOR fixed bin int static options (constant) init (-1); 17 133 17 134 /* WSTERM modes string indices */ 17 135 17 136 dcl WST_INIT_PL fixed bin int static options (constant) init (23); 17 137 dcl WST_INIT_LL fixed bin int static options (constant) init (79); 17 138 17 139 dcl WST_HEADER_1 fixed bin int static options (constant) init (1); 17 140 dcl WST_HEADER_2 fixed bin int static options (constant) init (2); 17 141 dcl WST_HEADER_3 fixed bin int static options (constant) init (3); 17 142 dcl WST_LENGTH_HIGH fixed bin int static options (constant) init (4); 17 143 dcl WST_LENGTH_LOW fixed bin int static options (constant) init (5); 17 144 dcl WST_MODES fixed bin int static options (constant) init (6); 17 145 dcl WST_KILL fixed bin int static options (constant) init (7); 17 146 dcl WST_ERASE fixed bin int static options (constant) init (8); 17 147 dcl WST_ESCAPE fixed bin int static options (constant) init (9); 17 148 dcl WST_LINE_LENGTH fixed bin int static options (constant) init (10); 17 149 dcl WST_PAGE_LENGTH fixed bin int static options (constant) init (11); 17 150 17 151 /* END INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 2707 18 1 /* BEGIN INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 18 2 18 3 /****^ HISTORY COMMENTS: 18 4* 1) change(87-04-16,Flegel), approve(87-07-15,MCR7580), 18 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 18 6* Created. 18 7* 2) change(87-06-23,Flegel), approve(87-06-23,MCR7649), 18 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 18 9* Converted to support the use of event channels. 18 10* 3) change(88-10-06,Flegel), approve(88-11-16,MCR8023), audit(88-12-12,Lee), 18 11* install(89-01-24,MR12.3-1012): 18 12* phx21215 - Added mowse_io_data.channel_info.foreground to use to generate 18 13* events when something happens in the foreground. 18 14* END HISTORY COMMENTS */ 18 15 18 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 18 17 dcl mowse_io_data_ptr ptr; 18 18 dcl 01 mowse_io_data based (mowse_io_data_ptr), 18 19 02 open_descrip char (19) var, 18 20 02 iocb_ptr ptr aligned, /* mowse_tty iocb pointer */ 18 21 02 default_iocb_ptr ptr aligned, /* mowse_i/o iocb pointer */ 18 22 02 attach_descrip char (256) var, /* Attach description */ 18 23 02 old_modes char (256) unal, /* Modes on previous iocb */ 18 24 18 25 02 current_modes char (256) unal, /* Current mode settings */ 18 26 02 WSTERM_modes (11) char (1), /* Encoded modes for WSTERM */ 18 27 02 cv_trans_struc_ptr ptr, /* Conversion table pointer */ 18 28 18 29 02 info_ptr ptr, /* Application control info seg */ 18 30 02 mcb_ptr ptr, /* Internal MCB to MOWSE */ 18 31 02 sleepers ptr, /* Queue of sleeping applications */ 18 32 02 dozers fixed bin (35), /* Number of unhandled sleeper wakeups */ 18 33 18 34 02 ws, /* Vidoe system control */ 18 35 03 flags, 18 36 04 trace bit (1) unal, 18 37 04 debug bit (1) unal, 18 38 04 mark_set bit (1) unal, 18 39 04 video_mode bit (1) unal, /* State (on/off) of video */ 18 40 04 more_input bit (1) unal, /* Last read unfinished */ 18 41 04 pad bit (31) unal, 18 42 03 read_count fixed bin (17), /* count of unfinished read commands sent */ 18 43 03 ips_mask bit (36) aligned, 18 44 18 45 02 sus_data, /* sus_ information */ 18 46 03 sus_entry ptr, /* Saved sus_ signal handler */ 18 47 03 activated bit (1) unal, /* If sus_ has been signaled */ 18 48 03 pad bit (35) unal, 18 49 18 50 02 channel_info, /* Event channel info */ 18 51 03 process_id bit (36) aligned, /* This process */ 18 52 03 wake_info, 18 53 04 wake_map (0:127) bit (1) unal, /* Break chars */ 18 54 04 pad bit (16) unal, 18 55 03 user_input like wait_info, /* Input wait channel */ 18 56 03 packet_transmitter like wait_info, /* Write events */ 18 57 03 packet_receiver, /* hcs_ events */ 18 58 04 channel fixed bin (71), /* Channel id */ 18 59 03 packet_dispatcher, /* Dispatch channels */ 18 60 04 sync_channel fixed bin (71), /* Process when quiet */ 18 61 04 async_channel fixed bin (71), /* Process NOW! */ 18 62 03 foreground, /* MF - phx21215 - read/write_status, get_event_channel info */ 18 63 04 channel fixed bin (71), /* Event channel */ 18 64 18 65 02 debug_iocb_ptr ptr, /* Debug file IOCB */ 18 66 02 trace_iocb_ptr ptr, /* Trace file IOCB */ 18 67 18 68 02 timer_info (8), 18 69 03 wakeup fixed bin (71), /* Seconds from last in queue */ 18 70 03 timer_id fixed bin, /* Who owns this wakeup */ 18 71 18 72 02 switches, /* Control switches */ 18 73 03 quit_enable bit (1) unal, /* Quit processing state */ 18 74 03 reset_write bit (1) unal, /* resetwrite requested */ 18 75 03 disconnect_active bit (1) unal, /* Disconnection occuring */ 18 76 03 rs_pending (2) bit (1) unal, /* Reset occuring */ 18 77 03 ds_pending (2) bit (1) unal, /* Disconnect occuring */ 18 78 03 br_pending bit (1) unal, /* Break occurring */ 18 79 03 brk_pending bit (1) unal, /* Break occuring (quit) */ 18 80 03 info_stored bit (1) unal, /* Info segment stored */ 18 81 03 connect_active bit (1) unal, /* Connection in progress */ 18 82 03 start_issued bit (1) unal, /* Indicates start order pending */ 18 83 03 pad bit (24) unal, 18 84 18 85 02 task, 18 86 03 active (0:2) bit (1) unal, /* Tasks which are active */ 18 87 03 pad bit (33) unal, 18 88 18 89 02 user_input, /* User_i/o input data */ 18 90 03 in fixed bin (21), /* Next free slot in repository */ 18 91 03 out fixed bin (21), /* Head of data */ 18 92 03 queue (0:4095) char (1), /* Repository */ 18 93 18 94 02 l_dat (0:1), /* Local data message queue */ 18 95 03 in_ptr ptr, /* Incoming messages */ 18 96 03 out_ptr ptr, /* Outgoing messages */ 18 97 18 98 02 r, /* Receiver data */ 18 99 03 eop char (1), /* End of packet character */ 18 100 03 sop char (1), /* Start of packet character */ 18 101 03 esc (0:2) char (1), /* 3 escape characters */ 18 102 03 esc_count fixed bin, /* Number of escaped chars in received packet */ 18 103 03 asn (0:1) fixed bin (3), /* Acknowledge sequence number */ 18 104 03 dat (0:1, 0:3) char (124) var, /* Data queues */ 18 105 03 pkt (0:2) char (129) var, /* Packet queue */ 18 106 03 pktin fixed bin, /* Next packet character in */ 18 107 03 pktout fixed bin, /* Head of packet */ 18 108 03 psn (0:1) fixed bin, /* SN for each channel */ 18 109 03 esckey bit (9) unal, /* Decoding 2nd character escape */ 18 110 03 ignoring (0:1) bit (1) unal, /* Ignore data during synchronization */ 18 111 03 pad bit (25) unal, 18 112 18 113 02 s, /* Sender data */ 18 114 03 eop char (1), /* End of packet character */ 18 115 03 sop char (1), /* Start of packet character */ 18 116 03 esc (0:2) char (1), /* 3 escape characters */ 18 117 03 dat (0:1, 0:3) char (124) var, /* Data queue */ 18 118 03 psn (0:1) fixed bin (3), /* Packet sequence number */ 18 119 03 lasn (0:1) fixed bin (3), /* Last ack sent */ 18 120 03 nasn (0:1) fixed bin (3), /* Next ack to be sent */ 18 121 03 escreq (0:255) bit (1) unal, /* Characters to be escaped */ 18 122 03 pad bit (32) unal; 18 123 18 124 /* Wait channel control struncture */ 18 125 18 126 dcl 01 wait_info based, 18 127 02 channel fixed bin (71) aligned, /* Channel ID */ 18 128 02 count fixed bin, /* Waiting count */ 18 129 02 flags, 18 130 03 transmitted bit (1) unal, /* Wakeup already generated */ 18 131 03 pad bit (35) unal; 18 132 18 133 /* END INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 2708 19 1 /* BEGIN INCLUDE FILE iocbx.incl.pl1 */ 19 2 /* written 27 Dec 1973, M. G. Smith */ 19 3 /* returns attributes removed, hashing support BIM Spring 1981 */ 19 4 /* version made character string June 1981 BIM */ 19 5 /* Modified 11/29/82 by S. Krupp to add new entries and to change 19 6* version number to IOX2. */ 19 7 /* format: style2 */ 19 8 19 9 dcl 1 iocb aligned based, /* I/O control block. */ 19 10 2 version character (4) aligned, /* IOX2 */ 19 11 2 name char (32), /* I/O name of this block. */ 19 12 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 19 13 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 19 14 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 19 15 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 19 16 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 19 17 2 event_channel bit (72), /* Event channel for asynchronous I/O. */ 19 18 2 detach_iocb entry (ptr, fixed bin (35)), 19 19 /* detach_iocb(p) */ 19 20 2 open entry (ptr, fixed, bit (1) aligned, fixed bin (35)), 19 21 /* open(p,mode,not_used) */ 19 22 2 close entry (ptr, fixed bin (35)), 19 23 /* close(p) */ 19 24 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 19 25 /* get_line(p,bufptr,buflen,actlen) */ 19 26 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 19 27 /* get_chars(p,bufptr,buflen,actlen) */ 19 28 2 put_chars entry (ptr, ptr, fixed (21), fixed bin (35)), 19 29 /* put_chars(p,bufptr,buflen) */ 19 30 2 modes entry (ptr, char (*), char (*), fixed bin (35)), 19 31 /* modes(p,newmode,oldmode) */ 19 32 2 position entry (ptr, fixed, fixed (21), fixed bin (35)), 19 33 /* position(p,u1,u2) */ 19 34 2 control entry (ptr, char (*), ptr, fixed bin (35)), 19 35 /* control(p,order,infptr) */ 19 36 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 19 37 /* read_record(p,bufptr,buflen,actlen) */ 19 38 2 write_record entry (ptr, ptr, fixed (21), fixed bin (35)), 19 39 /* write_record(p,bufptr,buflen) */ 19 40 2 rewrite_record entry (ptr, ptr, fixed (21), fixed bin (35)), 19 41 /* rewrite_record(p,bufptr,buflen) */ 19 42 2 delete_record entry (ptr, fixed bin (35)), 19 43 /* delete_record(p) */ 19 44 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed bin (35)), 19 45 /* seek_key(p,key,len) */ 19 46 2 read_key entry (ptr, char (256) varying, fixed (21), fixed bin (35)), 19 47 /* read_key(p,key,len) */ 19 48 2 read_length entry (ptr, fixed (21), fixed bin (35)), 19 49 /* read_length(p,len) */ 19 50 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 19 51 /* open_file(p,mode,desc,not_used,s) */ 19 52 2 close_file entry (ptr, char (*), fixed bin (35)), 19 53 /* close_file(p,desc,s) */ 19 54 2 detach entry (ptr, char (*), fixed bin (35)), 19 55 /* detach(p,desc,s) */ 19 56 /* Hidden information, to support SYN attachments. */ 19 57 2 ios_compatibility ptr, /* Ptr to old DIM's IOS transfer vector. */ 19 58 2 syn_inhibits bit (36), /* Operations inhibited by SYN. */ 19 59 2 syn_father ptr, /* IOCB immediately SYNed to. */ 19 60 2 syn_brother ptr, /* Next IOCB SYNed as this one is. */ 19 61 2 syn_son ptr, /* First IOCB SYNed to this one. */ 19 62 2 hash_chain_ptr ptr; /* Next IOCB in hash bucket */ 19 63 19 64 declare iox_$iocb_version_sentinel 19 65 character (4) aligned external static; 19 66 19 67 /* END INCLUDE FILE iocbx.incl.pl1 */ 2709 2710 2711 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/24/89 0847.0 mowse_io_.pl1 >spec>install>MR12.3-1012>mowse_io_.pl1 2691 1 11/07/86 1550.3 ipc_create_arg.incl.pl1 >ldd>include>ipc_create_arg.incl.pl1 2692 2 08/10/87 1335.9 mowse_io_structures.incl.pl1 >ldd>include>mowse_io_structures.incl.pl1 2693 3 08/10/87 1336.7 mowse_mcb.incl.pl1 >ldd>include>mowse_mcb.incl.pl1 2694 4 08/10/87 1336.7 mowse_io_control_info.incl.pl1 >ldd>include>mowse_io_control_info.incl.pl1 2695 5 08/10/87 1336.7 mowse_info.incl.pl1 >ldd>include>mowse_info.incl.pl1 2696 6 08/11/88 2015.0 tty_read_status_info.incl.pl1 >ldd>include>tty_read_status_info.incl.pl1 2697 7 06/29/77 1624.0 terminal_info.incl.pl1 >ldd>include>terminal_info.incl.pl1 2698 8 09/01/77 1359.3 set_term_type_info.incl.pl1 >ldd>include>set_term_type_info.incl.pl1 2699 9 08/10/87 1336.7 mowse_io_bad_control.incl.pl1 >ldd>include>mowse_io_bad_control.incl.pl1 2700 10 08/06/87 0913.5 static_handlers.incl.pl1 >ldd>include>static_handlers.incl.pl1 2701 11 10/18/88 1210.6 tty_convert.incl.pl1 >ldd>include>tty_convert.incl.pl1 2702 12 08/06/87 0913.5 tty_editing_chars.incl.pl1 >ldd>include>tty_editing_chars.incl.pl1 2703 13 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 2704 14 03/19/81 1206.8 mode_string_info.incl.pl1 >ldd>include>mode_string_info.incl.pl1 2705 15 08/10/87 1336.7 mowse.incl.pl1 >ldd>include>mowse.incl.pl1 2706 16 08/10/87 1335.9 mowse_messages.incl.pl1 >ldd>include>mowse_messages.incl.pl1 2707 17 08/10/87 1336.7 mowse_io_constants.incl.pl1 >ldd>include>mowse_io_constants.incl.pl1 2708 18 01/24/89 0847.4 mowse_io_data.incl.pl1 >spec>install>MR12.3-1012>mowse_io_data.incl.pl1 2709 19 06/03/83 1008.5 iocbx.incl.pl1 >ldd>include>iocbx.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. CAPABILITY_NAME_LENGTH internal static fixed bin(17,0) initial dcl 5-27 ref 16-63 ChnCnt constant fixed bin(17,0) initial dcl 17-46 ref 1577 Confirm constant fixed bin(8,0) initial dcl 17-78 ref 1734 1734 DisCon constant fixed bin(8,0) initial dcl 17-84 ref 1718 1718 1734 1734 FAST_EVENT_CHANNEL_TYPE constant fixed bin(17,0) initial dcl 1-28 ref 1146 FG 000352 constant fixed bin(17,0) initial dcl 16-19 set ref 672* 681* 1235* 2549* 2649* FG_CONTROL_MESSAGE 000002 constant fixed bin(17,0) initial dcl 15-104 set ref 672* 681* 2549* FG_TERMINAL_DATA 000001 constant fixed bin(17,0) initial dcl 15-106 set ref 1235* 2649* False constant bit(1) initial packed unaligned dcl 201 ref 360 369 614 688 876 888 947 959 1439 1444 1488 1493 1830 2087 2169 2196 2197 2198 2199 2200 2211 2223 2224 2225 2226 2227 2228 2229 2230 2234 2604 2605 FastDis constant fixed bin(8,0) initial dcl 17-86 ref 1710 1710 INPUT_CONVERT_ESCAPE constant fixed bin(8,0) initial packed unaligned dcl 11-135 ref 1873 1881 INTERNAL 000342 constant fixed bin(17,0) initial dcl 15-76 set ref 2179* LF 013652 constant char(1) initial packed unaligned dcl 17-35 ref 974 LOCAL_SYSTEM 000342 constant fixed bin(17,0) initial dcl 15-30 set ref 2179* MAXIMUM_CAT_ENTRY internal static fixed bin(17,0) initial dcl 5-25 ref 5-68 MINIMUM_CAT_ENTRY internal static fixed bin(17,0) initial dcl 5-24 ref 5-68 MOWSE_IO_BAD_CONTROL 000007 constant varying char(32) initial array dcl 9-22 ref 791 MOWSE_VERSION_ 000004 constant char(8) initial packed unaligned dcl 15-26 ref 2177 MinPktLen constant fixed bin(17,0) initial dcl 17-68 ref 672 672 681 681 NO_MINOR 000330 constant fixed bin(17,0) initial dcl 17-132 set ref 566* 579* N_BAD_CONTROL constant fixed bin(17,0) initial dcl 9-19 ref 790 PACKET_SIZE internal static fixed bin(17,0) initial dcl 15-48 ref 16-155 REMOTE_SYSTEM 000002 constant fixed bin(17,0) initial dcl 15-31 set ref 1825* Request constant fixed bin(8,0) initial dcl 17-76 ref 1718 1718 Stream_input_output_mode constant fixed bin(17,0) initial dcl 203 ref 1068 True constant bit(1) initial packed unaligned dcl 202 ref 377 606 625 693 709 767 1447 1496 1651 1723 1832 1968 2222 2606 WSTERM_modes 313 based char(1) array level 2 packed packed unaligned dcl 96 set ref 594 644 645 2002 2013 2107* 2108* 2109* 2110* 2111* 2115* 2119 2123 2132* 2133* 2136* 2137* 2145* 2147* 2155* 2157* 2162* 2164* 2524* 2529* 2534* 2539* 2544* 2549 2549 2636 WST_ERASE constant fixed bin(17,0) initial dcl 17-146 ref 645 2133 2137 2529 WST_ESCAPE constant fixed bin(17,0) initial dcl 17-147 ref 2145 2147 2534 WST_HEADER_1 constant fixed bin(17,0) initial dcl 17-139 ref 2107 WST_HEADER_2 constant fixed bin(17,0) initial dcl 17-140 ref 2108 WST_HEADER_3 constant fixed bin(17,0) initial dcl 17-141 ref 2109 WST_INIT_LL constant fixed bin(17,0) initial dcl 17-137 set ref 727* WST_INIT_PL 000000 constant fixed bin(17,0) initial dcl 17-136 set ref 727* WST_KILL constant fixed bin(17,0) initial dcl 17-145 ref 644 2132 2136 2524 WST_LENGTH_HIGH constant fixed bin(17,0) initial dcl 17-142 ref 2110 WST_LENGTH_LOW constant fixed bin(17,0) initial dcl 17-143 ref 2111 WST_LINE_LENGTH constant fixed bin(17,0) initial dcl 17-148 ref 2162 2164 2539 WST_MODES constant fixed bin(17,0) initial dcl 17-144 ref 594 2002 2013 2115 2119 2123 2636 WST_PAGE_LENGTH constant fixed bin(17,0) initial dcl 17-149 ref 2155 2157 2544 activated 334 based bit(1) level 3 packed packed unaligned dcl 96 set ref 383 428 454 460 2211* active 431 based bit(1) array level 3 packed packed unaligned dcl 96 set ref 2234* actual_iocb_ptr 12 based pointer level 2 dcl 19-9 set ref 439* 440 442 444 446 448 450 1103* 1104 1106 1108 1110 1112 1114 1116 1196* 1197 1199 1201 1203 1205 1207 2681 addr builtin function dcl 185 ref 325 325 330 419 419 672 672 681 681 750 750 754 754 768 768 832 832 880 880 951 951 1060 1078 1078 1118 1150 1150 1360 1360 1373 1373 1385 1385 1656 1656 1666 1666 1725 1725 1729 1729 1777 1777 1781 1781 1972 1972 1979 1979 1987 1987 1999 1999 2009 2009 2117 2117 2121 2121 2129 2129 2143 2143 2147 2147 2153 2153 2160 2160 2549 2549 2607 2607 2615 2615 2644 2649 2649 2649 2649 2649 any_other 000456 stack reference condition dcl 197 ref 322 338 416 458 829 840 1075 1123 asn 2447 based fixed bin(3,0) array level 3 dcl 96 set ref 1776 async_channel 360 based fixed bin(71,0) level 4 dcl 96 set ref 519* attach_data_ptr 16 based pointer level 2 dcl 19-9 set ref 329* 2681 attach_descrip 12 based varying char(256) level 2 dcl 96 set ref 300* 303* 303 304* 304 330 attach_descrip_ptr 14 based pointer level 2 dcl 19-9 set ref 243 270 330* 836* boolean_val 000100 automatic bit(1) packed unaligned dcl 1922 set ref 1931* 1999* 2002 2009* 2013 boolean_value 11(03) based bit(1) level 3 in structure "mode_value" packed packed unaligned dcl 14-16 in procedure "mowse_io_" ref 2440 2442 boolean_value 11(03) 000103 automatic bit(1) level 3 in structure "mode_val" packed packed unaligned dcl 2064 in procedure "initialize_attach_data" set ref 2119 2123 boolean_valuep 11 based bit(1) level 3 packed packed unaligned dcl 14-16 ref 2439 bound_process_env_$err_no_operation 000144 constant entry external dcl 152 ref 2186 br_pending 430(07) based bit(1) level 3 packed packed unaligned dcl 96 set ref 2228* brk_pending 430(08) based bit(1) level 3 packed packed unaligned dcl 96 set ref 2227* buf based char(1) array packed unaligned dcl 95 set ref 899* 966* 974 byte builtin function dcl 184 ref 596 596 596 671 671 680 680 736 754 754 1710 1710 1718 1718 1734 1734 1881 1937 1937 1937 2110 2111 2115 2155 2157 2162 2164 2524 2529 2534 2539 2544 c_chars based structure level 1 dcl 11-54 call_data_ptr 10 000336 automatic pointer level 2 dcl 92 set ref 1148* call_entry 4 000336 automatic entry variable level 2 dcl 92 set ref 1147* call_priority 12 000336 automatic fixed bin(17,0) level 2 dcl 92 set ref 1149* cap_num 000563 automatic fixed bin(17,0) dcl 1810 set ref 1815* 1824* 1825* capability_$pack 000140 constant entry external dcl 150 ref 2179 capability_name 2 based char(32) level 2 packed packed unaligned dcl 3-14 set ref 2178* channel 000552 automatic fixed bin(17,0) dcl 1764 in procedure "flush_subchannel" set ref 1775* 1776 1776 channel 354 based fixed bin(71,0) level 4 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 519* 2084* channel 344 based fixed bin(71,0) level 4 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 519* 1566 1566* 2088* channel 350 based fixed bin(71,0) level 4 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 519* channel 362 based fixed bin(71,0) level 4 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 405* 651 719 781 1150* 1188* channel 2 based fixed bin(17,0) level 2 in structure "mowse_io_message" dcl 4-63 in procedure "mowse_io_" set ref 566* 579* channel_info 336 based structure level 2 unaligned dcl 96 channel_type 2 000336 automatic fixed bin(17,0) level 2 dcl 92 set ref 1146* char_value 13 based varying char(32) level 2 dcl 14-16 ref 2449 2454 char_valuep 11(02) based bit(1) level 3 packed packed unaligned dcl 14-16 ref 2453 chmod 000114 automatic varying char(512) dcl 1926 set ref 1934* 1974* 1974 1975* 1975 1981* 1981 1982* 1982 1989* 1989 1990* 1990 2004* 2004 2005* 2005 2015* 2015 2016* 2016 2028 2028 2028 2028 2028 cleanup 000464 stack reference condition dcl 198 ref 290 1332 1957 2096 clock_ 000014 constant entry external dcl 103 ref 2354 close 36 based entry variable level 2 dcl 19-9 set ref 334* 450* 1104* 1207* 2267* close_file 132 based entry variable level 2 dcl 19-9 set ref 335* 448* 1106* 1205* 2268* code 000626 automatic fixed bin(35,0) dcl 2577 in procedure "set_terminal" set ref 2641* 2643 code 000562 automatic fixed bin(35,0) dcl 1809 in procedure "get_emulator_state" set ref 1825* 1830 1835 1835 code 000316 automatic fixed bin(35,0) dcl 1928 in procedure "get_new_modes" set ref 1935* code 000102 automatic fixed bin(35,0) dcl 2061 in procedure "initialize_attach_data" set ref 2100* 2102 2129* 2131 2143* 2145 2153* 2155 2160* 2162 code 26 based fixed bin(35,0) array level 3 in structure "mode_string_info" dcl 14-9 in procedure "mowse_io_" set ref 1359* 1384 codeptr builtin function dcl 183 ref 1094 1094 com_err_ 000060 constant entry external dcl 121 ref 245 254 263 272 281 314 confirmed_disconnect 000300 automatic bit(1) packed unaligned dcl 74 set ref 360* 369* 370* 394* connect_active 430(10) based bit(1) level 3 packed packed unaligned dcl 96 set ref 1651* 1655 1661 2229* control 66 based entry variable level 2 dcl 19-9 set ref 1108* 2274* convert builtin function dcl 182 ref 664 672 672 681 681 2355 count 346 based fixed bin(17,0) level 4 dcl 96 set ref 2086* current_modes 213 based char(256) level 2 packed packed unaligned dcl 96 set ref 1140* 1329 1335* 1343* 1351* 1369* 1369 1376* 1376 1388* 1388 1395* 1395 1946 2079* current_time 000600 automatic fixed bin(71,0) dcl 2309 set ref 2354* 2355 cv_trans 2 based structure level 2 in structure "cv_trans_struc" dcl 11-107 in procedure "mowse_io_" cv_trans based structure level 1 dcl 11-62 in procedure "mowse_io_" cv_trans_struc based structure level 1 dcl 11-107 set ref 1530 1868* 1868 2097 cv_trans_struc_ptr 316 based pointer level 2 dcl 96 set ref 1575* 1868 2095* 2096* 2097* 2099 2100* 2102 data 1 based char(512) level 2 in structure "initial_string_struc" packed packed unaligned dcl 2585 in procedure "set_terminal" set ref 2649 2649 data based char packed unaligned dcl 1555 in procedure "clean_up_mio_data" ref 1582 data_block_ptr 24 based pointer level 2 dcl 3-14 set ref 2187* data_len 000102 automatic fixed bin(21,0) dcl 1556 in procedure "clean_up_mio_data" set ref 1581* 1582 1582 data_len 2 based fixed bin(21,0) level 2 in structure "local_data_node" dcl 2-15 in procedure "mowse_io_" ref 1581 data_len based fixed bin(21,0) level 2 in structure "initial_string_struc" dcl 2585 in procedure "set_terminal" set ref 2644 2649* data_ptr based pointer level 2 in structure "local_data_node" dcl 2-15 in procedure "mowse_io_" ref 1580 data_ptr 000104 automatic pointer dcl 1557 in procedure "clean_up_mio_data" set ref 1580* 1582 debug 327(01) based bit(1) level 4 packed packed unaligned dcl 96 set ref 2197* debug_iocb_ptr 364 based pointer level 2 dcl 96 set ref 410* 511* 517* 519* 880* 951* 1656* 1725* 1777* 2238* default 1 based fixed bin(17,0) level 2 dcl 11-107 set ref 2102* default_iocb_ptr 10 based pointer level 2 dcl 96 set ref 311* delay based structure level 1 dcl 11-66 delete_record 106 based entry variable level 2 dcl 19-9 set ref 2278* detach_iocb 26 based entry variable level 2 dcl 19-9 set ref 331* 442* 1199* 2264* disconnect_active 430(02) based bit(1) level 3 packed packed unaligned dcl 96 set ref 377* 2224* divide builtin function dcl 181 ref 2354 dozers 326 based fixed bin(35,0) level 2 dcl 96 set ref 2172* ds_pending 430(05) based bit(1) array level 3 packed packed unaligned dcl 96 set ref 1723* 1724 2226* ed_chars 000234 automatic structure level 1 unaligned dcl 2066 set ref 2129 2129 editing_chars based structure level 1 dcl 12-15 editing_chars_version_3 000010 internal static fixed bin(17,0) initial dcl 12-22 set ref 641* 2128 entry_var 20 based entry variable level 2 dcl 3-14 set ref 2186* erase 1 based char(1) level 2 in structure "editing_chars" packed packed unaligned dcl 12-15 in procedure "mowse_io_" set ref 645* 736 erase 1 000234 automatic char(1) level 2 in structure "ed_chars" packed packed unaligned dcl 2066 in procedure "initialize_attach_data" set ref 2137 erkl_esc 000317 automatic char(3) packed unaligned dcl 79 in procedure "mowse_io_" set ref 1016* 1025* erkl_esc 000631 automatic char(3) packed unaligned dcl 2580 in procedure "set_terminal" set ref 2630* 2637* error_table_$bad_mode 000104 external static fixed bin(35,0) dcl 133 ref 1069 2021 error_table_$invalid_device 000112 external static fixed bin(35,0) dcl 136 ref 271 280 error_table_$long_record 000100 external static fixed bin(35,0) dcl 131 ref 981 error_table_$no_initial_string 000070 external static fixed bin(35,0) dcl 127 ref 2645 error_table_$not_detached 000116 external static fixed bin(35,0) dcl 138 ref 244 error_table_$null_info_ptr 000076 external static fixed bin(35,0) dcl 130 ref 716 778 1438 1487 error_table_$unable_to_do_io 000110 external static fixed bin(35,0) dcl 135 ref 324 418 831 1077 error_table_$unimplemented_version 000074 external static fixed bin(35,0) dcl 129 ref 1443 1492 error_table_$unsupported_operation 000072 external static fixed bin(35,0) dcl 128 ref 792 error_table_$wrong_no_of_args 000114 external static fixed bin(35,0) dcl 137 ref 253 event_channel based fixed bin(71,0) level 2 dcl 6-17 set ref 719* 781* fatal_error_info 000454 automatic structure level 1 dcl 97 set ref 325 325 419 419 832 832 1078 1078 fixed71 based fixed bin(71,0) dcl 2308 ref 2355 fixedbin21 based fixed bin(21,0) dcl 90 ref 672 672 681 681 fixedbin71al based fixed bin(71,0) dcl 91 set ref 651* flags 327 based structure level 3 in structure "mio_data" packed packed unaligned dcl 96 in procedure "mowse_io_" flags 347 based structure level 4 in structure "mio_data" packed packed unaligned dcl 96 in procedure "mowse_io_" flags 11 000103 automatic structure level 2 in structure "mode_val" packed packed unaligned dcl 2064 in procedure "initialize_attach_data" flags 11 based structure level 2 in structure "set_term_type_info" packed packed unaligned dcl 8-8 in procedure "mowse_io_" flags 11 based structure level 2 in structure "mode_value" dcl 14-16 in procedure "mowse_io_" flags 11 001153 automatic structure level 2 in structure "stty_info" packed packed unaligned dcl 2589 in procedure "set_terminal" force_flag 000113 automatic bit(1) packed unaligned dcl 1925 set ref 1933* 1968* 2019 foreground 362 based structure level 3 unaligned dcl 96 found 000112 automatic bit(1) packed unaligned dcl 1322 set ref 1353* 1358* 1369 get_chars 46 based entry variable level 2 dcl 19-9 set ref 1110* 2270* get_line 42 based entry variable level 2 dcl 19-9 set ref 1112* 2269* get_process_id_ 000036 constant entry external dcl 112 ref 2083 get_system_free_area_ 000064 constant entry external dcl 123 ref 291 2069 2347 hbound builtin function dcl 194 ref 252 302 902 968 hcs_$reset_ips_mask 000056 constant entry external dcl 120 ref 337 432 457 838 1090 1097 1121 1213 hcs_$set_ips_mask 000062 constant entry external dcl 122 ref 328 424 835 1083 1194 i 000100 automatic fixed bin(17,0) dcl 1860 in procedure "get_escape_char" set ref 1879* 1880 1881 1881 1885* 1885 i 000320 automatic fixed bin(17,0) dcl 80 in procedure "mowse_io_" set ref 302* 304* 790* 791* i 000112 automatic fixed bin(17,0) dcl 1924 in procedure "get_new_modes" set ref 1967* 1968 1971 1972 1972 1978 1979 1979 1985 1987 1987 1993 1993 1998 1999 1999 2008 2009 2009* i 000113 automatic fixed bin(17,0) dcl 1323 in procedure "adjust_modes" set ref 1352* 1355 1373 1373* 1383* 1384 1385 1385* i 000110 automatic fixed bin(17,0) dcl 1559 in procedure "clean_up_mio_data" set ref 1577* 1578* ignore_line_type 11(02) 001153 automatic bit(1) level 3 packed packed unaligned dcl 2589 set ref 2606* in 432 based fixed bin(21,0) level 3 dcl 96 set ref 635 704* 721 783 877 894 948 2217* in_ptr 2434 based pointer array level 3 dcl 96 set ref 2206* inbuff 26 based pointer level 2 dcl 3-14 set ref 2188* inbuff_data_length 15 based fixed bin(17,0) level 2 dcl 3-14 set ref 2183* inbuff_length 13 based fixed bin(17,0) level 2 dcl 3-14 set ref 2181* inbuff_position_index 14 based fixed bin(17,0) level 2 dcl 3-14 set ref 2182* ind 000326 automatic fixed bin(17,0) dcl 84 set ref 297* 298 298* 300 index builtin function dcl 192 ref 297 1025 info_ptr 2 based pointer level 2 in structure "mowse_io_store_info" dcl 4-34 in procedure "mowse_io_" ref 605 info_ptr 4 based pointer level 2 in structure "mowse_io_info" dcl 4-40 in procedure "mowse_io_" set ref 547* info_ptr 320 based pointer level 2 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 384 385* 386 387 388* 547 605* 607 614 615 625 626 2170* 2192 info_stored 430(09) based bit(1) level 3 packed packed unaligned dcl 96 set ref 606* 2169* initial_modes 000632 automatic char(256) packed unaligned dcl 2581 set ref 2624* 2629 2630 initial_string 000732 automatic varying char(512) dcl 2582 set ref 2641* 2644 2649 2649 2649 initial_string_struc based structure level 1 unaligned dcl 2585 input_pending 2 based bit(1) level 2 dcl 6-17 set ref 721* 783* io_message_len 6 based fixed bin(21,0) level 2 dcl 4-63 set ref 566* 579* io_message_ptr 4 based pointer level 2 dcl 4-63 set ref 566* 579* iocb based structure level 1 dcl 19-9 iocb_ptr 34 based pointer level 2 in structure "mcb" dcl 3-14 in procedure "mowse_io_" set ref 1127* 2191* iocb_ptr 000322 automatic pointer dcl 81 in procedure "mowse_io_" set ref 243 311 329 330 331 332 333 334 335 336* 439 440 442 444 446 448 450 452* 836 837* 1103 1104 1106 1108 1110 1112 1114 1116 1118 1120* 1196 1197 1199 1201 1203 1205 1207 1209* 2680* 2681 iocb_ptr 6 based pointer level 2 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 310* 454* 460* 698* 750* 770* 797* 1131* 1137* 1211* 1258* 1265* 1272* 1279* 1286* 2076* 2100* 2129* 2143* 2607* 2615* iox_$control 000046 constant entry external dcl 116 ref 460 698 750 770 797 1131 1258 2100 2129 2143 2607 2615 iox_$err_no_operation 000102 constant entry external dcl 132 ref 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 iox_$err_not_open 000106 constant entry external dcl 134 ref 334 335 448 450 1205 1207 iox_$get_chars 000050 constant entry external dcl 117 ref 1265 iox_$get_line 000044 constant entry external dcl 115 ref 1272 iox_$look_iocb 000066 constant entry external dcl 124 ref 261 iox_$modes 000040 constant entry external dcl 113 ref 454 1137 1211 1286 2076 iox_$propagate 000054 constant entry external dcl 119 ref 336 452 837 1120 1209 iox_$put_chars 000042 constant entry external dcl 114 ref 1279 ipc_$create_ev_chn 000034 constant entry external dcl 111 ref 2088 ipc_$create_event_channel 000012 constant entry external dcl 102 ref 1150 ipc_$delete_ev_chn 000022 constant entry external dcl 106 ref 405 1188 1566 ipc_arg 000336 automatic structure level 1 dcl 92 set ref 1150 1150 ipc_create_arg_structure based structure level 1 dcl 1-19 ipc_create_arg_structure_v1 000276 constant char(8) initial packed unaligned dcl 1-17 ref 1145 ips_mask 331 based bit(36) level 3 dcl 96 set ref 2202* j 000111 automatic fixed bin(17,0) dcl 1321 set ref 1354* 1355 1359 1360 1360* kill 1(09) 000234 automatic char(1) level 2 in structure "ed_chars" packed packed unaligned dcl 2066 in procedure "initialize_attach_data" set ref 2136 kill 1(09) based char(1) level 2 in structure "editing_chars" packed packed unaligned dcl 12-15 in procedure "mowse_io_" set ref 644* 736 l_dat 2434 based structure array level 2 unaligned dcl 96 last 6 based pointer level 2 dcl 2316 set ref 2352* 2374* 2384 2387* 2396* 2396 2397 2398* length builtin function dcl 191 ref 298 370 1057 1946 1951 2028 2028 2028 2629 ll 000627 automatic fixed bin(17,0) dcl 2578 in procedure "set_terminal" set ref 2630* 2637* ll 000316 automatic fixed bin(17,0) dcl 78 in procedure "mowse_io_" set ref 664* 664 665* 1016* 1025* ll_overlay based fixed bin(9,0) dcl 94 ref 664 local_data_node based structure level 1 unaligned dcl 2-15 ref 1585 look_ptr 000606 automatic pointer dcl 2313 set ref 2334* 2335 2336 2342* 2342 2371* 2372 2373 2374 2375 2379* 2379 2384 2387 2395 2396 2397 2398 ltrim builtin function dcl 180 ref 505 major based fixed bin(17,0) level 2 in structure "node" dcl 2316 in procedure "insert_sleeper" set ref 2350* major based fixed bin(17,0) level 2 in structure "mowse_io_sleep_node" dcl 2-21 in procedure "mowse_io_" ref 2336 major_capability 12 based fixed bin(17,0) level 2 dcl 3-14 set ref 2179* major_index 2 based fixed bin(17,0) level 2 dcl 4-72 ref 2336 2350 mark_set 327(02) based bit(1) level 4 packed packed unaligned dcl 96 set ref 2198* mask 000332 automatic bit(36) dcl 86 set ref 238* 328* 337* 337* 373* 424* 432* 432* 457* 457* 821* 835* 838* 838* 1062* 1083* 1090* 1090* 1097* 1097* 1121* 1121* 1194* 1213* 1213* mbz1 17 based bit(36) level 2 packed packed unaligned dcl 3-14 set ref 2185* mcb based structure level 1 unaligned dcl 3-14 set ref 1571 2176 mcb_ptr 322 based pointer level 2 in structure "mio_data" dcl 96 in procedure "mowse_io_" set ref 546 607 1127 1570 1571 1572* 2176* 2177 2178 2179 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 mcb_ptr 2 based pointer level 2 in structure "mowse_io_info" dcl 4-40 in procedure "mowse_io_" set ref 546* message_len 000500 automatic fixed bin(17,0) initial dcl 16-33 set ref 16-33* mio_data based structure level 1 unaligned dcl 96 set ref 292 293* mio_data_ptr 000334 automatic pointer dcl 87 set ref 288* 292* 293 300 303 303 304 304 310 311 329 330 377 383 384 385 386 387 388 401* 405 410 411 428 429 454 454 454 460 460 511 517 519 519 519 519 519 519 519 546 547 566* 579* 592 594 594 605 606 607 607 613 614 615 622 625 626 626 635 635 644 645 651 672* 681* 688 693 698 704 704 709 719 721 721 750 767 768* 768 768 770 781 783 783 797 876 877 877 877 880* 880 880 880 887 888 894 894 899 899 902 902 902 947 948 948 948 951* 951 951 951 958 959 966 966 968 968 968 1087 1118 1119 1127 1131 1137 1137 1140 1140 1150 1157* 1158* 1160* 1165* 1169* 1184* 1188 1211 1211 1235* 1258 1265 1272 1279 1286 1329 1335 1343 1351 1369 1369 1376 1376 1388 1388 1395 1395 1565 1566 1566 1570 1571 1572 1575 1578 1589 1590* 1651 1653* 1655 1655 1656* 1656 1656 1656 1661 1666* 1666 1666 1710* 1718* 1723 1724 1725* 1725 1725 1725 1729* 1729 1729 1734* 1737* 1776 1776 1777* 1777 1777 1777 1781* 1781 1781 1868 1946 2002 2013 2076 2076 2079 2079 2083 2084 2086 2087 2088 2095 2096 2097 2099 2100 2100 2102 2107 2108 2109 2110 2111 2115 2117 2119 2121 2123 2129 2132 2133 2136 2137 2143 2145 2147 2153 2155 2157 2160 2162 2164 2169 2170 2171 2172 2176 2177 2178 2179 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2192 2196 2197 2198 2199 2200 2201 2202 2206 2207 2211 2212 2213 2217 2218 2222 2223 2224 2225 2226 2227 2228 2229 2230 2234 2238 2239 2334 2362 2363 2371 2385 2386 2524 2529 2534 2539 2544 2549* 2549 2549 2607 2615 2636 2649* 2681* mod builtin function dcl 188 ref 902 968 mode 2 based bit(1) level 2 packed packed unaligned dcl 4-88 ref 592 mode_name 1 based char(32) level 2 in structure "mode_value" packed packed unaligned dcl 14-16 in procedure "mowse_io_" ref 2435 mode_name 3 based char(32) array level 3 in structure "mode_string_info" packed packed unaligned dcl 14-9 in procedure "mowse_io_" set ref 1355 1355 1968 1971 1978 1985 1993 1993 1998 2008 mode_string_$get_mode 000030 constant entry external dcl 109 ref 2117 2121 2153 2160 mode_string_$parse 000032 constant entry external dcl 110 ref 1343 1345 1958 mode_string_info based structure level 1 dcl 14-9 set ref 1616 mode_string_info_ptr 000474 automatic pointer dcl 14-14 set ref 1956* 1957* 1958* 1961* 1967 1968 1971 1972 1972 1978 1979 1979 1985 1987 1987 1993 1993 1998 1999 1999 2008 2009 2009 2020* 2033* mode_val 000103 automatic structure level 1 unaligned dcl 2064 set ref 2117 2117 2121 2121 2153 2153 2160 2160 mode_value based structure level 1 dcl 14-16 mode_value_version_3 constant fixed bin(17,0) initial dcl 14-30 ref 2116 2152 modes 56 based entry variable level 2 in structure "iocb" dcl 19-9 in procedure "mowse_io_" set ref 1116* 2272* modes 2 based structure array level 2 in structure "mode_string_info" dcl 14-9 in procedure "mowse_io_" set ref 1360 1360 1373 1373 1385 1385 1972 1972 1979 1979 1987 1987 1999 1999 2009 2009 more_input 327(04) based bit(1) level 4 packed packed unaligned dcl 96 set ref 2200* mowse_flags 710 based structure level 2 dcl 5-31 mowse_info based structure level 1 dcl 5-31 set ref 387 mowse_info_ptr 36 based pointer level 2 dcl 3-14 set ref 607* 2192* mowse_io_call_control_ 000200 constant entry external dcl 166 ref 657 mowse_io_data based structure level 1 unaligned dcl 18-18 ref 1589 mowse_io_flush_subchannel_info based structure level 1 unaligned dcl 4-80 mowse_io_info based structure level 1 unaligned dcl 4-40 mowse_io_info_version_1 000274 constant char(8) initial packed unaligned dcl 4-27 set ref 543* 563* 576* 589* 602* 1772* 1819* 2322* mowse_io_message based structure level 1 unaligned dcl 4-63 mowse_io_set_video_mode_info based structure level 1 packed packed unaligned dcl 4-88 mowse_io_sleep_info based structure level 1 unaligned dcl 4-72 mowse_io_sleep_node based structure level 1 unaligned dcl 2-21 mowse_io_store_info based structure level 1 unaligned dcl 4-34 mowse_io_terminal_state based structure level 1 packed packed unaligned dcl 4-55 new_mode 000100 automatic varying char(32) dcl 1320 set ref 1360* 1369 1373* 1376 1385* 1388 new_modes 000100 automatic char(512) packed unaligned dcl 73 set ref 1135* 1137 1137 new_ptr 000602 automatic pointer dcl 2310 set ref 2348* 2350 2352 2353 2355 2363 2364 2372 2374 2375 2376 2385 2386 2387 2388 2395 2396 2397 2398 2399 newmodes_ptr 000114 automatic pointer dcl 1324 set ref 1331* 1334* 1345* 1354 1355 1359 1360 1360 1383 1384 1385 1385 1400* next 4 based pointer level 2 in structure "mowse_io_sleep_node" dcl 2-21 in procedure "mowse_io_" ref 2342 next 4 based pointer level 2 in structure "local_data_node" dcl 2-15 in procedure "mowse_io_" ref 1584 next 4 based pointer level 2 in structure "node" dcl 2316 in procedure "insert_sleeper" set ref 2353* 2373 2375* 2379 2385* 2395* 2397* node based structure level 1 unaligned dcl 2316 set ref 2348 node_ptr 000106 automatic pointer dcl 1558 set ref 1578* 1579 1580 1581 1583 1584* 1584 null builtin function dcl 193 ref 239 243 270 279 288 289 384 386 388 440 460 460 615 715 777 836 871 937 1048 1055 1131 1131 1148 1197 1330 1331 1343 1343 1345 1345 1437 1486 1529 1531 1565 1570 1572 1579 1590 1616 1956 1958 1958 2095 2170 2171 2187 2188 2189 2190 2191 2206 2207 2213 2238 2239 2335 2352 2353 2362 2373 2384 number 1 based fixed bin(17,0) level 2 dcl 14-9 ref 1352 1354 1383 1616 1967 numeric_value 12 000103 automatic fixed bin(35,0) level 2 in structure "mode_val" dcl 2064 in procedure "initialize_attach_data" set ref 2157 2164 numeric_value 12 based fixed bin(35,0) level 2 in structure "mode_value" dcl 14-16 in procedure "mowse_io_" ref 2447 numeric_valuep 11(01) based bit(1) level 3 packed packed unaligned dcl 14-16 ref 2446 old_modes 113 based char(256) level 2 packed packed unaligned dcl 96 set ref 454* 1137* 1140 1211* 2076* 2079 2117* 2121* 2153* 2160* oldmodes_ptr 000116 automatic pointer dcl 1325 set ref 1330* 1333* 1343* 1352 1355 1373 1373 1399* open 32 based entry variable level 2 dcl 19-9 set ref 332* 444* 1201* 2265* open_descrip based varying char(19) level 2 dcl 96 set ref 1118 1119* open_descrip_ptr 20 based pointer level 2 dcl 19-9 set ref 279 440* 1118* 1197* open_file 126 based entry variable level 2 dcl 19-9 set ref 333* 446* 1203* 2266* open_struc_ptr 000472 automatic pointer dcl 5-91 set ref 1048* 1055* 1060* 1160* 1169* order 000304 automatic varying char(32) dcl 76 set ref 505* 511 516 537 542 552 557 562 575 588 601 612 621 635 640 650 657 657 663 670 679 688 693 698 704 709 714 727 732 745 761 766 776 791 out 433 based fixed bin(21,0) level 3 dcl 96 set ref 635* 704 721 783 877 894 899 902* 902 948 966 968* 968 2218* out_ptr 2436 based pointer array level 3 dcl 96 set ref 1578 2207* outbuff_length 16 based fixed bin(17,0) level 2 dcl 3-14 set ref 2184* outbuff_list_end 32 based pointer level 2 dcl 3-14 set ref 2190* outbuff_list_start 30 based pointer level 2 dcl 3-14 set ref 2189* p_LL parameter fixed bin(17,0) dcl 2512 ref 2464 2539 2539 p_PL parameter fixed bin(17,0) dcl 2511 ref 2464 2544 2544 p_boolean_value parameter bit(1) packed unaligned dcl 2426 set ref 2409 2433* 2440* p_buf_len parameter fixed bin(21,0) dcl 59 set ref 847 869 894 913 935 942 1221 1235* 1262 1265* 1269 1272* 1276 1279* p_buf_ptr parameter pointer dcl 60 set ref 847 871 899 913 937 966 974 1221 1235* 1262 1265* 1269 1272* 1276 1279* p_char_value parameter varying char dcl 2428 set ref 2409 2435* 2442* 2442 2449* 2449 2454* 2454 p_chars parameter char(3) packed unaligned dcl 2510 ref 2464 2524 2524 2529 2529 2534 2534 p_chars_read parameter fixed bin(21,0) dcl 69 set ref 847 864* 894 897* 897 899 913 930* 942 965* 965 966 974 1262 1265* 1269 1272* p_code parameter fixed bin(35,0) dcl 2574 in procedure "set_terminal" set ref 2558 2592* 2607* 2609 2615* 2617 2624* 2626 2630* 2632 2645* p_code parameter fixed bin(35,0) dcl 1761 in procedure "flush_subchannel" set ref 1745 1769* 1772* p_code parameter fixed bin(35,0) dcl 1474 in procedure "check_validity_int" set ref 1455 1483* 1487* 1492* p_code parameter fixed bin(35,0) dcl 1916 in procedure "get_new_modes" set ref 1897 1940* 1958* 1960 2021* p_code parameter fixed bin(35,0) dcl 1640 in procedure "connect" set ref 1625 1647* 1662* p_code parameter fixed bin(35,0) dcl 1806 in procedure "get_emulator_state" set ref 1790 1816* 1819* 1835* p_code parameter fixed bin(35,0) dcl 2056 in procedure "initialize_attach_data" set ref 2041 2070* 2076* 2077 2088* 2090 p_code parameter fixed bin(35,0) dcl 1425 in procedure "check_validity" set ref 1408 1434* 1438* 1443* p_code parameter fixed bin(35,0) dcl 70 in procedure "mowse_io_" set ref 222 244* 245* 253* 254* 261* 262 263* 271* 272* 280* 281* 312* 313 314* 355 364 429* 431 468 511* 517* 519 537* 543* 552* 557* 563* 576* 589* 602* 613* 622* 624 641* 657* 698* 716* 733* 746* 750* 752 761* 770* 778* 792* 797* 808 847 913 981* 988 1016* 1017 1044 1051 1069* 1087* 1089 1094* 1096 1150* 1152 1160* 1162 1165* 1166 1169* 1171 1174* 1175 1221 1255 1258* 1262 1265* 1269 1272* 1276 1279* 1283 1286* 2679* p_code parameter fixed bin(35,0) dcl 2305 in procedure "insert_sleeper" set ref 2288 2319* 2322* 2328* 2339* p_confirmed parameter bit(1) packed unaligned dcl 1695 ref 1675 1709 p_cv_trans_ptr parameter pointer dcl 1857 in procedure "get_escape_char" ref 1844 1868 1873 1881 p_cv_trans_ptr parameter pointer dcl 1517 in procedure "clean_up_cv_trans" set ref 1504 1529 1530 1531* p_descrip parameter char packed unaligned dcl 56 set ref 364 370 370 1051 1057 1060 p_erkl_esc parameter char(3) packed unaligned dcl 1918 set ref 1897 1937* p_info_ptr parameter pointer dcl 2571 in procedure "set_terminal" set ref 2558 2592* 2599 2623 2640 p_info_ptr parameter pointer dcl 2302 in procedure "insert_sleeper" set ref 2288 2322* 2327 2336 2350 2355 p_info_ptr parameter pointer dcl 1803 in procedure "get_emulator_state" set ref 1790 1819* 1830 1832 p_info_ptr parameter pointer dcl 62 in procedure "mowse_io_" set ref 468 517* 537* 543* 546 547 552* 557* 563* 566 566 566 576* 579 579 579 589* 592 602* 605 622* 641* 644 645 651 657* 664 698* 715 719 721 733* 736 736 746* 761* 770* 777 781 783 797* 1255 1258* p_info_ptr parameter pointer dcl 1470 in procedure "check_validity_int" ref 1455 1486 1491 p_info_ptr parameter pointer dcl 1421 in procedure "check_validity" ref 1408 1437 1442 p_info_ptr parameter pointer dcl 1612 in procedure "cleanup_modes_info" ref 1599 1616 1616 p_info_ptr parameter pointer dcl 1758 in procedure "flush_subchannel" set ref 1745 1772* 1775 p_iocb_ptr parameter pointer dcl 2260 in procedure "initialize_iocb" ref 2247 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 p_iocb_ptr parameter pointer dcl 65 in procedure "mowse_io_" set ref 222 355 364 468 657* 808 847 913 988 1044 1051 1127 1221 1255 1262 1269 1276 1283 2680 p_ll parameter fixed bin(17,0) dcl 1915 set ref 1897 1939* 1979* p_loud parameter bit(1) dcl 64 ref 222 245 254 263 272 281 314 p_mode parameter fixed bin(17,0) dcl 58 ref 1044 1051 1068 p_mode_info_ptr parameter pointer dcl 2423 ref 2409 2435 2439 2440 2442 2446 2447 2449 2453 2454 p_newmodes parameter char packed unaligned dcl 1317 in procedure "adjust_modes" set ref 1303 1345* p_newmodes parameter char packed unaligned dcl 55 in procedure "mowse_io_" set ref 988 1016* 1025 1283 1286* p_newmodes parameter char packed unaligned dcl 1912 in procedure "get_new_modes" set ref 1897 1951 1958* p_numeric_value parameter fixed bin(17,0) dcl 2427 set ref 2409 2434* 2447* p_oldmodes parameter char packed unaligned dcl 1917 in procedure "get_new_modes" set ref 1897 1946 1946* p_oldmodes parameter char packed unaligned dcl 68 in procedure "mowse_io_" set ref 988 1016* 1018* 1283 1286* p_options parameter varying char array dcl 63 ref 222 252 261 297 298 300 302 304 p_order parameter char packed unaligned dcl 61 set ref 468 505 657* 698* 770* 797* 1255 1258* p_pl parameter fixed bin(17,0) dcl 1919 set ref 1897 1938* 1972* p_unused parameter bit(1) packed unaligned dcl 57 ref 1044 1051 p_version parameter char(8) packed unaligned dcl 1422 in procedure "check_validity" ref 1408 1442 p_version parameter fixed bin(17,0) dcl 1471 in procedure "check_validity_int" ref 1455 1491 packet_dispatcher 356 based structure level 3 unaligned dcl 96 packet_receiver 354 based structure level 3 unaligned dcl 96 packet_transmitter 350 based structure level 3 unaligned dcl 96 pad 327(05) based bit(31) level 4 in structure "mio_data" packed packed unaligned dcl 96 in procedure "mowse_io_" set ref 2201* pad 334(01) based bit(35) level 3 in structure "mio_data" packed packed unaligned dcl 96 in procedure "mowse_io_" set ref 2212* pl 000315 automatic fixed bin(17,0) dcl 77 in procedure "mowse_io_" set ref 1016* 1025* pl 000630 automatic fixed bin(17,0) dcl 2579 in procedure "set_terminal" set ref 2630* 2637* position 62 based entry variable level 2 dcl 19-9 set ref 2273* printer_msg 000302 automatic char(5) packed unaligned dcl 75 set ref 671* 672 672 680* 681 681 process_id 336 based bit(36) level 3 dcl 96 set ref 519* 2083* psn 3626 based fixed bin(3,0) array level 3 dcl 96 set ref 1776 put_chars 52 based entry variable level 2 dcl 19-9 set ref 1114* 2271* queue 434 based char(1) array level 3 packed packed unaligned dcl 96 set ref 899 902 966 968 quit_enable 430 based bit(1) level 3 packed packed unaligned dcl 96 set ref 688* 693* 2222* r 2444 based structure level 2 unaligned dcl 96 r_len 000315 automatic fixed bin(21,0) dcl 1927 in procedure "get_new_modes" set ref 1936* r_len 000616 automatic fixed bin(21,0) dcl 2515 in procedure "send_terminal_modes" set ref 2518* rank builtin function dcl 186 ref 1873 read_key 116 based entry variable level 2 dcl 19-9 set ref 2280* read_length 122 based entry variable level 2 dcl 19-9 set ref 2281* read_record 72 based entry variable level 2 dcl 19-9 set ref 2275* recover_modes 000120 automatic char(256) packed unaligned dcl 1326 set ref 1329* 1335 reset_write 430(01) based bit(1) level 3 packed packed unaligned dcl 96 set ref 709* 2223* rewrite_record 102 based entry variable level 2 dcl 19-9 set ref 2277* rs_pending 430(03) based bit(1) array level 3 packed packed unaligned dcl 96 set ref 1655 2225* rtrim builtin function dcl 187 ref 505 1137 1137 1369 1376 1388 1395 2435 2624 2624 2629 2641 2641 s 3224 based structure level 2 unaligned dcl 96 sct_manager_$get 000024 constant entry external dcl 107 ref 1087 sct_manager_$set 000026 constant entry external dcl 108 ref 429 1094 seek_key 112 based entry variable level 2 dcl 19-9 set ref 2279* send_initial_string 11 based bit(1) level 3 in structure "set_term_type_info" packed packed unaligned dcl 8-8 in procedure "mowse_io_" ref 2640 send_initial_string 11 001153 automatic bit(1) level 3 in structure "stty_info" packed packed unaligned dcl 2589 in procedure "set_terminal" set ref 2604* set_modes 11(01) 001153 automatic bit(1) level 3 in structure "stty_info" packed packed unaligned dcl 2589 in procedure "set_terminal" set ref 2605* set_modes 11(01) based bit(1) level 3 in structure "set_term_type_info" packed packed unaligned dcl 8-8 in procedure "mowse_io_" ref 2623 set_term_type_info based structure level 1 dcl 8-8 ref 2599 sleep_seconds 3 based fixed bin(17,0) level 2 dcl 4-72 ref 2327 2355 sleepers 324 based pointer level 2 dcl 96 set ref 2171* 2334 2362 2363* 2371 2385 2386* start_issued 430(11) based bit(1) level 3 packed packed unaligned dcl 96 set ref 767* 876* 877 887 888* 947* 948 958 959* 2230* state 2 based bit(1) level 2 packed packed unaligned dcl 4-55 set ref 1830* 1832* status_code 1 000454 automatic fixed bin(35,0) level 2 dcl 97 set ref 324* 418* 831* 1077* struc based structure level 1 packed packed unaligned dcl 1430 structure based structure level 1 unaligned dcl 1479 stty_info 001153 automatic structure level 1 unaligned dcl 2589 set ref 2599* 2607 2607 subchannel 2 based fixed bin(17,0) level 2 dcl 4-80 ref 1775 substr builtin function dcl 190 set ref 300 594* 1395 2002* 2013* 2028 2028 2119* 2123* 2524 2524 2529 2529 2534 2534 2636* sus_data 332 based structure level 2 unaligned dcl 96 sus_entry 332 based pointer level 3 dcl 96 set ref 429* 1087* 2213* susp_sct_index 000006 constant fixed bin(17,0) initial dcl 10-27 set ref 429* 1087* 1094* switches 430 based structure level 2 packed packed unaligned dcl 96 sync_channel 356 based fixed bin(71,0) level 4 dcl 96 set ref 519* system_free_area based area(1024) dcl 82 in procedure "mowse_io_" ref 292 system_free_area based area(1024) dcl 2311 in procedure "insert_sleeper" ref 2348 system_free_area based area(1024) dcl 2060 in procedure "initialize_attach_data" ref 2097 2176 system_free_area_ptr 000100 automatic pointer dcl 2059 in procedure "initialize_attach_data" set ref 2069* 2097 2176 system_free_area_ptr 000324 automatic pointer dcl 83 in procedure "mowse_io_" set ref 289* 291* 292 system_free_area_ptr 000604 automatic pointer dcl 2312 in procedure "insert_sleeper" set ref 2347* 2348 target_iocb_ptr 000330 automatic pointer dcl 85 set ref 239* 261* 270 279 310 task 431 based structure level 2 packed packed unaligned dcl 96 temp_chmod 000101 automatic varying char(32) dcl 1923 set ref 1932* 1972* 1975 1979* 1982 1987* 1990 1999* 2005 2009* 2016 temp_ptr 000100 automatic pointer dcl 1554 set ref 1583* 1585 temp_seg_name 000476 automatic char(6) initial packed unaligned dcl 15-22 set ref 15-22* term_info 001133 automatic structure level 1 dcl 2588 set ref 2615 2615 term_type 2 001133 automatic char(32) level 2 packed packed unaligned dcl 2588 set ref 2624 2624 2641 2641 terminal_info based structure level 1 dcl 7-6 terminate_mowse_ 000142 constant entry external dcl 151 ref 385 terminate_process_ 000052 constant entry external dcl 118 ref 325 419 832 1078 trace 710 based bit(1) level 3 in structure "mowse_info" packed packed unaligned dcl 5-31 in procedure "mowse_io_" set ref 614* 625* trace 327 based bit(1) level 4 in structure "mio_data" packed packed unaligned dcl 96 in procedure "mowse_io_" set ref 2196* trace_file_iocb 712 based pointer level 3 dcl 5-31 set ref 615* 626* trace_iocb_ptr 366 based pointer level 2 dcl 96 set ref 411* 613* 622* 626 2239* trans 000131 automatic structure level 1 unaligned dcl 2065 in procedure "initialize_attach_data" set ref 2143 2143 2147 2147 trans 000351 automatic structure level 1 dcl 93 in procedure "mowse_io_" set ref 750 750 754 754 transmitted 347 based bit(1) level 5 packed packed unaligned dcl 96 set ref 2087* ttt_info_$initial_string 000016 constant entry external dcl 104 ref 2641 ttt_info_$modes 000020 constant entry external dcl 105 ref 2624 tty_read_status_info based structure level 1 dcl 6-17 unspec builtin function dcl 189 set ref 293* 594 2002 2013 2119 2123 2636 user_input 432 based structure level 2 in structure "mio_data" unaligned dcl 96 in procedure "mowse_io_" user_input 344 based structure level 3 in structure "mio_data" unaligned dcl 96 in procedure "mowse_io_" set ref 768 768 880 880 951 951 1656 1656 1666 1666 1725 1725 1729 1729 1777 1777 1781 1781 value 2 based fixed bin(8,0) array level 3 packed packed unaligned dcl 11-107 set ref 1873 1881 version 000351 automatic fixed bin(17,0) level 2 in structure "trans" dcl 93 in procedure "mowse_io_" set ref 749* version based char(8) level 2 in structure "mcb" packed packed unaligned dcl 3-14 in procedure "mowse_io_" set ref 2177* version 000131 automatic fixed bin(17,0) level 2 in structure "trans" dcl 2065 in procedure "initialize_attach_data" set ref 2142* version based fixed bin(17,0) level 2 in structure "structure" dcl 1479 in procedure "check_validity_int" ref 1491 version based fixed bin(17,0) level 2 in structure "cv_trans_struc" dcl 11-107 in procedure "mowse_io_" set ref 2099* version 000234 automatic fixed bin(17,0) level 2 in structure "ed_chars" dcl 2066 in procedure "initialize_attach_data" set ref 2128* version 000454 automatic fixed bin(17,0) level 2 in structure "fatal_error_info" dcl 97 in procedure "mowse_io_" set ref 323* 417* 830* 1076* version 000103 automatic fixed bin(17,0) level 2 in structure "mode_val" dcl 2064 in procedure "initialize_attach_data" set ref 2116* 2152* version 001133 automatic fixed bin(17,0) level 2 in structure "term_info" dcl 2588 in procedure "set_terminal" set ref 2614* version 000336 automatic char(8) level 2 in structure "ipc_arg" packed packed unaligned dcl 92 in procedure "mowse_io_" set ref 1145* version based char(8) level 2 in structure "struc" packed packed unaligned dcl 1430 in procedure "check_validity" ref 1442 video_mode 327(03) based bit(1) level 4 packed packed unaligned dcl 96 set ref 592* 594 2199* wait_info based structure level 1 unaligned dcl 18-126 when 2 based fixed bin(71,0) level 2 dcl 2316 set ref 2355* 2364* 2372 2372 2376* 2388* 2399* write_record 76 based entry variable level 2 dcl 19-9 set ref 2276* ws 327 based structure level 2 unaligned dcl 96 ws_$find_capability_number 000136 constant entry external dcl 149 ref 1825 ws_channel_$wait_block 000154 constant entry external dcl 156 ref 880 951 1656 1725 1777 ws_channel_$wait_wakeup 000162 constant entry external dcl 159 ref 768 1666 1729 1781 ws_debug_$debug_close 000176 constant entry external dcl 165 ref 410 511 ws_debug_$debug_open 000174 constant entry external dcl 164 ref 517 ws_debug_$line 000122 constant entry external dcl 142 ref 519 ws_debug_$trace_close 000172 constant entry external dcl 163 ref 411 613 ws_debug_$trace_open 000170 constant entry external dcl 162 ref 622 ws_error_$already_sleeping 000214 external static fixed bin(35,0) dcl 175 ref 2339 ws_error_$inconsistent_mowse_tables 000220 external static fixed bin(35,0) dcl 177 ref 1835 ws_error_$invalid_sleep_interval 000216 external static fixed bin(35,0) dcl 176 ref 2328 ws_error_$unsupported_ws_terminal 000212 external static fixed bin(35,0) dcl 173 ref 1662 ws_packet_dispatcher_$initialize 000132 constant entry external dcl 146 ref 1165 ws_packet_dispatcher_$terminate 000130 constant entry external dcl 145 ref 400 1182 ws_packet_receiver_$initialize 000206 constant entry external dcl 169 ref 1169 ws_packet_receiver_$sus_handler 000202 constant entry external dcl 167 ref 1094 1094 ws_packet_receiver_$terminate 000204 constant entry external dcl 168 ref 398 1180 ws_packet_transmitter_$data 000210 constant entry external dcl 170 ref 579 672 681 1235 2549 2649 ws_packet_transmitter_$initialize 000166 constant entry external dcl 161 ref 1160 ws_packet_transmitter_$local_data 000126 constant entry external dcl 144 ref 566 ws_packet_transmitter_$reset 000164 constant entry external dcl 160 ref 1653 ws_packet_transmitter_$supervisory 000160 constant entry external dcl 158 ref 1710 1718 1734 ws_packet_transmitter_$terminate 000124 constant entry external dcl 143 ref 401 1184 ws_timer_$initialize 000152 constant entry external dcl 155 ref 1157 ws_timer_$queue_sleeper 000134 constant entry external dcl 148 ref 2364 2376 2388 2399 ws_timer_$reset_connect 000120 constant entry external dcl 141 ref 1652 ws_timer_$reset_disconnect 000150 constant entry external dcl 154 ref 1717 ws_timer_$terminate 000146 constant entry external dcl 153 ref 399 1186 ws_tools_$reset_data 000156 constant entry external dcl 157 ref 1158 1737 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 15-54 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 15-78 ANY_CALL_EVENT_CHANNEL_TYPE internal static fixed bin(17,0) initial dcl 1-33 ASYNC_CALL_EVENT_CHANNEL_TYPE internal static fixed bin(17,0) initial dcl 1-31 AckCnt internal static fixed bin(8,0) initial dcl 17-98 AckOff internal static fixed bin(8,0) initial dcl 17-96 And internal static bit(4) initial packed unaligned dcl 17-19 BG internal static fixed bin(17,0) initial dcl 16-17 BG_task internal static fixed bin(17,0) initial dcl 17-126 BrkCnt internal static fixed bin(8,0) initial dcl 17-90 BrkOff internal static fixed bin(8,0) initial dcl 17-88 CALL_EVENT_CHANNEL_TYPE internal static fixed bin(17,0) initial dcl 1-30 CONTINUE internal static fixed bin(17,0) initial dcl 15-94 CONVERT_CRC internal static fixed bin(17,0) initial dcl 17-15 CR internal static char(1) initial packed unaligned dcl 17-31 CV_TRANS_SIZE internal static fixed bin(17,0) initial array dcl 11-129 CV_TRANS_VERSION internal static fixed bin(17,0) initial dcl 11-127 ChkLen internal static fixed bin(17,0) initial dcl 17-62 DBGPKTS internal static bit(1) initial packed unaligned dcl 17-22 DBGREJS internal static bit(1) initial packed unaligned dcl 17-24 DBGXCHRS internal static bit(1) initial packed unaligned dcl 17-26 DELAY_VERSION internal static fixed bin(17,0) initial dcl 11-126 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 15-79 DatCnt internal static fixed bin(8,0) initial dcl 17-94 DatOff internal static fixed bin(8,0) initial dcl 17-92 Direct_input internal static fixed bin(17,0) initial dcl 13-15 Direct_output internal static fixed bin(17,0) initial dcl 13-15 Direct_update internal static fixed bin(17,0) initial dcl 13-15 EOPLen internal static fixed bin(17,0) initial dcl 17-66 ESC internal static char(1) initial packed unaligned dcl 17-33 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 15-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 15-77 EXECUTE_COMMAND_REPLY internal static fixed bin(17,0) initial dcl 15-72 FAIL_CAPABILITY internal static fixed bin(17,0) initial dcl 15-75 FGBrk internal static fixed bin(8,0) initial dcl 17-82 FG_BREAK internal static fixed bin(17,0) initial dcl 15-105 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 15-107 FG_task internal static fixed bin(17,0) initial dcl 17-124 INIT_CRC internal static fixed bin(17,0) initial dcl 17-14 INPUT_CONVERT_BREAK internal static fixed bin(8,0) initial packed unaligned dcl 11-135 INPUT_CONVERT_DISCARD internal static fixed bin(8,0) initial packed unaligned dcl 11-135 INPUT_CONVERT_DSA_CR_PROCESSING internal static fixed bin(8,0) initial packed unaligned dcl 11-135 INPUT_CONVERT_FORMFEED internal static fixed bin(8,0) initial packed unaligned dcl 11-135 INPUT_CONVERT_ORDINARY internal static fixed bin(8,0) initial packed unaligned dcl 11-135 INPUT_CONVERT_PRECEDENCE_DISCARD internal static fixed bin(8,0) initial packed unaligned dcl 11-135 Idle internal static bit(1) initial packed unaligned dcl 17-128 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 13-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 13-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 13-15 LAST internal static fixed bin(17,0) initial dcl 15-71 LenLen internal static fixed bin(17,0) initial dcl 17-64 Lim_p_timer internal static fixed bin(17,0) initial dcl 17-116 Lim_r_timer internal static fixed bin(17,0) initial dcl 17-112 Lim_s_timer internal static fixed bin(17,0) initial dcl 17-114 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 15-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 15-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 15-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 15-65 MAXIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 15-67 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 15-42 MINIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 15-64 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 15-66 MORE internal static fixed bin(17,0) initial dcl 15-95 MaxDatLen internal static fixed bin(17,0) initial dcl 17-56 MaxPktLen internal static fixed bin(17,0) initial dcl 17-70 Modem_Reader_Task internal static fixed bin(17,0) initial dcl 17-122 NakCnt internal static fixed bin(8,0) initial dcl 17-102 NakOff internal static fixed bin(8,0) initial dcl 17-100 OR internal static bit(4) initial packed unaligned dcl 17-17 OUTPUT_CONVERT_BRS internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_BS internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_CR internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_DONT_SEND internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_FF internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_FIRST_SPECIAL internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_HT internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NEWLINE internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NOT_USED_13 internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NOT_USED_14 internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NOT_USED_15 internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NOT_USED_16 internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_NO_MOTION internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_OCTAL internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_ORDINARY internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_PRECEDENCE_NO_MOTION internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_RRS internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OUTPUT_CONVERT_VT internal static fixed bin(8,0) initial packed unaligned dcl 11-147 OVERFLOWED_BUFFER internal static fixed bin(17,0) initial dcl 15-87 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 15-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 15-110 QUERY_REPLY internal static fixed bin(17,0) initial dcl 15-89 RECEIVE internal static fixed bin(17,0) initial dcl 15-59 REJECT internal static fixed bin(17,0) initial dcl 15-55 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 15-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 15-93 RESET_APPLICATION internal static fixed bin(17,0) initial dcl 15-83 RESET_REPLY internal static fixed bin(17,0) initial dcl 15-84 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 15-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 15-99 RESPONSE_CONNECT internal static fixed bin(17,0) initial dcl 15-90 RESPONSE_DISCONNECT internal static fixed bin(17,0) initial dcl 15-91 RESUME_APPLICATION internal static fixed bin(17,0) initial dcl 15-81 REVPOLY internal static fixed bin(17,0) initial dcl 17-16 RQS internal static fixed bin(17,0) initial dcl 17-106 RWS internal static fixed bin(17,0) initial dcl 17-108 RstCnt internal static fixed bin(8,0) initial dcl 17-80 RstOff internal static fixed bin(8,0) initial dcl 17-74 SEND internal static fixed bin(17,0) initial dcl 15-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 15-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 15-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 15-98 SI internal static char(1) initial packed unaligned dcl 17-38 SO internal static char(1) initial packed unaligned dcl 17-40 SOH internal static char(1) initial packed unaligned dcl 17-42 SOPLen internal static fixed bin(17,0) initial dcl 17-58 SPECIAL_INFO_STRUCT_VERSION_1 internal static char(8) initial packed unaligned dcl 11-122 SPECIAL_VERSION internal static fixed bin(17,0) initial dcl 11-124 SPECIAL_VERSION_2 internal static fixed bin(17,0) initial dcl 11-125 STATUS internal static fixed bin(17,0) initial dcl 15-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 15-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 15-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 15-35 SUSPEND_APPLICATION internal static fixed bin(17,0) initial dcl 15-80 SWS internal static fixed bin(17,0) initial dcl 17-110 SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 15-88 SeqCnt internal static fixed bin(17,0) initial dcl 17-50 SeqFld internal static fixed bin(17,0) initial dcl 17-48 SeqMsk internal static fixed bin(17,0) initial dcl 17-52 Sequential_input internal static fixed bin(17,0) initial dcl 13-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 13-15 Sequential_output internal static fixed bin(17,0) initial dcl 13-15 Sequential_update internal static fixed bin(17,0) initial dcl 13-15 Stream_input internal static fixed bin(17,0) initial dcl 13-15 Stream_input_output internal static fixed bin(17,0) initial dcl 13-15 Stream_output internal static fixed bin(17,0) initial dcl 13-15 TERMINATE_APPLICATION internal static fixed bin(17,0) initial dcl 15-82 Timer_Interval internal static fixed bin(71,0) initial dcl 17-118 TypLen internal static fixed bin(17,0) initial dcl 17-60 WAIT_EVENT_CHANNEL_TYPE internal static fixed bin(17,0) initial dcl 1-29 WAKE_UP internal static fixed bin(17,0) initial dcl 15-85 XOR internal static bit(4) initial packed unaligned dcl 17-18 accessviolation_sct_index internal static fixed bin(17,0) initial dcl 10-27 alrm_sct_index internal static fixed bin(17,0) initial dcl 10-27 alter_cat_message based structure level 1 packed packed unaligned dcl 16-63 am_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 bad_outward_call_sct_index internal static fixed bin(17,0) initial dcl 10-27 c_chars_ptr automatic pointer dcl 11-53 command_sct_index internal static fixed bin(17,0) initial dcl 10-27 connect_sct_index internal static fixed bin(17,0) initial dcl 10-27 cput_sct_index internal static fixed bin(17,0) initial dcl 10-27 cross_ring_transfer_sct_index internal static fixed bin(17,0) initial dcl 10-27 delay_struc based structure level 1 dcl 11-112 derail_sct_index internal static fixed bin(17,0) initial dcl 10-27 directed_fault_2_sct_index internal static fixed bin(17,0) initial dcl 10-27 directed_fault_3_sct_index internal static fixed bin(17,0) initial dcl 10-27 dm_shutdown_scheduled_sct_index internal static fixed bin(17,0) initial dcl 10-27 editing_chars_ptr automatic pointer dcl 12-23 editing_chars_version_2 internal static fixed bin(17,0) initial dcl 12-21 event_message based structure level 1 packed packed unaligned dcl 16-76 execom_message based structure level 1 packed packed unaligned dcl 16-49 execom_reply_msg based structure level 1 packed packed unaligned dcl 16-122 execute_sct_index internal static fixed bin(17,0) initial dcl 10-27 fault_tag_1_sct_index internal static fixed bin(17,0) initial dcl 10-27 fault_tag_3_sct_index internal static fixed bin(17,0) initial dcl 10-27 fixedoverflow_sct_index internal static fixed bin(17,0) initial dcl 10-27 get_special_info_struc based structure level 1 dcl 11-117 illegal_modifier_sct_index internal static fixed bin(17,0) initial dcl 10-27 illegal_opcode_sct_index internal static fixed bin(17,0) initial dcl 10-27 illegal_procedure_sct_index internal static fixed bin(17,0) initial dcl 10-27 illegal_ring_order_sct_index internal static fixed bin(17,0) initial dcl 10-27 init_mowse_info based structure level 1 unaligned dcl 5-68 init_mowse_info_ptr automatic pointer dcl 5-67 input_message based structure level 1 packed packed unaligned dcl 16-38 inward_return_sct_index internal static fixed bin(17,0) initial dcl 10-27 iox_$iocb_version_sentinel external static char(4) dcl 19-64 iox_modes internal static char(24) initial array dcl 13-6 ipc_create_arg_structure_ptr automatic pointer dcl 1-16 isot_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 last_message based structure level 1 packed packed unaligned dcl 16-110 linkage_error_sct_index internal static fixed bin(17,0) initial dcl 10-27 lockup_sct_index internal static fixed bin(17,0) initial dcl 10-27 lot_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 message_node based structure level 1 unaligned dcl 16-136 message_ptr automatic pointer dcl 16-34 mme1_sct_index internal static fixed bin(17,0) initial dcl 10-27 mme2_sct_index internal static fixed bin(17,0) initial dcl 10-27 mme3_sct_index internal static fixed bin(17,0) initial dcl 10-27 mme4_sct_index internal static fixed bin(17,0) initial dcl 10-27 mode_string_info_version_2 internal static fixed bin(17,0) initial dcl 14-30 mode_value_ptr automatic pointer dcl 14-6 more_remaining_message based structure level 1 packed packed unaligned dcl 16-96 mowse_io_data_ptr automatic pointer dcl 18-17 mowse_io_debug_info based structure level 1 unaligned dcl 4-48 mowse_io_debug_info_ptr automatic pointer dcl 4-46 mowse_io_flush_subchannel_info_ptr automatic pointer dcl 4-78 mowse_io_info_ptr automatic pointer dcl 4-39 mowse_io_message_ptr automatic pointer dcl 4-62 mowse_io_set_video_mode_info_ptr automatic pointer dcl 4-86 mowse_io_sleep_info_ptr automatic pointer dcl 4-70 mowse_io_store_info_ptr automatic pointer dcl 4-32 mowse_io_terminal_state_ptr automatic pointer dcl 4-53 msg_node_ptr automatic pointer dcl 16-135 neti_sct_index internal static fixed bin(17,0) initial dcl 10-27 no_execute_permission_sct_index internal static fixed bin(17,0) initial dcl 10-27 no_read_permission_sct_index internal static fixed bin(17,0) initial dcl 10-27 no_write_permission_sct_index internal static fixed bin(17,0) initial dcl 10-27 not_a_gate_sct_index internal static fixed bin(17,0) initial dcl 10-27 not_in_call_bracket_sct_index internal static fixed bin(17,0) initial dcl 10-27 not_in_execute_bracket_sct_index internal static fixed bin(17,0) initial dcl 10-27 not_in_read_bracket_sct_index internal static fixed bin(17,0) initial dcl 10-27 not_in_write_bracket_sct_index internal static fixed bin(17,0) initial dcl 10-27 number_of_modes automatic fixed bin(17,0) dcl 14-6 op_not_complete_sct_index internal static fixed bin(17,0) initial dcl 10-27 open_struc based structure level 1 packed packed unaligned dcl 5-92 other_command_sct_index internal static fixed bin(17,0) initial dcl 10-27 other_illegal_proc_sct_index internal static fixed bin(17,0) initial dcl 10-27 out_of_bounds_sct_index internal static fixed bin(17,0) initial dcl 10-27 output_buffer based structure level 1 unaligned dcl 3-34 outward_call_sct_index internal static fixed bin(17,0) initial dcl 10-27 overflow_sct_index internal static fixed bin(17,0) initial dcl 10-27 ovrflo_sct_index internal static fixed bin(17,0) initial dcl 10-27 packed_pointer_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 page_fault_error_sct_index internal static fixed bin(17,0) initial dcl 10-27 parity_sct_index internal static fixed bin(17,0) initial dcl 10-27 part_msg based char packed unaligned dcl 16-152 part_msg_length automatic fixed bin(17,0) dcl 16-151 part_msg_ptr automatic pointer dcl 16-144 partial_message based structure level 1 unaligned dcl 16-145 pgt_sct_index internal static fixed bin(17,0) initial dcl 10-27 quit_sct_index internal static fixed bin(17,0) initial dcl 10-27 record_quota_overflow_sct_index internal static fixed bin(17,0) initial dcl 10-27 request_more_message based structure level 1 packed packed unaligned dcl 16-84 ring_alarm_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 sc_escape_len automatic fixed bin(17,0) dcl 11-58 sc_input_escape_len automatic fixed bin(17,0) dcl 11-59 seg_fault_error_sct_index internal static fixed bin(17,0) initial dcl 10-27 short_iox_modes internal static char(4) initial array dcl 13-12 shutdown_sct_index internal static fixed bin(17,0) initial dcl 10-27 simfault_000000_sct_index internal static fixed bin(17,0) initial dcl 10-27 size_sct_index internal static fixed bin(17,0) initial dcl 10-27 special_chars based structure level 1 dcl 11-26 special_chars_struc based structure level 1 dcl 11-76 startup_sct_index internal static fixed bin(17,0) initial dcl 10-27 storage_sct_index internal static fixed bin(17,0) initial dcl 10-27 store_sct_index internal static fixed bin(17,0) initial dcl 10-27 stringsize_sct_index internal static fixed bin(17,0) initial dcl 10-27 stti_version_1 internal static fixed bin(17,0) initial dcl 8-5 sttip automatic pointer dcl 8-6 system_message_sct_index internal static fixed bin(17,0) initial dcl 10-27 system_packed_pointer_sct_index internal static fixed bin(17,0) initial dcl 10-27 system_shutdown_scheduled_sct_index internal static fixed bin(17,0) initial dcl 10-27 term_sct_index internal static fixed bin(17,0) initial dcl 10-27 terminal_info_ptr automatic pointer dcl 7-15 terminal_info_version internal static fixed bin(17,0) initial dcl 7-16 timer_runout_sct_index internal static fixed bin(17,0) initial dcl 10-27 trace_message_info automatic structure level 1 unaligned dcl 16-155 trouble_sct_index internal static fixed bin(17,0) initial dcl 10-27 tty_read_status_info_ptr automatic pointer dcl 6-21 tty_write_status_info based structure level 1 dcl 6-23 tty_write_status_info_ptr automatic pointer dcl 6-27 undefined_fault_sct_index internal static fixed bin(17,0) initial dcl 10-27 undefined_pointer_sct_index internal static fixed bin(17,0) initial dcl 10-27 underflow_sct_index internal static fixed bin(17,0) initial dcl 10-27 wkp_sct_index internal static fixed bin(17,0) initial dcl 10-27 zerodivide_sct_index internal static fixed bin(17,0) initial dcl 10-27 NAMES DECLARED BY EXPLICIT CONTEXT. CREATE_CHANNEL_ERROR 005641 constant label dcl 1188 ref 1152 JOIN_CLOSE 001772 constant label dcl 373 ref 362 JOIN_OPEN 005070 constant label dcl 1062 ref 1049 1057 OPEN_CONNECT_ERROR 005610 constant label dcl 1180 ref 1175 OPEN_DISPATCHER_ERROR 005625 constant label dcl 1184 ref 1166 OPEN_RECEIVER_ERROR 005620 constant label dcl 1182 ref 1171 OPEN_TRANSMITTER_ERROR 005634 constant label dcl 1186 ref 1162 adjust_modes 006324 constant entry internal dcl 1303 ref 1141 2028 check_validity 007131 constant entry internal dcl 1408 ref 543 563 576 589 602 1772 1819 2322 check_validity_int 007174 constant entry internal dcl 1455 ref 641 733 746 2592 clean_up_cv_trans 007235 constant entry internal dcl 1504 ref 1575 2096 clean_up_mio_data 007256 constant entry internal dcl 1540 ref 290 316 825 cleanup_modes_info 007403 constant entry internal dcl 1599 ref 1333 1334 1399 1400 1957 1961 2020 2033 connect 007425 constant entry internal dcl 1625 ref 1174 disconnect 007540 constant entry internal dcl 1675 ref 394 flush_subchannel 007707 constant entry internal dcl 1745 ref 537 get_emulator_state 010013 constant entry internal dcl 1790 ref 552 get_escape_char 010114 constant entry internal dcl 1844 ref 754 2147 get_new_modes 010221 constant entry internal dcl 1897 ref 1016 2630 initialize_attach_data 011107 constant entry internal dcl 2041 ref 312 initialize_iocb 012271 constant entry internal dcl 2247 ref 439 1103 1196 insert_sleeper 012346 constant entry internal dcl 2288 ref 557 mowse_io_ 000777 constant entry external dcl 10 mowse_io_attach 001013 constant entry external dcl 222 mowse_io_close 001713 constant entry external dcl 355 ref 1104 mowse_io_close_file 001733 constant entry external dcl 364 ref 1106 mowse_io_control 002410 constant entry external dcl 468 ref 1108 mowse_io_detach_iocb 004240 constant entry external dcl 808 ref 331 442 1199 mowse_io_dummy 006314 constant entry external dcl 1290 ref 1147 mowse_io_get_chars 004367 constant entry external dcl 847 ref 1110 mowse_io_get_line 004527 constant entry external dcl 913 ref 1112 mowse_io_modes 004677 constant entry external dcl 988 ref 1116 mowse_io_open 005012 constant entry external dcl 1044 ref 332 444 1201 mowse_io_open_file 005036 constant entry external dcl 1051 ref 333 446 1203 mowse_io_put_chars 005776 constant entry external dcl 1221 ref 1114 mowse_io_tty_control 006033 constant entry external dcl 1255 mowse_io_tty_get_chars 006105 constant entry external dcl 1262 mowse_io_tty_get_line 006143 constant entry external dcl 1269 mowse_io_tty_modes 006235 constant entry external dcl 1283 mowse_io_tty_put_chars 006201 constant entry external dcl 1276 parse_modes 012611 constant entry internal dcl 2409 ref 1360 1373 1385 1972 1979 1987 1999 2009 send_terminal_modes 012772 constant entry internal dcl 2464 ref 596 665 727 736 754 1025 2637 set_terminal 013103 constant entry internal dcl 2558 ref 761 setup_entry 013534 constant entry internal dcl 2661 ref 237 358 367 504 820 865 931 1011 1047 1054 1233 1257 1264 1271 1278 1285 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 15242 15464 13661 15252 Length 16550 13661 222 1047 1361 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mowse_io_ 1054 external procedure is an external procedure. on unit on line 290 64 on unit on unit on line 322 80 on unit on unit on line 416 80 on unit on unit on line 829 80 on unit on unit on line 1075 80 on unit adjust_modes 196 internal procedure is called during a stack extension, and enables or reverts conditions. on unit on line 1332 70 on unit check_validity internal procedure shares stack frame of external procedure mowse_io_. check_validity_int internal procedure shares stack frame of external procedure mowse_io_. clean_up_cv_trans 64 internal procedure is called by several nonquick procedures. clean_up_mio_data 82 internal procedure is called by several nonquick procedures. cleanup_modes_info 64 internal procedure is called by several nonquick procedures. connect internal procedure shares stack frame of external procedure mowse_io_. disconnect internal procedure shares stack frame of external procedure mowse_io_. flush_subchannel internal procedure shares stack frame of external procedure mowse_io_. get_emulator_state internal procedure shares stack frame of external procedure mowse_io_. get_escape_char 67 internal procedure is called by several nonquick procedures. get_new_modes 260 internal procedure enables or reverts conditions. on unit on line 1957 70 on unit initialize_attach_data 210 internal procedure enables or reverts conditions. on unit on line 2096 70 on unit initialize_iocb internal procedure shares stack frame of external procedure mowse_io_. insert_sleeper internal procedure shares stack frame of external procedure mowse_io_. parse_modes 67 internal procedure is called by several nonquick procedures. send_terminal_modes internal procedure shares stack frame of external procedure mowse_io_. set_terminal internal procedure shares stack frame of external procedure mowse_io_. setup_entry internal procedure shares stack frame of external procedure mowse_io_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 editing_chars_version_3 mowse_io_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME adjust_modes 000100 new_mode adjust_modes 000111 j adjust_modes 000112 found adjust_modes 000113 i adjust_modes 000114 newmodes_ptr adjust_modes 000116 oldmodes_ptr adjust_modes 000120 recover_modes adjust_modes clean_up_mio_data 000100 temp_ptr clean_up_mio_data 000102 data_len clean_up_mio_data 000104 data_ptr clean_up_mio_data 000106 node_ptr clean_up_mio_data 000110 i clean_up_mio_data get_escape_char 000100 i get_escape_char get_new_modes 000100 boolean_val get_new_modes 000101 temp_chmod get_new_modes 000112 i get_new_modes 000113 force_flag get_new_modes 000114 chmod get_new_modes 000315 r_len get_new_modes 000316 code get_new_modes initialize_attach_data 000100 system_free_area_ptr initialize_attach_data 000102 code initialize_attach_data 000103 mode_val initialize_attach_data 000131 trans initialize_attach_data 000234 ed_chars initialize_attach_data mowse_io_ 000100 new_modes mowse_io_ 000300 confirmed_disconnect mowse_io_ 000302 printer_msg mowse_io_ 000304 order mowse_io_ 000315 pl mowse_io_ 000316 ll mowse_io_ 000317 erkl_esc mowse_io_ 000320 i mowse_io_ 000322 iocb_ptr mowse_io_ 000324 system_free_area_ptr mowse_io_ 000326 ind mowse_io_ 000330 target_iocb_ptr mowse_io_ 000332 mask mowse_io_ 000334 mio_data_ptr mowse_io_ 000336 ipc_arg mowse_io_ 000351 trans mowse_io_ 000454 fatal_error_info mowse_io_ 000472 open_struc_ptr mowse_io_ 000474 mode_string_info_ptr mowse_io_ 000476 temp_seg_name mowse_io_ 000500 message_len mowse_io_ 000552 channel flush_subchannel 000562 code get_emulator_state 000563 cap_num get_emulator_state 000600 current_time insert_sleeper 000602 new_ptr insert_sleeper 000604 system_free_area_ptr insert_sleeper 000606 look_ptr insert_sleeper 000616 r_len send_terminal_modes 000626 code set_terminal 000627 ll set_terminal 000630 pl set_terminal 000631 erkl_esc set_terminal 000632 initial_modes set_terminal 000732 initial_string set_terminal 001133 term_info set_terminal 001153 stty_info set_terminal THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac mdfx1 enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc set_chars_eis index_chars_eis divide_fx3 op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bound_process_env_$err_no_operation capability_$pack clock_ com_err_ get_process_id_ get_system_free_area_ hcs_$reset_ips_mask hcs_$set_ips_mask iox_$control iox_$err_no_operation iox_$err_not_open iox_$get_chars iox_$get_line iox_$look_iocb iox_$modes iox_$propagate iox_$put_chars ipc_$create_ev_chn ipc_$create_event_channel ipc_$delete_ev_chn mode_string_$get_mode mode_string_$parse mowse_io_call_control_ sct_manager_$get sct_manager_$set terminate_mowse_ terminate_process_ ttt_info_$initial_string ttt_info_$modes ws_$find_capability_number ws_channel_$wait_block ws_channel_$wait_wakeup ws_debug_$debug_close ws_debug_$debug_open ws_debug_$line ws_debug_$trace_close ws_debug_$trace_open ws_packet_dispatcher_$initialize ws_packet_dispatcher_$terminate ws_packet_receiver_$initialize ws_packet_receiver_$sus_handler ws_packet_receiver_$terminate ws_packet_transmitter_$data ws_packet_transmitter_$initialize ws_packet_transmitter_$local_data ws_packet_transmitter_$reset ws_packet_transmitter_$supervisory ws_packet_transmitter_$terminate ws_timer_$initialize ws_timer_$queue_sleeper ws_timer_$reset_connect ws_timer_$reset_disconnect ws_timer_$terminate ws_tools_$reset_data THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_mode error_table_$invalid_device error_table_$long_record error_table_$no_initial_string error_table_$not_detached error_table_$null_info_ptr error_table_$unable_to_do_io error_table_$unimplemented_version error_table_$unsupported_operation error_table_$wrong_no_of_args ws_error_$already_sleeping ws_error_$inconsistent_mowse_tables ws_error_$invalid_sleep_interval ws_error_$unsupported_ws_terminal LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 15 22 000770 16 33 000772 10 000776 211 001005 222 001006 237 001032 238 001033 239 001034 243 001036 244 001042 245 001045 247 001071 252 001072 253 001077 254 001102 256 001126 261 001127 262 001171 263 001174 265 001221 270 001222 271 001227 272 001232 274 001256 279 001257 280 001263 281 001266 283 001312 288 001313 289 001315 290 001316 291 001340 292 001347 293 001354 297 001360 298 001404 300 001411 302 001444 303 001455 304 001465 306 001512 310 001514 311 001517 312 001521 313 001527 314 001531 316 001556 317 001562 322 001563 323 001577 324 001601 325 001603 326 001626 328 001627 329 001642 330 001645 331 001647 332 001653 333 001656 334 001661 335 001665 336 001667 337 001675 338 001705 340 001706 355 001707 358 001724 360 001725 362 001726 364 001727 367 001751 369 001752 370 001754 373 001772 377 001773 383 001776 384 002001 385 002005 386 002017 387 002024 388 002026 394 002031 398 002033 399 002043 400 002050 401 002055 405 002064 410 002077 411 002112 416 002125 417 002141 418 002143 419 002145 420 002170 424 002171 428 002204 429 002210 431 002223 432 002225 433 002235 439 002236 440 002245 442 002251 444 002256 446 002261 448 002264 450 002270 452 002272 454 002300 457 002332 458 002342 460 002343 462 002402 468 002403 504 002427 505 002430 511 002466 516 002506 517 002513 519 002527 533 002576 537 002577 542 002615 543 002622 546 002641 547 002647 548 002654 552 002655 557 002673 562 002711 563 002716 566 002735 571 002757 575 002760 576 002765 579 003004 584 003026 588 003027 589 003034 592 003053 594 003062 596 003066 597 003105 601 003106 602 003113 605 003132 606 003140 607 003142 608 003144 612 003145 613 003152 614 003164 615 003170 617 003172 621 003173 622 003200 624 003214 625 003216 626 003222 629 003224 635 003225 640 003236 641 003243 644 003263 645 003273 646 003277 650 003300 651 003305 653 003311 657 003312 663 003352 664 003357 665 003362 666 003370 670 003371 671 003376 672 003410 675 003433 679 003434 680 003441 681 003453 684 003476 688 003477 693 003510 698 003521 704 003555 709 003566 714 003577 715 003604 716 003610 717 003613 719 003614 721 003620 723 003625 727 003626 732 003640 733 003645 736 003666 741 003714 745 003715 746 003722 749 003743 750 003745 752 004002 754 004004 757 004036 761 004037 766 004055 767 004062 768 004065 770 004100 772 004127 776 004130 777 004135 778 004141 779 004144 781 004145 783 004151 785 004156 790 004157 791 004167 792 004177 793 004202 795 004203 797 004205 799 004234 802 004235 808 004236 820 004251 821 004252 825 004253 829 004257 830 004273 831 004275 832 004277 833 004322 835 004323 836 004336 837 004341 838 004350 840 004360 841 004361 847 004362 864 004400 865 004402 869 004403 871 004410 876 004414 877 004417 880 004432 883 004465 887 004466 888 004470 889 004472 894 004473 897 004504 899 004505 902 004514 905 004523 907 004524 913 004525 930 004540 931 004542 935 004543 937 004550 942 004554 947 004560 948 004563 951 004576 954 004631 958 004632 959 004634 960 004636 965 004637 966 004641 968 004650 974 004657 975 004664 977 004665 981 004666 982 004671 988 004672 1011 004723 1016 004724 1017 004761 1018 004763 1019 004771 1025 004772 1028 005004 1044 005005 1047 005025 1048 005026 1049 005030 1051 005031 1054 005056 1055 005057 1057 005061 1060 005066 1062 005070 1068 005071 1069 005075 1070 005100 1075 005101 1076 005115 1077 005117 1078 005121 1079 005144 1083 005145 1087 005160 1089 005174 1090 005176 1091 005206 1094 005207 1096 005224 1097 005226 1098 005236 1103 005237 1104 005246 1106 005254 1108 005257 1110 005262 1112 005265 1114 005270 1116 005273 1118 005276 1119 005300 1120 005306 1121 005315 1123 005325 1127 005326 1131 005334 1135 005370 1137 005373 1140 005442 1141 005447 1145 005462 1146 005464 1147 005466 1148 005472 1149 005474 1150 005475 1152 005513 1157 005515 1158 005524 1160 005533 1162 005546 1165 005550 1166 005561 1169 005563 1171 005576 1174 005600 1175 005606 1180 005610 1182 005620 1184 005625 1186 005634 1188 005641 1194 005654 1196 005667 1197 005676 1199 005702 1201 005707 1203 005712 1205 005715 1207 005721 1209 005723 1211 005731 1213 005760 1215 005770 1221 005771 1233 006007 1235 006010 1237 006030 1255 006031 1257 006052 1258 006053 1260 006102 1262 006103 1264 006116 1265 006117 1267 006140 1269 006141 1271 006154 1272 006155 1274 006176 1276 006177 1278 006212 1279 006213 1281 006232 1283 006233 1285 006261 1286 006262 1288 006312 1290 006313 1292 006322 1303 006323 1329 006337 1330 006344 1331 006346 1332 006347 1333 006363 1334 006373 1335 006403 1336 006412 1343 006413 1345 006444 1351 006475 1352 006502 1353 006513 1354 006514 1355 006525 1358 006542 1359 006544 1360 006547 1364 006602 1369 006604 1372 006651 1373 006652 1376 006707 1378 006751 1379 006752 1383 006754 1384 006765 1385 006772 1388 007026 1390 007070 1391 007071 1395 007073 1399 007112 1400 007121 1402 007130 1408 007131 1434 007133 1437 007134 1438 007140 1439 007143 1442 007150 1443 007157 1444 007162 1447 007167 1455 007174 1483 007176 1486 007177 1487 007203 1488 007206 1491 007213 1492 007217 1493 007222 1496 007227 1504 007234 1529 007242 1530 007247 1531 007251 1534 007254 1540 007255 1565 007263 1566 007270 1570 007304 1571 007312 1572 007314 1575 007320 1577 007330 1578 007337 1579 007344 1580 007350 1581 007353 1582 007356 1583 007362 1584 007364 1585 007366 1586 007370 1587 007371 1589 007373 1590 007376 1593 007401 1599 007402 1616 007410 1619 007424 1625 007425 1647 007427 1651 007430 1652 007433 1653 007440 1655 007447 1656 007461 1659 007514 1661 007515 1662 007517 1663 007523 1666 007524 1669 007537 1675 007540 1709 007542 1710 007547 1712 007563 1717 007564 1718 007571 1723 007605 1724 007610 1725 007614 1728 007647 1729 007650 1734 007663 1737 007677 1739 007706 1745 007707 1769 007711 1772 007712 1775 007733 1776 007740 1777 007745 1780 007776 1781 007777 1784 010012 1790 010013 1815 010015 1816 010016 1819 010017 1824 010040 1825 010041 1830 010067 1832 010100 1835 010106 1838 010112 1844 010113 1868 010121 1873 010132 1879 010155 1880 010156 1881 010161 1885 010210 1887 010211 1888 010212 1897 010220 1931 010241 1932 010242 1933 010243 1934 010244 1935 010245 1936 010246 1937 010247 1938 010266 1939 010270 1940 010271 1946 010272 1951 010302 1956 010304 1957 010307 1958 010335 1960 010366 1961 010371 1962 010401 1967 010402 1968 010413 1971 010427 1972 010433 1974 010465 1975 010474 1976 010506 1978 010507 1979 010513 1981 010545 1982 010554 1983 010566 1985 010567 1987 010573 1989 010625 1990 010634 1991 010646 1993 010647 1998 010660 1999 010664 2002 010714 2004 010722 2005 010731 2006 010743 2008 010744 2009 010750 2013 011000 2015 011006 2016 011015 2017 011027 2019 011030 2020 011032 2021 011042 2022 011046 2024 011047 2028 011051 2033 011074 2035 011105 2041 011106 2069 011114 2070 011122 2076 011124 2077 011153 2079 011156 2083 011163 2084 011176 2086 011200 2087 011201 2088 011203 2090 011215 2095 011220 2096 011224 2097 011253 2099 011262 2100 011264 2102 011316 2107 011325 2108 011333 2109 011337 2110 011343 2111 011352 2115 011361 2116 011370 2117 011372 2119 011424 2121 011432 2123 011464 2128 011472 2129 011475 2131 011525 2132 011527 2133 011535 2134 011541 2136 011542 2137 011550 2142 011554 2143 011556 2145 011612 2147 011623 2152 011643 2153 011645 2155 011700 2157 011714 2160 011725 2162 011756 2164 011772 2169 012003 2170 012005 2171 012007 2172 012011 2176 012013 2177 012022 2178 012025 2179 012030 2181 012047 2182 012053 2183 012054 2184 012055 2185 012056 2186 012057 2187 012064 2188 012066 2189 012071 2190 012074 2191 012077 2192 012102 2196 012107 2197 012112 2198 012114 2199 012116 2200 012120 2201 012122 2202 012124 2206 012125 2207 012143 2211 012161 2212 012164 2213 012166 2217 012170 2218 012172 2222 012173 2223 012175 2224 012177 2225 012201 2226 012220 2227 012236 2228 012240 2229 012242 2230 012244 2234 012246 2238 012264 2239 012266 2241 012270 2247 012271 2264 012273 2265 012303 2266 012305 2267 012307 2268 012311 2269 012313 2270 012315 2271 012317 2272 012321 2273 012323 2274 012325 2275 012327 2276 012331 2277 012333 2278 012335 2279 012337 2280 012341 2281 012343 2282 012345 2288 012346 2319 012350 2322 012351 2327 012372 2328 012377 2329 012402 2334 012403 2335 012406 2336 012412 2339 012420 2340 012423 2342 012424 2343 012427 2347 012430 2348 012437 2350 012444 2352 012451 2353 012453 2354 012454 2355 012472 2362 012502 2363 012507 2364 012510 2365 012517 2371 012520 2372 012522 2373 012527 2374 012533 2375 012534 2376 012535 2377 012544 2379 012545 2380 012547 2384 012550 2385 012554 2386 012557 2387 012561 2388 012562 2389 012571 2395 012572 2396 012573 2397 012575 2398 012577 2399 012600 2400 012607 2409 012610 2433 012624 2434 012631 2435 012632 2439 012655 2440 012660 2442 012663 2444 012707 2446 012711 2447 012714 2449 012716 2451 012730 2453 012731 2454 012734 2456 012770 2458 012771 2464 012772 2518 012774 2524 012775 2529 013012 2534 013023 2539 013034 2544 013045 2549 013056 2552 013102 2558 013103 2592 013105 2599 013130 2604 013160 2605 013162 2606 013164 2607 013166 2609 013221 2614 013225 2615 013227 2617 013262 2623 013266 2624 013273 2626 013334 2629 013341 2630 013353 2632 013414 2636 013420 2637 013425 2640 013427 2641 013435 2643 013476 2644 013501 2645 013505 2646 013511 2649 013512 2655 013533 2661 013534 2679 013535 2680 013536 2681 013542 2684 013545 ----------------------------------------------------------- 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