PROGRAM ANY_KEY_TST ! Copyright 1994-2021 Marcus Rhodes ! This program is free software; You can redistribute it and/or ! modify it under the terms of the GNU general public license ! version 3 as published by the Free Software Foundation. ! Modified: 09/17/2020 12:04:10 by Marcus ! Platform: Any Pick; Any OS; Any Emulator; Any Emulation ! Function: Test-drives ANY_KEY ! See ANY_KEY_EQU for more. ! Examples: ANY_KEY_NUM ! Upcoming: Automatically detect the terminal AND emulator in order to ! record it along with the key-code sequences it generates. ! Write to ANY_KEYS. ! Read from ANY_KEYS. ! Generate new ANY_KEY_EQU and ANY_KEY_TBL. ! Improve the UI. ! Project : https://github.com/MarcusAureliusRhodes/AnyKey ! Old name: EMV_KEY_GET_TST ! New name: ANY_KEY_TST ! Catalog : ANY_KEY_TST EQU IDENTITY TO 'ANY_KEY_TST' INCLUDE ANY_KEY_EQU KEYB_DBG = 2 CALL ANY_KEY_TRM CRT @( -1 ) CRT 'OLD_KEYS = `' : LEN( OLD_KEYS ) : '` bytes' CRT 'NEW_KEYS = `' : LEN( NEW_KEYS ) : '` bytes' CRT CRT 'Welcome to ' : IDENTITY : '. Press any key to continue. Escape = Quit.' CRT LOOP ANY_BFFR = '' BFFR_LEN = 0 TEXT_KEY = '' META_KEY = '' KEYB_DBG = 0 CALL ANY_KEY( TEXT_KEY, META_KEY ) CRT KEYB_TYP : ' -> ' : CRT_CODE 'L#24 -> ' : ( TEXT_KEY : META_KEY< 1 > ) 'L#18 -> ' : BEGIN CASE CASE TEXT_KEY NE '' ; CRT TEXT_KEY CASE META_KEY EQ K_BACKSPACE ; CRT 'Backspace' CASE META_KEY EQ K_DELETE ; CRT 'Delete' CASE META_KEY EQ K_DOWN ; CRT 'Down' CASE META_KEY EQ K_END ; CRT 'End' CASE META_KEY EQ K_ENTER ; CRT 'Enter' CASE META_KEY EQ K_ESCAPE ; CRT 'Escape' CASE META_KEY EQ K_F01 ; CRT 'F01' CASE META_KEY EQ K_F02 ; CRT 'F02' CASE META_KEY EQ K_F03 ; CRT 'F03' CASE META_KEY EQ K_F04 ; CRT 'F04' CASE META_KEY EQ K_F05 ; CRT 'F05' CASE META_KEY EQ K_F06 ; CRT 'F06' CASE META_KEY EQ K_F07 ; CRT 'F07' CASE META_KEY EQ K_F08 ; CRT 'F08' CASE META_KEY EQ K_F09 ; CRT 'F09' CASE META_KEY EQ K_F10 ; CRT 'F10' CASE META_KEY EQ K_F11 ; CRT 'F11' CASE META_KEY EQ K_F12 ; CRT 'F12' CASE META_KEY EQ K_HOME ; CRT 'Home' CASE META_KEY EQ K_INSERT ; CRT 'Insert' CASE META_KEY EQ K_LEFT ; CRT 'Left' CASE META_KEY EQ K_MENU ; CRT 'Menu' CASE META_KEY EQ K_PAGE_DOWN ; CRT 'Page_Down' CASE META_KEY EQ K_PAGE_UP ; CRT 'Page_Up' CASE META_KEY EQ K_RIGHT ; CRT 'Right' CASE META_KEY EQ K_TAB ; CRT 'Tab' CASE META_KEY EQ K_UP ; CRT 'Up' CASE META_KEY EQ KA_0 ; CRT 'Alt+0' CASE META_KEY EQ KA_1 ; CRT 'Alt+1' CASE META_KEY EQ KA_2 ; CRT 'Alt+2' CASE META_KEY EQ KA_3 ; CRT 'Alt+3' CASE META_KEY EQ KA_4 ; CRT 'Alt+4' CASE META_KEY EQ KA_5 ; CRT 'Alt+5' CASE META_KEY EQ KA_6 ; CRT 'Alt+6' CASE META_KEY EQ KA_7 ; CRT 'Alt+7' CASE META_KEY EQ KA_8 ; CRT 'Alt+8' CASE META_KEY EQ KA_9 ; CRT 'Alt+9' CASE META_KEY EQ KA_A ; CRT 'Alt+A' CASE META_KEY EQ KA_ACCENT ; CRT 'Alt+`' CASE META_KEY EQ KA_AMPERSAND ; CRT 'Alt+&' CASE META_KEY EQ KA_AT ; CRT 'Alt+@' CASE META_KEY EQ KA_B ; CRT 'Alt+B' CASE META_KEY EQ KA_BACKSLASH ; CRT 'Alt+\' CASE META_KEY EQ KA_BACKSPACE ; CRT 'Alt+Backspace' CASE META_KEY EQ KA_BACKTICK ; CRT 'Alt+`' CASE META_KEY EQ KA_BANG ; CRT 'Alt+!' CASE META_KEY EQ KA_C ; CRT 'Alt+C' CASE META_KEY EQ KA_CARET ; CRT 'Alt+^' CASE META_KEY EQ KA_COMMA ; CRT 'Alt+,' CASE META_KEY EQ KA_D ; CRT 'Alt+D' CASE META_KEY EQ KA_DASH ; CRT 'Alt+-' CASE META_KEY EQ KA_DELETE ; CRT 'Alt+Delete' CASE META_KEY EQ KA_DOLLAR ; CRT 'Alt+$' CASE META_KEY EQ KA_DOWN ; CRT 'Alt+Down' CASE META_KEY EQ KA_DQUOTE ; CRT 'Alt+"' CASE META_KEY EQ KA_E ; CRT 'Alt+E' CASE META_KEY EQ KA_END ; CRT 'Alt+End' CASE META_KEY EQ KA_ENTER ; CRT 'Alt+Enter' CASE META_KEY EQ KA_EQUAL ; CRT 'Alt+=' CASE META_KEY EQ KA_ESCAPE ; CRT 'Alt+Escape' CASE META_KEY EQ KA_F ; CRT 'Alt+F' CASE META_KEY EQ KA_F01 ; CRT 'Alt+F01' CASE META_KEY EQ KA_F02 ; CRT 'Alt+F02' CASE META_KEY EQ KA_F03 ; CRT 'Alt+F03' CASE META_KEY EQ KA_F04 ; CRT 'Alt+F04' CASE META_KEY EQ KA_F05 ; CRT 'Alt+F05' CASE META_KEY EQ KA_F06 ; CRT 'Alt+F06' CASE META_KEY EQ KA_F07 ; CRT 'Alt+F07' CASE META_KEY EQ KA_F08 ; CRT 'Alt+F08' CASE META_KEY EQ KA_F09 ; CRT 'Alt+F09' CASE META_KEY EQ KA_F10 ; CRT 'Alt+F10' CASE META_KEY EQ KA_F11 ; CRT 'Alt+F11' CASE META_KEY EQ KA_F12 ; CRT 'Alt+F12' CASE META_KEY EQ KA_G ; CRT 'Alt+G' CASE META_KEY EQ KA_H ; CRT 'Alt+H' CASE META_KEY EQ KA_POUND ; CRT 'Alt+#' CASE META_KEY EQ KA_HOME ; CRT 'Alt+Home' CASE META_KEY EQ KA_I ; CRT 'Alt+I' CASE META_KEY EQ KA_INSERT ; CRT 'Alt+Insert' CASE META_KEY EQ KA_J ; CRT 'Alt+J' CASE META_KEY EQ KA_K ; CRT 'Alt+K' CASE META_KEY EQ KA_L ; CRT 'Alt+L' CASE META_KEY EQ KA_LANGLE ; CRT 'Alt+<' CASE META_KEY EQ KA_LBRACE ; CRT 'Alt+{' CASE META_KEY EQ KA_LBRACKET ; CRT 'Alt+[' CASE META_KEY EQ KA_LEFT ; CRT 'Alt+Left' CASE META_KEY EQ KA_LPAREN ; CRT 'Alt+(' CASE META_KEY EQ KA_M ; CRT 'Alt+M' CASE META_KEY EQ KA_N ; CRT 'Alt+N' CASE META_KEY EQ KA_O ; CRT 'Alt+O' CASE META_KEY EQ KA_P ; CRT 'Alt+P' CASE META_KEY EQ KA_PAGE_DOWN ; CRT 'Alt+Page_Down' CASE META_KEY EQ KA_PAGE_UP ; CRT 'Alt+Page_Up' CASE META_KEY EQ KA_PERCENT ; CRT 'Alt+%' CASE META_KEY EQ KA_PERIOD ; CRT 'Alt+.' CASE META_KEY EQ KA_PIPE ; CRT 'Alt+|' CASE META_KEY EQ KA_PLUS ; CRT 'Alt++' CASE META_KEY EQ KA_Q ; CRT 'Alt+Q' CASE META_KEY EQ KA_QUERY ; CRT 'Alt+?' CASE META_KEY EQ KA_R ; CRT 'Alt+R' CASE META_KEY EQ KA_RANGLE ; CRT 'Alt+>' CASE META_KEY EQ KA_RBRACE ; CRT 'Alt+}' CASE META_KEY EQ KA_RBRACKET ; CRT 'Alt+]' CASE META_KEY EQ KA_RIGHT ; CRT 'Alt+Right' CASE META_KEY EQ KA_RPAREN ; CRT 'Alt+)' CASE META_KEY EQ KA_S ; CRT 'Alt+S' CASE META_KEY EQ KA_COLON ; CRT 'Alt+:' CASE META_KEY EQ KA_SCOLON ; CRT 'Alt+;' CASE META_KEY EQ KA_SLASH ; CRT 'Alt+/' CASE META_KEY EQ KA_SPACE ; CRT 'Alt+Space' CASE META_KEY EQ KA_SQUOTE ; CRT "Alt+'" CASE META_KEY EQ KA_STAR ; CRT 'Alt+*' CASE META_KEY EQ KA_T ; CRT 'Alt+T' CASE META_KEY EQ KA_TAB ; CRT 'Alt+Tab' CASE META_KEY EQ KA_TILDE ; CRT 'Alt+~' CASE META_KEY EQ KA_U ; CRT 'Alt+U' CASE META_KEY EQ KA_UNDERSCORE ; CRT 'Alt+_' CASE META_KEY EQ KA_UP ; CRT 'Alt+Up' CASE META_KEY EQ KA_V ; CRT 'Alt+V' CASE META_KEY EQ KA_W ; CRT 'Alt+W' CASE META_KEY EQ KA_X ; CRT 'Alt+X' CASE META_KEY EQ KA_Y ; CRT 'Alt+Y' CASE META_KEY EQ KA_Z ; CRT 'Alt+Z' CASE META_KEY EQ KC_A ; CRT 'Ctrl+A' CASE META_KEY EQ KC_AT ; CRT 'Ctrl+@' CASE META_KEY EQ KC_B ; CRT 'Ctrl+B' CASE META_KEY EQ KC_BACKSLASH ; CRT 'Ctrl+\' CASE META_KEY EQ KC_BACKSPACE ; CRT 'Ctrl+Backspace' CASE META_KEY EQ KC_C ; CRT 'Ctrl+C' CASE META_KEY EQ KC_CARET ; CRT 'Ctrl+^' CASE META_KEY EQ KC_D ; CRT 'Ctrl+D' CASE META_KEY EQ KC_DELETE ; CRT 'Ctrl+Delete' CASE META_KEY EQ KC_DOWN ; CRT 'Ctrl+Down' CASE META_KEY EQ KC_E ; CRT 'Ctrl+E' CASE META_KEY EQ KC_END ; CRT 'Ctrl+End' CASE META_KEY EQ KC_ENTER ; CRT 'Ctrl+Enter' CASE META_KEY EQ KC_ESCAPE ; CRT 'Ctrl+Escape' CASE META_KEY EQ KC_F ; CRT 'Ctrl+F' CASE META_KEY EQ KC_F01 ; CRT 'Ctrl+F01' CASE META_KEY EQ KC_F02 ; CRT 'Ctrl+F02' CASE META_KEY EQ KC_F03 ; CRT 'Ctrl+F03' CASE META_KEY EQ KC_F04 ; CRT 'Ctrl+F04' CASE META_KEY EQ KC_F05 ; CRT 'Ctrl+F05' CASE META_KEY EQ KC_F06 ; CRT 'Ctrl+F06' CASE META_KEY EQ KC_F07 ; CRT 'Ctrl+F07' CASE META_KEY EQ KC_F08 ; CRT 'Ctrl+F08' CASE META_KEY EQ KC_F09 ; CRT 'Ctrl+F09' CASE META_KEY EQ KC_F10 ; CRT 'Ctrl+F10' CASE META_KEY EQ KC_F11 ; CRT 'Ctrl+F11' CASE META_KEY EQ KC_F12 ; CRT 'Ctrl+F12' CASE META_KEY EQ KC_G ; CRT 'Ctrl+G' CASE META_KEY EQ KC_H ; CRT 'Ctrl+H' CASE META_KEY EQ KC_HOME ; CRT 'Ctrl+Home' CASE META_KEY EQ KC_I ; CRT 'Ctrl+I' CASE META_KEY EQ KC_INSERT ; CRT 'Ctrl+Insert' CASE META_KEY EQ KC_J ; CRT 'Ctrl+J' CASE META_KEY EQ KC_K ; CRT 'Ctrl+K' CASE META_KEY EQ KC_L ; CRT 'Ctrl+L' CASE META_KEY EQ KC_LEFT ; CRT 'Ctrl+Left' CASE META_KEY EQ KC_M ; CRT 'Ctrl+M' CASE META_KEY EQ KC_N ; CRT 'Ctrl+N' CASE META_KEY EQ KC_O ; CRT 'Ctrl+O' CASE META_KEY EQ KC_P ; CRT 'Ctrl+P' CASE META_KEY EQ KC_PAGE_DOWN ; CRT 'Ctrl+Page_Down' CASE META_KEY EQ KC_PAGE_UP ; CRT 'Ctrl+Page_Up' CASE META_KEY EQ KC_Q ; CRT 'Ctrl+Q' CASE META_KEY EQ KC_R ; CRT 'Ctrl+R' CASE META_KEY EQ KC_RBRACKET ; CRT 'Ctrl+]' CASE META_KEY EQ KC_RIGHT ; CRT 'Ctrl+Right' CASE META_KEY EQ KC_S ; CRT 'Ctrl+S' CASE META_KEY EQ KC_SLASH ; CRT 'Ctrl+/' CASE META_KEY EQ KC_SPACE ; CRT 'Ctrl+Space' CASE META_KEY EQ KC_T ; CRT 'Ctrl+T' CASE META_KEY EQ KC_TAB ; CRT 'Ctrl+Tab' CASE META_KEY EQ KC_TILDE ; CRT 'Ctrl+~' CASE META_KEY EQ KC_U ; CRT 'Ctrl+U' CASE META_KEY EQ KC_UNDERSCORE ; CRT 'Ctrl+_' CASE META_KEY EQ KC_UP ; CRT 'Ctrl+Up' CASE META_KEY EQ KC_V ; CRT 'Ctrl+V' CASE META_KEY EQ KC_W ; CRT 'Ctrl+W' CASE META_KEY EQ KC_X ; CRT 'Ctrl+X' CASE META_KEY EQ KC_Y ; CRT 'Ctrl+Y' CASE META_KEY EQ KC_Z ; CRT 'Ctrl+Z' CASE META_KEY EQ KPC_0 ; CRT 'Key-pad Ctrl+0' CASE META_KEY EQ KPC_1 ; CRT 'Key-pad Ctrl+1' CASE META_KEY EQ KPC_2 ; CRT 'Key-pad Ctrl+2' CASE META_KEY EQ KPC_3 ; CRT 'Key-pad Ctrl+3' CASE META_KEY EQ KPC_4 ; CRT 'Key-pad Ctrl+4' CASE META_KEY EQ KPC_5 ; CRT 'Key-pad Ctrl+5' CASE META_KEY EQ KPC_6 ; CRT 'Key-pad Ctrl+6' CASE META_KEY EQ KPC_7 ; CRT 'Key-pad Ctrl+7' CASE META_KEY EQ KPC_8 ; CRT 'Key-pad Ctrl+8' CASE META_KEY EQ KPC_9 ; CRT 'Key-pad Ctrl+9' CASE META_KEY EQ KPC_DASH ; CRT 'Key-pad Ctrl+-' CASE META_KEY EQ KPC_PERIOD ; CRT 'Key-pad Ctrl+.' CASE META_KEY EQ KPC_ENTER ; CRT 'Key-pad Ctrl+Enter' CASE META_KEY EQ KPC_PLUS ; CRT 'Key-pad Ctrl++' CASE META_KEY EQ KPC_SLASH ; CRT 'Key-pad Ctrl+/' CASE META_KEY EQ KPC_STAR ; CRT 'Key-pad Ctrl+*' CASE META_KEY EQ KS_BACKSPACE ; CRT 'Shift+Backspace' CASE META_KEY EQ KS_DELETE ; CRT 'Shift+Delete' CASE META_KEY EQ KS_DOWN ; CRT 'Shift+Down' CASE META_KEY EQ KS_END ; CRT 'Shift+End' CASE META_KEY EQ KS_ENTER ; CRT 'Shift+Enter' CASE META_KEY EQ KS_ESCAPE ; CRT 'Shift+Escape' CASE META_KEY EQ KS_F01 ; CRT 'Shift+F01' CASE META_KEY EQ KS_F02 ; CRT 'Shift+F02' CASE META_KEY EQ KS_F03 ; CRT 'Shift+F03' CASE META_KEY EQ KS_F04 ; CRT 'Shift+F04' CASE META_KEY EQ KS_F05 ; CRT 'Shift+F05' CASE META_KEY EQ KS_F06 ; CRT 'Shift+F06' CASE META_KEY EQ KS_F07 ; CRT 'Shift+F07' CASE META_KEY EQ KS_F08 ; CRT 'Shift+F08' CASE META_KEY EQ KS_F09 ; CRT 'Shift+F09' CASE META_KEY EQ KS_F10 ; CRT 'Shift+F10' CASE META_KEY EQ KS_F11 ; CRT 'Shift+F11' CASE META_KEY EQ KS_F12 ; CRT 'Shift+F12' CASE META_KEY EQ KS_HOME ; CRT 'Shift+Home' CASE META_KEY EQ KS_INSERT ; CRT 'Shift+Insert' CASE META_KEY EQ KS_LEFT ; CRT 'Shift+Left' CASE META_KEY EQ KS_PAGE_DOWN ; CRT 'Shift+Page_Down' CASE META_KEY EQ KS_PAGE_UP ; CRT 'Shift+Page_Up' CASE META_KEY EQ KS_RIGHT ; CRT 'Shift+Right' CASE META_KEY EQ KS_SPACE ; CRT 'Shift+Space' CASE META_KEY EQ KS_TAB ; CRT 'Shift+Tab' CASE META_KEY EQ KS_UP ; CRT 'Shift+Up' CASE META_KEY EQ KSA_A ; CRT 'Shift+Alt+A' CASE META_KEY EQ KSA_B ; CRT 'Shift+Alt+B' CASE META_KEY EQ KSA_BACKSPACE ; CRT 'Shift+Alt+Backspace' CASE META_KEY EQ KSA_C ; CRT 'Shift+Alt+C' CASE META_KEY EQ KSA_D ; CRT 'Shift+Alt+D' CASE META_KEY EQ KSA_DELETE ; CRT 'Shift+Alt+Delete' CASE META_KEY EQ KSA_DOWN ; CRT 'Shift+Alt+Down' CASE META_KEY EQ KSA_E ; CRT 'Shift+Alt+E' CASE META_KEY EQ KSA_END ; CRT 'Shift+Alt+End' CASE META_KEY EQ KSA_ENTER ; CRT 'Shift+Alt+Enter' CASE META_KEY EQ KSA_ESCAPE ; CRT 'Shift+Alt+Escape' CASE META_KEY EQ KSA_F ; CRT 'Shift+Alt+F' CASE META_KEY EQ KSA_F01 ; CRT 'Shift+Alt+F01' CASE META_KEY EQ KSA_F02 ; CRT 'Shift+Alt+F02' CASE META_KEY EQ KSA_F03 ; CRT 'Shift+Alt+F03' CASE META_KEY EQ KSA_F04 ; CRT 'Shift+Alt+F04' CASE META_KEY EQ KSA_F05 ; CRT 'Shift+Alt+F05' CASE META_KEY EQ KSA_F06 ; CRT 'Shift+Alt+F06' CASE META_KEY EQ KSA_F07 ; CRT 'Shift+Alt+F07' CASE META_KEY EQ KSA_F08 ; CRT 'Shift+Alt+F08' CASE META_KEY EQ KSA_F09 ; CRT 'Shift+Alt+F09' CASE META_KEY EQ KSA_F10 ; CRT 'Shift+Alt+F10' CASE META_KEY EQ KSA_F11 ; CRT 'Shift+Alt+F11' CASE META_KEY EQ KSA_F12 ; CRT 'Shift+Alt+F12' CASE META_KEY EQ KSA_G ; CRT 'Shift+Alt+G' CASE META_KEY EQ KSA_H ; CRT 'Shift+Alt+H' CASE META_KEY EQ KSA_HOME ; CRT 'Shift+Alt+Home' CASE META_KEY EQ KSA_I ; CRT 'Shift+Alt+I' CASE META_KEY EQ KSA_INSERT ; CRT 'Shift+Alt+Insert' CASE META_KEY EQ KSA_J ; CRT 'Shift+Alt+J' CASE META_KEY EQ KSA_K ; CRT 'Shift+Alt+K' CASE META_KEY EQ KSA_L ; CRT 'Shift+Alt+L' CASE META_KEY EQ KSA_LEFT ; CRT 'Shift+Alt+Left' CASE META_KEY EQ KSA_M ; CRT 'Shift+Alt+M' CASE META_KEY EQ KSA_N ; CRT 'Shift+Alt+N' CASE META_KEY EQ KSA_O ; CRT 'Shift+Alt+O' CASE META_KEY EQ KSA_P ; CRT 'Shift+Alt+P' CASE META_KEY EQ KSA_PAGE_DOWN ; CRT 'Shift+Alt+Page_Down' CASE META_KEY EQ KSA_PAGE_UP ; CRT 'Shift+Alt+Page_Up' CASE META_KEY EQ KSA_Q ; CRT 'Shift+Alt+Q' CASE META_KEY EQ KSA_R ; CRT 'Shift+Alt+R' CASE META_KEY EQ KSA_RIGHT ; CRT 'Shift+Alt+Right' CASE META_KEY EQ KSA_S ; CRT 'Shift+Alt+S' CASE META_KEY EQ KSA_SPACE ; CRT 'Shift+Alt+Space' CASE META_KEY EQ KSA_T ; CRT 'Shift+Alt+T' CASE META_KEY EQ KSA_TAB ; CRT 'Shift+Alt+Tab' CASE META_KEY EQ KSA_U ; CRT 'Shift+Alt+U' CASE META_KEY EQ KSA_UP ; CRT 'Shift+Alt+Up' CASE META_KEY EQ KSA_V ; CRT 'Shift+Alt+V' CASE META_KEY EQ KSA_W ; CRT 'Shift+Alt+W' CASE META_KEY EQ KSA_X ; CRT 'Shift+Alt+X' CASE META_KEY EQ KSA_Y ; CRT 'Shift+Alt+Y' CASE META_KEY EQ KSA_Z ; CRT 'Shift+Alt+Z' CASE META_KEY EQ KSC_BACKSPACE ; CRT 'Shift+Ctrl+Backspace' CASE META_KEY EQ KSC_DELETE ; CRT 'Shift+Ctrl+Delete' CASE META_KEY EQ KSC_DOWN ; CRT 'Shift+Ctrl+Down' CASE META_KEY EQ KSC_END ; CRT 'Shift+Ctrl+End' CASE META_KEY EQ KSC_ENTER ; CRT 'Shift+Ctrl+Enter' CASE META_KEY EQ KSC_ESCAPE ; CRT 'Shift+Ctrl+Escape' CASE META_KEY EQ KSC_F01 ; CRT 'Shift+Ctrl+F01' CASE META_KEY EQ KSC_F02 ; CRT 'Shift+Ctrl+F02' CASE META_KEY EQ KSC_F03 ; CRT 'Shift+Ctrl+F03' CASE META_KEY EQ KSC_F04 ; CRT 'Shift+Ctrl+F04' CASE META_KEY EQ KSC_F05 ; CRT 'Shift+Ctrl+F05' CASE META_KEY EQ KSC_F06 ; CRT 'Shift+Ctrl+F06' CASE META_KEY EQ KSC_F07 ; CRT 'Shift+Ctrl+F07' CASE META_KEY EQ KSC_F08 ; CRT 'Shift+Ctrl+F08' CASE META_KEY EQ KSC_F09 ; CRT 'Shift+Ctrl+F09' CASE META_KEY EQ KSC_F10 ; CRT 'Shift+Ctrl+F10' CASE META_KEY EQ KSC_F11 ; CRT 'Shift+Ctrl+F11' CASE META_KEY EQ KSC_F12 ; CRT 'Shift+Ctrl+F12' CASE META_KEY EQ KSC_HOME ; CRT 'Shift+Ctrl+Home' CASE META_KEY EQ KSC_INSERT ; CRT 'Shift+Ctrl+Insert' CASE META_KEY EQ KSC_LEFT ; CRT 'Shift+Ctrl+Left' CASE META_KEY EQ KSC_PAGE_DOWN ; CRT 'Shift+Ctrl+Page_Down' CASE META_KEY EQ KSC_PAGE_UP ; CRT 'Shift+Ctrl+Page_Up' CASE META_KEY EQ KSC_RIGHT ; CRT 'Shift+Ctrl+Right' CASE META_KEY EQ KSC_SPACE ; CRT 'Shift+Ctrl+Space' CASE META_KEY EQ KSC_UP ; CRT 'Shift+Ctrl+Up' CASE META_KEY< 1 > EQ KM_L1 ; CRT 'Mouse Left Single-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 > CASE META_KEY< 1 > EQ KM_L2 ; CRT 'Mouse Left Double-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 > CASE META_KEY< 1 > EQ KM_R1 ; CRT 'Mouse Right Single-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 > CASE META_KEY< 1 > EQ KM_R2 ; CRT 'Mouse Right Double-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 > CASE 1 ; CRT 'Unknown key!' END CASE UNTIL META_KEY EQ K_ESCAPE DO REPEAT STOP