-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkey_decode.c
More file actions
61 lines (59 loc) · 1.68 KB
/
key_decode.c
File metadata and controls
61 lines (59 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
extern uint8_t is_shift = 0;
char scancode_2_char(uint16_t scancode)
{
switch (scancode)
{
case 0x1E: return 'A';
case 0x30: return 'B';
case 0x2E: return 'C';
case 0x20: return 'D';
case 0x12: return 'E';
case 0x21: return 'F';
case 0x22: return 'G';
case 0x23: return 'H';
case 0x17: return 'I';
case 0x24: return 'J';
case 0x25: return 'K';
case 0x26: return 'L';
case 0x32: return 'M';
case 0x31: return 'N';
case 0x18: return 'O';
case 0x19: return 'P';
case 0x10: return 'Q';
case 0x13: return 'R';
case 0x1F: return 'S';
case 0x14: return 'T';
case 0x16: return 'U';
case 0x2F: return 'V';
case 0x11: return 'W';
case 0x2D: return 'X';
case 0x15: return 'Y';
case 0x2C: return 'Z';
case 0x02: return '1';
case 0x03: return '2';
case 0x04: return '3';
case 0x05: return '4';
case 0x06: return '5';
case 0x07: return '6';
case 0x08: return '7';
case 0x09: return '8';
case 0x0A: return '9';
case 0x0B: return '0';
//case 0x1C: return '\n'; // Enter
case 0x39: return ' '; // Space
case 0x0C: return (is_shift ? '_' : '-');
case 0x0D: return '='; // Equals
case 0x1A: return '['; // Left Bracket
case 0x1B: return ']'; // Right Bracket
case 0x27: return (is_shift ? ':' : ';');
case 0x28: return '\''; // Apostrophe
case 0x29: return '`'; // Grave Accent
case 0x2B: return '\\'; // Backslash
case 0x33: return ','; // Comma
case 0x34: return '.'; // Period
case 0x35: return (is_shift ? '?' : '/');
default: return 0;
}
}