/* Begin include file window_io_attach_data_.incl.pl1 BIM June 1981 */ /* Modified by Chris Jones December 1981 to add MORE_MODE_FOLD */ /* Modified by William York 26 January 1982 to add more_handler_in_use and more_handler to the attach_data structure. */ /* Modified 18 October 1982 by WMY to add the window_image_ptr, conversion_tct_table and token_characters. */ /* Modified 30 September 1983 by Jon A. Rochlis to add column_origin for partial screen width windows. */ /* Modified 8 January 1983 by JR to delete attach_data.capabilites. See window_io_ and wioctl_ for more info. */ /* Modified 5 March 1984 by Barmar to add dispatch_table.name, .description, and .info_path. */ /* Modified 22 March 1984 by Barmar to add attach_data.auditor_iocb_ptr. */ /* Modified 01 September 1984 by JR to add edited mode. */ /****^ HISTORY COMMENTS: 1) change(86-05-18,GDixon), approve(86-05-18,MCR7357), audit(86-06-16,Farley), install(86-07-18,MR12.0-1098): Modify attach_data.conversion_tct_table to make it aligned. When tct_ was replaced by find_char_, the new calling sequence required an aligned table. END HISTORY COMMENTS */ /* format: style3 */ declare attach_data_ptr pointer; declare 1 attach_data aligned based (attach_data_ptr), 2 window_id bit (36) aligned, 2 async_count fixed bin, 2 attach_description character (128) var, /* attach description */ 2 open_description character (64) varying, 2 target_iocb_ptr pointer, 2 flags, 3 discard_output bit (1) unal, /* more processing: throw away all output */ 3 debug bit (1) unal, 3 more_processing bit (1) unal, /* more mode */ 3 vertsp bit (1) unal, /* vertsp mode */ 3 can bit (1) unal, /* can mode */ 3 esc bit (1) unal, /* can mode */ 3 erkl bit (1) unal, /* erkl mode */ 3 rawo bit (1) unal, /* rawo mode */ 3 red bit (1) unal, /* red mode */ 3 ctl_char bit (1) unal, /* allow ctrl chars input? */ 3 status_pending bit (1) unal, 3 cursor_valid bit (1) unal, 3 suppress_echo bit (1) unal, 3 ignore_status bit (1) unal, 3 edited bit (1) unal, /* edited mode */ 3 pad bit (21) unal, 2 status aligned like window_status, 2 lines_written_since_read fixed bin, /* more processing */ 2 cursor_position, /* Where in this window */ 3 line fixed bin, /* line number */ 3 col fixed bin, /* column */ 3 row_at_rawo fixed bin, 3 col_at_rawo fixed bin, /* when we went raw */ 2 more_mode fixed bin, /* which flavor */ 2 more_prompt character (80), /* "MORE?" */ 2 more_responses, 3 n_yeses fixed bin, /* number valid */ 3 n_noes fixed bin, 3 more_yeses character (32) unaligned, /* at most 32 yeses */ 3 more_noes character (32) unaligned, 2 editing_chars, 3 erase_char character (1), 3 kill_char character (1), 3 input_escape_char character (1), /* normally "\" */ 2 breaks bit (128) unaligned, 2 line_editor_breaks bit (128) unaligned, 2 current, /* describes us */ 3 rows fixed bin, /* how many lines */ 3 columns fixed bin, /* how wide lines in this window are */ 3 line_origin fixed bin, /* on containing screen (terminal) */ 3 column_origin fixed bin, /* on containing screen (terminal) */ 2 kill_ring_info, 3 top_killer ptr, /* top of ring */ 3 army ptr, /* surplus killers kept here */ 2 output_cv_ptr ptr, /* to cv_trans */ 2 special_ptr ptr, /* to special_chars */ 2 saved_buffer_ptr /* for saving text across editor calls */ pointer, 2 dispatch_table_ptr /* for editor key bindings */ pointer, 2 more_handler_in_use bit(1), 2 more_handler entry (pointer, bit(1) aligned, fixed bin(35)), 2 conversion_tct_table char(512), 2 token_character_count /* count of valid chars */ fixed bin, 2 token_characters /* token delimiters for line editor */ char(128) unaligned, 2 window_image_ptr pointer, /* to character array for this window */ 2 auditor_iocb_ptr pointer; /* set by set_audit_iocb_ptr control order */ dcl ( MORE_MODE_SCROLL init (1), MORE_MODE_CLEAR init (2), MORE_MODE_WRAP init (3), MORE_MODE_FOLD init (4) ) fixed bin internal static options (constant); dcl attach_data_area area based (get_system_free_area_ ()); declare get_system_free_area_ entry returns (pointer); dcl 1 killer based (attach_data.top_killer), 2 next pointer, /* if you rotate */ 2 prev pointer, /* dbl thread for conven. */ 2 max_size fixed bin (21), 2 words character (killer_alloc_size refer (killer.max_size)) varying; dcl killer_alloc_size fixed bin; dcl killer_initial_alloc_size fixed bin init (128) internal static options (constant); declare breaks_array (0:127) bit (1) unaligned defined (attach_data.breaks) position (1); declare line_editor_breaks_array (0:127) bit (1) unaligned defined (attach_data.line_editor_breaks) position (1); dcl valid_token_characters char(attach_data.token_character_count) based (addr (attach_data.token_characters)); /* Each window has its own window image, which must be re-allocated if the window size changes. */ dcl window_image (attach_data.current.rows) char (attach_data.current.columns) based (attach_data.window_image_ptr); /* Single based string for clearing. */ dcl window_image_string char(attach_data.current.rows * attach_data.current.columns) based (window_image_ptr); /* editor key binding dispatch table. If type = 0, the keystroke is associated with the editor routine specified by routine. Simply call the routine. If type < 0, the keystroke is a prefix character, and the pointer in next_table points to the next dispatch table. If type > 0, it is an index into the table of builtin editor commands (i.e. the editor routines implemented by this module). Perform a quick call of the builtin routine. */ dcl dispatch_table_ptr pointer; dcl 1 dispatch_table aligned based (dispatch_table_ptr), 2 key (0:127), 3 type fixed bin, 3 pad fixed bin, 3 next_table pointer, 3 routine entry (pointer, fixed bin(35)), 3 numarg_action fixed bin, /* only for external routines */ 3 name char (64) varying, 3 description char (256) varying, 3 info_path, 4 info_dir char (168), 4 info_entry char (32); %include window_editor_values; %include window_status; %include terminal_capabilities; /* End include file window_io_attach_data_.incl.pl1 */ */ ----------------------------------------------------------- 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 */