1 |
2 |
jamieiles |
// Copyright Jamie Iles, 2017
|
2 |
|
|
//
|
3 |
|
|
// This file is part of s80x86.
|
4 |
|
|
//
|
5 |
|
|
// s80x86 is free software: you can redistribute it and/or modify
|
6 |
|
|
// it under the terms of the GNU General Public License as published by
|
7 |
|
|
// the Free Software Foundation, either version 3 of the License, or
|
8 |
|
|
// (at your option) any later version.
|
9 |
|
|
//
|
10 |
|
|
// s80x86 is distributed in the hope that it will be useful,
|
11 |
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
|
|
// GNU General Public License for more details.
|
14 |
|
|
//
|
15 |
|
|
// You should have received a copy of the GNU General Public License
|
16 |
|
|
// along with s80x86. If not, see <http://www.gnu.org/licenses/>.
|
17 |
|
|
|
18 |
|
|
#pragma once
|
19 |
|
|
|
20 |
|
|
struct keydef {
|
21 |
|
|
unsigned short normal;
|
22 |
|
|
unsigned short shifted;
|
23 |
|
|
unsigned short ctrl;
|
24 |
|
|
unsigned short alt;
|
25 |
|
|
};
|
26 |
|
|
|
27 |
|
|
static const struct keydef keycode_map[] = {
|
28 |
|
|
[0x1c] = {0x1E61, 0x1E41, 0x1E01, 0x1E00},
|
29 |
|
|
[0x32] = {0x3062, 0x3042, 0x3002, 0x3000},
|
30 |
|
|
[0x21] = {0x2E63, 0x2E43, 0x2E03, 0x2E00},
|
31 |
|
|
[0x23] = {0x2064, 0x2044, 0x2004, 0x2000},
|
32 |
|
|
[0x24] = {0x1265, 0x1245, 0x1205, 0x1200},
|
33 |
|
|
[0x2b] = {0x2166, 0x2146, 0x2106, 0x2100},
|
34 |
|
|
[0x34] = {0x2267, 0x2247, 0x2207, 0x2200},
|
35 |
|
|
[0x33] = {0x2368, 0x2348, 0x2308, 0x2300},
|
36 |
|
|
[0x43] = {0x1769, 0x1749, 0x1709, 0x1700},
|
37 |
|
|
[0x3b] = {0x246A, 0x244A, 0x240A, 0x2400},
|
38 |
|
|
[0x42] = {0x256B, 0x254B, 0x250B, 0x2500},
|
39 |
|
|
[0x4b] = {0x266C, 0x264C, 0x260C, 0x2600},
|
40 |
|
|
[0x3a] = {0x326D, 0x324D, 0x320D, 0x3200},
|
41 |
|
|
[0x31] = {0x316E, 0x314E, 0x310E, 0x3100},
|
42 |
|
|
[0x44] = {0x186F, 0x184F, 0x180F, 0x1800},
|
43 |
|
|
[0x4d] = {0x1970, 0x1950, 0x1910, 0x1900},
|
44 |
|
|
[0x15] = {0x1071, 0x1051, 0x1011, 0x1000},
|
45 |
|
|
[0x2d] = {0x1372, 0x1352, 0x1312, 0x1300},
|
46 |
|
|
[0x1b] = {0x1F73, 0x1F53, 0x1F13, 0x1F00},
|
47 |
|
|
[0x2c] = {0x1474, 0x1454, 0x1414, 0x1400},
|
48 |
|
|
[0x3c] = {0x1675, 0x1655, 0x1615, 0x1600},
|
49 |
|
|
[0x2a] = {0x2F76, 0x2F56, 0x2F16, 0x2F00},
|
50 |
|
|
[0x1d] = {0x1177, 0x1157, 0x1117, 0x1100},
|
51 |
|
|
[0x22] = {0x2D78, 0x2D58, 0x2D18, 0x2D00},
|
52 |
|
|
[0x35] = {0x1579, 0x1559, 0x1519, 0x1500},
|
53 |
|
|
[0x1a] = {0x2C7A, 0x2C5A, 0x2C1A, 0x2C00},
|
54 |
|
|
[0x16] = {0x0231, 0x0221, 0x0231, 0x7800},
|
55 |
|
|
[0x1e] = {0x0332, 0x0340, 0x0300, 0x7900},
|
56 |
|
|
[0x26] = {0x0433, 0x0423, 0x0433, 0x7A00},
|
57 |
|
|
[0x25] = {0x0534, 0x0524, 0x0534, 0x7B00},
|
58 |
|
|
[0x2e] = {0x0635, 0x0625, 0x0635, 0x7C00},
|
59 |
|
|
[0x36] = {0x0736, 0x075E, 0x071E, 0x7D00},
|
60 |
|
|
[0x3d] = {0x0837, 0x0826, 0x0837, 0x7E00},
|
61 |
|
|
[0x3e] = {0x0938, 0x092A, 0x0938, 0x7F00},
|
62 |
|
|
[0x46] = {0x0A39, 0x0A28, 0x0a39, 0x8000},
|
63 |
|
|
[0x45] = {0x0B30, 0x0B29, 0x0b30, 0x8100},
|
64 |
|
|
[0x4e] = {0x0C2D, 0x0C5F, 0x0C1F, 0x8200},
|
65 |
|
|
[0x55] = {0x0D3D, 0x0D2B, 0x0d2b, 0x8300},
|
66 |
|
|
[0x54] = {0x1A5B, 0x1A7B, 0x1A1B, 0x1A00},
|
67 |
|
|
[0x5b] = {0x1B5D, 0x1B7D, 0x1B1D, 0x1B00},
|
68 |
|
|
[0x4c] = {0x273B, 0x273A, 0x273b, 0x2700},
|
69 |
|
|
[0x52] = {0x2827, 0x2822, 0x2827, 0x2827},
|
70 |
|
|
[0x0e] = {0x2960, 0x297E, 0x2960, 0x2960},
|
71 |
|
|
[0x5d] = {0x2B5C, 0x2B7C, 0x2B1C, 0x2600},
|
72 |
|
|
[0x41] = {0x332C, 0x333C, 0x332c, 0x332c},
|
73 |
|
|
[0x49] = {0x342E, 0x343E, 0x342e, 0x342e},
|
74 |
|
|
[0x4a] = {0x352F, 0x353F, 0x352f, 0x352f},
|
75 |
|
|
[0x05] = {0x3B00, 0x5400, 0x5E00, 0x6800},
|
76 |
|
|
[0x06] = {0x3C00, 0x5500, 0x5F00, 0x6900},
|
77 |
|
|
[0x04] = {0x3D00, 0x5600, 0x6000, 0x6A00},
|
78 |
|
|
[0x0c] = {0x3E00, 0x5700, 0x6100, 0x6B00},
|
79 |
|
|
[0x03] = {0x3F00, 0x5800, 0x6200, 0x6C00},
|
80 |
|
|
[0x0b] = {0x4000, 0x5900, 0x6300, 0x6D00},
|
81 |
|
|
[0x83] = {0x4100, 0x5A00, 0x6400, 0x6E00},
|
82 |
|
|
[0x0a] = {0x4200, 0x5B00, 0x6500, 0x6F00},
|
83 |
|
|
[0x01] = {0x4300, 0x5C00, 0x6600, 0x7000},
|
84 |
|
|
[0x09] = {0x4400, 0x5D00, 0x6700, 0x7100},
|
85 |
|
|
[0x78] = {0x8500, 0x8700, 0x8900, 0x8B00},
|
86 |
|
|
[0x07] = {0x8600, 0x8800, 0x8A00, 0x8C00},
|
87 |
|
|
[0x66] = {0x0E08, 0x0E08, 0x0E7F, 0x0E00},
|
88 |
|
|
[0x5a] = {0x1C0D, 0x1C0D, 0x1C0A, 0xA600},
|
89 |
|
|
[0x76] = {0x011B, 0x011B, 0x011B, 0x0100},
|
90 |
|
|
[0x29] = {0x3920, 0x3920, 0x3920, 0x3920},
|
91 |
|
|
[0x0d] = {0x0F09, 0x0F00, 0x9400, 0xA500},
|
92 |
|
|
};
|
93 |
|
|
|
94 |
|
|
static const struct keydef extended_keycode_map[] = {
|
95 |
|
|
[0x71] = {0x5300, 0x532E, 0x9300, 0xA300},
|
96 |
|
|
[0x72] = {0x5000, 0x5032, 0x9100, 0xA000},
|
97 |
|
|
[0x69] = {0x4F00, 0x4F31, 0x7500, 0x9F00},
|
98 |
|
|
[0x6c] = {0x4700, 0x4737, 0x7700, 0x9700},
|
99 |
|
|
[0x70] = {0x5200, 0x5230, 0x9200, 0xA200},
|
100 |
|
|
[0x6b] = {0x4B00, 0x4B34, 0x7300, 0x9B00},
|
101 |
|
|
[0x7a] = {0x5100, 0x5133, 0x7600, 0xA100},
|
102 |
|
|
[0x7d] = {0x4900, 0x4939, 0x8400, 0x9900},
|
103 |
|
|
[0x74] = {0x4D00, 0x4D36, 0x7400, 0x9D00},
|
104 |
|
|
[0x75] = {0x4800, 0x4838, 0x8D00, 0x9800},
|
105 |
|
|
};
|