Jafar Qutteineh / Mbed 2 deprecated RC_Simulator

Dependencies:   mbed

Committer:
j3sq
Date:
Sat Jul 02 17:27:05 2011 +0000
Revision:
0:3dbb22992c94
Revision 0.0 (This is just a demonstration)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3sq 0:3dbb22992c94 1 /* asciihid.h */
j3sq 0:3dbb22992c94 2 /* ASCII to HID Keyboard lookup table */
j3sq 0:3dbb22992c94 3 /* Copyright (c) Phil Wright 2008 */
j3sq 0:3dbb22992c94 4
j3sq 0:3dbb22992c94 5 #ifndef HIDTABLE_H
j3sq 0:3dbb22992c94 6 #define HIDTABLE_H
j3sq 0:3dbb22992c94 7
j3sq 0:3dbb22992c94 8 /* Default is UK keyboard layout */
j3sq 0:3dbb22992c94 9 /* #define US_KEYBOARD */
j3sq 0:3dbb22992c94 10
j3sq 0:3dbb22992c94 11 /* Modifiers */
j3sq 0:3dbb22992c94 12 #define SHIFT (1<<1)
j3sq 0:3dbb22992c94 13
j3sq 0:3dbb22992c94 14 typedef struct {
j3sq 0:3dbb22992c94 15 unsigned char usage;
j3sq 0:3dbb22992c94 16 unsigned char modifier;
j3sq 0:3dbb22992c94 17 } KEYMAP;
j3sq 0:3dbb22992c94 18
j3sq 0:3dbb22992c94 19 #ifdef US_KEYBOARD
j3sq 0:3dbb22992c94 20 /* US keyboard (as HID standard) */
j3sq 0:3dbb22992c94 21 #define KEYMAP_SIZE (128)
j3sq 0:3dbb22992c94 22 const KEYMAP keymap[KEYMAP_SIZE] = {
j3sq 0:3dbb22992c94 23 {0, 0}, /* NUL */
j3sq 0:3dbb22992c94 24 {0, 0}, /* SOH */
j3sq 0:3dbb22992c94 25 {0, 0}, /* STX */
j3sq 0:3dbb22992c94 26 {0, 0}, /* ETX */
j3sq 0:3dbb22992c94 27 {0, 0}, /* EOT */
j3sq 0:3dbb22992c94 28 {0, 0}, /* ENQ */
j3sq 0:3dbb22992c94 29 {0, 0}, /* ACK */
j3sq 0:3dbb22992c94 30 {0, 0}, /* BEL */
j3sq 0:3dbb22992c94 31 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
j3sq 0:3dbb22992c94 32 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
j3sq 0:3dbb22992c94 33 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
j3sq 0:3dbb22992c94 34 {0, 0}, /* VT */
j3sq 0:3dbb22992c94 35 {0, 0}, /* FF */
j3sq 0:3dbb22992c94 36 {0, 0}, /* CR */
j3sq 0:3dbb22992c94 37 {0, 0}, /* SO */
j3sq 0:3dbb22992c94 38 {0, 0}, /* SI */
j3sq 0:3dbb22992c94 39 {0, 0}, /* DEL */
j3sq 0:3dbb22992c94 40 {0, 0}, /* DC1 */
j3sq 0:3dbb22992c94 41 {0, 0}, /* DC2 */
j3sq 0:3dbb22992c94 42 {0, 0}, /* DC3 */
j3sq 0:3dbb22992c94 43 {0, 0}, /* DC4 */
j3sq 0:3dbb22992c94 44 {0, 0}, /* NAK */
j3sq 0:3dbb22992c94 45 {0, 0}, /* SYN */
j3sq 0:3dbb22992c94 46 {0, 0}, /* ETB */
j3sq 0:3dbb22992c94 47 {0, 0}, /* CAN */
j3sq 0:3dbb22992c94 48 {0, 0}, /* EM */
j3sq 0:3dbb22992c94 49 {0, 0}, /* SUB */
j3sq 0:3dbb22992c94 50 {0, 0}, /* ESC */
j3sq 0:3dbb22992c94 51 {0, 0}, /* FS */
j3sq 0:3dbb22992c94 52 {0, 0}, /* GS */
j3sq 0:3dbb22992c94 53 {0, 0}, /* RS */
j3sq 0:3dbb22992c94 54 {0, 0}, /* US */
j3sq 0:3dbb22992c94 55 {0x2c, 0}, /* */
j3sq 0:3dbb22992c94 56 {0x1e, SHIFT}, /* ! */
j3sq 0:3dbb22992c94 57 {0x34, SHIFT}, /* " */
j3sq 0:3dbb22992c94 58 {0x20, SHIFT}, /* # */
j3sq 0:3dbb22992c94 59 {0x21, SHIFT}, /* $ */
j3sq 0:3dbb22992c94 60 {0x22, SHIFT}, /* % */
j3sq 0:3dbb22992c94 61 {0x24, SHIFT}, /* & */
j3sq 0:3dbb22992c94 62 {0x34, 0}, /* ' */
j3sq 0:3dbb22992c94 63 {0x26, SHIFT}, /* ( */
j3sq 0:3dbb22992c94 64 {0x27, SHIFT}, /* ) */
j3sq 0:3dbb22992c94 65 {0x25, SHIFT}, /* * */
j3sq 0:3dbb22992c94 66 {0x2e, SHIFT}, /* + */
j3sq 0:3dbb22992c94 67 {0x36, 0}, /* , */
j3sq 0:3dbb22992c94 68 {0x2d, 0}, /* - */
j3sq 0:3dbb22992c94 69 {0x37, 0}, /* . */
j3sq 0:3dbb22992c94 70 {0x38, 0}, /* / */
j3sq 0:3dbb22992c94 71 {0x27, 0}, /* 0 */
j3sq 0:3dbb22992c94 72 {0x1e, 0}, /* 1 */
j3sq 0:3dbb22992c94 73 {0x1f, 0}, /* 2 */
j3sq 0:3dbb22992c94 74 {0x20, 0}, /* 3 */
j3sq 0:3dbb22992c94 75 {0x21, 0}, /* 4 */
j3sq 0:3dbb22992c94 76 {0x22, 0}, /* 5 */
j3sq 0:3dbb22992c94 77 {0x23, 0}, /* 6 */
j3sq 0:3dbb22992c94 78 {0x24, 0}, /* 7 */
j3sq 0:3dbb22992c94 79 {0x25, 0}, /* 8 */
j3sq 0:3dbb22992c94 80 {0x26, 0}, /* 9 */
j3sq 0:3dbb22992c94 81 {0x33, SHIFT}, /* : */
j3sq 0:3dbb22992c94 82 {0x33, 0}, /* ; */
j3sq 0:3dbb22992c94 83 {0x36, SHIFT}, /* < */
j3sq 0:3dbb22992c94 84 {0x2e, 0}, /* = */
j3sq 0:3dbb22992c94 85 {0x37, SHIFT}, /* > */
j3sq 0:3dbb22992c94 86 {0x38, SHIFT}, /* ? */
j3sq 0:3dbb22992c94 87 {0x1f, SHIFT}, /* @ */
j3sq 0:3dbb22992c94 88 {0x04, SHIFT}, /* A */
j3sq 0:3dbb22992c94 89 {0x05, SHIFT}, /* B */
j3sq 0:3dbb22992c94 90 {0x06, SHIFT}, /* C */
j3sq 0:3dbb22992c94 91 {0x07, SHIFT}, /* D */
j3sq 0:3dbb22992c94 92 {0x08, SHIFT}, /* E */
j3sq 0:3dbb22992c94 93 {0x09, SHIFT}, /* F */
j3sq 0:3dbb22992c94 94 {0x0a, SHIFT}, /* G */
j3sq 0:3dbb22992c94 95 {0x0b, SHIFT}, /* H */
j3sq 0:3dbb22992c94 96 {0x0c, SHIFT}, /* I */
j3sq 0:3dbb22992c94 97 {0x0d, SHIFT}, /* J */
j3sq 0:3dbb22992c94 98 {0x0e, SHIFT}, /* K */
j3sq 0:3dbb22992c94 99 {0x0f, SHIFT}, /* L */
j3sq 0:3dbb22992c94 100 {0x10, SHIFT}, /* M */
j3sq 0:3dbb22992c94 101 {0x11, SHIFT}, /* N */
j3sq 0:3dbb22992c94 102 {0x12, SHIFT}, /* O */
j3sq 0:3dbb22992c94 103 {0x13, SHIFT}, /* P */
j3sq 0:3dbb22992c94 104 {0x14, SHIFT}, /* Q */
j3sq 0:3dbb22992c94 105 {0x15, SHIFT}, /* R */
j3sq 0:3dbb22992c94 106 {0x16, SHIFT}, /* S */
j3sq 0:3dbb22992c94 107 {0x17, SHIFT}, /* T */
j3sq 0:3dbb22992c94 108 {0x18, SHIFT}, /* U */
j3sq 0:3dbb22992c94 109 {0x19, SHIFT}, /* V */
j3sq 0:3dbb22992c94 110 {0x1a, SHIFT}, /* W */
j3sq 0:3dbb22992c94 111 {0x1b, SHIFT}, /* X */
j3sq 0:3dbb22992c94 112 {0x1c, SHIFT}, /* Y */
j3sq 0:3dbb22992c94 113 {0x1d, SHIFT}, /* Z */
j3sq 0:3dbb22992c94 114 {0x2f, 0}, /* [ */
j3sq 0:3dbb22992c94 115 {0x31, 0}, /* \ */
j3sq 0:3dbb22992c94 116 {0x30, 0}, /* ] */
j3sq 0:3dbb22992c94 117 {0x23, SHIFT}, /* ^ */
j3sq 0:3dbb22992c94 118 {0x2d, SHIFT}, /* _ */
j3sq 0:3dbb22992c94 119 {0x35, 0}, /* ` */
j3sq 0:3dbb22992c94 120 {0x04, 0}, /* a */
j3sq 0:3dbb22992c94 121 {0x05, 0}, /* b */
j3sq 0:3dbb22992c94 122 {0x06, 0}, /* c */
j3sq 0:3dbb22992c94 123 {0x07, 0}, /* d */
j3sq 0:3dbb22992c94 124 {0x08, 0}, /* e */
j3sq 0:3dbb22992c94 125 {0x09, 0}, /* f */
j3sq 0:3dbb22992c94 126 {0x0a, 0}, /* g */
j3sq 0:3dbb22992c94 127 {0x0b, 0}, /* h */
j3sq 0:3dbb22992c94 128 {0x0c, 0}, /* i */
j3sq 0:3dbb22992c94 129 {0x0d, 0}, /* j */
j3sq 0:3dbb22992c94 130 {0x0e, 0}, /* k */
j3sq 0:3dbb22992c94 131 {0x0f, 0}, /* l */
j3sq 0:3dbb22992c94 132 {0x10, 0}, /* m */
j3sq 0:3dbb22992c94 133 {0x11, 0}, /* n */
j3sq 0:3dbb22992c94 134 {0x12, 0}, /* o */
j3sq 0:3dbb22992c94 135 {0x13, 0}, /* p */
j3sq 0:3dbb22992c94 136 {0x14, 0}, /* q */
j3sq 0:3dbb22992c94 137 {0x15, 0}, /* r */
j3sq 0:3dbb22992c94 138 {0x16, 0}, /* s */
j3sq 0:3dbb22992c94 139 {0x17, 0}, /* t */
j3sq 0:3dbb22992c94 140 {0x18, 0}, /* u */
j3sq 0:3dbb22992c94 141 {0x19, 0}, /* v */
j3sq 0:3dbb22992c94 142 {0x1a, 0}, /* w */
j3sq 0:3dbb22992c94 143 {0x1b, 0}, /* x */
j3sq 0:3dbb22992c94 144 {0x1c, 0}, /* y */
j3sq 0:3dbb22992c94 145 {0x1d, 0}, /* z */
j3sq 0:3dbb22992c94 146 {0x2f, SHIFT}, /* { */
j3sq 0:3dbb22992c94 147 {0x31, SHIFT}, /* | */
j3sq 0:3dbb22992c94 148 {0x30, SHIFT}, /* } */
j3sq 0:3dbb22992c94 149 {0x35, SHIFT}, /* ~ */
j3sq 0:3dbb22992c94 150 {0,0}, /* DEL */
j3sq 0:3dbb22992c94 151 };
j3sq 0:3dbb22992c94 152
j3sq 0:3dbb22992c94 153 #else
j3sq 0:3dbb22992c94 154 /* UK keyboard */
j3sq 0:3dbb22992c94 155 #define KEYMAP_SIZE (128)
j3sq 0:3dbb22992c94 156 const KEYMAP keymap[KEYMAP_SIZE] = {
j3sq 0:3dbb22992c94 157 {0, 0}, /* NUL */
j3sq 0:3dbb22992c94 158 {0, 0}, /* SOH */
j3sq 0:3dbb22992c94 159 {0, 0}, /* STX */
j3sq 0:3dbb22992c94 160 {0, 0}, /* ETX */
j3sq 0:3dbb22992c94 161 {0, 0}, /* EOT */
j3sq 0:3dbb22992c94 162 {0, 0}, /* ENQ */
j3sq 0:3dbb22992c94 163 {0, 0}, /* ACK */
j3sq 0:3dbb22992c94 164 {0, 0}, /* BEL */
j3sq 0:3dbb22992c94 165 {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
j3sq 0:3dbb22992c94 166 {0x2b, 0}, /* TAB */ /* Keyboard Tab */
j3sq 0:3dbb22992c94 167 {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
j3sq 0:3dbb22992c94 168 {0, 0}, /* VT */
j3sq 0:3dbb22992c94 169 {0, 0}, /* FF */
j3sq 0:3dbb22992c94 170 {0, 0}, /* CR */
j3sq 0:3dbb22992c94 171 {0, 0}, /* SO */
j3sq 0:3dbb22992c94 172 {0, 0}, /* SI */
j3sq 0:3dbb22992c94 173 {0, 0}, /* DEL */
j3sq 0:3dbb22992c94 174 {0, 0}, /* DC1 */
j3sq 0:3dbb22992c94 175 {0, 0}, /* DC2 */
j3sq 0:3dbb22992c94 176 {0, 0}, /* DC3 */
j3sq 0:3dbb22992c94 177 {0, 0}, /* DC4 */
j3sq 0:3dbb22992c94 178 {0, 0}, /* NAK */
j3sq 0:3dbb22992c94 179 {0, 0}, /* SYN */
j3sq 0:3dbb22992c94 180 {0, 0}, /* ETB */
j3sq 0:3dbb22992c94 181 {0, 0}, /* CAN */
j3sq 0:3dbb22992c94 182 {0, 0}, /* EM */
j3sq 0:3dbb22992c94 183 {0, 0}, /* SUB */
j3sq 0:3dbb22992c94 184 {0, 0}, /* ESC */
j3sq 0:3dbb22992c94 185 {0, 0}, /* FS */
j3sq 0:3dbb22992c94 186 {0, 0}, /* GS */
j3sq 0:3dbb22992c94 187 {0, 0}, /* RS */
j3sq 0:3dbb22992c94 188 {0, 0}, /* US */
j3sq 0:3dbb22992c94 189 {0x2c, 0}, /* */
j3sq 0:3dbb22992c94 190 {0x1e, SHIFT}, /* ! */
j3sq 0:3dbb22992c94 191 {0x1f, SHIFT}, /* " */
j3sq 0:3dbb22992c94 192 {0x32, 0}, /* # */
j3sq 0:3dbb22992c94 193 {0x21, SHIFT}, /* $ */
j3sq 0:3dbb22992c94 194 {0x22, SHIFT}, /* % */
j3sq 0:3dbb22992c94 195 {0x24, SHIFT}, /* & */
j3sq 0:3dbb22992c94 196 {0x34, 0}, /* ' */
j3sq 0:3dbb22992c94 197 {0x26, SHIFT}, /* ( */
j3sq 0:3dbb22992c94 198 {0x27, SHIFT}, /* ) */
j3sq 0:3dbb22992c94 199 {0x25, SHIFT}, /* * */
j3sq 0:3dbb22992c94 200 {0x2e, SHIFT}, /* + */
j3sq 0:3dbb22992c94 201 {0x36, 0}, /* , */
j3sq 0:3dbb22992c94 202 {0x2d, 0}, /* - */
j3sq 0:3dbb22992c94 203 {0x37, 0}, /* . */
j3sq 0:3dbb22992c94 204 {0x38, 0}, /* / */
j3sq 0:3dbb22992c94 205 {0x27, 0}, /* 0 */
j3sq 0:3dbb22992c94 206 {0x1e, 0}, /* 1 */
j3sq 0:3dbb22992c94 207 {0x1f, 0}, /* 2 */
j3sq 0:3dbb22992c94 208 {0x20, 0}, /* 3 */
j3sq 0:3dbb22992c94 209 {0x21, 0}, /* 4 */
j3sq 0:3dbb22992c94 210 {0x22, 0}, /* 5 */
j3sq 0:3dbb22992c94 211 {0x23, 0}, /* 6 */
j3sq 0:3dbb22992c94 212 {0x24, 0}, /* 7 */
j3sq 0:3dbb22992c94 213 {0x25, 0}, /* 8 */
j3sq 0:3dbb22992c94 214 {0x26, 0}, /* 9 */
j3sq 0:3dbb22992c94 215 {0x33, SHIFT}, /* : */
j3sq 0:3dbb22992c94 216 {0x33, 0}, /* ; */
j3sq 0:3dbb22992c94 217 {0x36, SHIFT}, /* < */
j3sq 0:3dbb22992c94 218 {0x2e, 0}, /* = */
j3sq 0:3dbb22992c94 219 {0x37, SHIFT}, /* > */
j3sq 0:3dbb22992c94 220 {0x38, SHIFT}, /* ? */
j3sq 0:3dbb22992c94 221 {0x34, SHIFT}, /* @ */
j3sq 0:3dbb22992c94 222 {0x04, SHIFT}, /* A */
j3sq 0:3dbb22992c94 223 {0x05, SHIFT}, /* B */
j3sq 0:3dbb22992c94 224 {0x06, SHIFT}, /* C */
j3sq 0:3dbb22992c94 225 {0x07, SHIFT}, /* D */
j3sq 0:3dbb22992c94 226 {0x08, SHIFT}, /* E */
j3sq 0:3dbb22992c94 227 {0x09, SHIFT}, /* F */
j3sq 0:3dbb22992c94 228 {0x0a, SHIFT}, /* G */
j3sq 0:3dbb22992c94 229 {0x0b, SHIFT}, /* H */
j3sq 0:3dbb22992c94 230 {0x0c, SHIFT}, /* I */
j3sq 0:3dbb22992c94 231 {0x0d, SHIFT}, /* J */
j3sq 0:3dbb22992c94 232 {0x0e, SHIFT}, /* K */
j3sq 0:3dbb22992c94 233 {0x0f, SHIFT}, /* L */
j3sq 0:3dbb22992c94 234 {0x10, SHIFT}, /* M */
j3sq 0:3dbb22992c94 235 {0x11, SHIFT}, /* N */
j3sq 0:3dbb22992c94 236 {0x12, SHIFT}, /* O */
j3sq 0:3dbb22992c94 237 {0x13, SHIFT}, /* P */
j3sq 0:3dbb22992c94 238 {0x14, SHIFT}, /* Q */
j3sq 0:3dbb22992c94 239 {0x15, SHIFT}, /* R */
j3sq 0:3dbb22992c94 240 {0x16, SHIFT}, /* S */
j3sq 0:3dbb22992c94 241 {0x17, SHIFT}, /* T */
j3sq 0:3dbb22992c94 242 {0x18, SHIFT}, /* U */
j3sq 0:3dbb22992c94 243 {0x19, SHIFT}, /* V */
j3sq 0:3dbb22992c94 244 {0x1a, SHIFT}, /* W */
j3sq 0:3dbb22992c94 245 {0x1b, SHIFT}, /* X */
j3sq 0:3dbb22992c94 246 {0x1c, SHIFT}, /* Y */
j3sq 0:3dbb22992c94 247 {0x1d, SHIFT}, /* Z */
j3sq 0:3dbb22992c94 248 {0x2f, 0}, /* [ */
j3sq 0:3dbb22992c94 249 {0x64, 0}, /* \ */
j3sq 0:3dbb22992c94 250 {0x30, 0}, /* ] */
j3sq 0:3dbb22992c94 251 {0x23, SHIFT}, /* ^ */
j3sq 0:3dbb22992c94 252 {0x2d, SHIFT}, /* _ */
j3sq 0:3dbb22992c94 253 {0x35, 0}, /* ` */
j3sq 0:3dbb22992c94 254 {0x04, 0}, /* a */
j3sq 0:3dbb22992c94 255 {0x05, 0}, /* b */
j3sq 0:3dbb22992c94 256 {0x06, 0}, /* c */
j3sq 0:3dbb22992c94 257 {0x07, 0}, /* d */
j3sq 0:3dbb22992c94 258 {0x08, 0}, /* e */
j3sq 0:3dbb22992c94 259 {0x09, 0}, /* f */
j3sq 0:3dbb22992c94 260 {0x0a, 0}, /* g */
j3sq 0:3dbb22992c94 261 {0x0b, 0}, /* h */
j3sq 0:3dbb22992c94 262 {0x0c, 0}, /* i */
j3sq 0:3dbb22992c94 263 {0x0d, 0}, /* j */
j3sq 0:3dbb22992c94 264 {0x0e, 0}, /* k */
j3sq 0:3dbb22992c94 265 {0x0f, 0}, /* l */
j3sq 0:3dbb22992c94 266 {0x10, 0}, /* m */
j3sq 0:3dbb22992c94 267 {0x11, 0}, /* n */
j3sq 0:3dbb22992c94 268 {0x12, 0}, /* o */
j3sq 0:3dbb22992c94 269 {0x13, 0}, /* p */
j3sq 0:3dbb22992c94 270 {0x14, 0}, /* q */
j3sq 0:3dbb22992c94 271 {0x15, 0}, /* r */
j3sq 0:3dbb22992c94 272 {0x16, 0}, /* s */
j3sq 0:3dbb22992c94 273 {0x17, 0}, /* t */
j3sq 0:3dbb22992c94 274 {0x18, 0}, /* u */
j3sq 0:3dbb22992c94 275 {0x19, 0}, /* v */
j3sq 0:3dbb22992c94 276 {0x1a, 0}, /* w */
j3sq 0:3dbb22992c94 277 {0x1b, 0}, /* x */
j3sq 0:3dbb22992c94 278 {0x1c, 0}, /* y */
j3sq 0:3dbb22992c94 279 {0x1d, 0}, /* z */
j3sq 0:3dbb22992c94 280 {0x2f, SHIFT}, /* { */
j3sq 0:3dbb22992c94 281 {0x64, SHIFT}, /* | */
j3sq 0:3dbb22992c94 282 {0x30, SHIFT}, /* } */
j3sq 0:3dbb22992c94 283 {0x32, SHIFT}, /* ~ */
j3sq 0:3dbb22992c94 284 {0,0}, /* DEL */
j3sq 0:3dbb22992c94 285 };
j3sq 0:3dbb22992c94 286 #endif
j3sq 0:3dbb22992c94 287
j3sq 0:3dbb22992c94 288
j3sq 0:3dbb22992c94 289 #endif