!************************************************************************* ! ! ***** KEY DEFINITIONS ***** ! ! !********* Define keys for FRED enhancement ******************************* ! (VMS Version 4.4 or later) ! ! PROCEDURE fred$define_vt_keys ! Default FRED keys (both VT100 and VT200) DEFINE_KEY ('fred$next_line',kp0, " next_line",fred$x_vt_keys); ! Move to next line DEFINE_KEY ('fred$open_line',key_name(kp0,shift_key), " open_line",fred$x_vt_keys); ! Open line DEFINE_KEY ('fred$move_word',kp1, " word",fred$x_vt_keys); ! Move by word DEFINE_KEY ("eve_center_line",key_name(kp1,shift_key), " center_line",fred$x_vt_keys); DEFINE_KEY ("fred$end_of_line",kp2, " end_of_line",fred$x_vt_keys); DEFINE_KEY ("fred$delete_to_eol",key_name(kp2,shift_key), " delete_to_eol",fred$x_vt_keys); DEFINE_KEY ("eve_replace('','')",kp3, " replace",fred$x_vt_keys); DEFINE_KEY ('copy_text(ascii(int(read_line("Special insert: "))))', key_name(kp3,shift_key), " specins",fred$x_vt_keys); ! Special character insertion DEFINE_KEY ("eve_change_direction",kp4, " change_direction",fred$x_vt_keys); DEFINE_KEY ("eve_change_mode",key_name(kp4,shift_key), " change_mode",fred$x_vt_keys); DEFINE_KEY ("eve_top",kp5," top",fred$x_vt_keys); DEFINE_KEY ("eve_bottom",key_name(kp5,shift_key), " bottom",fred$x_vt_keys); DEFINE_KEY ("fred$position_top",kp6, " position_top",fred$x_vt_keys); DEFINE_KEY ("fred$position_bottom",key_name(kp6,shift_key), " position_bottom",fred$x_vt_keys); DEFINE_KEY ("fred$subprocess ('')",kp7, " dcl",fred$x_vt_keys); DEFINE_KEY ("eve_spawn",key_name(kp7,shift_key), " spawn",fred$x_vt_keys); DEFINE_KEY ("fred$shift_left",kp8, " shift_left",fred$x_vt_keys); DEFINE_KEY ("fred$shift_right",key_name(kp8,shift_key), " shift_right",fred$x_vt_keys); DEFINE_KEY ("decus$learn_sequence",kp9, " learn_sequence",fred$x_vt_keys); ! DEFINE_KEY ("ccccc",key_name(kp9,shift_key), ! " ccccc",fred$x_vt_keys); ! ***** PF1 is defined as the key ***** DEFINE_KEY ("fred$change_case",pf2, " change_case",fred$x_vt_keys); ! Change the case DEFINE_KEY ("eve_uppercase_word",key_name(pf2,shift_key), " uppercase_word",fred$x_vt_keys); ! Set uppercase word DEFINE_KEY ("fred$set_case",pf3, " select_case",fred$x_vt_keys); ! Set CHG_CASE mode DEFINE_KEY ("eve_capitalize_word",key_name(pf3,shift_key), " capitalize_word",fred$x_vt_keys); DEFINE_KEY ('fred$delete_line',pf4, " del_line",fred$x_vt_keys); ! Delete line DEFINE_KEY ('fred$undelete_line',key_name(pf4,shift_key), " und_line",fred$x_vt_keys); ! Undelete line DEFINE_KEY ('fred$delete_end_word',minus, " del_word",fred$x_vt_keys); ! Delete word DEFINE_KEY ('fred$undelete_word',key_name(minus,shift_key), " und_word",fred$x_vt_keys); ! Undelete word DEFINE_KEY ('fred$delete_char',comma, " del_char",fred$x_vt_keys); ! Delete char DEFINE_KEY ('fred$undelete_char',key_name(comma,shift_key), " und_char",fred$x_vt_keys); ! Undelete character DEFINE_KEY ('fred$scroll',period, " scroll",fred$x_vt_keys); ! Scroll until a key is hit. DEFINE_KEY ('fred$swap_word_delimiters',key_name(period,shift_key), " swap_word_delimiters",fred$x_vt_keys); ! Swap word delimiters DEFINE_KEY ('fred$alt_keys',enter, " alt_keys",fred$x_vt_keys); ! Access to alternate keypad !***** CTRL key definitions... DEFINE_KEY ('eve_quit',ctrl_g_key, " quit",fred$x_vt_keys); ! Quit EVE MESSAGE ("Redefining key to allow replacement via UNDEL_CHAR function..."); DEFINE_KEY ("fred$backspace", del_key, " backspace", eve$x_standard_keys); ! ! Definitions for the VT200 keyboard... DEFINE_KEY ('decus$list_buffers(false)',f11, " list_user_buffers",fred$x_vt200_keys); DEFINE_KEY ('decus$list_buffers(true)',key_name(f11,shift_key), " list_system_buffers",fred$x_vt200_keys); DEFINE_KEY ('fred$erase_current_buffer',f12, " erase_buffer",fred$x_vt200_keys); DEFINE_KEY ("decus$delete_buffer('')",key_name(f12,shift_key), " delete_buffer",fred$x_vt200_keys); DEFINE_KEY ("fred$set_margins",f13, " set_margins",fred$x_vt200_keys); DEFINE_KEY ("fred$set_screen",key_name(f13,shift_key), " set_screen",fred$x_vt200_keys); DEFINE_KEY ("fred$goto_line" ,f14, " goto_line",fred$x_vt200_keys); DEFINE_KEY ("decus$where",key_name(f14,shift_key), " where",fred$x_vt200_keys); DEFINE_KEY ("fred$help",help, " help",fred$x_vt200_keys); DEFINE_KEY ("fred$window",f17, " one_two_windows",fred$x_vt200_keys); ! Toggle between one and two windows DEFINE_KEY ("fred$adjust_window",key_name(f17,shift_key), " adjust_window",fred$x_vt200_keys); ! Adjust window size DEFINE_KEY ("eve_get_file ('')",f18, " get_file",fred$x_vt200_keys); DEFINE_KEY ("eve_include_file ('')",key_name(f18,shift_key), " include_file",fred$x_vt200_keys); DEFINE_KEY ("eve_other_window",f19, " other_window",fred$x_vt200_keys); DEFINE_KEY ("eve_buffer ('')",f20, " get_buffer",fred$x_vt200_keys); DEFINE_KEY ("fred$write_buffer (current_buffer)",key_name(f20,shift_key), " write_buffer",fred$x_vt200_keys); ! ! Definitions for the VT100 keyboard... DEFINE_KEY ("COPY_TEXT('!')", key_name('!'), ! This line is for the "!" character " typing",fred$x_vt100_keys); ! in the VT100 mode. For some ! reason without this the "!" typing ! key is undefined. DEFINE_KEY ("eve_remove", key_name(left,shift_key), " remove",fred$x_vt100_keys); DEFINE_KEY ('fred$erase_current_buffer',key_name('#',shift_key), " erase_buffer",fred$x_vt100_keys); DEFINE_KEY ("eve_find ('')", key_name(".",shift_key), " find",fred$x_vt100_keys); DEFINE_KEY ("eve_buffer ('')",key_name('@',shift_key), " get_buffer",fred$x_vt100_keys); DEFINE_KEY ("eve_get_file ('')",key_name('!',shift_key), " get_file",fred$x_vt100_keys); DEFINE_KEY ("fred$goto_line" ,key_name('-',shift_key), " goto_line",fred$x_vt100_keys); DEFINE_KEY ("fred$help",key_name('?',shift_key), " help",fred$x_vt100_keys); DEFINE_KEY ("eve_include_file ('')",key_name('&',shift_key), " include_file",fred$x_vt100_keys); DEFINE_KEY ("eve_insert_here", key_name(right,shift_key), " insert_here",fred$x_vt100_keys); DEFINE_KEY ('decus$list_buffers(false)',key_name('%',shift_key), " list_user_buffers",fred$x_vt100_keys); DEFINE_KEY ("eve_next_screen", key_name(down,shift_key), " next_screen",fred$x_vt100_keys); DEFINE_KEY ("fred$window",key_name('/',shift_key), " one_two_windows",fred$x_vt100_keys); DEFINE_KEY ("eve_other_window",key_name('\',shift_key), " other_window",fred$x_vt100_keys); DEFINE_KEY ("eve_previous_screen", key_name(up,shift_key), " previous_screen",fred$x_vt100_keys); DEFINE_KEY ("eve_select", key_name(',',shift_key), " select",fred$x_vt100_keys); DEFINE_KEY ("fred$set_margins",key_name('{',shift_key), " set_margins",fred$x_vt100_keys); DEFINE_KEY ("fred$set_screen",key_name('}',shift_key), " set_screen",fred$x_vt100_keys); DEFINE_KEY ("decus$where",key_name('^',shift_key), " where",fred$x_vt100_keys); DEFINE_KEY ("fred$write_buffer (current_buffer)",key_name('=',shift_key), " write_buffer",fred$x_vt100_keys); ! ! Definitions for the alternate keypad keyboard... DEFINE_KEY ("eve_lowercase_word",pf2, " lowercase_word",fred$x_alt1_keys); DEFINE_KEY ("eve_tpu ('')",pf3, " tpu_command",fred$x_alt1_keys); DEFINE_KEY ("fred$tpu_compile",key_name(pf3,shift_key), " tpu_compile",fred$x_alt1_keys); DEFINE_KEY ("fred$set_write",pf4, " set_write_nowrite",fred$x_alt1_keys); ! DEFINE_KEY ("fred$chgcase_calls",comma," change_case_calls", ! fred$x_alt1_keys); DEFINE_KEY ("decus$set_rectangular", kp0, " reccutpas",fred$x_alt1_keys); ! Rectangular CUT/PASTE DEFINE_KEY ("fred$scale",kp1, " scale",fred$x_alt1_keys); DEFINE_KEY ("eve_start_of_line",kp2, " start_of_line",fred$x_alt1_keys); DEFINE_KEY ("fred$set_mark_keys", kp3, " set_mark_keys",fred$x_alt1_keys); ! Enable Marker functions DEFINE_KEY ('decus$print_buffer', kp4, " print_buffer",fred$x_alt1_keys); ! Print current buffer DEFINE_KEY ("fred$print_keypad",key_name(kp4,shift_key), " print_keypad",fred$x_alt1_keys); DEFINE_KEY ("fred$display_messages",kp5, " display_messages",fred$x_alt1_keys); DEFINE_KEY ("fred$save_section",kp6, " save_section",fred$x_alt1_keys); DEFINE_KEY ("fred$save_test_section",key_name(kp6,shift_key), " save_test_section",fred$x_alt1_keys); DEFINE_KEY ("decus$display_character",kp7, " display_character",fred$x_alt1_keys); DEFINE_KEY ("decus$describe_key",key_name(kp7,shift_key), " describe_key",fred$x_alt1_keys); DEFINE_KEY ("fred$shift_home",kp8, " shift_home",fred$x_alt1_keys); DEFINE_KEY ("decus$swap_characters",kp9, " swap_characters",fred$x_alt1_keys); DEFINE_KEY ("eve_define_key ('')",minus, " define_key",fred$x_alt1_keys); DEFINE_KEY ("decus$undefine_key ",key_name(minus,shift_key), " undefine_key",fred$x_alt1_keys); ENDPROCEDURE; PROCEDURE fred$vt_keys ADD_KEY_MAP (eve$x_key_map_list, eve$kt_first, fred$x_vt_keys); ENDPROCEDURE; PROCEDURE fred$vt100_keys SET (INFORMATIONAL, off); REMOVE_KEY_MAP (eve$x_key_map_list, fred$x_vt200_keys, ALL); REMOVE_KEY_MAP (eve$x_key_map_list, fred$x_vt100_keys, ALL); ADD_KEY_MAP (eve$x_key_map_list, eve$kt_first, fred$x_vt100_keys); SET (INFORMATIONAL, on); ENDPROCEDURE; PROCEDURE fred$vt200_keys SET (INFORMATIONAL, off); REMOVE_KEY_MAP (eve$x_key_map_list, fred$x_vt100_keys, ALL); REMOVE_KEY_MAP (eve$x_key_map_list, fred$x_vt200_keys, ALL); ADD_KEY_MAP (eve$x_key_map_list, eve$kt_first, fred$x_vt200_keys); SET (INFORMATIONAL, on); ENDPROCEDURE; PROCEDURE tpu$local_init if (fred$test_for_key_map ("fred$vt_keys") = 0) then fred$x_vt_keys := CREATE_KEY_MAP ("fred$vt_keys"); ! Create another key map else fred$x_vt_keys := "fred$vt_keys"; endif; if (fred$test_for_key_map ("fred$vt100_keys") = 0) then fred$x_vt100_keys := CREATE_KEY_MAP ("fred$vt100_keys"); ! Create another key map else fred$x_vt100_keys := "fred$vt100_keys"; endif; if (fred$test_for_key_map ("fred$vt200_keys") = 0) then fred$x_vt200_keys := CREATE_KEY_MAP ("fred$vt200_keys"); ! Create another key map else fred$x_vt200_keys := "fred$vt200_keys"; endif; if (fred$test_for_key_map ("fred$alt1_keys") = 0) then fred$x_alt1_keys := CREATE_KEY_MAP ("fred$alt1_keys"); ! Create another key map else fred$x_alt1_keys := "fred$alt1_keys"; endif; ENDPROCEDURE;