include 'auto.inc' c structure /iosb/ integer*2 status integer*2 nbyte integer*2 term integer*2 nbterm end structure c integer*4 max_help_line_length parameter (max_help_line_length = 4096) !max 12*132 c integer*4 max_keys parameter (max_keys=40) c structure /key/ integer*4 result !the code (0..255) (f.e. kar_help) integer*4 n_data !the length of the key input f.e. 2 character*12 data !the keyinput (f.e. escape,0,Q) character*12 auto_name !the name of the key (f.e. EXPAND) character*12 smg_name !the name of the key (f.e. TAB) end structure c structure /terminal_info/ integer*4 keyboard_id !smg keyboard id integer*2 chan !io channel for terminal logical*1 got_msg !flag to remember if we had a message on screen logical*1 dummy !alignment integer*4 lun_debug !debug lun for debug messages integer*4 debug_flag !flag for debug messages (see the dbg_* above) logical*4 insert !terminal in insert mode? logical*4 wrap !was terminal in wrap mode integer*4 position !position of cursor in input buffer integer*4 width !terminal width (80/132) integer*4 length !terminal width (24?) integer*4 nkar_prompt !length of prompt integer*4 nkar !length of chars in input buffer integer*4 replay_pos !replay position integer*4 nl_mess !#lines for message on screen integer*4 nk_replay !#chars in replay buffer integer*4 nk_typeahd !#chars in typeahd buffer integer*4 use_arrows !use arrows instead of tab/bs integer*4 term_table_addr !terminal table address (smgterm) integer*4 n_keys record /key/ keys(max_keys) character*(max_line_length) line !input buffer character*(max_line_length) prompt !prompt buffer character*(max_line_length) replay !replay buffer character*(max_line_length) typeahd integer*4 max_help_size !max help size integer*4 nk_help !size of help-line character*(max_help_line_length) help_line !help line end structure c c Special keys c character key_return,key_linefeed,key_escape,key_csi parameter (key_return = char(13), 1 key_linefeed = char(10), 2 key_escape = char(27), 3 key_csi = char(27+128)) c c Local characters c character kar_toggle,kar_repaint,kar_del_token character kar_left,kar_right,kar_eol,kar_tog_verbone character kar_tog_execute c parameter ( 1 kar_toggle = char(140), 1 kar_eol = char(141), 1 kar_repaint = char(142), 1 kar_left = char(143), 1 kar_right = char(144), 1 kar_del_token = char(145), 1 kar_tog_verbone= char(146), 1 kar_tog_execute= char(147))