Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
asciihid.h
00001 /* asciihid.h */ 00002 /* ASCII to HID Keyboard lookup table */ 00003 /* Copyright (c) Phil Wright 2008 */ 00004 00005 #ifndef HIDTABLE_H 00006 #define HIDTABLE_H 00007 00008 /* Default is UK keyboard layout */ 00009 /* #define US_KEYBOARD */ 00010 00011 /* Modifiers */ 00012 #define SHIFT (1<<1) 00013 00014 typedef struct { 00015 unsigned char usage; 00016 unsigned char modifier; 00017 } KEYMAP; 00018 00019 #ifdef US_KEYBOARD 00020 /* US keyboard (as HID standard) */ 00021 #define KEYMAP_SIZE (128) 00022 const KEYMAP keymap[KEYMAP_SIZE] = { 00023 {0, 0}, /* NUL */ 00024 {0, 0}, /* SOH */ 00025 {0, 0}, /* STX */ 00026 {0, 0}, /* ETX */ 00027 {0, 0}, /* EOT */ 00028 {0, 0}, /* ENQ */ 00029 {0, 0}, /* ACK */ 00030 {0, 0}, /* BEL */ 00031 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */ 00032 {0x2b, 0}, /* TAB */ /* Keyboard Tab */ 00033 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */ 00034 {0, 0}, /* VT */ 00035 {0, 0}, /* FF */ 00036 {0, 0}, /* CR */ 00037 {0, 0}, /* SO */ 00038 {0, 0}, /* SI */ 00039 {0, 0}, /* DEL */ 00040 {0, 0}, /* DC1 */ 00041 {0, 0}, /* DC2 */ 00042 {0, 0}, /* DC3 */ 00043 {0, 0}, /* DC4 */ 00044 {0, 0}, /* NAK */ 00045 {0, 0}, /* SYN */ 00046 {0, 0}, /* ETB */ 00047 {0, 0}, /* CAN */ 00048 {0, 0}, /* EM */ 00049 {0, 0}, /* SUB */ 00050 {0, 0}, /* ESC */ 00051 {0, 0}, /* FS */ 00052 {0, 0}, /* GS */ 00053 {0, 0}, /* RS */ 00054 {0, 0}, /* US */ 00055 {0x2c, 0}, /* */ 00056 {0x1e, SHIFT}, /* ! */ 00057 {0x34, SHIFT}, /* " */ 00058 {0x20, SHIFT}, /* # */ 00059 {0x21, SHIFT}, /* $ */ 00060 {0x22, SHIFT}, /* % */ 00061 {0x24, SHIFT}, /* & */ 00062 {0x34, 0}, /* ' */ 00063 {0x26, SHIFT}, /* ( */ 00064 {0x27, SHIFT}, /* ) */ 00065 {0x25, SHIFT}, /* * */ 00066 {0x2e, SHIFT}, /* + */ 00067 {0x36, 0}, /* , */ 00068 {0x2d, 0}, /* - */ 00069 {0x37, 0}, /* . */ 00070 {0x38, 0}, /* / */ 00071 {0x27, 0}, /* 0 */ 00072 {0x1e, 0}, /* 1 */ 00073 {0x1f, 0}, /* 2 */ 00074 {0x20, 0}, /* 3 */ 00075 {0x21, 0}, /* 4 */ 00076 {0x22, 0}, /* 5 */ 00077 {0x23, 0}, /* 6 */ 00078 {0x24, 0}, /* 7 */ 00079 {0x25, 0}, /* 8 */ 00080 {0x26, 0}, /* 9 */ 00081 {0x33, SHIFT}, /* : */ 00082 {0x33, 0}, /* ; */ 00083 {0x36, SHIFT}, /* < */ 00084 {0x2e, 0}, /* = */ 00085 {0x37, SHIFT}, /* > */ 00086 {0x38, SHIFT}, /* ? */ 00087 {0x1f, SHIFT}, /* @ */ 00088 {0x04, SHIFT}, /* A */ 00089 {0x05, SHIFT}, /* B */ 00090 {0x06, SHIFT}, /* C */ 00091 {0x07, SHIFT}, /* D */ 00092 {0x08, SHIFT}, /* E */ 00093 {0x09, SHIFT}, /* F */ 00094 {0x0a, SHIFT}, /* G */ 00095 {0x0b, SHIFT}, /* H */ 00096 {0x0c, SHIFT}, /* I */ 00097 {0x0d, SHIFT}, /* J */ 00098 {0x0e, SHIFT}, /* K */ 00099 {0x0f, SHIFT}, /* L */ 00100 {0x10, SHIFT}, /* M */ 00101 {0x11, SHIFT}, /* N */ 00102 {0x12, SHIFT}, /* O */ 00103 {0x13, SHIFT}, /* P */ 00104 {0x14, SHIFT}, /* Q */ 00105 {0x15, SHIFT}, /* R */ 00106 {0x16, SHIFT}, /* S */ 00107 {0x17, SHIFT}, /* T */ 00108 {0x18, SHIFT}, /* U */ 00109 {0x19, SHIFT}, /* V */ 00110 {0x1a, SHIFT}, /* W */ 00111 {0x1b, SHIFT}, /* X */ 00112 {0x1c, SHIFT}, /* Y */ 00113 {0x1d, SHIFT}, /* Z */ 00114 {0x2f, 0}, /* [ */ 00115 {0x31, 0}, /* \ */ 00116 {0x30, 0}, /* ] */ 00117 {0x23, SHIFT}, /* ^ */ 00118 {0x2d, SHIFT}, /* _ */ 00119 {0x35, 0}, /* ` */ 00120 {0x04, 0}, /* a */ 00121 {0x05, 0}, /* b */ 00122 {0x06, 0}, /* c */ 00123 {0x07, 0}, /* d */ 00124 {0x08, 0}, /* e */ 00125 {0x09, 0}, /* f */ 00126 {0x0a, 0}, /* g */ 00127 {0x0b, 0}, /* h */ 00128 {0x0c, 0}, /* i */ 00129 {0x0d, 0}, /* j */ 00130 {0x0e, 0}, /* k */ 00131 {0x0f, 0}, /* l */ 00132 {0x10, 0}, /* m */ 00133 {0x11, 0}, /* n */ 00134 {0x12, 0}, /* o */ 00135 {0x13, 0}, /* p */ 00136 {0x14, 0}, /* q */ 00137 {0x15, 0}, /* r */ 00138 {0x16, 0}, /* s */ 00139 {0x17, 0}, /* t */ 00140 {0x18, 0}, /* u */ 00141 {0x19, 0}, /* v */ 00142 {0x1a, 0}, /* w */ 00143 {0x1b, 0}, /* x */ 00144 {0x1c, 0}, /* y */ 00145 {0x1d, 0}, /* z */ 00146 {0x2f, SHIFT}, /* { */ 00147 {0x31, SHIFT}, /* | */ 00148 {0x30, SHIFT}, /* } */ 00149 {0x35, SHIFT}, /* ~ */ 00150 {0,0}, /* DEL */ 00151 }; 00152 00153 #else 00154 /* UK keyboard */ 00155 #define KEYMAP_SIZE (128) 00156 const KEYMAP keymap[KEYMAP_SIZE] = { 00157 {0, 0}, /* NUL */ 00158 {0, 0}, /* SOH */ 00159 {0, 0}, /* STX */ 00160 {0, 0}, /* ETX */ 00161 {0, 0}, /* EOT */ 00162 {0, 0}, /* ENQ */ 00163 {0, 0}, /* ACK */ 00164 {0, 0}, /* BEL */ 00165 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */ 00166 {0x2b, 0}, /* TAB */ /* Keyboard Tab */ 00167 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */ 00168 {0, 0}, /* VT */ 00169 {0, 0}, /* FF */ 00170 {0, 0}, /* CR */ 00171 {0, 0}, /* SO */ 00172 {0, 0}, /* SI */ 00173 {0, 0}, /* DEL */ 00174 {0, 0}, /* DC1 */ 00175 {0, 0}, /* DC2 */ 00176 {0, 0}, /* DC3 */ 00177 {0, 0}, /* DC4 */ 00178 {0, 0}, /* NAK */ 00179 {0, 0}, /* SYN */ 00180 {0, 0}, /* ETB */ 00181 {0, 0}, /* CAN */ 00182 {0, 0}, /* EM */ 00183 {0, 0}, /* SUB */ 00184 {0, 0}, /* ESC */ 00185 {0, 0}, /* FS */ 00186 {0, 0}, /* GS */ 00187 {0, 0}, /* RS */ 00188 {0, 0}, /* US */ 00189 {0x2c, 0}, /* */ 00190 {0x1e, SHIFT}, /* ! */ 00191 {0x1f, SHIFT}, /* " */ 00192 {0x32, 0}, /* # */ 00193 {0x21, SHIFT}, /* $ */ 00194 {0x22, SHIFT}, /* % */ 00195 {0x24, SHIFT}, /* & */ 00196 {0x34, 0}, /* ' */ 00197 {0x26, SHIFT}, /* ( */ 00198 {0x27, SHIFT}, /* ) */ 00199 {0x25, SHIFT}, /* * */ 00200 {0x2e, SHIFT}, /* + */ 00201 {0x36, 0}, /* , */ 00202 {0x2d, 0}, /* - */ 00203 {0x37, 0}, /* . */ 00204 {0x38, 0}, /* / */ 00205 {0x27, 0}, /* 0 */ 00206 {0x1e, 0}, /* 1 */ 00207 {0x1f, 0}, /* 2 */ 00208 {0x20, 0}, /* 3 */ 00209 {0x21, 0}, /* 4 */ 00210 {0x22, 0}, /* 5 */ 00211 {0x23, 0}, /* 6 */ 00212 {0x24, 0}, /* 7 */ 00213 {0x25, 0}, /* 8 */ 00214 {0x26, 0}, /* 9 */ 00215 {0x33, SHIFT}, /* : */ 00216 {0x33, 0}, /* ; */ 00217 {0x36, SHIFT}, /* < */ 00218 {0x2e, 0}, /* = */ 00219 {0x37, SHIFT}, /* > */ 00220 {0x38, SHIFT}, /* ? */ 00221 {0x34, SHIFT}, /* @ */ 00222 {0x04, SHIFT}, /* A */ 00223 {0x05, SHIFT}, /* B */ 00224 {0x06, SHIFT}, /* C */ 00225 {0x07, SHIFT}, /* D */ 00226 {0x08, SHIFT}, /* E */ 00227 {0x09, SHIFT}, /* F */ 00228 {0x0a, SHIFT}, /* G */ 00229 {0x0b, SHIFT}, /* H */ 00230 {0x0c, SHIFT}, /* I */ 00231 {0x0d, SHIFT}, /* J */ 00232 {0x0e, SHIFT}, /* K */ 00233 {0x0f, SHIFT}, /* L */ 00234 {0x10, SHIFT}, /* M */ 00235 {0x11, SHIFT}, /* N */ 00236 {0x12, SHIFT}, /* O */ 00237 {0x13, SHIFT}, /* P */ 00238 {0x14, SHIFT}, /* Q */ 00239 {0x15, SHIFT}, /* R */ 00240 {0x16, SHIFT}, /* S */ 00241 {0x17, SHIFT}, /* T */ 00242 {0x18, SHIFT}, /* U */ 00243 {0x19, SHIFT}, /* V */ 00244 {0x1a, SHIFT}, /* W */ 00245 {0x1b, SHIFT}, /* X */ 00246 {0x1c, SHIFT}, /* Y */ 00247 {0x1d, SHIFT}, /* Z */ 00248 {0x2f, 0}, /* [ */ 00249 {0x64, 0}, /* \ */ 00250 {0x30, 0}, /* ] */ 00251 {0x23, SHIFT}, /* ^ */ 00252 {0x2d, SHIFT}, /* _ */ 00253 {0x35, 0}, /* ` */ 00254 {0x04, 0}, /* a */ 00255 {0x05, 0}, /* b */ 00256 {0x06, 0}, /* c */ 00257 {0x07, 0}, /* d */ 00258 {0x08, 0}, /* e */ 00259 {0x09, 0}, /* f */ 00260 {0x0a, 0}, /* g */ 00261 {0x0b, 0}, /* h */ 00262 {0x0c, 0}, /* i */ 00263 {0x0d, 0}, /* j */ 00264 {0x0e, 0}, /* k */ 00265 {0x0f, 0}, /* l */ 00266 {0x10, 0}, /* m */ 00267 {0x11, 0}, /* n */ 00268 {0x12, 0}, /* o */ 00269 {0x13, 0}, /* p */ 00270 {0x14, 0}, /* q */ 00271 {0x15, 0}, /* r */ 00272 {0x16, 0}, /* s */ 00273 {0x17, 0}, /* t */ 00274 {0x18, 0}, /* u */ 00275 {0x19, 0}, /* v */ 00276 {0x1a, 0}, /* w */ 00277 {0x1b, 0}, /* x */ 00278 {0x1c, 0}, /* y */ 00279 {0x1d, 0}, /* z */ 00280 {0x2f, SHIFT}, /* { */ 00281 {0x64, SHIFT}, /* | */ 00282 {0x30, SHIFT}, /* } */ 00283 {0x32, SHIFT}, /* ~ */ 00284 {0,0}, /* DEL */ 00285 }; 00286 #endif 00287 00288 00289 #endif
Generated on Tue Jul 12 2022 19:23:02 by
