// TARGET definitions // Copyright (c) Thrustmaster // ------------------------------- Virtual keyboard interface --------------------------------- define ESC 1041 define F1 1058 define F2 1059 define F3 1060 define F4 1061 define F5 1062 define F6 1063 define F7 1064 define F8 1065 define F9 1066 define F10 1067 define F11 1068 define F12 1069 define F13 1104 define F14 1105 define F15 1106 define F16 1107 define F17 1108 define F18 1109 define F19 1110 define F20 1111 define F21 1112 define F22 1113 define F23 1114 define F24 1115 define PRNTSCRN 1070 define SCRLCK 1071 define BRK 1072 define BSP 1042 define TAB 1043 define CAPS 1057 define ENT 1040 define LSHF 1225 define RSHF 1229 define LCTL 1224 define LWIN 1227 define LALT 1226 define SHF 1225 define ALT 1226 define CTL 1224 define SPC 1044 define RALT 1230 define RWIN 1231 define RCTL 1228 define INS 1073 define HOME 1074 define PGUP 1075 define DEL 1076 define END 1077 define PGDN 1078 define UARROW 1082 define DARROW 1081 define LARROW 1080 define RARROW 1079 define NUML 1083 define KP0 1098 define KP1 1089 define KP2 1090 define KP3 1091 define KP4 1092 define KP5 1093 define KP6 1094 define KP7 1095 define KP8 1096 define KP9 1097 define KPENT 1088 define APPS 1101 // ASCII keycodes, based on USB codes, for different keyboard layouts define ASC_SHF 1000 define ASC_AGR 1500 short USB[256]; short ASCE[256]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1044, //0x20 1030 + ASC_SHF, //0x21 ! Exclamation mark 1052 + ASC_SHF, //0x22 " " Double quotes (or speech marks) 1032 + ASC_SHF, //0x23 # Number 1033 + ASC_SHF, //0x24 $ Dollar 1034 + ASC_SHF, //0x25 % Procenttecken 1036 + ASC_SHF, //0x21 & & Ampersand 1052, //0x27 ' Single quote 1038 + ASC_SHF, //0x28 ( Open parenthesis (or open bracket) 1039 + ASC_SHF, //0x29 ) Close parenthesis (or close bracket) 1037 + ASC_SHF, //0x2a * Asterisk 1046 + ASC_SHF, //0x2b + Plus 1054, //0x2c , Comma 1045, //0x2d - Hyphen 1055, //0x2e . Period, dot or full stop 1056, //0x2f / Slash or divide 1039, //0x30 0 Zero 1030, //0x31 1 One 1031, //0x32 2 Two 1032, //0x33 3 Three 1033, //0x34 4 Four 1034, //0x35 5 Five 1035, //0x36 6 Six 1036, //0x37 7 Seven 1037, //0x38 8 Eight 1038, //0x39 9 Nine 1051 + ASC_SHF, //0x3a : Colon 1051, //0x3b ; Semicolon 1054 + ASC_SHF, //0x3c < < Less than (or open angled bracket) 1046, //0x3d = Equals 1055 + ASC_SHF, //0x3e > > Greater than (or close angled bracket) 1056 + ASC_SHF, //0x3f ? Question mark 1031 + ASC_SHF, //0x40 @ At symbol 1004 + ASC_SHF, //0x41 A Uppercase A 1005 + ASC_SHF, //0x42 B Uppercase B 1006 + ASC_SHF, //0x43 C Uppercase C 1007 + ASC_SHF, //0x44 D Uppercase D 1008 + ASC_SHF, //0x45 E Uppercase E 1009 + ASC_SHF, //0x46 F Uppercase F 1010 + ASC_SHF, //0x47 G Uppercase G 1011 + ASC_SHF, //0x48 H Uppercase H 1012 + ASC_SHF, //0x49 I Uppercase I 1013 + ASC_SHF, //0x4a J Uppercase J 1014 + ASC_SHF, //0x4b K Uppercase K 1015 + ASC_SHF, //0x4c L Uppercase L 1016 + ASC_SHF, //0x4d M Uppercase M 1017 + ASC_SHF, //0x4e N Uppercase N 1018 + ASC_SHF, //0x4f O Uppercase O 1019 + ASC_SHF, //0x50 P Uppercase P 1020 + ASC_SHF, //0x51 Q Uppercase Q 1021 + ASC_SHF, //0x52 R Uppercase R 1022 + ASC_SHF, //0x53 S Uppercase S 1023 + ASC_SHF, //0x54 T Uppercase T 1024 + ASC_SHF, //0x55 U Uppercase U 1025 + ASC_SHF, //0x56 V Uppercase V 1026 + ASC_SHF, //0x57 W Uppercase W 1027 + ASC_SHF, //0x58 X Uppercase X 1028 + ASC_SHF, //0x59 Y Uppercase Y 1029 + ASC_SHF, //0x5a Z Uppercase Z 1047, //0x5b [ Opening bracket 1049, //0x5c \ Backslash 1048, //0x5d ] Closing bracket 1035 + ASC_SHF, //0x5e ^ Caret - circumflex 1045 + ASC_SHF, //0x5f _ Underscore 1053, //0x60 ` Grave accent 1004, //0x61 a Lowercase a 1005, //0x62 b Lowercase b 1006, //0x63 c Lowercase c 1007, //0x64 d Lowercase d 1008, //0x65 e Lowercase e 1009, //0x66 f Lowercase f 1010, //0x67 g Lowercase g 1011, //0x68 h Lowercase h 1012, //0x69 i Lowercase i 1013, //0x6a j Lowercase j 1014, //0x6b k Lowercase k 1015, //0x6c l Lowercase l 1016, //0x6d m Lowercase m 1017, //0x6e n Lowercase n 1018, //0x6f o Lowercase o 1019, //0x70 p Lowercase p 1020, //0x71 q Lowercase q 1021, //0x72 r Lowercase r 1022, //0x73 s Lowercase s 1023, //0x74 t Lowercase t 1024, //0x75 u Lowercase u 1025, //0x76 v Lowercase v 1026, //0x77 w Lowercase w 1027, //0x78 x Lowercase x 1028, //0x79 y Lowercase y 1029, //0x7a z Lowercase z 1047 + ASC_SHF, //0x7b { Opening brace 1049 + ASC_SHF, //0x7c | Vertical bar 1048 + ASC_SHF, //0x7d } Closing brace 1053 + ASC_SHF, //0x7e ~ Equivalency sign - tilde 1076, //0x7F delete 0, //0x80 € € Euro sign 0, //0x81 0, //0x82 ‚ ‚ Single low-9 quotation mark 0, //0x83 ƒ ƒ Latin small letter f with hook 0, //0x84 „ „ Double low-9 quotation mark 0, //0x85 … … Horizontal ellipsis 0, //0x86 † † Dagger 0, //0x87 ‡ ‡ Double dagger 0, //0x88 ˆ ˆ Modifier letter circumflex accent 0, //0x89 ‰ ‰ Per mille sign 0, //0x8A Š Š Latin capital letter S with caron 0, //0x8B ‹ ‹ Single left-pointing angle quotation 0, //0x8C Œ Œ Latin capital ligature OE 0, //0x8D 0, //0x8E Ž Latin captial letter Z with caron 0, //0x8F 0, //0x90 0, //0x91 ‘ ‘ Left single quotation mark 0, //0x92 ’ ’ Right single quotation mark 0, //0x93 “ “ Left double quotation mark 0, //0x94 ” ” Right double quotation mark 0, //0x95 • • Bullet 0, //0x96 – – En dash 0, //0x97 — — Em dash 0, //0x98 ˜ ˜ Small tilde 0, //0x99 ™ ™ Trade mark sign 0, //0x9A š š Latin small letter S with caron 0, //0x9B › › Single right-pointing angle quotation mark 0, //0x9C œ œ Latin small ligature oe 0, //0x9D 0, //0x9E ž Latin small letter z with caron 0, //0x9F Ÿ ÿ Latin capital letter Y with diaeresis 0, //0xA0   Non-breaking space 0, //0xA1 ¡ ¡ Inverted exclamation mark 0, //0xA2 ¢ ¢ Cent sign 0, //0xA3 £ £ Pound sign 0, //0xA4 ¤ ¤ Currency sign 0, //0xA5 ¥ ¥ Yen sign 0, //0xA6 ¦ ¦ Pipe, Broken vertical bar 0, //0xA7 § § Section sign 0, //0xA8 ¨ ¨ Spacing diaeresis - umlaut 0, //0xA9 © © Copyright sign 0, //0xAA ª ª Feminine ordinal indicator 0, //0xAB « « Left double angle quotes 0, //0xAC ¬ ¬ Not sign 0, //0xAD ­ Soft hyphen 0, //0xAE ® ® Registered trade mark sign 0, //0xAF ¯ ¯ Spacing macron - overline 0, //0xB0 ° ° Degree sign 0, //0xB1 ± ± Plus-or-minus sign 0, //0xB2 ² ² Superscript two - squared 0, //0xB3 ³ ³ Superscript three - cubed 0, //0xB4 ´ ´ Acute accent - spacing acute 0, //0xB5 µ µ Micro sign 0, //0xB6 ¶ ¶ Pilcrow sign - paragraph sign 0, //0xB7 · · Middle dot - Georgian comma 0, //0xB8 ¸ ¸ Spacing cedilla 0, //0xB9 ¹ ¹ Superscript one 0, //0xBA º º Masculine ordinal indicator 0, //0xBB » » Right double angle quotes 0, //0xBC ¼ ¼ Fraction one quarter 0, //0xBD ½ ½ Fraction one half 0, //0xBE ¾ ¾ Fraction three quarters 0, //0xBF ¿ ¿ Inverted question mark 0, //0xC0 À À Latin capital letter A with grave 0, //0xC1 Á Á Latin capital letter A with acute 0, //0xC2   Latin capital letter A with circumflex 0, //0xC3 à à Latin capital letter A with tilde 0, //0xC4 Ä Ä Latin capital letter A with diaeresis 0, //0xC5 Å Å Latin capital letter A with ring above 0, //0xC6 Æ Æ Latin capital letter AE 0, //0xC7 Ç Ç Latin capital letter C with cedilla 0, //0xC8 È È Latin capital letter E with grave 0, //0xC9 É É Latin capital letter E with acute 0, //0xCA Ê Ê Latin capital letter E with circumflex 0, //0xCB Ë Ë Latin capital letter E with diaeresis 0, //0xCC Ì Ì Latin capital letter I with grave 0, //0xCD Í Í Latin capital letter I with acute 0, //0xCE Î Î Latin capital letter I with circumflex 0, //0xCF Ï Ï Latin capital letter I with diaeresis 0, //0xD0 Ð Ð Latin capital letter ETH 0, //0xD1 Ñ Ñ Latin capital letter N with tilde 0, //0xD2 Ò Ò Latin capital letter O with grave 0, //0xD3 Ó Ó Latin capital letter O with acute 0, //0xD4 Ô Ô Latin capital letter O with circumflex 0, //0xD5 Õ Õ Latin capital letter O with tilde 0, //0xD6 Ö Ö Latin capital letter O with diaeresis 0, //0xD7 × × Multiplication sign 0, //0xD8 Ø Ø Latin capital letter O with slash 0, //0xD9 Ù Ù Latin capital letter U with grave 0, //0xDA Ú Ú Latin capital letter U with acute 0, //0xDB Û Û Latin capital letter U with circumflex 0, //0xDC Ü Ü Latin capital letter U with diaeresis 0, //0xDD Ý Ý Latin capital letter Y with acute 0, //0xDE Þ Þ Latin capital letter THORN 0, //0xDF ß ß Latin small letter sharp s - ess-zed 0, //0xE0 à à Latin small letter a with grave 0, //0xE1 á á Latin small letter a with acute 0, //0xE2 â â Latin small letter a with circumflex 0, //0xE3 ã ã Latin small letter a with tilde 0, //0xE4 ä ä Latin small letter a with diaeresis 0, //0xE5 å å Latin small letter a with ring above 0, //0xE6 æ æ Latin small letter ae 0, //0xE7 ç ç Latin small letter c with cedilla 0, //0xE8 è è Latin small letter e with grave 0, //0xE9 é é Latin small letter e with acute 0, //0xEA ê ê Latin small letter e with circumflex 0, //0xEB ë ë Latin small letter e with diaeresis 0, //0xEC ì ì Latin small letter i with grave 0, //0xED í í Latin small letter i with acute 0, //0xEE î î Latin small letter i with circumflex 0, //0xEF ï ï Latin small letter i with diaeresis 0, //0xF0 ð ð Latin small letter eth 0, //0xF1 ñ ñ Latin small letter n with tilde 0, //0xF2 ò ò Latin small letter o with grave 0, //0xF3 ó ó Latin small letter o with acute 0, //0xF4 ô ô Latin small letter o with circumflex 0, //0xF5 õ õ Latin small letter o with tilde 0, //0xF6 ö ö Latin small letter o with diaeresis 0, //0xF7 ÷ ÷ Division sign 0, //0xF8 ø ø Latin small letter o with slash 0, //0xF9 ù ù Latin small letter u with grave 0, //0xFA ú ú Latin small letter u with acute 0, //0xFB û û Latin small letter u with circumflex 0, //0xFC ü ü Latin small letter u with diaeresis 0, //0xFD ý ý Latin small letter y with acute 0, //0xFE þ þ Latin small letter thorn 0 //0xFF ÿ ÿ Latin small letter y with diaeresis }; short ASCF[256]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1044, //0x20 1056, //0x21 ! Exclamation mark 1032, //0x22 " " Double quotes (or speech marks) 1032 + ASC_AGR, //0x23 # Number 1048, //0x24 $ Dollar 1052 + ASC_SHF, //0x25 % Procenttecken 1030, //0x21 & & Ampersand 1033, //0x27 ' Single quote 1034, //0x28 ( Open parenthesis (or open bracket) 1045, //0x29 ) Close parenthesis (or close bracket) 1049, //0x2a * Asterisk 1046 + ASC_SHF, //0x2b + Plus 1016, //0x2c , Comma 1035, //0x2d - Hyphen 1054 + ASC_SHF, //0x2e . Period, dot or full stop 1055 + ASC_SHF, //0x2f / Slash or divide 1039 + ASC_SHF, //0x30 0 Zero 1030 + ASC_SHF, //0x31 1 One 1031 + ASC_SHF, //0x32 2 Two 1032 + ASC_SHF, //0x33 3 Three 1033 + ASC_SHF, //0x34 4 Four 1034 + ASC_SHF, //0x35 5 Five 1035 + ASC_SHF, //0x36 6 Six 1036 + ASC_SHF, //0x37 7 Seven 1037 + ASC_SHF, //0x38 8 Eight 1038 + ASC_SHF, //0x39 9 Nine 1055, //0x3a : Colon 1054, //0x3b ; Semicolon 1100, //0x3c < < Less than (or open angled bracket) 1046, //0x3d = Equals 1100 + ASC_SHF, //0x3e > > Greater than (or close angled bracket) 1016 + ASC_SHF, //0x3f ? Question mark 1038 + ASC_AGR, //0x40 @ At symbol 1020 + ASC_SHF, //0x41 A Uppercase A 1005 + ASC_SHF, //0x42 B Uppercase B 1006 + ASC_SHF, //0x43 C Uppercase C 1007 + ASC_SHF, //0x44 D Uppercase D 1008 + ASC_SHF, //0x45 E Uppercase E 1009 + ASC_SHF, //0x46 F Uppercase F 1010 + ASC_SHF, //0x47 G Uppercase G 1011 + ASC_SHF, //0x48 H Uppercase H 1012 + ASC_SHF, //0x49 I Uppercase I 1013 + ASC_SHF, //0x4a J Uppercase J 1014 + ASC_SHF, //0x4b K Uppercase K 1015 + ASC_SHF, //0x4c L Uppercase L 1051 + ASC_SHF, //0x4d M Uppercase M 1017 + ASC_SHF, //0x4e N Uppercase N 1018 + ASC_SHF, //0x4f O Uppercase O 1019 + ASC_SHF, //0x50 P Uppercase P 1004 + ASC_SHF, //0x51 Q Uppercase Q 1021 + ASC_SHF, //0x52 R Uppercase R 1022 + ASC_SHF, //0x53 S Uppercase S 1023 + ASC_SHF, //0x54 T Uppercase T 1024 + ASC_SHF, //0x55 U Uppercase U 1025 + ASC_SHF, //0x56 V Uppercase V 1029 + ASC_SHF, //0x57 W Uppercase W 1027 + ASC_SHF, //0x58 X Uppercase X 1028 + ASC_SHF, //0x59 Y Uppercase Y 1026 + ASC_SHF, //0x5a Z Uppercase Z 1034 + ASC_AGR, //0x5b [ Opening bracket 1037 + ASC_AGR, //0x5c \ Backslash 1045 + ASC_AGR, //0x5d ] Closing bracket 1038 + ASC_AGR, //0x5e ^ Caret - circumflex 1037, //0x5f _ Underscore 1036 + ASC_AGR, //0x60 ` Grave accent 1020, //0x61 a Lowercase a 1005, //0x62 b Lowercase b 1006, //0x63 c Lowercase c 1007, //0x64 d Lowercase d 1008, //0x65 e Lowercase e 1009, //0x66 f Lowercase f 1010, //0x67 g Lowercase g 1011, //0x68 h Lowercase h 1012, //0x69 i Lowercase i 1013, //0x6a j Lowercase j 1014, //0x6b k Lowercase k 1015, //0x6c l Lowercase l 1051, //0x6d m Lowercase m 1017, //0x6e n Lowercase n 1018, //0x6f o Lowercase o 1019, //0x70 p Lowercase p 1004, //0x71 q Lowercase q 1021, //0x72 r Lowercase r 1022, //0x73 s Lowercase s 1023, //0x74 t Lowercase t 1024, //0x75 u Lowercase u 1025, //0x76 v Lowercase v 1029, //0x77 w Lowercase w 1027, //0x78 x Lowercase x 1028, //0x79 y Lowercase y 1026, //0x7a z Lowercase z 1033 + ASC_AGR, //0x7b { Opening brace 1035 + ASC_AGR, //0x7c | Vertical bar 1046 + ASC_AGR, //0x7d } Closing brace 1053 + ASC_SHF, //0x7e ~ Equivalency sign - tilde 1076, //0x7F delete 1008 + ASC_AGR, //0x80 € € Euro sign 0, //0x81 0, //0x82 ‚ ‚ Single low-9 quotation mark 0, //0x83 ƒ ƒ Latin small letter f with hook 0, //0x84 „ „ Double low-9 quotation mark 0, //0x85 … … Horizontal ellipsis 0, //0x86 † † Dagger 0, //0x87 ‡ ‡ Double dagger 0, //0x88 ˆ ˆ Modifier letter circumflex accent 0, //0x89 ‰ ‰ Per mille sign 0, //0x8A Š Š Latin capital letter S with caron 0, //0x8B ‹ ‹ Single left-pointing angle quotation 0, //0x8C Œ Œ Latin capital ligature OE 0, //0x8D 0, //0x8E Ž Latin captial letter Z with caron 0, //0x8F 0, //0x90 0, //0x91 ‘ ‘ Left single quotation mark 0, //0x92 ’ ’ Right single quotation mark 0, //0x93 “ “ Left double quotation mark 0, //0x94 ” ” Right double quotation mark 0, //0x95 • • Bullet 0, //0x96 – – En dash 0, //0x97 — — Em dash 0, //0x98 ˜ ˜ Small tilde 0, //0x99 ™ ™ Trade mark sign 0, //0x9A š š Latin small letter S with caron 0, //0x9B › › Single right-pointing angle quotation mark 0, //0x9C œ œ Latin small ligature oe 0, //0x9D 0, //0x9E ž Latin small letter z with caron 0, //0x9F Ÿ ÿ Latin capital letter Y with diaeresis 0, //0xA0   Non-breaking space 0, //0xA1 ¡ ¡ Inverted exclamation mark 0, //0xA2 ¢ ¢ Cent sign 1033 + ASC_SHF, //0xA3 £ £ Pound sign 0, //0xA4 ¤ ¤ Currency sign 0, //0xA5 ¥ ¥ Yen sign 0, //0xA6 ¦ ¦ Pipe, Broken vertical bar 1056 + ASC_SHF, //0xA7 § § Section sign 0, //0xA8 ¨ ¨ Spacing diaeresis - umlaut 0, //0xA9 © © Copyright sign 0, //0xAA ª ª Feminine ordinal indicator 0, //0xAB « « Left double angle quotes 0, //0xAC ¬ ¬ Not sign 0, //0xAD ­ Soft hyphen 0, //0xAE ® ® Registered trade mark sign 0, //0xAF ¯ ¯ Spacing macron - overline 0, //0xB0 ° ° Degree sign 0, //0xB1 ± ± Plus-or-minus sign 1053, //0xB2 ² ² Superscript two - squared 0, //0xB3 ³ ³ Superscript three - cubed 0, //0xB4 ´ ´ Acute accent - spacing acute 1049 + ASC_SHF, //0xB5 µ µ Micro sign 0, //0xB6 ¶ ¶ Pilcrow sign - paragraph sign 0, //0xB7 · · Middle dot - Georgian comma 0, //0xB8 ¸ ¸ Spacing cedilla 0, //0xB9 ¹ ¹ Superscript one 0, //0xBA º º Masculine ordinal indicator 0, //0xBB » » Right double angle quotes 0, //0xBC ¼ ¼ Fraction one quarter 0, //0xBD ½ ½ Fraction one half 0, //0xBE ¾ ¾ Fraction three quarters 0, //0xBF ¿ ¿ Inverted question mark 0, //0xC0 À À Latin capital letter A with grave 0, //0xC1 Á Á Latin capital letter A with acute 0, //0xC2   Latin capital letter A with circumflex 0, //0xC3 à à Latin capital letter A with tilde 0, //0xC4 Ä Ä Latin capital letter A with diaeresis 0, //0xC5 Å Å Latin capital letter A with ring above 0, //0xC6 Æ Æ Latin capital letter AE 0, //0xC7 Ç Ç Latin capital letter C with cedilla 0, //0xC8 È È Latin capital letter E with grave 0, //0xC9 É É Latin capital letter E with acute 0, //0xCA Ê Ê Latin capital letter E with circumflex 0, //0xCB Ë Ë Latin capital letter E with diaeresis 0, //0xCC Ì Ì Latin capital letter I with grave 0, //0xCD Í Í Latin capital letter I with acute 0, //0xCE Î Î Latin capital letter I with circumflex 0, //0xCF Ï Ï Latin capital letter I with diaeresis 0, //0xD0 Ð Ð Latin capital letter ETH 0, //0xD1 Ñ Ñ Latin capital letter N with tilde 0, //0xD2 Ò Ò Latin capital letter O with grave 0, //0xD3 Ó Ó Latin capital letter O with acute 0, //0xD4 Ô Ô Latin capital letter O with circumflex 0, //0xD5 Õ Õ Latin capital letter O with tilde 0, //0xD6 Ö Ö Latin capital letter O with diaeresis 0, //0xD7 × × Multiplication sign 0, //0xD8 Ø Ø Latin capital letter O with slash 0, //0xD9 Ù Ù Latin capital letter U with grave 0, //0xDA Ú Ú Latin capital letter U with acute 0, //0xDB Û Û Latin capital letter U with circumflex 0, //0xDC Ü Ü Latin capital letter U with diaeresis 0, //0xDD Ý Ý Latin capital letter Y with acute 0, //0xDE Þ Þ Latin capital letter THORN 0, //0xDF ß ß Latin small letter sharp s - ess-zed 1039, //0xE0 à à Latin small letter a with grave 0, //0xE1 á á Latin small letter a with acute 0, //0xE2 â â Latin small letter a with circumflex 0, //0xE3 ã ã Latin small letter a with tilde 0, //0xE4 ä ä Latin small letter a with diaeresis 0, //0xE5 å å Latin small letter a with ring above 0, //0xE6 æ æ Latin small letter ae 1038, //0xE7 ç ç Latin small letter c with cedilla 1036, //0xE8 è è Latin small letter e with grave 1031, //0xE9 é é Latin small letter e with acute 0, //0xEA ê ê Latin small letter e with circumflex 0, //0xEB ë ë Latin small letter e with diaeresis 0, //0xEC ì ì Latin small letter i with grave 0, //0xED í í Latin small letter i with acute 0, //0xEE î î Latin small letter i with circumflex 0, //0xEF ï ï Latin small letter i with diaeresis 0, //0xF0 ð ð Latin small letter eth 0, //0xF1 ñ ñ Latin small letter n with tilde 0, //0xF2 ò ò Latin small letter o with grave 0, //0xF3 ó ó Latin small letter o with acute 0, //0xF4 ô ô Latin small letter o with circumflex 0, //0xF5 õ õ Latin small letter o with tilde 0, //0xF6 ö ö Latin small letter o with diaeresis 0, //0xF7 ÷ ÷ Division sign 0, //0xF8 ø ø Latin small letter o with slash 1052, //0xF9 ù ù Latin small letter u with grave 0, //0xFA ú ú Latin small letter u with acute 0, //0xFB û û Latin small letter u with circumflex 0, //0xFC ü ü Latin small letter u with diaeresis 0, //0xFD ý ý Latin small letter y with acute 0, //0xFE þ þ Latin small letter thorn 0 //0xFF ÿ ÿ Latin small letter y with diaeresis }; short ASCG[256]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1044, //0x20 1030 + ASC_SHF, //0x21 ! Exclamation mark 1031 + ASC_SHF, //0x22 " " Double quotes (or speech marks) 1049, //0x23 # Number 1033 + ASC_SHF, //0x24 $ Dollar 1034 + ASC_SHF, //0x25 % Procenttecken 1035 + ASC_SHF, //0x21 & & Ampersand 1049 + ASC_SHF, //0x27 ' Single quote 1037 + ASC_SHF, //0x28 ( Open parenthesis (or open bracket) 1038 + ASC_SHF, //0x29 ) Close parenthesis (or close bracket) 1048 + ASC_SHF, //0x2a * Asterisk 1048, //0x2b + Plus 1054, //0x2c , Comma 1056, //0x2d - Hyphen 1055, //0x2e . Period, dot or full stop 1036 + ASC_SHF, //0x2f / Slash or divide 1039, //0x30 0 Zero 1030, //0x31 1 One 1031, //0x32 2 Two 1032, //0x33 3 Three 1033, //0x34 4 Four 1034, //0x35 5 Five 1035, //0x36 6 Six 1036, //0x37 7 Seven 1037, //0x38 8 Eight 1038, //0x39 9 Nine 1055 + ASC_SHF, //0x3a : Colon 1054 + ASC_SHF, //0x3b ; Semicolon 1100, //0x3c < < Less than (or open angled bracket) 1039 + ASC_SHF, //0x3d = Equals 1100 + ASC_SHF, //0x3e > > Greater than (or close angled bracket) 1045 + ASC_SHF, //0x3f ? Question mark 1004 + ASC_AGR, //0x40 @ At symbol 1004 + ASC_SHF, //0x41 A Uppercase A 1005 + ASC_SHF, //0x42 B Uppercase B 1006 + ASC_SHF, //0x43 C Uppercase C 1007 + ASC_SHF, //0x44 D Uppercase D 1008 + ASC_SHF, //0x45 E Uppercase E 1009 + ASC_SHF, //0x46 F Uppercase F 1010 + ASC_SHF, //0x47 G Uppercase G 1011 + ASC_SHF, //0x48 H Uppercase H 1012 + ASC_SHF, //0x49 I Uppercase I 1013 + ASC_SHF, //0x4a J Uppercase J 1014 + ASC_SHF, //0x4b K Uppercase K 1015 + ASC_SHF, //0x4c L Uppercase L 1016 + ASC_SHF, //0x4d M Uppercase M 1017 + ASC_SHF, //0x4e N Uppercase N 1018 + ASC_SHF, //0x4f O Uppercase O 1019 + ASC_SHF, //0x50 P Uppercase P 1020 + ASC_SHF, //0x51 Q Uppercase Q 1021 + ASC_SHF, //0x52 R Uppercase R 1022 + ASC_SHF, //0x53 S Uppercase S 1023 + ASC_SHF, //0x54 T Uppercase T 1024 + ASC_SHF, //0x55 U Uppercase U 1025 + ASC_SHF, //0x56 V Uppercase V 1026 + ASC_SHF, //0x57 W Uppercase W 1027 + ASC_SHF, //0x58 X Uppercase X 1029 + ASC_SHF, //0x59 Y Uppercase Y 1028 + ASC_SHF, //0x5a Z Uppercase Z 1037 + ASC_AGR, //0x5b [ Opening bracket 1045 + ASC_AGR, //0x5c \ Backslash 1038 + ASC_AGR, //0x5d ] Closing bracket 1053, //0x5e ^ Caret - circumflex 1056 + ASC_SHF, //0x5f _ Underscore 1046 + ASC_SHF, //0x60 ` Grave accent 1004, //0x61 a Lowercase a 1005, //0x62 b Lowercase b 1006, //0x63 c Lowercase c 1007, //0x64 d Lowercase d 1008, //0x65 e Lowercase e 1009, //0x66 f Lowercase f 1010, //0x67 g Lowercase g 1011, //0x68 h Lowercase h 1012, //0x69 i Lowercase i 1013, //0x6a j Lowercase j 1014, //0x6b k Lowercase k 1015, //0x6c l Lowercase l 1016, //0x6d m Lowercase m 1017, //0x6e n Lowercase n 1018, //0x6f o Lowercase o 1019, //0x70 p Lowercase p 1020, //0x71 q Lowercase q 1021, //0x72 r Lowercase r 1022, //0x73 s Lowercase s 1023, //0x74 t Lowercase t 1024, //0x75 u Lowercase u 1025, //0x76 v Lowercase v 1026, //0x77 w Lowercase w 1027, //0x78 x Lowercase x 1029, //0x79 y Lowercase y 1028, //0x7a z Lowercase z 1036 + ASC_AGR, //0x7b { Opening brace 1100 + ASC_AGR, //0x7c | Vertical bar 1039 + ASC_AGR, //0x7d } Closing brace 1048 + ASC_AGR, //0x7e ~ Equivalency sign - tilde 1076, //0x7F delete 1008 + ASC_AGR, //0x80 € € Euro sign 0, //0x81 0, //0x82 ‚ ‚ Single low-9 quotation mark 0, //0x83 ƒ ƒ Latin small letter f with hook 0, //0x84 „ „ Double low-9 quotation mark 0, //0x85 … … Horizontal ellipsis 0, //0x86 † † Dagger 0, //0x87 ‡ ‡ Double dagger 0, //0x88 ˆ ˆ Modifier letter circumflex accent 0, //0x89 ‰ ‰ Per mille sign 0, //0x8A Š Š Latin capital letter S with caron 0, //0x8B ‹ ‹ Single left-pointing angle quotation 0, //0x8C Œ Œ Latin capital ligature OE 0, //0x8D 0, //0x8E Ž Latin captial letter Z with caron 0, //0x8F 0, //0x90 0, //0x91 ‘ ‘ Left single quotation mark 0, //0x92 ’ ’ Right single quotation mark 0, //0x93 “ “ Left double quotation mark 0, //0x94 ” ” Right double quotation mark 0, //0x95 • • Bullet 0, //0x96 – – En dash 0, //0x97 — — Em dash 0, //0x98 ˜ ˜ Small tilde 0, //0x99 ™ ™ Trade mark sign 0, //0x9A š š Latin small letter S with caron 0, //0x9B › › Single right-pointing angle quotation mark 0, //0x9C œ œ Latin small ligature oe 0, //0x9D 0, //0x9E ž Latin small letter z with caron 0, //0x9F Ÿ ÿ Latin capital letter Y with diaeresis 0, //0xA0   Non-breaking space 0, //0xA1 ¡ ¡ Inverted exclamation mark 0, //0xA2 ¢ ¢ Cent sign 0, //0xA3 £ £ Pound sign 0, //0xA4 ¤ ¤ Currency sign 0, //0xA5 ¥ ¥ Yen sign 0, //0xA6 ¦ ¦ Pipe, Broken vertical bar 1032 + ASC_SHF, //0xA7 § § Section sign 0, //0xA8 ¨ ¨ Spacing diaeresis - umlaut 0, //0xA9 © © Copyright sign 0, //0xAA ª ª Feminine ordinal indicator 0, //0xAB « « Left double angle quotes 0, //0xAC ¬ ¬ Not sign 0, //0xAD ­ Soft hyphen 0, //0xAE ® ® Registered trade mark sign 0, //0xAF ¯ ¯ Spacing macron - overline 0, //0xB0 ° ° Degree sign 0, //0xB1 ± ± Plus-or-minus sign 1031 + ASC_AGR, //0xB2 ² ² Superscript two - squared 1032 + ASC_AGR, //0xB3 ³ ³ Superscript three - cubed 0, //0xB4 ´ ´ Acute accent - spacing acute 1016 + ASC_AGR, //0xB5 µ µ Micro sign 0, //0xB6 ¶ ¶ Pilcrow sign - paragraph sign 0, //0xB7 · · Middle dot - Georgian comma 0, //0xB8 ¸ ¸ Spacing cedilla 0, //0xB9 ¹ ¹ Superscript one 0, //0xBA º º Masculine ordinal indicator 0, //0xBB » » Right double angle quotes 0, //0xBC ¼ ¼ Fraction one quarter 0, //0xBD ½ ½ Fraction one half 0, //0xBE ¾ ¾ Fraction three quarters 0, //0xBF ¿ ¿ Inverted question mark 0, //0xC0 À À Latin capital letter A with grave 0, //0xC1 Á Á Latin capital letter A with acute 0, //0xC2   Latin capital letter A with circumflex 0, //0xC3 à à Latin capital letter A with tilde 1052 + ASC_SHF, //0xC4 Ä Ä Latin capital letter A with diaeresis 0, //0xC5 Å Å Latin capital letter A with ring above 0, //0xC6 Æ Æ Latin capital letter AE 0, //0xC7 Ç Ç Latin capital letter C with cedilla 0, //0xC8 È È Latin capital letter E with grave 0, //0xC9 É É Latin capital letter E with acute 0, //0xCA Ê Ê Latin capital letter E with circumflex 0, //0xCB Ë Ë Latin capital letter E with diaeresis 0, //0xCC Ì Ì Latin capital letter I with grave 0, //0xCD Í Í Latin capital letter I with acute 0, //0xCE Î Î Latin capital letter I with circumflex 0, //0xCF Ï Ï Latin capital letter I with diaeresis 0, //0xD0 Ð Ð Latin capital letter ETH 0, //0xD1 Ñ Ñ Latin capital letter N with tilde 0, //0xD2 Ò Ò Latin capital letter O with grave 0, //0xD3 Ó Ó Latin capital letter O with acute 0, //0xD4 Ô Ô Latin capital letter O with circumflex 0, //0xD5 Õ Õ Latin capital letter O with tilde 1051 + ASC_SHF, //0xD6 Ö Ö Latin capital letter O with diaeresis 0, //0xD7 × × Multiplication sign 0, //0xD8 Ø Ø Latin capital letter O with slash 0, //0xD9 Ù Ù Latin capital letter U with grave 0, //0xDA Ú Ú Latin capital letter U with acute 0, //0xDB Û Û Latin capital letter U with circumflex 1047 + ASC_SHF, //0xDC Ü Ü Latin capital letter U with diaeresis 0, //0xDD Ý Ý Latin capital letter Y with acute 0, //0xDE Þ Þ Latin capital letter THORN 1045, //0xDF ß ß Latin small letter sharp s - ess-zed 0, //0xE0 à à Latin small letter a with grave 0, //0xE1 á á Latin small letter a with acute 0, //0xE2 â â Latin small letter a with circumflex 0, //0xE3 ã ã Latin small letter a with tilde 1052, //0xE4 ä ä Latin small letter a with diaeresis 0, //0xE5 å å Latin small letter a with ring above 0, //0xE6 æ æ Latin small letter ae 0, //0xE7 ç ç Latin small letter c with cedilla 0, //0xE8 è è Latin small letter e with grave 0, //0xE9 é é Latin small letter e with acute 0, //0xEA ê ê Latin small letter e with circumflex 0, //0xEB ë ë Latin small letter e with diaeresis 0, //0xEC ì ì Latin small letter i with grave 0, //0xED í í Latin small letter i with acute 0, //0xEE î î Latin small letter i with circumflex 0, //0xEF ï ï Latin small letter i with diaeresis 0, //0xF0 ð ð Latin small letter eth 0, //0xF1 ñ ñ Latin small letter n with tilde 0, //0xF2 ò ò Latin small letter o with grave 0, //0xF3 ó ó Latin small letter o with acute 0, //0xF4 ô ô Latin small letter o with circumflex 0, //0xF5 õ õ Latin small letter o with tilde 1051, //0xF6 ö ö Latin small letter o with diaeresis 0, //0xF7 ÷ ÷ Division sign 0, //0xF8 ø ø Latin small letter o with slash 0, //0xF9 ù ù Latin small letter u with grave 0, //0xFA ú ú Latin small letter u with acute 0, //0xFB û û Latin small letter u with circumflex 1047, //0xFC ü ü Latin small letter u with diaeresis 0, //0xFD ý ý Latin small letter y with acute 0, //0xFE þ þ Latin small letter thorn 0 //0xFF ÿ ÿ Latin small letter y with diaeresis }; alias ASC = &ASCE; // english keyboard layout as default // -------------------------------------- virtual joystick interface -------------------------------------- define DX1 3000 define DX2 3001 define DX3 3002 define DX4 3003 define DX5 3004 define DX6 3005 define DX7 3006 define DX8 3007 define DX9 3008 define DX10 3009 define DX11 3010 define DX12 3011 define DX13 3012 define DX14 3013 define DX15 3014 define DX16 3015 define DX17 3016 define DX18 3017 define DX19 3018 define DX20 3019 define DX21 3020 define DX22 3021 define DX23 3022 define DX24 3023 define DX25 3024 define DX26 3025 define DX27 3026 define DX28 3027 define DX29 3028 define DX30 3029 define DX31 3030 define DX32 3031 define DX33 3032 define DX34 3033 define DX35 3034 define DX36 3035 define DX37 3036 define DX38 3037 define DX39 3038 define DX40 3039 define DX41 3040 define DX42 3041 define DX43 3042 define DX44 3043 define DX45 3044 define DX46 3045 define DX47 3046 define DX48 3047 define DX49 3048 define DX50 3049 define DX51 3050 define DX52 3051 define DX53 3052 define DX54 3053 define DX55 3054 define DX56 3055 define DX57 3056 define DX58 3057 define DX59 3058 define DX60 3059 define DX61 3060 define DX62 3061 define DX63 3062 define DX64 3063 define DX65 3064 define DX66 3065 define DX67 3066 define DX68 3067 define DX69 3068 define DX70 3069 define DX71 3070 define DX72 3071 define DX73 3072 define DX74 3073 define DX75 3074 define DX76 3075 define DX77 3076 define DX78 3077 define DX79 3078 define DX80 3079 define DX81 3080 define DX82 3081 define DX83 3082 define DX84 3083 define DX85 3084 define DX86 3085 define DX87 3086 define DX88 3087 define DX89 3088 define DX90 3089 define DX91 3090 define DX92 3091 define DX93 3092 define DX94 3093 define DX95 3094 define DX96 3095 define DX97 3096 define DX98 3097 define DX99 3098 define DX100 3099 define DX101 3100 define DX102 3101 define DX103 3102 define DX104 3103 define DX105 3104 define DX106 3105 define DX107 3106 define DX108 3107 define DX109 3108 define DX110 3109 define DX111 3110 define DX112 3111 define DXHATUP 3112 define DXHATUPRIGHT 3113 define DXHATRIGHT 3114 define DXHATDOWNRIGHT 3115 define DXHATDOWN 3116 define DXHATDOWNLEFT 3117 define DXHATLEFT 3118 define DXHATUPLEFT 3119 define DX_X_AXIS 1 define DX_Y_AXIS 2 define DX_Z_AXIS 3 define DX_XROT_AXIS 4 define DX_YROT_AXIS 5 define DX_ZROT_AXIS 6 define DX_THROTTLE_AXIS 7 define DX_SLIDER_AXIS 8 // ------------------------------------------- virtual mouse interface -------------------------------------- define MOUSE_LEFT 4000 define MOUSE_RIGHT 4001 define MOUSE_CENTER 4002 define MOUSE_BTN4 4003 define MOUSE_BTN5 4004 define MOUSE_X_AXIS 9 define MOUSE_Y_AXIS 10 define MOUSE_Z_AXIS 11 // ------------------------------------- Warthog Joystick interface ------------------------------------- define TG1 0 define S2 1 define S3 2 define S4 3 define S1 4 define TG2 5 define H2U 6 define H2R 7 define H2D 8 define H2L 9 define H3U 10 define H3R 11 define H3D 12 define H3L 13 define H4U 14 define H4R 15 define H4D 16 define H4L 17 define H4P 18 define H1U 29 // 4 virtual keys generated by the joystick HAT define H1R 30 define H1D 31 define H1L 32 define JOYX IN_POSITION_AXIS_X define JOYY IN_POSITION_AXIS_Y define POV IN_POSITION_HAT // ----------------------------------- Warthog Throttle interface -------------------------------- define SC 0 define MSP 1 define MSU 2 define MSR 3 define MSD 4 define MSL 5 define SPDF 6 define SPDB 7 define BSF 8 define BSB 9 define CHF 10 define CHB 11 define PSF 12 define PSB 13 define LTB 14 define EFLNORM 15 define EFRNORM 16 define EOLMOTOR 17 define EORMOTOR 18 define APUON 19 define LDGH 20 define FLAPU 21 define FLAPD 22 define EACON 23 define RDRNRM 24 define APENG 25 define APPAT 26 define APALT 27 define IDLERON 28 define IDLELON 29 define EOLIGN 30 define EORIGN 31 define CSU 32 // 4 virtual buttons generated by the HAT define CSR 33 define CSD 34 define CSL 35 define EFLOVER 36 // 8 virtual buttons for 2way switches define EFROVER 37 define APUOFF 38 define EACOFF 39 define RDRDIS 40 define APDIS 41 define IDLEROFF 42 define IDLELOFF 43 define EOLNORM 44 // 8 virtual buttons generated by the 3 way switches define EORNORM 45 define FLAPM 46 define SPDM 47 define BSM 48 define CHM 49 define PSM 50 define APAH 51 define SCX IN_POSITION_AXIS_X define SCY IN_POSITION_AXIS_Y define THR_RIGHT IN_POSITION_AXIS_Z define THR_LEFT IN_POSITION_AXIS_RZ define THR_FC IN_POSITION_AXIS_SLIDER1 define CS IN_POSITION_HAT // ----------------------------------- Hoats Cougar interface -------------------------------- //define TG1 0 // joystick buttons, the same names like warthog joystick //define S2 1 //define S3 2 //define S4 3 //define S1 4 //define TG2 5 //define H2U 6 //define H2R 7 //define H2D 8 //define H2L 9 //define H3U 10 //define H3R 11 //define H3D 12 //define H3L 13 //define H4U 14 //define H4R 15 //define H4D 16 //define H4L 17 //define H4P 18 //define H1U 29 // 4 virtual keys generated by the joystick HAT //define H1R 30 //define H1D 31 //define H1L 32 //define JOYX IN_POSITION_AXIS_X //define JOYY IN_POSITION_AXIS_Y //define POV IN_POSITION_HAT define T1 18 // throttle buttons define T2 19 define T3 20 define T4 21 define T5 22 define T6 23 define T7 24 define T8 25 define T9 26 define T10 27 define DFM 28 // 2 virtual buttons //define SPDM 47 define THROTTLE IN_POSITION_AXIS_Z define RDR_X IN_POSITION_AXIS_RX define RDR_Y IN_POSITION_AXIS_RY define RUDDER IN_POSITION_AXIS_RZ define MAN_RNG IN_POSITION_AXIS_SLIDER1 define ANT_ELEV IN_POSITION_AXIS_THROTTLE // ----------------------------------- T16000 interface -------------------------------- define TS1 0 define TS2 1 define TS3 2 define TS4 3 define B5 4 define B6 5 define B7 6 define B8 7 define B9 8 define B10 9 define B11 10 define B12 11 define B13 12 define B14 13 define B15 14 define B16 15 //define H1U 29 // 4 virtual keys generated by the joystick HAT //define H1R 30 //define H1D 31 //define H1L 32 //define JOYX IN_POSITION_AXIS_X //define JOYY IN_POSITION_AXIS_Y //define RUDDER IN_POSITION_AXIS_RZ define THR IN_POSITION_AXIS_SLIDER1 define HAT IN_POSITION_HAT // ----------------------------------- MFD interface -------------------------------- define OSB01 0 define OSB02 1 define OSB03 2 define OSB04 3 define OSB05 4 define OSB06 5 define OSB07 6 define OSB08 7 define OSB09 8 define OSB10 9 define OSB11 10 define OSB12 11 define OSB13 12 define OSB14 13 define OSB15 14 define OSB16 15 define OSB17 16 define OSB18 17 define OSB19 18 define OSB20 19 define SYMU 20 define SYMD 21 define CONU 22 define COND 23 define BRTU 24 define BRTD 25 define GAINU 26 define GAIND 27 // ------------------------------------------- Other constants ------------------------------------------ define AMAX 32767 // axis values are between -AMAX and AMAX define AMAXF 32768. define POVU 0 // POV control possible values (clockwise angles in degrees) define POVUR 45 define POVR 90 define POVDR 135 define POVD 180 define POVDL 225 define POVL 270 define POVUL 315 define POVCENTER -1 define AXIS_NORMAL 1 define AXIS_REVERSED -1 define MAP_ABSOLUTE 0 define MAP_RELATIVE 1