COMPILATION LISTING OF SEGMENT window_io_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/20/88 1427.4 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* 13* Window Manager - implements a virtual terminal see MTB 462 ** MCR 4748 14* 15* Benson I. Margulies, from crt_ of James R Davis, June, 1981 16* 17* James R Davis, from 20 July 80 to February 11 81 18* with guidance (spiritual and material) from: 19* Steven H. Webber 20* Larry E. Johnson 21* Bernard S. Greenberg 22* and help from Krupp Suzanne 23**/ 24 25 26 27 /****^ HISTORY COMMENTS: 28* 1) change(81-12-01,CJones), approve(), audit(), install(): 29* Modified to make more_mode=fold the default on non-scrollable terminals. 30* Modified 16 December 1981 by Chris Jones to use currently defined editing 31* chars rather than # and @. 32* Modified 26 January 1982 by William York to implement user-settable 33* more handlers. 34* Modified 3 June 1982 by WMY to change the default more_mode for 35* non-scrolling terminals from fold back to wrap. 36* Modified 18 October 1982 by WMY to initialize the new attach_data 37* variables conversion_tct_table, window_image, and token_characters. 38* Modified 1 Octobter 1983 by Jon A. Rochlis to add support for partial 39* screen width windows. 40* Modified 8 January 1984 by JR to stop setting attach_data.capabilities at 41* open time. Since this isn't updated and is only used to prevent 42* setting more_mode=SCROLL on windows which don't support scroll region 43* (here and in wioctl_$modes). Also moved setting more_mode=WRAP for 44* such terminals to attach time, since a get_capabilities must be done 45* there anyway. 46* Modified 26 January 1984 by JR to get the output_conversion and special 47* tables from terminal_control (really ring0), instead of the TTF. 48* Modified 1 February 1984 by JR to set IOCB.control to wioctl_$control 49* instead of window_io_video_ (which is going away). 50* Modified 22 March 1984 by Barmar to add an initialization for 51* attach_data.auditor_iocb_ptr. 52* Modified 28 March 1984 by JR to set window_iocb_ptr for tc_desk_info_. 53* Modified 28 December 1984 by JR to zero code variables. 54* 2) change(87-03-17,LJAdams), approve(87-04-03,MCR7646), 55* audit(87-05-05,Gilcrease), install(87-05-14,MR12.1-1030): 56* Changed ttd_version to ttd_version_3. 57* 3) change(87-06-16,LJAdams), approve(87-06-16,MCR7584), 58* audit(87-07-23,Gilcrease), install(87-08-04,MR12.1-1055): 59* Changed editing_chars_version_2 to editing_chars_version_3. 60* 4) change(88-09-19,Brunelle), approve(88-09-19,MCR7813), 61* audit(88-10-05,Blair), install(88-10-17,MR12.2-1171): 62* Add version setting to call to get_special to get data in new 63* special_chars format. 64* 5) change(88-10-20,Brunelle), approve(88-10-20,PBF7813), 65* audit(88-10-20,Farley), install(88-10-20,MR12.2-1175): 66* Correct problem of overwriting beyond end of structure, wiping out data 67* allocated beyond end of structure. 68* END HISTORY COMMENTS */ 69 70 71 /* format: style4,delnl,insnl,indattr,ifthen,dclind9 */ 72 window_io_: 73 procedure; 74 return; 75 76 dcl Com_err_sw bit (1) parameter; 77 dcl Iocb_ptr ptr parameter; 78 dcl Code fixed bin (35) parameter; 79 dcl Attach_options (*) char (*) var parameter; 80 dcl Open_mode fixed bin parameter; /* opening mode */ 81 dcl Ignore bit (1) parameter; /* obsolete opening arg */ 82 83 declare 1 auto_desk_info aligned like tc_desk_window_info; 84 declare 1 IOCB aligned like iocb based (iocb_ptr); 85 declare 1 auto_capabilities aligned like capabilities_info; 86 87 declare code fixed bin (35); 88 declare ips_mask bit (36) aligned init ((36)"0"b); 89 declare target_iocbp pointer; 90 declare target_switch character (32); 91 declare 1 atd_switches unaligned, 92 ( 2 debug, 93 2 modes, 94 2 target, 95 2 top, 96 2 height, 97 2 left, 98 2 width 99 ) bit (1) unaligned, 100 2 pad bit (29) unaligned; 101 102 declare modes character (512); 103 declare first_line fixed bin; 104 declare n_lines fixed bin; 105 declare first_column fixed bin; 106 declare n_columns fixed bin; 107 declare iocb_ptr pointer; 108 109 /* Entries */ 110 111 112 declare window_$clear_window entry (pointer, fixed bin (35)); 113 declare ( 114 window_io_iox_$get_chars, 115 window_io_iox_$get_line, 116 window_io_iox_$put_chars, 117 wioctl_$control, 118 wioctl_$modes 119 ) entry; 120 declare ( 121 window_io_iox_$init, 122 window_io_iox_$shut 123 ) entry (pointer); 124 125 declare ioa_$rsnnl entry() options(variable); 126 127 declare cleanup condition; 128 129 declare cv_dec_check_ entry (character (*), fixed binary (35)) returns (fixed binary (35)); 130 declare ttt_info_$terminal_data 131 entry (character (*), fixed binary, fixed binary, pointer, fixed binary (35)); 132 133 declare ME character (32) init ("window_io_") internal static options (constant); 134 declare ( 135 error_table_$bad_conversion, 136 error_table_$badopt, 137 error_table_$too_many_args, 138 error_table_$bad_mode, 139 error_table_$noarg, 140 error_table_$undefined_order_request, 141 video_et_$window_too_big, 142 video_et_$not_terminal_switch 143 ) fixed bin (35) ext; 144 145 declare (addr, bin, byte, character, copy, hbound, lbound, maxlength, null, rank, string, substr) 146 builtin; 147 148 declare next_option_valid bit (1); 149 declare option_length fixed bin (21); 150 declare current_option fixed bin; 151 152 window_io_attach: 153 entry (Iocb_ptr, Attach_options, Com_err_sw, Code); 154 155 Code = 0; 156 iocb_ptr = Iocb_ptr; 157 158 if hbound (Attach_options, 1) < 1 then do; 159 Code = error_table_$noarg; 160 call attach_error (Code, "Usage: ^a terminal_switch {-control_args}", ME); 161 end; 162 163 164 string (atd_switches) = ""b; 165 option_length = maxlength (Attach_options (1)); 166 167 do current_option = lbound (Attach_options, 1) to hbound (Attach_options, 1); 168 begin; 169 declare option character (option_length) varying defined (Attach_options (current_option)); 170 declare next_option character (option_length) varying defined (Attach_options (current_option + 1)); 171 172 next_option_valid = current_option < hbound (Attach_options, 1); 173 if character (option, 1) ^= "-" then do;/* terminal switch */ 174 if atd_switches.target then 175 call attach_error (error_table_$too_many_args, 176 "Only one terminal switch name may be given. ^a was the second.", option); 177 target = "1"b; 178 target_switch = option; 179 end; 180 else if option = "-first_line" then 181 call num_opt ("-first_line", atd_switches.top, first_line); 182 else if option = "-height" | option = "-n_lines" | option = "-length" then 183 call num_opt (option, atd_switches.height, n_lines); 184 else if option = "-first_column" then 185 call num_opt ("-first_column", atd_switches.left, first_column); 186 else if option = "-n_columns" | option = "-width" then 187 call num_opt ("-n_columns", atd_switches.width, n_columns); 188 else if option = "-modes" then do; 189 if atd_switches.modes then 190 call attach_error (error_table_$too_many_args, "-modes may only be given once."); 191 192 193 if ^next_option_valid then 194 no_modes: 195 call attach_error (error_table_$noarg, "No modes given with -modes."); 196 if character (next_option, 1) = "-" then 197 go to no_modes; 198 199 modes = next_option; 200 current_option = current_option + 1; 201 end; 202 else call attach_error (error_table_$badopt, "Unrecognized control argument ^a.", option); 203 204 205 num_opt: 206 procedure (o_name, o_flag, o_value); 207 declare o_name character (*) varying; 208 declare o_flag bit (1); 209 declare o_value fixed bin; 210 211 if o_flag then 212 call attach_error (error_table_$too_many_args, "Only one ^a may be specified.", o_name); 213 o_flag = "1"b; 214 if ^next_option_valid then 215 no_num: 216 call attach_error (error_table_$noarg, "A number must be supplied with ^a", o_name); 217 if character (next_option, 1) = "-" then 218 go to no_num; 219 220 o_value = cv_dec_check_ ((next_option), code); 221 if code ^= 0 then 222 call attach_error (error_table_$bad_conversion, "Could not convert ^a to an integer.", next_option); 223 current_option = current_option + 1; 224 end num_opt; 225 end /* the begin */; 226 end; 227 228 if ^atd_switches.target then 229 call attach_error (error_table_$noarg, "A terminal switch must be specified."); 230 231 call iox_$look_iocb (target_switch, target_iocbp, code); 232 if code ^= 0 then 233 call attach_error (code, "Switch ^a does not exist.", target_switch); 234 auto_capabilities.version = capabilities_info_version_1; 235 call iox_$control (target_iocbp, "get_capabilities", addr (auto_capabilities), code); 236 if code ^= 0 then 237 if code = error_table_$undefined_order_request then 238 call attach_error (video_et_$not_terminal_switch, "^a.", target_switch); 239 else call attach_error (code, "^a.", target_switch); 240 241 if ^atd_switches.top then 242 first_line = 1; 243 244 if atd_switches.height then 245 if n_lines > auto_capabilities.rows - first_line + 1 then 246 call attach_error (video_et_$window_too_big, 247 "^d lines starting on line ^d will not fit on a screen ^d lines long.", n_lines, first_line, 248 auto_capabilities.rows); 249 else ; 250 else n_lines = auto_capabilities.rows - first_line + 1; 251 252 if ^atd_switches.left then 253 first_column = 1; 254 255 if atd_switches.width then 256 if n_columns > auto_capabilities.columns - first_column + 1 then 257 call attach_error (video_et_$window_too_big, 258 "^d columns starting at column ^d will not fit on a screen ^d columns wide.", n_columns, 259 first_column, auto_capabilities.columns); 260 else ; 261 else n_columns = auto_capabilities.columns - first_column + 1; 262 263 attach_data_ptr = null (); 264 on cleanup call cleanup_attach; 265 allocate attach_data in (attach_data_area); 266 attach_data.target_iocb_ptr = target_iocbp; 267 attach_data.window_id = ""b; 268 attach_data.async_count = 0; 269 string (attach_data.flags) = ""b; 270 271 call ioa_$rsnnl ("^a ^a -first_line ^i -n_lines ^i -first_column ^i -n_columns ^i", attach_data.attach_description, (0), 272 ME, target_switch, first_line, n_lines, first_column, n_columns); 273 274 attach_data.lines_written_since_read = 0; 275 attach_data.discard_output = "0"b; 276 attach_data.cursor_position.row_at_rawo, attach_data.col_at_rawo, attach_data.cursor_position.line, 277 attach_data.cursor_position.col = 1; 278 279 if ^auto_capabilities.scroll_region | n_columns ^= auto_capabilities.columns 280 /* partial width window, no scroll region yet */ 281 then attach_data.more_mode = MORE_MODE_WRAP; 282 else attach_data.more_mode = MORE_MODE_SCROLL; 283 284 attach_data.more_prompt = "More? (^a for more; ^a to discard output.)"; 285 attach_data.more_responses.n_yeses, attach_data.more_responses.n_noes = 1; 286 attach_data.more_responses.more_yeses = byte (bin ("015"b3)); 287 attach_data.more_responses.more_noes = byte (bin ("177"b3)); 288 attach_data.more_handler_in_use = "0"b; 289 attach_data.flags.debug = atd_switches.debug; 290 attach_data.flags.more_processing, attach_data.flags.can, attach_data.flags.esc, attach_data.flags.erkl = "1"b; 291 attach_data.current.rows = n_lines; 292 attach_data.current.columns = n_columns; 293 attach_data.current.line_origin = first_line; 294 attach_data.current.column_origin = first_column; 295 attach_data.kill_ring_info.top_killer = null (); 296 attach_data.kill_ring_info.army = null (); 297 298 /* Get this window its own screen-section image. */ 299 allocate window_image in (attach_data_area) set (attach_data.window_image_ptr); 300 attach_data.auditor_iocb_ptr = null (); 301 302 /* Set the conversion and special tables. */ 303 304 dcl 1 cts aligned like cv_trans_struc; 305 dcl 1 gsi aligned like get_special_info_struc; 306 307 dcl temp_special_ptr ptr; 308 309 dcl (got_conversions, got_specials) 310 bit (1); 311 312 dcl 1 ti aligned like terminal_info; 313 dcl 1 ttd aligned like terminal_type_data; 314 315 dcl cv_trans_idx fixed bin; 316 dcl conversion_type fixed bin; 317 318 got_conversions, got_specials = "1"b; /* assume we can get info from terminal control */ 319 cts.version = CV_TRANS_VERSION; 320 call iox_$control (target_iocbp, "get_output_conversion", addr (cts), Code); 321 if Code ^= 0 then 322 got_conversions = "0"b; 323 324 gsi.area_ptr = get_system_free_area_ (); 325 gsi.version = SPECIAL_INFO_STRUCT_VERSION_1; 326 call iox_$control (target_iocbp, "get_special", addr (gsi), Code); 327 if Code ^= 0 then 328 got_specials = "0"b; 329 330 if ^got_conversions | ^got_specials then /* couldn't get something from terminal control, try using the TTF defaults */ 331 do; 332 ti.version = terminal_info_version; 333 call iox_$control (target_iocbp, "terminal_info", addr (ti), Code); 334 if Code ^= 0 then 335 call attach_error (Code, "No terminal info available from terminal control."); 336 337 ttd.version = ttd_version_3; 338 call ttt_info_$terminal_data (ti.term_type, (0), (0), addr (ttd), Code); 339 if Code ^= 0 then 340 call attach_error (Code, "No terminal type data for terminal type ^a.", ti.term_type); 341 end; 342 343 allocate cv_trans in (attach_data_area) set (attach_data.output_cv_ptr); 344 if got_conversions then 345 attach_data.output_cv_ptr -> cv_trans = cts.cv_trans; 346 else attach_data.output_cv_ptr -> cv_trans = ttd.output_cv_ptr -> cv_trans_struc.cv_trans; 347 348 /* Set up tct table for quick conversion scan. */ 349 /* Fill in first 128 entries in string from regular table. */ 350 do cv_trans_idx = 0 to 127; 351 substr (conversion_tct_table, cv_trans_idx + 1, 1) = 352 byte (attach_data.output_cv_ptr -> cv_trans.value (cv_trans_idx)); 353 end; 354 355 /* Now handle next 128, giving defaults if necessary. */ 356 do cv_trans_idx = 128 to 255; 357 conversion_type = attach_data.output_cv_ptr -> cv_trans.value (cv_trans_idx); 358 if conversion_type = OUTPUT_CONVERT_ORDINARY /* bull */ 359 then substr (conversion_tct_table, cv_trans_idx + 1, 1) = byte (OUTPUT_CONVERT_OCTAL); 360 else substr (conversion_tct_table, cv_trans_idx + 1, 1) = byte (conversion_type); 361 end; 362 363 /* Now take care of things beyond limits of conversion table. */ 364 substr (conversion_tct_table, 257, 256) = copy (byte (OUTPUT_CONVERT_OCTAL), 256); 365 366 if got_specials then 367 temp_special_ptr = gsi.table_ptr; 368 else temp_special_ptr = ttd.special_ptr; 369 370 sc_escape_len = temp_special_ptr -> special_chars_struc.special_chars.escape_length; 371 sc_input_escape_len = temp_special_ptr -> special_chars_struc.special_chars.input_escapes.len; 372 373 allocate special_chars in (attach_data_area) set (attach_data.special_ptr); 374 375 attach_data.special_ptr -> special_chars = addr (temp_special_ptr -> special_chars_struc.special_chars) -> special_chars; 376 377 if got_specials then 378 free gsi.table_ptr -> special_chars_struc; 379 380 /* Set editing chars */ 381 382 dcl 1 auto_editing_chars aligned like editing_chars; 383 384 auto_editing_chars.version = editing_chars_version_3; 385 call iox_$control (target_iocbp, "get_editing_chars", addr (auto_editing_chars), Code); 386 if Code ^= 0 then 387 call attach_error (Code, "Unable to get the editing characters."); 388 attach_data.erase_char = auto_editing_chars.erase; 389 attach_data.kill_char = auto_editing_chars.kill; 390 attach_data.input_escape_char = "\"; /* 'til tty_ learns how to get/set it */ 391 392 /* ***** Break Table ***** */ 393 394 attach_data.breaks = (32)"1"b; 395 396 call add_to_breaks_array (bin ("177"b3 /* DEL */)); 397 call add_to_breaks_array (rank (attach_data.erase_char)); 398 call add_to_breaks_array (rank (attach_data.kill_char)); 399 call add_to_breaks_array (rank (attach_data.input_escape_char)); 400 attach_data.line_editor_breaks = attach_data.breaks; 401 402 attach_data.token_character_count = 65; 403 attach_data.token_characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-$"; 404 405 attach_data.top_killer = alloc_killer (); 406 killer.next, killer.prev = attach_data.top_killer; 407 408 409 call set_ips_mask; 410 IOCB.attach_data_ptr = addr (attach_data); 411 IOCB.attach_descrip_ptr = addr (attach_data.attach_description); 412 IOCB.open = window_io_open; 413 IOCB.detach_iocb = window_io_detach; 414 call iox_$propagate (iocb_ptr); 415 call reset_ips_mask; 416 return; 417 418 add_to_breaks_array: 419 proc (bit_offset); 420 421 dcl bit_offset fixed bin; 422 423 if (bit_offset >= lbound (breaks_array, 1)) & (bit_offset <= hbound (breaks_array, 1)) then 424 breaks_array (bit_offset) = "1"b; 425 426 end add_to_breaks_array; 427 428 window_io_open: 429 entry (Iocb_ptr, Open_mode, Ignore, Code); 430 431 Code = 0; 432 iocb_ptr = Iocb_ptr -> iocb.actual_iocb_ptr; 433 if Open_mode ^= Stream_input_output then do; 434 Code = error_table_$bad_mode; 435 return; 436 end; 437 438 attach_data_ptr = IOCB.attach_data_ptr; 439 target_iocbp = attach_data.target_iocb_ptr; 440 auto_desk_info.first_row = attach_data.line_origin; 441 auto_desk_info.n_rows = attach_data.current.rows; 442 auto_desk_info.first_column = attach_data.column_origin; 443 auto_desk_info.n_columns = attach_data.current.columns; 444 auto_desk_info.window_iocb_ptr = iocb_ptr; 445 call iox_$control (target_iocbp, "check_in_window", addr (auto_desk_info), Code); 446 if Code ^= 0 then 447 return; 448 attach_data.window_id = auto_desk_info.window_id; 449 450 /* Clear window image on opening. */ 451 window_image_string = ""; 452 453 attach_data.open_description = "stream_input_output Video"; 454 call window_io_iox_$init (iocb_ptr); 455 456 call set_ips_mask; 457 458 IOCB.open = iox_$err_not_closed; 459 IOCB.detach_iocb = iox_$err_not_closed; 460 IOCB.get_chars = window_io_iox_$get_chars; 461 IOCB.get_line = window_io_iox_$get_line; 462 IOCB.put_chars = window_io_iox_$put_chars; 463 IOCB.modes = wioctl_$modes; 464 IOCB.control = wioctl_$control; 465 IOCB.close = window_io_close; 466 IOCB.open_descrip_ptr = addr (attach_data.open_description); 467 call iox_$propagate (iocb_ptr); 468 call reset_ips_mask; 469 470 call window_$clear_window (iocb_ptr, (0)); 471 Code = 0; 472 return; 473 474 475 window_io_close: 476 entry (Iocb_ptr, Code); 477 478 Code = 0; 479 iocb_ptr = Iocb_ptr -> iocb.actual_iocb_ptr; 480 attach_data_ptr = IOCB.attach_data_ptr; 481 482 call window_io_iox_$shut (iocb_ptr); 483 484 call set_ips_mask; 485 IOCB.open_data_ptr = null (); 486 IOCB.open_descrip_ptr = null; 487 IOCB.detach_iocb = window_io_detach; 488 IOCB.close = iox_$err_not_open; 489 IOCB.open = window_io_open; 490 IOCB.modes, IOCB.control, IOCB.get_line, IOCB.get_chars, IOCB.put_chars = iox_$err_not_open; 491 call iox_$propagate (iocb_ptr); 492 call reset_ips_mask; 493 494 return; 495 496 window_io_detach: 497 entry (Iocb_ptr, Code); 498 499 Code = 0; 500 iocb_ptr = Iocb_ptr; 501 attach_data_ptr = IOCB.attach_data_ptr; 502 503 if attach_data.output_cv_ptr ^= null () then 504 free attach_data.output_cv_ptr -> cv_trans in (attach_data_area); 505 if attach_data.special_ptr ^= null () then 506 free attach_data.special_ptr -> special_chars in (attach_data_area); 507 if attach_data.window_image_ptr ^= null () then 508 free window_image in (attach_data_area); 509 510 /* Disband the army (kill the killers?) */ 511 begin; 512 dcl k ptr; 513 dcl n ptr; 514 do k = attach_data.army repeat n while (k ^= null ()); 515 /* execute killers */ 516 n = k -> killer.next; 517 free k -> killer in (attach_data_area); 518 end; 519 do k = attach_data.top_killer repeat n while (k ^= null ()); 520 n = k -> killer.next; 521 free k -> killer in (attach_data_area); 522 if n = attach_data.top_killer then 523 n = null (); /* end of ring, force end of loop */ 524 end; 525 end; /* killer freeing begin block */ 526 527 auto_desk_info.window_id = attach_data.window_id; 528 target_iocbp = attach_data.target_iocb_ptr; 529 call iox_$control (target_iocbp, "check_out_window", addr (auto_desk_info), (0)); 530 531 call set_ips_mask; 532 IOCB.attach_data_ptr = null (); 533 IOCB.attach_descrip_ptr = null (); 534 call iox_$propagate (iocb_ptr); 535 call reset_ips_mask; 536 537 free attach_data; 538 539 return; 540 541 542 /* Error calls com_err_ if the loud switch is set and goes to the attach return */ 543 544 attach_error: 545 procedure options (non_quick, variable); 546 547 548 declare error_msg character (256); 549 declare error_msg_len fixed bin; 550 declare code fixed bin (35) based (code_ptr); 551 declare code_ptr pointer; 552 553 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 554 555 declare cu_$arg_list_ptr entry returns (ptr); 556 declare ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin, bit (1) aligned, bit (1) aligned); 557 declare com_err_ entry () options (variable); 558 declare sub_err_ entry () options (variable); 559 560 call ioa_$general_rs (cu_$arg_list_ptr (), 2 /* ctl string */, 3 /* first sub arg */, error_msg, error_msg_len, 561 "0"b /* no pad */, "0"b /* no nl */); 562 563 call cu_$arg_ptr (1, code_ptr, (0), (0)); /* get code */ 564 565 if Com_err_sw then 566 call com_err_ (code, ME, "^a", substr (error_msg, 1, error_msg_len)); 567 else call sub_err_ (code, ME, "h", null (), (0), "^a", substr (error_msg, 1, error_msg_len)); 568 Code = code; 569 go to return_; 570 end attach_error; 571 572 return_: 573 return; 574 575 576 set_ips_mask: 577 procedure; 578 declare ( 579 hcs_$set_ips_mask, 580 hcs_$reset_ips_mask 581 ) entry (bit (36) aligned, bit (36) aligned); 582 583 if ips_mask = ""b then 584 call hcs_$set_ips_mask (""b, ips_mask); 585 return; 586 587 reset_ips_mask: 588 entry; 589 if ips_mask ^= ""b then 590 call hcs_$reset_ips_mask (ips_mask, ips_mask); 591 end set_ips_mask; 592 cleanup_attach: 593 procedure; 594 if attach_data_ptr ^= null () then do; 595 auto_desk_info.window_id = attach_data.window_id; 596 if attach_data.window_id ^= ""b then 597 if target_iocbp ^= null () then 598 call iox_$control (target_iocbp, "check_out_window", addr (auto_desk_info), (0)); 599 free attach_data; 600 end; 601 end cleanup_attach; 602 alloc_killer: 603 procedure returns (pointer); 604 dcl new pointer; 605 killer_alloc_size = killer_initial_alloc_size; 606 allocate killer in (attach_data_area) set (new); 607 new -> killer.next, new -> killer.prev = null (); 608 new -> killer.words = ""; 609 return (new); 610 end alloc_killer; 611 612 1 1 /* Begin include file window_io_attach_data_.incl.pl1 BIM June 1981 */ 1 2 1 3 /* Modified by Chris Jones December 1981 to add MORE_MODE_FOLD */ 1 4 /* Modified by William York 26 January 1982 to add more_handler_in_use 1 5* and more_handler to the attach_data structure. */ 1 6 /* Modified 18 October 1982 by WMY to add the window_image_ptr, 1 7* conversion_tct_table and token_characters. */ 1 8 /* Modified 30 September 1983 by Jon A. Rochlis to add column_origin for 1 9* partial screen width windows. */ 1 10 /* Modified 8 January 1983 by JR to delete attach_data.capabilites. See 1 11* window_io_ and wioctl_ for more info. */ 1 12 /* Modified 5 March 1984 by Barmar to add dispatch_table.name, .description, 1 13* and .info_path. */ 1 14 /* Modified 22 March 1984 by Barmar to add attach_data.auditor_iocb_ptr. */ 1 15 /* Modified 01 September 1984 by JR to add edited mode. */ 1 16 1 17 1 18 /****^ HISTORY COMMENTS: 1 19* 1) change(86-05-18,GDixon), approve(86-05-18,MCR7357), 1 20* audit(86-06-16,Farley), install(86-07-18,MR12.0-1098): 1 21* Modify attach_data.conversion_tct_table to make it aligned. When tct_ was 1 22* replaced by find_char_, the new calling sequence required an aligned 1 23* table. 1 24* END HISTORY COMMENTS */ 1 25 1 26 1 27 /* format: style3 */ 1 28 declare attach_data_ptr pointer; 1 29 declare 1 attach_data aligned based (attach_data_ptr), 1 30 2 window_id bit (36) aligned, 1 31 2 async_count fixed bin, 1 32 2 attach_description 1 33 character (128) var, /* attach description */ 1 34 2 open_description 1 35 character (64) varying, 1 36 2 target_iocb_ptr pointer, 1 37 2 flags, 1 38 3 discard_output 1 39 bit (1) unal, /* more processing: throw away all output */ 1 40 3 debug bit (1) unal, 1 41 3 more_processing 1 42 bit (1) unal, /* more mode */ 1 43 3 vertsp bit (1) unal, /* vertsp mode */ 1 44 3 can bit (1) unal, /* can mode */ 1 45 3 esc bit (1) unal, /* can mode */ 1 46 3 erkl bit (1) unal, /* erkl mode */ 1 47 3 rawo bit (1) unal, /* rawo mode */ 1 48 3 red bit (1) unal, /* red mode */ 1 49 3 ctl_char bit (1) unal, /* allow ctrl chars input? */ 1 50 3 status_pending 1 51 bit (1) unal, 1 52 3 cursor_valid bit (1) unal, 1 53 3 suppress_echo bit (1) unal, 1 54 3 ignore_status bit (1) unal, 1 55 3 edited bit (1) unal, /* edited mode */ 1 56 3 pad bit (21) unal, 1 57 2 status aligned like window_status, 1 58 2 lines_written_since_read 1 59 fixed bin, /* more processing */ 1 60 2 cursor_position, /* Where in this window */ 1 61 3 line fixed bin, /* line number */ 1 62 3 col fixed bin, /* column */ 1 63 3 row_at_rawo fixed bin, 1 64 3 col_at_rawo fixed bin, /* when we went raw */ 1 65 2 more_mode fixed bin, /* which flavor */ 1 66 2 more_prompt character (80), /* "MORE?" */ 1 67 2 more_responses, 1 68 3 n_yeses fixed bin, /* number valid */ 1 69 3 n_noes fixed bin, 1 70 3 more_yeses character (32) unaligned, /* at most 32 yeses */ 1 71 3 more_noes character (32) unaligned, 1 72 2 editing_chars, 1 73 3 erase_char character (1), 1 74 3 kill_char character (1), 1 75 3 input_escape_char 1 76 character (1), /* normally "\" */ 1 77 2 breaks bit (128) unaligned, 1 78 2 line_editor_breaks 1 79 bit (128) unaligned, 1 80 2 current, /* describes us */ 1 81 3 rows fixed bin, /* how many lines */ 1 82 3 columns fixed bin, /* how wide lines in this window are */ 1 83 3 line_origin fixed bin, /* on containing screen (terminal) */ 1 84 3 column_origin fixed bin, /* on containing screen (terminal) */ 1 85 2 kill_ring_info, 1 86 3 top_killer ptr, /* top of ring */ 1 87 3 army ptr, /* surplus killers kept here */ 1 88 2 output_cv_ptr ptr, /* to cv_trans */ 1 89 2 special_ptr ptr, /* to special_chars */ 1 90 2 saved_buffer_ptr /* for saving text across editor calls */ 1 91 pointer, 1 92 2 dispatch_table_ptr /* for editor key bindings */ 1 93 pointer, 1 94 2 more_handler_in_use 1 95 bit(1), 1 96 2 more_handler entry (pointer, bit(1) aligned, fixed bin(35)), 1 97 2 conversion_tct_table 1 98 char(512), 1 99 2 token_character_count /* count of valid chars */ 1 100 fixed bin, 1 101 2 token_characters /* token delimiters for line editor */ 1 102 char(128) unaligned, 1 103 2 window_image_ptr pointer, /* to character array for this window */ 1 104 2 auditor_iocb_ptr pointer; /* set by set_audit_iocb_ptr control order */ 1 105 1 106 dcl ( 1 107 MORE_MODE_SCROLL init (1), 1 108 MORE_MODE_CLEAR init (2), 1 109 MORE_MODE_WRAP init (3), 1 110 MORE_MODE_FOLD init (4) 1 111 ) fixed bin internal static options (constant); 1 112 1 113 dcl attach_data_area area based (get_system_free_area_ ()); 1 114 1 115 declare get_system_free_area_ 1 116 entry returns (pointer); 1 117 1 118 dcl 1 killer based (attach_data.top_killer), 1 119 2 next pointer, /* if you rotate */ 1 120 2 prev pointer, /* dbl thread for conven. */ 1 121 2 max_size fixed bin (21), 1 122 2 words character (killer_alloc_size refer (killer.max_size)) varying; 1 123 1 124 dcl killer_alloc_size fixed bin; 1 125 dcl killer_initial_alloc_size 1 126 fixed bin init (128) internal static options (constant); 1 127 declare breaks_array (0:127) bit (1) unaligned defined (attach_data.breaks) position (1); 1 128 declare line_editor_breaks_array 1 129 (0:127) bit (1) unaligned defined (attach_data.line_editor_breaks) position (1); 1 130 1 131 dcl valid_token_characters char(attach_data.token_character_count) based (addr (attach_data.token_characters)); 1 132 1 133 /* Each window has its own window image, which must be re-allocated if the 1 134* window size changes. */ 1 135 dcl window_image (attach_data.current.rows) char (attach_data.current.columns) 1 136 based (attach_data.window_image_ptr); 1 137 1 138 /* Single based string for clearing. */ 1 139 dcl window_image_string char(attach_data.current.rows * attach_data.current.columns) based (window_image_ptr); 1 140 1 141 /* editor key binding dispatch table. 1 142* 1 143*If type = 0, the keystroke is associated with the editor routine specified by 1 144*routine. Simply call the routine. 1 145* 1 146*If type < 0, the keystroke is a prefix character, and the pointer in next_table 1 147*points to the next dispatch table. 1 148* 1 149*If type > 0, it is an index into the table of builtin editor commands (i.e. 1 150*the editor routines implemented by this module). Perform a quick call of the 1 151*builtin routine. */ 1 152 1 153 dcl dispatch_table_ptr pointer; 1 154 1 155 dcl 1 dispatch_table aligned based (dispatch_table_ptr), 1 156 2 key (0:127), 1 157 3 type fixed bin, 1 158 3 pad fixed bin, 1 159 3 next_table pointer, 1 160 3 routine entry (pointer, fixed bin(35)), 1 161 3 numarg_action fixed bin, /* only for external routines */ 1 162 3 name char (64) varying, 1 163 3 description char (256) varying, 1 164 3 info_path, 1 165 4 info_dir char (168), 1 166 4 info_entry char (32); 1 167 2 1 /* Begin include file window_editor_values.incl.pl1 */ 2 2 2 3 /* Spring 1983 by William M. York */ 2 4 /* Modifed June 1983 by Jon A. Rochlis to add NUMBER_READER_N builtins, word 2 5* casing builtins, twiddle word, and numarg actions */ 2 6 /* Modified 7 August 1983 by JR to add string arrays. Be sure 2 7* everything is kept in sync. If you add a new editor builtin 2 8* make sure you update HIGHEST_BUILTIN_ROUTINE_VALUE, add an element 2 9* to the string array, and bump its dimension. */ 2 10 /* Modified 5 March 1984 by Barmar to add the builtin_descriptions array 2 11* and BUILTIN_INFO_* */ 2 12 2 13 dcl (EXTERNAL_ROUTINE init(0), 2 14 FORWARD_CHARACTER init(1), 2 15 BACKWARD_CHARACTER init(2), 2 16 FORWARD_DELETE_CHARACTER init(3), 2 17 BACKWARD_DELETE_CHARACTER 2 18 init(4), 2 19 MOVE_TO_END_OF_LINE init(5), 2 20 MOVE_TO_BEGINNING_OF_LINE 2 21 init(6), 2 22 KILL_TO_END_OF_LINE init(7), 2 23 KILL_TO_BEGINNING_OF_LINE 2 24 init(8), 2 25 FORWARD_WORD init(9), 2 26 BACKWARD_WORD init(10), 2 27 FORWARD_DELETE_WORD init(11), 2 28 BACKWARD_DELETE_WORD init(12), 2 29 QUOTE_CHARACTER init(13), 2 30 CLEAR_WINDOW init(14), 2 31 TWIDDLE_CHARACTERS init(15), 2 32 DISPLAY_EDITOR_DOCUMENTATION 2 33 init(16), 2 34 SELF_INSERT init(17), 2 35 YANK_FROM_KILL_RING init(18), 2 36 YANK_PREVIOUS_FROM_KILL_RING 2 37 init(19), 2 38 TERMINATE_INPUT_LINE init(20), 2 39 UNDEFINED init(21), 2 40 PROCESS_INPUT_ESCAPE init(22), 2 41 NUMBER_READER_0 init(23), 2 42 NUMBER_READER_1 init(24), 2 43 NUMBER_READER_2 init(25), 2 44 NUMBER_READER_3 init(26), 2 45 NUMBER_READER_4 init(27), 2 46 NUMBER_READER_5 init(28), 2 47 NUMBER_READER_6 init(29), 2 48 NUMBER_READER_7 init(30), 2 49 NUMBER_READER_8 init(31), 2 50 NUMBER_READER_9 init(32), 2 51 MULTIPLIER init(33), 2 52 LOWERCASE_WORD init(34), 2 53 UPPERCASE_WORD init(35), 2 54 INITIAL_CAPITAL init(36), 2 55 TWIDDLE_WORDS init(37), 2 56 NEGATIVE_NUMBER_READER init(38), 2 57 /* the following must be updated as new internal routines are added 2 58* in order for set_editor_key_bindings to work */ 2 59 HIGHEST_BUILTIN_ROUTINE_VALUE 2 60 init(38) 2 61 ) fixed bin static options(constant); 2 62 2 63 dcl builtin_routine_names (-1:38) char(32) static options (constant) init 2 64 ("PREFIX_KEY", 2 65 "USER_DEFINED_COMMAND", 2 66 "FORWARD_CHARACTER", 2 67 "BACKWARD_CHARACTER", 2 68 "FORWARD_DELETE_CHARACTER", 2 69 "BACKWARD_DELETE_CHARACTER", 2 70 "MOVE_TO_END_OF_LINE", 2 71 "MOVE_TO_BEGINNING_OF_LINE", 2 72 "KILL_TO_END_OF_LINE", 2 73 "KILL_TO_BEGINNING_OF_LINE", 2 74 "FORWARD_WORD", 2 75 "BACKWARD_WORD", 2 76 "FORWARD_DELETE_WORD", 2 77 "BACKWARD_DELETE_WORD", 2 78 "QUOTE_CHARACTER", 2 79 "CLEAR_WINDOW", 2 80 "TWIDDLE_CHARACTERS", 2 81 "DISPLAY_EDITOR_DOCUMENTATION", 2 82 "SELF_INSERT", 2 83 "YANK_FROM_KILL_RING", 2 84 "YANK_PREVIOUS_FROM_KILL_RING", 2 85 "TERMINATE_INPUT_LINE", 2 86 "UNDEFINED", 2 87 "PROCESS_INPUT_ESCAPE", 2 88 "NUMBER_READER_0", 2 89 "NUMBER_READER_1", 2 90 "NUMBER_READER_2", 2 91 "NUMBER_READER_3", 2 92 "NUMBER_READER_4", 2 93 "NUMBER_READER_5", 2 94 "NUMBER_READER_6", 2 95 "NUMBER_READER_7", 2 96 "NUMBER_READER_8", 2 97 "NUMBER_READER_9", 2 98 "MULTIPLIER", 2 99 "LOWERCASE_WORD", 2 100 "UPPERCASE_WORD", 2 101 "INITIAL_CAPITAL", 2 102 "TWIDDLE_WORDS", 2 103 "NEGATIVE_NUMBER_READER"); 2 104 2 105 dcl builtin_descriptions (-1:38) char (128) varying static options (constant) init 2 106 ("Reads another key and dispatches.", 2 107 "A user-defined command for which no description was supplied.", 2 108 "Moves forward over one character.", 2 109 "Moves backward over one character.", 2 110 "Deletes the character at the cursor.", 2 111 "Deletes the character to the left of the cursor.", 2 112 "Moves to the end of the input line.", 2 113 "Moves to the beginning of the input line.", 2 114 "Deletes the text from the cursor to the end of the input line, saving it on the kill ring.", 2 115 "Deletes the text from the cursor to the beginning of the input line, saving it on the kill ring.", 2 116 "Moves to the end of the current or following word.", 2 117 "Moves to the beginning of the current or preceding word.", 2 118 "Deletes the text from the cursor to the end of the current word, saving it on the kill ring.", 2 119 "Deletes the text from the cursor to the beginning of the current word, saving it on the kill ring.", 2 120 "Inserts the next character typed into the input line.", 2 121 "Clears the input window, and redisplays the current input line at the top of the window.", 2 122 "Interchanges the two characters to the left of the cursor.", 2 123 "Displays the list of standard input editor commands.", 2 124 "Inserts the character typed.", 2 125 "Inserts the top item from the kill ring.", 2 126 "Deletes the text just yanked, rotate the kill ring, and insert the new top item.", 2 127 "Enters the input line.", 2 128 "Undefined key - rings the terminal bell.", 2 129 "Does appropriate ""backslash-style"" input escape processing.", 2 130 (10) ("Begins reading a numeric argument."), 2 131 "If followed by digits, uses them as the numeric argument, otherwise multiplies the num-arg by four.", 2 132 "Lowercases the current word.", 2 133 "Uppercases the current word.", 2 134 "Uppercases the first letter of the current word, and lowercases the rest of the letters.", 2 135 "Interchange the current word and the preceding word.", 2 136 "Begins reading a negative numeric argument."); 2 137 2 138 dcl BUILTIN_INFO_DIR char (168) static options (constant) init (">doc>info"); 2 139 dcl BUILTIN_INFO_ENTRY char (32) static options (constant) init ("video_editing.gi"); 2 140 2 141 /* numeric argument action */ 2 142 2 143 dcl (REJECT init(0), 2 144 IGNORE init(1), 2 145 REPEAT init(2), 2 146 PASS init(3), 2 147 /* this should be updated if new numarg actions are added */ 2 148 HIGHEST_NUMARG_ACTION_VALUE 2 149 init(3) 2 150 ) fixed bin static options(constant); 2 151 2 152 /* strings for numarg actions */ 2 153 2 154 dcl numarg_action_names (0:3) char(6) static options (constant) init 2 155 ("REJECT", 2 156 "INGORE", 2 157 "REPEAT", 2 158 "PASS"); 2 159 2 160 /* end include file window_editor_values.incl.pl1 */ 1 168 3 1 /* begin include file window_status.incl.pl1 */ 3 2 /* Modified 28 March 1984 by Jon A. Rochlis to add terminal type change 3 3* and reconnection stuff. */ 3 4 /* format: style3 */ 3 5 /* interrupts that an application can recieve from a window */ 3 6 3 7 declare window_status_string 3 8 bit (36) unaligned; 3 9 3 10 declare 1 window_status aligned, 3 11 2 screen_invalid bit (1) unaligned, 3 12 2 async_change bit (1) unaligned, 3 13 2 ttp_change bit (1) unaligned, 3 14 2 reconnection bit (1) unaligned, 3 15 2 pad bit (32) unaligned; 3 16 3 17 declare ( 3 18 W_STATUS_SCREEN_INVALID 3 19 init ("1"b), 3 20 W_STATUS_ASYNC_EVENT 3 21 init ("01"b), 3 22 W_STATUS_TTP_CHANGE 3 23 init ("001"b), 3 24 W_STATUS_RECONNECTION 3 25 init ("0001"b) 3 26 ) bit (36) aligned internal static options (constant); 3 27 3 28 /* end include file window_status.incl.pl1 */ 1 169 4 1 /* BEGIN INCLUDE FILE terminal_capabilities.incl.pl1 BIM May 1981 */ 4 2 /* format: style3 */ 4 3 dcl 1 capabilities_info aligned based (capabilities_info_ptr), 4 4 2 version fixed bin, 4 5 2 screensize, 4 6 3 columns fixed bin, 4 7 3 rows fixed bin, 4 8 2 flags, 4 9 3 scroll_region bit (1) unal, 4 10 3 insert_chars bit (1) unal, 4 11 3 insert_mode bit (1) unal, 4 12 3 delete_chars bit (1) unal, 4 13 3 overprint bit (1) unal, 4 14 3 pad bit (31) unal, 4 15 2 line_speed fixed bin; /* chars per sec */ 4 16 4 17 dcl (capabilities_info_version_1, capabilities_info_version) 4 18 fixed bin internal static init (1) options (constant); 4 19 dcl capabilities_info_ptr 4 20 pointer; 4 21 4 22 /* END INCLUDE FILE terminal_capabilities.incl.pl1 */ 1 170 1 171 1 172 /* End include file window_io_attach_data_.incl.pl1 */ 613 614 5 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 5 2 5 3 /* Written 05/04/78 by C. D. Tavares */ 5 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 5 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 5 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 5 7 5 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 5 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 5 10 iox_$close entry (pointer, fixed bin (35)), 5 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 5 12 iox_$delete_record entry (pointer, fixed bin (35)), 5 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 5 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 5 15 iox_$err_not_attached entry options (variable), 5 16 iox_$err_not_closed entry options (variable), 5 17 iox_$err_no_operation entry options (variable), 5 18 iox_$err_not_open entry options (variable), 5 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 5 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 5 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 5 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 5 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 5 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 5 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 5 28 iox_$propagate entry (pointer), 5 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 5 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 5 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 5 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 5 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 5 40 5 41 dcl (iox_$user_output, 5 42 iox_$user_input, 5 43 iox_$user_io, 5 44 iox_$error_output) external static pointer; 5 45 5 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 615 6 1 /* Begin include file ..... iox_modes.incl.pl1 */ 6 2 6 3 /* Written by C. D. Tavares, 03/17/75 */ 6 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 6 5 6 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 6 7 ("stream_input", "stream_output", "stream_input_output", 6 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 6 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 6 10 "direct_input", "direct_output", "direct_update"); 6 11 6 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 6 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 6 14 6 15 dcl (Stream_input initial (1), 6 16 Stream_output initial (2), 6 17 Stream_input_output initial (3), 6 18 Sequential_input initial (4), 6 19 Sequential_output initial (5), 6 20 Sequential_input_output initial (6), 6 21 Sequential_update initial (7), 6 22 Keyed_sequential_input initial (8), 6 23 Keyed_sequential_output initial (9), 6 24 Keyed_sequential_update initial (10), 6 25 Direct_input initial (11), 6 26 Direct_output initial (12), 6 27 Direct_update initial (13)) fixed bin int static options (constant); 6 28 6 29 /* End include file ..... iox_modes.incl.pl1 */ 616 617 7 1 7 2 /* BEGIN INCLUDE FILE tty_editing_chars.incl.pl1 */ 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(80-11-19,JRDavis), approve(), audit(), install(): 7 7* Created file to declare structure for (get set)_editing_chars 7 8* control order of tty_. 7 9* 2) change(85-10-16,Negaret), approve(87-06-16,MCR7584), 7 10* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1056): 7 11* Add redisplay char (version 3). 7 12* END HISTORY COMMENTS */ 7 13 7 14 7 15 dcl 1 editing_chars aligned based (editing_chars_ptr), 7 16 2 version fixed bin, 7 17 2 erase char (1) unaligned, 7 18 2 kill char (1) unaligned, 7 19 2 redisplay char (1) unaligned; 7 20 7 21 dcl editing_chars_version_2 fixed bin internal static init (2); 7 22 dcl editing_chars_version_3 fixed bin internal static init (3); 7 23 dcl editing_chars_ptr pointer; 7 24 7 25 /* END INCLUDE FILE tty_editing_chars.incl.pl1 */ 618 8 1 /* BEGIN INCLUDE FiLE ... terminal_type_data.incl.pl1 */ 8 2 8 3 8 4 /****^ HISTORY COMMENTS: 8 5* 1) change(77-05-19,JStern), approve(), audit(), install(): 8 6* Created 8 7* Modified 8/14/79 by Robert Coren to convert to version 2 by adding 8 8* flow control parameters 8 9* 2) change(87-03-09,LJAdams), approve(87-04-03,MCR7646), 8 10* audit(87-05-05,Gilcrease), install(87-08-04,MR12.1-1056): 8 11* Change the ttd_version to ttd_version_3. Add the protocol field. 8 12* END HISTORY COMMENTS */ 8 13 8 14 8 15 dcl 1 terminal_type_data aligned based (ttdp), /* info structure for set_terminal_data order */ 8 16 2 version fixed bin, /* structure version */ 8 17 2 old_type fixed bin, /* old terminal type number, -1 => none */ 8 18 2 name char (32) unaligned, /* terminal type name */ 8 19 2 tables, 8 20 3 input_tr_ptr ptr, /* input translation table ptr */ 8 21 3 output_tr_ptr ptr, /* output translation table ptr */ 8 22 3 input_cv_ptr ptr, /* input conversion table ptr */ 8 23 3 output_cv_ptr ptr, /* output conversion table ptr */ 8 24 3 special_ptr ptr, /* special chars table ptr */ 8 25 3 delay_ptr ptr, /* delay table ptr */ 8 26 2 editing_chars unaligned, 8 27 3 erase char (1) unaligned, 8 28 3 kill char (1) unaligned, 8 29 2 framing_chars unaligned, 8 30 3 frame_begin char (1) unaligned, 8 31 3 frame_end char (1) unaligned, 8 32 2 flags unal, 8 33 3 keyboard_locking bit (1), /* ON to request keyboard locking and unlocking */ 8 34 3 input_timeout bit (1), 8 35 3 output_block_acknowledge bit (1), 8 36 3 mbz bit (15), 8 37 2 line_delimiter char (1) unal, 8 38 2 mbz bit (9) unal, 8 39 8 40 /* the remainder of this structure is only present if version is 2 or more */ 8 41 8 42 2 flow_control_chars unal, 8 43 3 input_suspend char (1), 8 44 3 input_resume char (1), 8 45 3 output_suspend_etb char (1), 8 46 3 output_resume_ack char (1), 8 47 2 output_buffer_size fixed bin, 8 48 8 49 /* the remainder of this structure is only present if version is 3 or more */ 8 50 2 protocol fixed bin; /* 0=NONE; 1=MOWSE */ 8 51 8 52 8 53 dcl ttdp ptr; /* ptr to terminal_type_data structure */ 8 54 dcl ttd_version_3 fixed bin int static options (constant) init (3); 8 55 /* current version of structure */ 8 56 8 57 8 58 /* END INCLUDE FILE ... terminal_type_data.incl.pl1 */ 619 9 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 9 2 9 3 /* Created 5/25/77 by J. Stern */ 9 4 9 5 9 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 9 7 2 version fixed bin, /* version number of this sturcture */ 9 8 2 id char (4) unaligned, /* terminal id from answerback */ 9 9 2 term_type char (32) unaligned, /* terminal type name */ 9 10 2 line_type fixed bin, /* line type number */ 9 11 2 baud_rate fixed bin, 9 12 2 reserved (4) fixed bin; /* reserved for future use */ 9 13 9 14 9 15 dcl terminal_info_ptr ptr; 9 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 9 17 9 18 9 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 620 10 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 10 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 10 3* version number to IOX2. */ 10 4 /* format: style2 */ 10 5 10 6 dcl 1 iocb aligned based, /* I/O control block. */ 10 7 2 version character (4) aligned, /* IOX2 */ 10 8 2 name char (32), /* I/O name of this block. */ 10 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 10 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 10 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 10 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 10 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 10 14 2 reserved bit (72), /* Reserved for future use. */ 10 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 10 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 10 17 /* open(p,mode,not_used,s) */ 10 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 10 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 20 /* get_line(p,bufptr,buflen,actlen,s) */ 10 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 10 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 10 24 /* put_chars(p,bufptr,buflen,s) */ 10 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 10 26 /* modes(p,newmode,oldmode,s) */ 10 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 10 28 /* position(p,u1,u2,s) */ 10 29 2 control entry (ptr, char (*), ptr, fixed (35)), 10 30 /* control(p,order,infptr,s) */ 10 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 10 32 /* read_record(p,bufptr,buflen,actlen,s) */ 10 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 10 34 /* write_record(p,bufptr,buflen,s) */ 10 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 10 36 /* rewrite_record(p,bufptr,buflen,s) */ 10 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 10 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 10 39 /* seek_key(p,key,len,s) */ 10 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 10 41 /* read_key(p,key,len,s) */ 10 42 2 read_length entry (ptr, fixed (21), fixed (35)), 10 43 /* read_length(p,len,s) */ 10 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 10 45 /* open_file(p,mode,desc,not_used,s) */ 10 46 2 close_file entry (ptr, char (*), fixed bin (35)), 10 47 /* close_file(p,desc,s) */ 10 48 2 detach entry (ptr, char (*), fixed bin (35)); 10 49 /* detach(p,desc,s) */ 10 50 10 51 declare iox_$iocb_version_sentinel 10 52 character (4) aligned external static; 10 53 10 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 621 622 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 */ 623 624 12 1 /* begin include file tc_desk_info_.incl.pl1 BIM June 1981 */ 12 2 /* Modified 1 October 1983 by Jon A. Rochlis to add support for partial 12 3* screen width windows */ 12 4 /* Modified 28 March 1984 by JR to add window_iocb_ptr so tc_ can inform 12 5* window_ of events such as reconnection, by doing set_window_status control 12 6* orders. */ 12 7 12 8 /* internal interface */ 12 9 12 10 /* format: style2,linecom,^indnoniterdo,indcomtxt,^inditerdo,dclind5,idind25 */ 12 11 /* requests to desk management, first pass implementation */ 12 12 12 13 declare tc_desk_info_ptr pointer; 12 14 declare 1 tc_desk_window_info aligned based (tc_desk_info_ptr), 12 15 2 first_row fixed bin, /* top row of window */ 12 16 2 n_rows fixed bin, /* How many rows */ 12 17 2 first_column fixed bin, /* Fist column of window */ 12 18 2 n_columns fixed bin, /* How many columns */ 12 19 2 window_id bit (36) aligned, 12 20 2 window_iocb_ptr ptr; 12 21 12 22 /* used in calls to terminal control to establish rearrange, 12 23* and inquire about windows */ 12 24 12 25 /* end include file tc_desk_info_.incl.pl1 */ 625 626 627 end window_io_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/20/88 1422.9 window_io_.pl1 >spec>install>1175>window_io_.pl1 613 1 07/24/86 2051.7 window_io_attach_data_.incl.pl1 >ldd>include>window_io_attach_data_.incl.pl1 1-168 2 09/12/84 0916.7 window_editor_values.incl.pl1 >ldd>include>window_editor_values.incl.pl1 1-169 3 09/12/84 0916.7 window_status.incl.pl1 >ldd>include>window_status.incl.pl1 1-170 4 03/27/82 0429.7 terminal_capabilities.incl.pl1 >ldd>include>terminal_capabilities.incl.pl1 615 5 05/23/83 0916.6 iox_entries.incl.pl1 >ldd>include>iox_dcls.incl.pl1 616 6 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 618 7 08/06/87 0913.5 tty_editing_chars.incl.pl1 >ldd>include>tty_editing_chars.incl.pl1 619 8 08/06/87 0913.5 terminal_type_data.incl.pl1 >ldd>include>terminal_type_data.incl.pl1 620 9 06/29/77 1624.0 terminal_info.incl.pl1 >ldd>include>terminal_info.incl.pl1 621 10 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 623 11 10/18/88 1210.6 tty_convert.incl.pl1 >ldd>include>tty_convert.incl.pl1 625 12 09/12/84 0916.7 tc_desk_info_.incl.pl1 >ldd>include>tc_desk_info_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. Attach_options parameter varying char array dcl 79 ref 152 158 165 167 167 172 173 173 174 174 178 178 180 180 182 182 182 182 182 182 182 182 184 184 186 186 186 186 188 188 196 196 199 199 202 202 217 217 220 220 221 221 CV_TRANS_VERSION constant fixed bin(17,0) initial dcl 11-127 ref 319 Code parameter fixed bin(35,0) dcl 78 set ref 152 155* 159* 160* 320* 321 326* 327 333* 334 334* 338* 339 339* 385* 386 386* 428 431* 434* 445* 446 471* 475 478* 496 499* 568* Com_err_sw parameter bit(1) packed unaligned dcl 76 ref 152 565 IOCB based structure level 1 dcl 84 Ignore parameter bit(1) packed unaligned dcl 81 ref 428 Iocb_ptr parameter pointer dcl 77 ref 152 156 428 432 475 479 496 500 ME 000002 constant char(32) initial packed unaligned dcl 133 set ref 160* 271* 565* 567* MORE_MODE_SCROLL constant fixed bin(17,0) initial dcl 1-106 ref 282 MORE_MODE_WRAP constant fixed bin(17,0) initial dcl 1-106 ref 279 OUTPUT_CONVERT_OCTAL constant fixed bin(8,0) initial packed unaligned dcl 11-147 ref 358 364 OUTPUT_CONVERT_ORDINARY constant fixed bin(8,0) initial packed unaligned dcl 11-147 ref 358 Open_mode parameter fixed bin(17,0) dcl 80 ref 428 433 SPECIAL_INFO_STRUCT_VERSION_1 000000 constant char(8) initial packed unaligned dcl 11-122 ref 325 Stream_input_output constant fixed bin(17,0) initial dcl 6-15 ref 433 actual_iocb_ptr 12 based pointer level 2 dcl 10-6 ref 432 479 addr builtin function dcl 145 ref 235 235 320 320 326 326 333 333 338 338 375 385 385 410 411 445 445 466 529 529 596 596 area_ptr 2 000456 automatic pointer level 2 dcl 305 set ref 324* army 166 based pointer level 3 dcl 1-29 set ref 296* 514 async_count 1 based fixed bin(17,0) level 2 dcl 1-29 set ref 268* atd_switches 000132 automatic structure level 1 packed packed unaligned dcl 91 set ref 164* attach_data based structure level 1 dcl 1-29 set ref 265 410 537 599 attach_data_area based area(1024) dcl 1-113 ref 265 299 343 373 503 505 507 517 521 606 attach_data_ptr 000550 automatic pointer dcl 1-28 in procedure "window_io_" set ref 263* 265* 266 267 268 269 271 274 275 276 276 276 276 279 282 284 285 285 286 287 288 289 290 290 290 290 291 292 293 294 295 296 299 299 299 299 300 343 344 346 351 351 357 358 360 364 373 375 388 389 390 394 397 397 398 398 399 399 400 400 402 403 405 406 406 406 410 411 423 423 423 438* 439 440 441 442 443 448 451 451 451 453 466 480* 501* 503 503 505 505 507 507 507 507 507 514 519 522 527 528 537 594 595 596 599 attach_data_ptr 16 based pointer level 2 in structure "IOCB" dcl 84 in procedure "window_io_" set ref 410* 438 480 501 532* attach_descrip_ptr 14 based pointer level 2 dcl 84 set ref 411* 533* attach_description 2 based varying char(128) level 2 dcl 1-29 set ref 271* 411 auditor_iocb_ptr 452 based pointer level 2 dcl 1-29 set ref 300* auto_capabilities 000110 automatic structure level 1 dcl 85 set ref 235 235 auto_desk_info 000100 automatic structure level 1 dcl 83 set ref 445 445 529 529 596 596 auto_editing_chars 000546 automatic structure level 1 dcl 382 set ref 385 385 bin builtin function dcl 145 ref 286 287 396 396 bit_offset parameter fixed bin(17,0) dcl 421 ref 418 423 423 423 breaks 147 based bit(128) level 2 packed packed unaligned dcl 1-29 set ref 394* 400 423 423 423 423 423* 423 breaks_array defined bit(1) array packed unaligned dcl 1-127 set ref 423 423 423* byte builtin function dcl 145 ref 286 287 351 358 360 364 c_chars based structure level 1 dcl 11-54 can 66(04) based bit(1) level 3 packed packed unaligned dcl 1-29 set ref 290* capabilities_info based structure level 1 dcl 4-3 capabilities_info_version_1 constant fixed bin(17,0) initial dcl 4-17 ref 234 character builtin function dcl 145 ref 173 196 217 cleanup 000342 stack reference condition dcl 127 ref 264 close 36 based entry variable level 2 dcl 84 set ref 465* 488* code 000115 automatic fixed bin(35,0) dcl 87 in procedure "window_io_" set ref 220* 221 231* 232 232* 235* 236 236 239* code based fixed bin(35,0) dcl 550 in procedure "attach_error" set ref 565* 567* 568 code_ptr 000202 automatic pointer dcl 551 set ref 563* 565 567 568 col 72 based fixed bin(17,0) level 3 dcl 1-29 set ref 276* col_at_rawo 74 based fixed bin(17,0) level 3 dcl 1-29 set ref 276* column_origin 162 based fixed bin(17,0) level 3 dcl 1-29 set ref 294* 442 columns 1 000110 automatic fixed bin(17,0) level 3 in structure "auto_capabilities" dcl 85 in procedure "window_io_" set ref 255 255* 261 279 columns 160 based fixed bin(17,0) level 3 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 292* 299 299 443 451 507 507 com_err_ 000100 constant entry external dcl 557 ref 565 control 66 based entry variable level 2 dcl 84 set ref 464* 490* conversion_tct_table 206 based char(512) level 2 dcl 1-29 set ref 351* 358* 360* 364* conversion_type 000544 automatic fixed bin(17,0) dcl 316 set ref 357* 358 360 copy builtin function dcl 145 ref 364 cts 000353 automatic structure level 1 dcl 304 set ref 320 320 cu_$arg_list_ptr 000074 constant entry external dcl 555 ref 560 560 cu_$arg_ptr 000072 constant entry external dcl 553 ref 563 current 157 based structure level 2 dcl 1-29 current_option 000352 automatic fixed bin(17,0) dcl 150 set ref 167* 172 173 174 178 180 182 182 182 182 184 186 186 188 196 199 200* 200 202 217 220 221 223* 223 cursor_position 71 based structure level 2 dcl 1-29 cv_dec_check_ 000032 constant entry external dcl 129 ref 220 cv_trans based structure level 1 dcl 11-62 in procedure "window_io_" set ref 343 344* 346* 503 cv_trans 2 000353 automatic structure level 2 in structure "cts" dcl 304 in procedure "window_io_" set ref 344 cv_trans 2 based structure level 2 in structure "cv_trans_struc" dcl 11-107 in procedure "window_io_" ref 346 cv_trans_idx 000543 automatic fixed bin(17,0) dcl 315 set ref 350* 351 351* 356* 357 358 360* cv_trans_struc based structure level 1 dcl 11-107 debug 66(01) based bit(1) level 3 in structure "attach_data" packed packed unaligned dcl 1-29 in procedure "window_io_" set ref 289* debug 000132 automatic bit(1) level 2 in structure "atd_switches" packed packed unaligned dcl 91 in procedure "window_io_" set ref 289 delay based structure level 1 dcl 11-66 detach_iocb 26 based entry variable level 2 dcl 84 set ref 413* 459* 487* discard_output 66 based bit(1) level 3 packed packed unaligned dcl 1-29 set ref 275* editing_chars 144 based structure level 2 in structure "attach_data" dcl 1-29 in procedure "window_io_" editing_chars based structure level 1 dcl 7-15 in procedure "window_io_" editing_chars_version_3 constant fixed bin(17,0) initial dcl 7-22 ref 384 erase 1 000546 automatic char(1) level 2 packed packed unaligned dcl 382 set ref 388 erase_char 144 based char(1) level 3 dcl 1-29 set ref 388* 397 397 erkl 66(06) based bit(1) level 3 packed packed unaligned dcl 1-29 set ref 290* error_msg 000100 automatic char(256) packed unaligned dcl 548 set ref 560* 565 565 567 567 error_msg_len 000200 automatic fixed bin(17,0) dcl 549 set ref 560* 565 565 567 567 error_table_$bad_conversion 000036 external static fixed bin(35,0) dcl 134 set ref 221* error_table_$bad_mode 000044 external static fixed bin(35,0) dcl 134 ref 434 error_table_$badopt 000040 external static fixed bin(35,0) dcl 134 set ref 202* error_table_$noarg 000046 external static fixed bin(35,0) dcl 134 set ref 159 193* 214* 228* error_table_$too_many_args 000042 external static fixed bin(35,0) dcl 134 set ref 174* 189* 211* error_table_$undefined_order_request 000050 external static fixed bin(35,0) dcl 134 ref 236 esc 66(05) based bit(1) level 3 packed packed unaligned dcl 1-29 set ref 290* escape_length 54 based fixed bin(17,0) level 2 in structure "special_chars" dcl 11-26 in procedure "window_io_" set ref 373* 373 373 375 375 375 375 375 375 505 505 505 505 505 505 escape_length 56 based fixed bin(17,0) level 3 in structure "special_chars_struc" dcl 11-76 in procedure "window_io_" set ref 370 371 371 377 377 377 377 377 377 first_column 000335 automatic fixed bin(17,0) dcl 105 in procedure "window_io_" set ref 184* 252* 255 255* 261 271* 294 first_column 2 000100 automatic fixed bin(17,0) level 2 in structure "auto_desk_info" dcl 83 in procedure "window_io_" set ref 442* first_line 000333 automatic fixed bin(17,0) dcl 103 set ref 180* 241* 244 244* 250 271* 293 first_row 000100 automatic fixed bin(17,0) level 2 dcl 83 set ref 440* flags 66 based structure level 2 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 269* flags 3 000110 automatic structure level 2 in structure "auto_capabilities" dcl 85 in procedure "window_io_" get_chars 46 based entry variable level 2 dcl 84 set ref 460* 490* get_line 42 based entry variable level 2 dcl 84 set ref 461* 490* get_special_info_struc based structure level 1 dcl 11-117 get_system_free_area_ 000056 constant entry external dcl 1-115 ref 265 299 324 343 373 503 505 507 517 521 606 got_conversions 000466 automatic bit(1) packed unaligned dcl 309 set ref 318* 321* 330 344 got_specials 000467 automatic bit(1) packed unaligned dcl 309 set ref 318* 327* 330 366 377 gsi 000456 automatic structure level 1 dcl 305 set ref 326 326 hbound builtin function dcl 145 ref 158 167 172 423 hcs_$reset_ips_mask 000106 constant entry external dcl 578 ref 589 hcs_$set_ips_mask 000104 constant entry external dcl 578 ref 583 height 0(04) 000132 automatic bit(1) level 2 packed packed unaligned dcl 91 set ref 182* 244 input_escape_char 146 based char(1) level 3 dcl 1-29 set ref 390* 399 399 input_escapes based structure level 2 in structure "special_chars" dcl 11-26 in procedure "window_io_" input_escapes based structure level 3 in structure "special_chars_struc" dcl 11-76 in procedure "window_io_" ioa_$general_rs 000076 constant entry external dcl 556 ref 560 ioa_$rsnnl 000030 constant entry external dcl 125 ref 271 iocb based structure level 1 dcl 10-6 iocb_ptr 000340 automatic pointer dcl 107 set ref 156* 410 411 412 413 414* 432* 438 444 454* 458 459 460 461 462 463 464 465 466 467* 470* 479* 480 482* 485 486 487 488 489 490 490 490 490 490 491* 500* 501 532 533 534* iox_$control 000060 constant entry external dcl 5-8 ref 235 320 326 333 385 445 529 596 iox_$err_not_closed 000062 constant entry external dcl 5-8 ref 458 459 iox_$err_not_open 000064 constant entry external dcl 5-8 ref 488 490 iox_$look_iocb 000066 constant entry external dcl 5-8 ref 231 iox_$propagate 000070 constant entry external dcl 5-8 ref 414 467 491 534 ips_mask 000116 automatic bit(36) initial dcl 88 set ref 88* 583 583* 589 589* 589* k 000604 automatic pointer dcl 512 set ref 514* 514* 516 517* 519* 519* 520 521* kill 1(09) 000546 automatic char(1) level 2 packed packed unaligned dcl 382 set ref 389 kill_char 145 based char(1) level 3 dcl 1-29 set ref 389* 398 398 kill_ring_info 164 based structure level 2 dcl 1-29 killer based structure level 1 unaligned dcl 1-118 set ref 517 521 606 killer_alloc_size 000552 automatic fixed bin(17,0) dcl 1-124 set ref 605* 606 606 killer_initial_alloc_size constant fixed bin(17,0) initial dcl 1-125 ref 605 lbound builtin function dcl 145 ref 167 423 left 0(05) 000132 automatic bit(1) level 2 packed packed unaligned dcl 91 set ref 184* 252 len based fixed bin(8,0) level 3 in structure "special_chars" packed packed unaligned dcl 11-26 in procedure "window_io_" set ref 373* 375 375 505 505 len based fixed bin(8,0) level 4 in structure "special_chars_struc" packed packed unaligned dcl 11-76 in procedure "window_io_" set ref 371 377 377 line 71 based fixed bin(17,0) level 3 dcl 1-29 set ref 276* line_editor_breaks 152(20) based bit(128) level 2 packed packed unaligned dcl 1-29 set ref 400* line_origin 161 based fixed bin(17,0) level 3 dcl 1-29 set ref 293* 440 lines_written_since_read 70 based fixed bin(17,0) level 2 dcl 1-29 set ref 274* max_size 4 based fixed bin(21,0) level 2 dcl 1-118 set ref 517 521 606* 608 maxlength builtin function dcl 145 ref 165 modes 0(01) 000132 automatic bit(1) level 2 in structure "atd_switches" packed packed unaligned dcl 91 in procedure "window_io_" set ref 189 modes 56 based entry variable level 2 in structure "IOCB" dcl 84 in procedure "window_io_" set ref 463* 490* modes 000133 automatic char(512) packed unaligned dcl 102 in procedure "window_io_" set ref 199* more_handler_in_use 200 based bit(1) level 2 dcl 1-29 set ref 288* more_mode 75 based fixed bin(17,0) level 2 dcl 1-29 set ref 279* 282* more_noes 134 based char(32) level 3 packed packed unaligned dcl 1-29 set ref 287* more_processing 66(02) based bit(1) level 3 packed packed unaligned dcl 1-29 set ref 290* more_prompt 76 based char(80) level 2 dcl 1-29 set ref 284* more_responses 122 based structure level 2 dcl 1-29 more_yeses 124 based char(32) level 3 packed packed unaligned dcl 1-29 set ref 286* n 000606 automatic pointer dcl 513 set ref 516* 518 520* 522 522* 524 n_columns 000336 automatic fixed bin(17,0) dcl 106 in procedure "window_io_" set ref 186* 255 255* 261* 271* 279 292 n_columns 3 000100 automatic fixed bin(17,0) level 2 in structure "auto_desk_info" dcl 83 in procedure "window_io_" set ref 443* n_lines 000334 automatic fixed bin(17,0) dcl 104 set ref 182* 244 244* 250* 271* 291 n_noes 123 based fixed bin(17,0) level 3 dcl 1-29 set ref 285* n_rows 1 000100 automatic fixed bin(17,0) level 2 dcl 83 set ref 441* n_yeses 122 based fixed bin(17,0) level 3 dcl 1-29 set ref 285* new 000624 automatic pointer dcl 604 set ref 606* 607 607 608 609 next based pointer level 2 dcl 1-118 set ref 406* 516 520 607* next_option defined varying char dcl 170 set ref 196 199 217 220 221* next_option_valid 000350 automatic bit(1) packed unaligned dcl 148 set ref 172* 193 214 null builtin function dcl 145 ref 263 295 296 300 485 486 503 505 507 514 519 522 532 533 567 567 594 596 607 o_flag parameter bit(1) packed unaligned dcl 208 set ref 205 211 213* o_name parameter varying char dcl 207 set ref 205 211* 214* o_value parameter fixed bin(17,0) dcl 209 set ref 205 220* open 32 based entry variable level 2 dcl 84 set ref 412* 458* 489* open_data_ptr 22 based pointer level 2 dcl 84 set ref 485* open_descrip_ptr 20 based pointer level 2 dcl 84 set ref 466* 486* open_description 43 based varying char(64) level 2 dcl 1-29 set ref 453* 466 option defined varying char dcl 169 set ref 173 174* 178 180 182 182 182 182* 184 186 186 188 202* option_length 000351 automatic fixed bin(21,0) dcl 149 set ref 165* 169 170 output_cv_ptr 170 based pointer level 2 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 343* 344 346 351 357 503 503 output_cv_ptr 20 000510 automatic pointer level 3 in structure "ttd" dcl 313 in procedure "window_io_" set ref 346 prev 2 based pointer level 2 dcl 1-118 set ref 406* 607* put_chars 52 based entry variable level 2 dcl 84 set ref 462* 490* rank builtin function dcl 145 ref 397 397 398 398 399 399 row_at_rawo 73 based fixed bin(17,0) level 3 dcl 1-29 set ref 276* rows 2 000110 automatic fixed bin(17,0) level 3 in structure "auto_capabilities" dcl 85 in procedure "window_io_" set ref 244 244* 250 rows 157 based fixed bin(17,0) level 3 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 291* 299 441 451 507 sc_escape_len 000554 automatic fixed bin(17,0) dcl 11-58 set ref 370* 373 373 373 sc_input_escape_len 000555 automatic fixed bin(17,0) dcl 11-59 set ref 371* 373 373 373 screensize 1 000110 automatic structure level 2 dcl 85 scroll_region 3 000110 automatic bit(1) level 3 packed packed unaligned dcl 85 set ref 279 special_chars 2 based structure level 2 in structure "special_chars_struc" dcl 11-76 in procedure "window_io_" set ref 375 special_chars based structure level 1 dcl 11-26 in procedure "window_io_" set ref 373 375* 375 505 special_chars_struc based structure level 1 dcl 11-76 set ref 377 special_ptr 172 based pointer level 2 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 373* 375 505 505 special_ptr 22 000510 automatic pointer level 3 in structure "ttd" dcl 313 in procedure "window_io_" set ref 368 string builtin function dcl 145 set ref 164* 269* sub_err_ 000102 constant entry external dcl 558 ref 567 substr builtin function dcl 145 set ref 351* 358* 360* 364* 565 565 567 567 table_ptr 4 000456 automatic pointer level 2 dcl 305 set ref 366 377 tables 12 000510 automatic structure level 2 dcl 313 target 0(02) 000132 automatic bit(1) level 2 packed packed unaligned dcl 91 set ref 174 177* 228 target_iocb_ptr 64 based pointer level 2 dcl 1-29 set ref 266* 439 528 target_iocbp 000120 automatic pointer dcl 89 set ref 231* 235* 266 320* 326* 333* 385* 439* 445* 528* 529* 596 596* target_switch 000122 automatic char(32) packed unaligned dcl 90 set ref 178* 231* 232* 236* 239* 271* tc_desk_window_info based structure level 1 dcl 12-14 temp_special_ptr 000464 automatic pointer dcl 307 set ref 366* 368* 370 371 375 term_type 2 000470 automatic char(32) level 2 packed packed unaligned dcl 312 set ref 338* 339* terminal_info based structure level 1 dcl 9-6 terminal_info_version constant fixed bin(17,0) initial dcl 9-16 ref 332 terminal_type_data based structure level 1 dcl 8-15 ti 000470 automatic structure level 1 dcl 312 set ref 333 333 token_character_count 406 based fixed bin(17,0) level 2 dcl 1-29 set ref 402* token_characters 407 based char(128) level 2 packed packed unaligned dcl 1-29 set ref 403* top 0(03) 000132 automatic bit(1) level 2 packed packed unaligned dcl 91 set ref 180* 241 top_killer 164 based pointer level 3 dcl 1-29 set ref 295* 405* 406 406 406 519 522 ttd 000510 automatic structure level 1 dcl 313 set ref 338 338 ttd_version_3 constant fixed bin(17,0) initial dcl 8-54 ref 337 ttt_info_$terminal_data 000034 constant entry external dcl 130 ref 338 value based fixed bin(8,0) array level 2 packed packed unaligned dcl 11-62 set ref 351 357 version 000353 automatic fixed bin(17,0) level 2 in structure "cts" dcl 304 in procedure "window_io_" set ref 319* version 000546 automatic fixed bin(17,0) level 2 in structure "auto_editing_chars" dcl 382 in procedure "window_io_" set ref 384* version 000110 automatic fixed bin(17,0) level 2 in structure "auto_capabilities" dcl 85 in procedure "window_io_" set ref 234* version 000456 automatic char(8) level 2 in structure "gsi" dcl 305 in procedure "window_io_" set ref 325* version 000470 automatic fixed bin(17,0) level 2 in structure "ti" dcl 312 in procedure "window_io_" set ref 332* version 000510 automatic fixed bin(17,0) level 2 in structure "ttd" dcl 313 in procedure "window_io_" set ref 337* video_et_$not_terminal_switch 000054 external static fixed bin(35,0) dcl 134 set ref 236* video_et_$window_too_big 000052 external static fixed bin(35,0) dcl 134 set ref 244* 255* width 0(06) 000132 automatic bit(1) level 2 packed packed unaligned dcl 91 set ref 186* 255 window_$clear_window 000010 constant entry external dcl 112 ref 470 window_id 4 000100 automatic bit(36) level 2 in structure "auto_desk_info" dcl 83 in procedure "window_io_" set ref 448 527* 595* window_id based bit(36) level 2 in structure "attach_data" dcl 1-29 in procedure "window_io_" set ref 267* 448* 527 595 596 window_image based char array packed unaligned dcl 1-135 ref 299 507 window_image_ptr 450 based pointer level 2 dcl 1-29 set ref 299* 451 507 507 window_image_string based char packed unaligned dcl 1-139 set ref 451* window_io_iox_$get_chars 000012 constant entry external dcl 113 ref 460 window_io_iox_$get_line 000014 constant entry external dcl 113 ref 461 window_io_iox_$init 000024 constant entry external dcl 120 ref 454 window_io_iox_$put_chars 000016 constant entry external dcl 113 ref 462 window_io_iox_$shut 000026 constant entry external dcl 120 ref 482 window_iocb_ptr 6 000100 automatic pointer level 2 dcl 83 set ref 444* window_status 000553 automatic structure level 1 dcl 3-10 wioctl_$control 000020 constant entry external dcl 113 ref 464 wioctl_$modes 000022 constant entry external dcl 113 ref 463 words 5 based varying char level 2 dcl 1-118 set ref 608* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BACKWARD_CHARACTER internal static fixed bin(17,0) initial dcl 2-13 BACKWARD_DELETE_CHARACTER internal static fixed bin(17,0) initial dcl 2-13 BACKWARD_DELETE_WORD internal static fixed bin(17,0) initial dcl 2-13 BACKWARD_WORD internal static fixed bin(17,0) initial dcl 2-13 BUILTIN_INFO_DIR internal static char(168) initial packed unaligned dcl 2-138 BUILTIN_INFO_ENTRY internal static char(32) initial packed unaligned dcl 2-139 CLEAR_WINDOW internal static fixed bin(17,0) initial dcl 2-13 CV_TRANS_SIZE internal static fixed bin(17,0) initial array dcl 11-129 DELAY_VERSION internal static fixed bin(17,0) initial dcl 11-126 DISPLAY_EDITOR_DOCUMENTATION internal static fixed bin(17,0) initial dcl 2-13 Direct_input internal static fixed bin(17,0) initial dcl 6-15 Direct_output internal static fixed bin(17,0) initial dcl 6-15 Direct_update internal static fixed bin(17,0) initial dcl 6-15 EXTERNAL_ROUTINE internal static fixed bin(17,0) initial dcl 2-13 FORWARD_CHARACTER internal static fixed bin(17,0) initial dcl 2-13 FORWARD_DELETE_CHARACTER internal static fixed bin(17,0) initial dcl 2-13 FORWARD_DELETE_WORD internal static fixed bin(17,0) initial dcl 2-13 FORWARD_WORD internal static fixed bin(17,0) initial dcl 2-13 HIGHEST_BUILTIN_ROUTINE_VALUE internal static fixed bin(17,0) initial dcl 2-13 HIGHEST_NUMARG_ACTION_VALUE internal static fixed bin(17,0) initial dcl 2-143 IGNORE internal static fixed bin(17,0) initial dcl 2-143 INITIAL_CAPITAL internal static fixed bin(17,0) initial dcl 2-13 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_ESCAPE 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 KILL_TO_BEGINNING_OF_LINE internal static fixed bin(17,0) initial dcl 2-13 KILL_TO_END_OF_LINE internal static fixed bin(17,0) initial dcl 2-13 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 6-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 6-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 6-15 LOWERCASE_WORD internal static fixed bin(17,0) initial dcl 2-13 MORE_MODE_CLEAR internal static fixed bin(17,0) initial dcl 1-106 MORE_MODE_FOLD internal static fixed bin(17,0) initial dcl 1-106 MOVE_TO_BEGINNING_OF_LINE internal static fixed bin(17,0) initial dcl 2-13 MOVE_TO_END_OF_LINE internal static fixed bin(17,0) initial dcl 2-13 MULTIPLIER internal static fixed bin(17,0) initial dcl 2-13 NEGATIVE_NUMBER_READER internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_0 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_1 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_2 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_3 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_4 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_5 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_6 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_7 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_8 internal static fixed bin(17,0) initial dcl 2-13 NUMBER_READER_9 internal static fixed bin(17,0) initial dcl 2-13 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_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 PASS internal static fixed bin(17,0) initial dcl 2-143 PROCESS_INPUT_ESCAPE internal static fixed bin(17,0) initial dcl 2-13 QUOTE_CHARACTER internal static fixed bin(17,0) initial dcl 2-13 REJECT internal static fixed bin(17,0) initial dcl 2-143 REPEAT internal static fixed bin(17,0) initial dcl 2-143 SELF_INSERT internal static fixed bin(17,0) initial dcl 2-13 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 Sequential_input internal static fixed bin(17,0) initial dcl 6-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 6-15 Sequential_output internal static fixed bin(17,0) initial dcl 6-15 Sequential_update internal static fixed bin(17,0) initial dcl 6-15 Stream_input internal static fixed bin(17,0) initial dcl 6-15 Stream_output internal static fixed bin(17,0) initial dcl 6-15 TERMINATE_INPUT_LINE internal static fixed bin(17,0) initial dcl 2-13 TWIDDLE_CHARACTERS internal static fixed bin(17,0) initial dcl 2-13 TWIDDLE_WORDS internal static fixed bin(17,0) initial dcl 2-13 UNDEFINED internal static fixed bin(17,0) initial dcl 2-13 UPPERCASE_WORD internal static fixed bin(17,0) initial dcl 2-13 W_STATUS_ASYNC_EVENT internal static bit(36) initial dcl 3-17 W_STATUS_RECONNECTION internal static bit(36) initial dcl 3-17 W_STATUS_SCREEN_INVALID internal static bit(36) initial dcl 3-17 W_STATUS_TTP_CHANGE internal static bit(36) initial dcl 3-17 YANK_FROM_KILL_RING internal static fixed bin(17,0) initial dcl 2-13 YANK_PREVIOUS_FROM_KILL_RING internal static fixed bin(17,0) initial dcl 2-13 builtin_descriptions internal static varying char(128) initial array dcl 2-105 builtin_routine_names internal static char(32) initial array packed unaligned dcl 2-63 c_chars_ptr automatic pointer dcl 11-53 capabilities_info_ptr automatic pointer dcl 4-19 capabilities_info_version internal static fixed bin(17,0) initial dcl 4-17 delay_struc based structure level 1 dcl 11-112 dispatch_table based structure level 1 dcl 1-155 dispatch_table_ptr automatic pointer dcl 1-153 editing_chars_ptr automatic pointer dcl 7-23 editing_chars_version_2 internal static fixed bin(17,0) initial dcl 7-21 iox_$attach_loud 000000 constant entry external dcl 5-8 iox_$attach_name 000000 constant entry external dcl 5-8 iox_$attach_ptr 000000 constant entry external dcl 5-8 iox_$close 000000 constant entry external dcl 5-8 iox_$close_file 000000 constant entry external dcl 5-8 iox_$delete_record 000000 constant entry external dcl 5-8 iox_$destroy_iocb 000000 constant entry external dcl 5-8 iox_$detach 000000 constant entry external dcl 5-8 iox_$detach_iocb 000000 constant entry external dcl 5-8 iox_$err_no_operation 000000 constant entry external dcl 5-8 iox_$err_not_attached 000000 constant entry external dcl 5-8 iox_$error_output external static pointer dcl 5-41 iox_$find_iocb 000000 constant entry external dcl 5-8 iox_$find_iocb_n 000000 constant entry external dcl 5-8 iox_$get_chars 000000 constant entry external dcl 5-8 iox_$get_line 000000 constant entry external dcl 5-8 iox_$iocb_version_sentinel external static char(4) dcl 10-51 iox_$modes 000000 constant entry external dcl 5-8 iox_$move_attach 000000 constant entry external dcl 5-8 iox_$open 000000 constant entry external dcl 5-8 iox_$open_file 000000 constant entry external dcl 5-8 iox_$position 000000 constant entry external dcl 5-8 iox_$put_chars 000000 constant entry external dcl 5-8 iox_$read_key 000000 constant entry external dcl 5-8 iox_$read_length 000000 constant entry external dcl 5-8 iox_$read_record 000000 constant entry external dcl 5-8 iox_$rewrite_record 000000 constant entry external dcl 5-8 iox_$seek_key 000000 constant entry external dcl 5-8 iox_$user_input external static pointer dcl 5-41 iox_$user_io external static pointer dcl 5-41 iox_$user_output external static pointer dcl 5-41 iox_$write_record 000000 constant entry external dcl 5-8 iox_modes internal static char(24) initial array dcl 6-6 line_editor_breaks_array defined bit(1) array packed unaligned dcl 1-128 numarg_action_names internal static char(6) initial array packed unaligned dcl 2-154 short_iox_modes internal static char(4) initial array dcl 6-12 tc_desk_info_ptr automatic pointer dcl 12-13 terminal_info_ptr automatic pointer dcl 9-15 ttdp automatic pointer dcl 8-53 valid_token_characters based char packed unaligned dcl 1-131 window_status_string automatic bit(36) packed unaligned dcl 3-7 NAMES DECLARED BY EXPLICIT CONTEXT. add_to_breaks_array 004040 constant entry internal dcl 418 ref 396 397 398 399 alloc_killer 004425 constant entry internal dcl 602 ref 405 attach_error 004055 constant entry internal dcl 544 ref 160 174 189 193 202 211 214 221 228 232 236 239 244 255 334 339 386 cleanup_attach 004346 constant entry internal dcl 592 ref 264 no_modes 001113 constant label dcl 193 ref 196 no_num 001264 constant label dcl 214 ref 217 num_opt 001211 constant entry internal dcl 205 ref 180 182 184 186 reset_ips_mask 004332 constant entry internal dcl 587 ref 415 468 492 535 return_ 004037 constant label dcl 572 ref 569 set_ips_mask 004313 constant entry internal dcl 576 ref 409 456 484 531 window_io_ 000513 constant entry external dcl 72 window_io_attach 000527 constant entry external dcl 152 window_io_close 003423 constant entry external dcl 475 ref 465 window_io_detach 003534 constant entry external dcl 496 ref 413 487 window_io_open 003210 constant entry external dcl 428 ref 412 489 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5206 5316 4545 5216 Length 6034 4545 110 501 440 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME window_io_ 644 external procedure is an external procedure. begin block on line 168 begin block shares stack frame of external procedure window_io_. num_opt internal procedure shares stack frame of external procedure window_io_. on unit on line 264 96 on unit add_to_breaks_array internal procedure shares stack frame of external procedure window_io_. begin block on line 511 begin block shares stack frame of external procedure window_io_. attach_error 174 internal procedure is declared options(non_quick), and is declared options(variable). set_ips_mask internal procedure shares stack frame of external procedure window_io_. cleanup_attach internal procedure shares stack frame of on unit on line 264. alloc_killer internal procedure shares stack frame of external procedure window_io_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME attach_error 000100 error_msg attach_error 000200 error_msg_len attach_error 000202 code_ptr attach_error window_io_ 000100 auto_desk_info window_io_ 000110 auto_capabilities window_io_ 000115 code window_io_ 000116 ips_mask window_io_ 000120 target_iocbp window_io_ 000122 target_switch window_io_ 000132 atd_switches window_io_ 000133 modes window_io_ 000333 first_line window_io_ 000334 n_lines window_io_ 000335 first_column window_io_ 000336 n_columns window_io_ 000340 iocb_ptr window_io_ 000350 next_option_valid window_io_ 000351 option_length window_io_ 000352 current_option window_io_ 000353 cts window_io_ 000456 gsi window_io_ 000464 temp_special_ptr window_io_ 000466 got_conversions window_io_ 000467 got_specials window_io_ 000470 ti window_io_ 000510 ttd window_io_ 000543 cv_trans_idx window_io_ 000544 conversion_type window_io_ 000546 auto_editing_chars window_io_ 000550 attach_data_ptr window_io_ 000552 killer_alloc_size window_io_ 000553 window_status window_io_ 000554 sc_escape_len window_io_ 000555 sc_input_escape_len window_io_ 000604 k begin block on line 511 000606 n begin block on line 511 000624 new alloc_killer THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc return_mac tra_ext_1 enable_op shorten_stack ext_entry ext_entry_desc int_entry repeat set_chars_eis op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_list_ptr cu_$arg_ptr cv_dec_check_ get_system_free_area_ hcs_$reset_ips_mask hcs_$set_ips_mask ioa_$general_rs ioa_$rsnnl iox_$control iox_$err_not_closed iox_$err_not_open iox_$look_iocb iox_$propagate sub_err_ ttt_info_$terminal_data window_$clear_window window_io_iox_$get_chars window_io_iox_$get_line window_io_iox_$init window_io_iox_$put_chars window_io_iox_$shut wioctl_$control wioctl_$modes THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_conversion error_table_$bad_mode error_table_$badopt error_table_$noarg error_table_$too_many_args error_table_$undefined_order_request video_et_$not_terminal_switch video_et_$window_too_big LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 88 000507 72 000512 74 000521 152 000522 155 000546 156 000547 158 000553 159 000560 160 000563 164 000606 165 000607 167 000611 169 000623 170 000625 174 000626 182 000630 202 000633 221 000636 172 000641 173 000647 174 000670 177 000717 178 000721 179 000737 180 000740 182 000756 184 001020 186 001036 188 001061 189 001066 193 001111 196 001133 199 001156 200 001162 201 001163 202 001164 225 001210 205 001211 211 001222 213 001255 214 001262 217 001312 220 001335 221 001372 223 001433 224 001434 226 001435 228 001437 231 001462 232 001503 234 001530 235 001532 236 001566 239 001616 241 001640 244 001645 249 001707 250 001710 252 001714 255 001721 260 001763 261 001764 263 001770 264 001772 265 002010 266 002024 267 002026 268 002027 269 002030 271 002031 274 002103 275 002105 276 002107 279 002114 282 002125 284 002127 285 002132 286 002135 287 002143 288 002151 289 002152 290 002157 291 002167 292 002171 293 002173 294 002175 295 002177 296 002201 299 002202 300 002223 318 002225 319 002230 320 002232 321 002266 324 002271 325 002300 326 002302 327 002334 330 002337 332 002343 333 002345 334 002401 337 002422 338 002424 339 002460 343 002505 344 002522 346 002530 350 002534 351 002541 353 002557 356 002561 357 002567 358 002600 360 002615 361 002624 364 002626 366 002644 368 002652 370 002654 371 002657 373 002666 375 002731 377 002760 384 003010 385 003012 386 003043 388 003064 389 003070 390 003074 394 003076 396 003101 397 003105 398 003113 399 003121 400 003127 402 003133 403 003135 405 003140 406 003146 409 003154 410 003155 411 003160 412 003163 413 003167 414 003172 415 003201 416 003202 428 003203 431 003221 432 003222 433 003227 434 003232 435 003235 438 003236 439 003240 440 003242 441 003244 442 003246 443 003250 444 003252 445 003253 446 003307 448 003311 451 003313 453 003322 454 003327 456 003336 458 003337 459 003345 460 003347 461 003352 462 003355 463 003360 464 003363 465 003366 466 003371 467 003374 468 003402 470 003403 471 003415 472 003416 475 003417 478 003434 479 003435 480 003442 482 003444 484 003453 485 003454 486 003457 487 003460 488 003464 489 003470 490 003473 491 003522 492 003530 494 003531 496 003532 499 003545 500 003546 501 003552 503 003554 505 003572 507 003634 514 003657 516 003666 517 003671 518 003707 519 003712 520 003722 521 003725 522 003743 524 003752 527 003755 528 003757 529 003762 531 004017 532 004020 533 004023 534 004024 535 004033 537 004034 539 004036 572 004037 418 004040 423 004042 426 004053 544 004054 560 004062 563 004135 565 004156 567 004224 568 004304 569 004310 576 004313 583 004314 585 004331 587 004332 589 004333 591 004345 592 004346 594 004347 595 004354 596 004356 599 004421 601 004424 602 004425 605 004427 606 004431 607 004452 608 004455 609 004456 ----------------------------------------------------------- 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