Linux Audio

Check our new training course

Loading...
v6.8
  1// SPDX-License-Identifier: GPL-2.0
  2/* Do not edit this file! It was automatically generated by     */
  3/*    loadkeys --mktable --unicode defkeymap.map > defkeymap.c  */
  4
  5#include <linux/types.h>
  6#include <linux/keyboard.h>
  7#include <linux/kd.h>
  8
  9unsigned short plain_map[NR_KEYS] = {
 10	0xf200,	0xf01b,	0xf031,	0xf032,	0xf033,	0xf034,	0xf035,	0xf036,
 11	0xf037,	0xf038,	0xf039,	0xf030,	0xf02d,	0xf03d,	0xf07f,	0xf009,
 12	0xfb71,	0xfb77,	0xfb65,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
 13	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf201,	0xf702,	0xfb61,	0xfb73,
 14	0xfb64,	0xfb66,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,	0xfb6c,	0xf03b,
 15	0xf027,	0xf060,	0xf700,	0xf05c,	0xfb7a,	0xfb78,	0xfb63,	0xfb76,
 16	0xfb62,	0xfb6e,	0xfb6d,	0xf02c,	0xf02e,	0xf02f,	0xf700,	0xf30c,
 17	0xf703,	0xf020,	0xf207,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,
 18	0xf105,	0xf106,	0xf107,	0xf108,	0xf109,	0xf208,	0xf209,	0xf307,
 19	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 20	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf03c,	0xf10a,
 21	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 22	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
 23	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 24	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 25	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 26};
 27
 28static unsigned short shift_map[NR_KEYS] = {
 29	0xf200,	0xf01b,	0xf021,	0xf040,	0xf023,	0xf024,	0xf025,	0xf05e,
 30	0xf026,	0xf02a,	0xf028,	0xf029,	0xf05f,	0xf02b,	0xf07f,	0xf009,
 31	0xfb51,	0xfb57,	0xfb45,	0xfb52,	0xfb54,	0xfb59,	0xfb55,	0xfb49,
 32	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf201,	0xf702,	0xfb41,	0xfb53,
 33	0xfb44,	0xfb46,	0xfb47,	0xfb48,	0xfb4a,	0xfb4b,	0xfb4c,	0xf03a,
 34	0xf022,	0xf07e,	0xf700,	0xf07c,	0xfb5a,	0xfb58,	0xfb43,	0xfb56,
 35	0xfb42,	0xfb4e,	0xfb4d,	0xf03c,	0xf03e,	0xf03f,	0xf700,	0xf30c,
 36	0xf703,	0xf020,	0xf207,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf10e,
 37	0xf10f,	0xf110,	0xf111,	0xf112,	0xf113,	0xf213,	0xf203,	0xf307,
 38	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 39	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf03e,	0xf10a,
 40	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 41	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 42	0xf20b,	0xf601,	0xf602,	0xf117,	0xf600,	0xf20a,	0xf115,	0xf116,
 43	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 44	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 45};
 46
 47static unsigned short altgr_map[NR_KEYS] = {
 48	0xf200,	0xf200,	0xf200,	0xf040,	0xf200,	0xf024,	0xf200,	0xf200,
 49	0xf07b,	0xf05b,	0xf05d,	0xf07d,	0xf05c,	0xf200,	0xf200,	0xf200,
 50	0xfb71,	0xfb77,	0xf918,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
 51	0xfb6f,	0xfb70,	0xf200,	0xf07e,	0xf201,	0xf702,	0xf914,	0xfb73,
 52	0xf917,	0xf919,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,	0xfb6c,	0xf200,
 53	0xf200,	0xf200,	0xf700,	0xf200,	0xfb7a,	0xfb78,	0xf916,	0xfb76,
 54	0xf915,	0xfb6e,	0xfb6d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
 55	0xf703,	0xf200,	0xf207,	0xf50c,	0xf50d,	0xf50e,	0xf50f,	0xf510,
 56	0xf511,	0xf512,	0xf513,	0xf514,	0xf515,	0xf208,	0xf202,	0xf911,
 57	0xf912,	0xf913,	0xf30b,	0xf90e,	0xf90f,	0xf910,	0xf30a,	0xf90b,
 58	0xf90c,	0xf90d,	0xf90a,	0xf310,	0xf206,	0xf200,	0xf07c,	0xf516,
 59	0xf517,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 60	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 61	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 62	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 63	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 64};
 65
 66static unsigned short ctrl_map[NR_KEYS] = {
 67	0xf200,	0xf200,	0xf200,	0xf000,	0xf01b,	0xf01c,	0xf01d,	0xf01e,
 68	0xf01f,	0xf07f,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf008,	0xf200,
 69	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
 70	0xf00f,	0xf010,	0xf01b,	0xf01d,	0xf201,	0xf702,	0xf001,	0xf013,
 71	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,	0xf00c,	0xf200,
 72	0xf007,	0xf000,	0xf700,	0xf01c,	0xf01a,	0xf018,	0xf003,	0xf016,
 73	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf20e,	0xf07f,	0xf700,	0xf30c,
 74	0xf703,	0xf000,	0xf207,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,
 75	0xf105,	0xf106,	0xf107,	0xf108,	0xf109,	0xf208,	0xf204,	0xf307,
 76	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 77	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf200,	0xf10a,
 78	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 79	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
 80	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 81	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 82	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 83};
 84
 85static unsigned short shift_ctrl_map[NR_KEYS] = {
 86	0xf200,	0xf200,	0xf200,	0xf000,	0xf200,	0xf200,	0xf200,	0xf200,
 87	0xf200,	0xf200,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf200,	0xf200,
 88	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
 89	0xf00f,	0xf010,	0xf200,	0xf200,	0xf201,	0xf702,	0xf001,	0xf013,
 90	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,	0xf00c,	0xf200,
 91	0xf200,	0xf200,	0xf700,	0xf200,	0xf01a,	0xf018,	0xf003,	0xf016,
 92	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
 93	0xf703,	0xf200,	0xf207,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 94	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf208,	0xf200,	0xf307,
 95	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 96	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf200,	0xf200,
 97	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 98	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 99	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
100	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
101	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
102};
103
104static unsigned short alt_map[NR_KEYS] = {
105	0xf200,	0xf81b,	0xf831,	0xf832,	0xf833,	0xf834,	0xf835,	0xf836,
106	0xf837,	0xf838,	0xf839,	0xf830,	0xf82d,	0xf83d,	0xf87f,	0xf809,
107	0xf871,	0xf877,	0xf865,	0xf872,	0xf874,	0xf879,	0xf875,	0xf869,
108	0xf86f,	0xf870,	0xf85b,	0xf85d,	0xf80d,	0xf702,	0xf861,	0xf873,
109	0xf864,	0xf866,	0xf867,	0xf868,	0xf86a,	0xf86b,	0xf86c,	0xf83b,
110	0xf827,	0xf860,	0xf700,	0xf85c,	0xf87a,	0xf878,	0xf863,	0xf876,
111	0xf862,	0xf86e,	0xf86d,	0xf82c,	0xf82e,	0xf82f,	0xf700,	0xf30c,
112	0xf703,	0xf820,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
113	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf209,	0xf907,
114	0xf908,	0xf909,	0xf30b,	0xf904,	0xf905,	0xf906,	0xf30a,	0xf901,
115	0xf902,	0xf903,	0xf900,	0xf310,	0xf206,	0xf200,	0xf83c,	0xf50a,
116	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
117	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
118	0xf118,	0xf210,	0xf211,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
119	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
120	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
121};
122
123static unsigned short ctrl_alt_map[NR_KEYS] = {
124	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
125	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
126	0xf811,	0xf817,	0xf805,	0xf812,	0xf814,	0xf819,	0xf815,	0xf809,
127	0xf80f,	0xf810,	0xf200,	0xf200,	0xf201,	0xf702,	0xf801,	0xf813,
128	0xf804,	0xf806,	0xf807,	0xf808,	0xf80a,	0xf80b,	0xf80c,	0xf200,
129	0xf200,	0xf200,	0xf700,	0xf200,	0xf81a,	0xf818,	0xf803,	0xf816,
130	0xf802,	0xf80e,	0xf80d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
131	0xf703,	0xf200,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
132	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf200,	0xf307,
133	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
134	0xf302,	0xf303,	0xf300,	0xf20c,	0xf206,	0xf200,	0xf200,	0xf50a,
135	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
136	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
137	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf20c,
138	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
139	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
140};
141
142unsigned short *key_maps[MAX_NR_KEYMAPS] = {
143	plain_map, shift_map, altgr_map, NULL,
144	ctrl_map, shift_ctrl_map, NULL, NULL,
145	alt_map, NULL, NULL, NULL,
146	ctrl_alt_map, NULL
147};
148
149unsigned int keymap_count = 7;
150
151/*
152 * Philosophy: most people do not define more strings, but they who do
153 * often want quite a lot of string space. So, we statically allocate
154 * the default and allocate dynamically in chunks of 512 bytes.
155 */
156
157char func_buf[] = {
158	'\033', '[', '[', 'A', 0, 
159	'\033', '[', '[', 'B', 0, 
160	'\033', '[', '[', 'C', 0, 
161	'\033', '[', '[', 'D', 0, 
162	'\033', '[', '[', 'E', 0, 
163	'\033', '[', '1', '7', '~', 0, 
164	'\033', '[', '1', '8', '~', 0, 
165	'\033', '[', '1', '9', '~', 0, 
166	'\033', '[', '2', '0', '~', 0, 
167	'\033', '[', '2', '1', '~', 0, 
168	'\033', '[', '2', '3', '~', 0, 
169	'\033', '[', '2', '4', '~', 0, 
170	'\033', '[', '2', '5', '~', 0, 
171	'\033', '[', '2', '6', '~', 0, 
172	'\033', '[', '2', '8', '~', 0, 
173	'\033', '[', '2', '9', '~', 0, 
174	'\033', '[', '3', '1', '~', 0, 
175	'\033', '[', '3', '2', '~', 0, 
176	'\033', '[', '3', '3', '~', 0, 
177	'\033', '[', '3', '4', '~', 0, 
178	'\033', '[', '1', '~', 0, 
179	'\033', '[', '2', '~', 0, 
180	'\033', '[', '3', '~', 0, 
181	'\033', '[', '4', '~', 0, 
182	'\033', '[', '5', '~', 0, 
183	'\033', '[', '6', '~', 0, 
184	'\033', '[', 'M', 0, 
185	'\033', '[', 'P', 0, 
186};
187
188char *funcbufptr = func_buf;
189int funcbufsize = sizeof(func_buf);
190int funcbufleft = 0;          /* space left */
191
192char *func_table[MAX_NR_FUNC] = {
193	func_buf + 0,
194	func_buf + 5,
195	func_buf + 10,
196	func_buf + 15,
197	func_buf + 20,
198	func_buf + 25,
199	func_buf + 31,
200	func_buf + 37,
201	func_buf + 43,
202	func_buf + 49,
203	func_buf + 55,
204	func_buf + 61,
205	func_buf + 67,
206	func_buf + 73,
207	func_buf + 79,
208	func_buf + 85,
209	func_buf + 91,
210	func_buf + 97,
211	func_buf + 103,
212	func_buf + 109,
213	func_buf + 115,
214	func_buf + 120,
215	func_buf + 125,
216	func_buf + 130,
217	func_buf + 135,
218	func_buf + 140,
219	func_buf + 145,
220	NULL,
221	NULL,
222	func_buf + 149,
223	NULL,
224};
225
226struct kbdiacruc accent_table[MAX_DIACR] = {
227	{'`', 'A', 0x00c0},	{'`', 'a', 0x00e0},
228	{'\'', 'A', 0x00c1},	{'\'', 'a', 0x00e1},
229	{'^', 'A', 0x00c2},	{'^', 'a', 0x00e2},
230	{'~', 'A', 0x00c3},	{'~', 'a', 0x00e3},
231	{'"', 'A', 0x00c4},	{'"', 'a', 0x00e4},
232	{'O', 'A', 0x00c5},	{'o', 'a', 0x00e5},
233	{'0', 'A', 0x00c5},	{'0', 'a', 0x00e5},
234	{'A', 'A', 0x00c5},	{'a', 'a', 0x00e5},
235	{'A', 'E', 0x00c6},	{'a', 'e', 0x00e6},
236	{',', 'C', 0x00c7},	{',', 'c', 0x00e7},
237	{'`', 'E', 0x00c8},	{'`', 'e', 0x00e8},
238	{'\'', 'E', 0x00c9},	{'\'', 'e', 0x00e9},
239	{'^', 'E', 0x00ca},	{'^', 'e', 0x00ea},
240	{'"', 'E', 0x00cb},	{'"', 'e', 0x00eb},
241	{'`', 'I', 0x00cc},	{'`', 'i', 0x00ec},
242	{'\'', 'I', 0x00cd},	{'\'', 'i', 0x00ed},
243	{'^', 'I', 0x00ce},	{'^', 'i', 0x00ee},
244	{'"', 'I', 0x00cf},	{'"', 'i', 0x00ef},
245	{'-', 'D', 0x00d0},	{'-', 'd', 0x00f0},
246	{'~', 'N', 0x00d1},	{'~', 'n', 0x00f1},
247	{'`', 'O', 0x00d2},	{'`', 'o', 0x00f2},
248	{'\'', 'O', 0x00d3},	{'\'', 'o', 0x00f3},
249	{'^', 'O', 0x00d4},	{'^', 'o', 0x00f4},
250	{'~', 'O', 0x00d5},	{'~', 'o', 0x00f5},
251	{'"', 'O', 0x00d6},	{'"', 'o', 0x00f6},
252	{'/', 'O', 0x00d8},	{'/', 'o', 0x00f8},
253	{'`', 'U', 0x00d9},	{'`', 'u', 0x00f9},
254	{'\'', 'U', 0x00da},	{'\'', 'u', 0x00fa},
255	{'^', 'U', 0x00db},	{'^', 'u', 0x00fb},
256	{'"', 'U', 0x00dc},	{'"', 'u', 0x00fc},
257	{'\'', 'Y', 0x00dd},	{'\'', 'y', 0x00fd},
258	{'T', 'H', 0x00de},	{'t', 'h', 0x00fe},
259	{'s', 's', 0x00df},	{'"', 'y', 0x00ff},
260	{'s', 'z', 0x00df},	{'i', 'j', 0x00ff},
261};
262
263unsigned int accent_table_size = 68;
v3.1
  1/* Do not edit this file! It was automatically generated by   */
  2/*    loadkeys --mktable defkeymap.map > defkeymap.c          */
 
  3
  4#include <linux/types.h>
  5#include <linux/keyboard.h>
  6#include <linux/kd.h>
  7
  8u_short plain_map[NR_KEYS] = {
  9	0xf200,	0xf01b,	0xf031,	0xf032,	0xf033,	0xf034,	0xf035,	0xf036,
 10	0xf037,	0xf038,	0xf039,	0xf030,	0xf02d,	0xf03d,	0xf07f,	0xf009,
 11	0xfb71,	0xfb77,	0xfb65,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
 12	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf201,	0xf702,	0xfb61,	0xfb73,
 13	0xfb64,	0xfb66,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,	0xfb6c,	0xf03b,
 14	0xf027,	0xf060,	0xf700,	0xf05c,	0xfb7a,	0xfb78,	0xfb63,	0xfb76,
 15	0xfb62,	0xfb6e,	0xfb6d,	0xf02c,	0xf02e,	0xf02f,	0xf700,	0xf30c,
 16	0xf703,	0xf020,	0xf207,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,
 17	0xf105,	0xf106,	0xf107,	0xf108,	0xf109,	0xf208,	0xf209,	0xf307,
 18	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 19	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf03c,	0xf10a,
 20	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 21	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
 22	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 23	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 24	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 25};
 26
 27u_short shift_map[NR_KEYS] = {
 28	0xf200,	0xf01b,	0xf021,	0xf040,	0xf023,	0xf024,	0xf025,	0xf05e,
 29	0xf026,	0xf02a,	0xf028,	0xf029,	0xf05f,	0xf02b,	0xf07f,	0xf009,
 30	0xfb51,	0xfb57,	0xfb45,	0xfb52,	0xfb54,	0xfb59,	0xfb55,	0xfb49,
 31	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf201,	0xf702,	0xfb41,	0xfb53,
 32	0xfb44,	0xfb46,	0xfb47,	0xfb48,	0xfb4a,	0xfb4b,	0xfb4c,	0xf03a,
 33	0xf022,	0xf07e,	0xf700,	0xf07c,	0xfb5a,	0xfb58,	0xfb43,	0xfb56,
 34	0xfb42,	0xfb4e,	0xfb4d,	0xf03c,	0xf03e,	0xf03f,	0xf700,	0xf30c,
 35	0xf703,	0xf020,	0xf207,	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf10e,
 36	0xf10f,	0xf110,	0xf111,	0xf112,	0xf113,	0xf213,	0xf203,	0xf307,
 37	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 38	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf03e,	0xf10a,
 39	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 40	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 41	0xf20b,	0xf601,	0xf602,	0xf117,	0xf600,	0xf20a,	0xf115,	0xf116,
 42	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 43	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 44};
 45
 46u_short altgr_map[NR_KEYS] = {
 47	0xf200,	0xf200,	0xf200,	0xf040,	0xf200,	0xf024,	0xf200,	0xf200,
 48	0xf07b,	0xf05b,	0xf05d,	0xf07d,	0xf05c,	0xf200,	0xf200,	0xf200,
 49	0xfb71,	0xfb77,	0xf918,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
 50	0xfb6f,	0xfb70,	0xf200,	0xf07e,	0xf201,	0xf702,	0xf914,	0xfb73,
 51	0xf917,	0xf919,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,	0xfb6c,	0xf200,
 52	0xf200,	0xf200,	0xf700,	0xf200,	0xfb7a,	0xfb78,	0xf916,	0xfb76,
 53	0xf915,	0xfb6e,	0xfb6d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
 54	0xf703,	0xf200,	0xf207,	0xf50c,	0xf50d,	0xf50e,	0xf50f,	0xf510,
 55	0xf511,	0xf512,	0xf513,	0xf514,	0xf515,	0xf208,	0xf202,	0xf911,
 56	0xf912,	0xf913,	0xf30b,	0xf90e,	0xf90f,	0xf910,	0xf30a,	0xf90b,
 57	0xf90c,	0xf90d,	0xf90a,	0xf310,	0xf206,	0xf200,	0xf07c,	0xf516,
 58	0xf517,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 59	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 60	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 61	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 62	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 63};
 64
 65u_short ctrl_map[NR_KEYS] = {
 66	0xf200,	0xf200,	0xf200,	0xf000,	0xf01b,	0xf01c,	0xf01d,	0xf01e,
 67	0xf01f,	0xf07f,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf008,	0xf200,
 68	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
 69	0xf00f,	0xf010,	0xf01b,	0xf01d,	0xf201,	0xf702,	0xf001,	0xf013,
 70	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,	0xf00c,	0xf200,
 71	0xf007,	0xf000,	0xf700,	0xf01c,	0xf01a,	0xf018,	0xf003,	0xf016,
 72	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf20e,	0xf07f,	0xf700,	0xf30c,
 73	0xf703,	0xf000,	0xf207,	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,
 74	0xf105,	0xf106,	0xf107,	0xf108,	0xf109,	0xf208,	0xf204,	0xf307,
 75	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 76	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf200,	0xf10a,
 77	0xf10b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 78	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
 79	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 80	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
 81	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 82};
 83
 84u_short shift_ctrl_map[NR_KEYS] = {
 85	0xf200,	0xf200,	0xf200,	0xf000,	0xf200,	0xf200,	0xf200,	0xf200,
 86	0xf200,	0xf200,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf200,	0xf200,
 87	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
 88	0xf00f,	0xf010,	0xf200,	0xf200,	0xf201,	0xf702,	0xf001,	0xf013,
 89	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,	0xf00c,	0xf200,
 90	0xf200,	0xf200,	0xf700,	0xf200,	0xf01a,	0xf018,	0xf003,	0xf016,
 91	0xf002,	0xf00e,	0xf00d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
 92	0xf703,	0xf200,	0xf207,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 93	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf208,	0xf200,	0xf307,
 94	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
 95	0xf302,	0xf303,	0xf300,	0xf310,	0xf206,	0xf200,	0xf200,	0xf200,
 96	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 97	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
 98	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
 99	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
100	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
101};
102
103u_short alt_map[NR_KEYS] = {
104	0xf200,	0xf81b,	0xf831,	0xf832,	0xf833,	0xf834,	0xf835,	0xf836,
105	0xf837,	0xf838,	0xf839,	0xf830,	0xf82d,	0xf83d,	0xf87f,	0xf809,
106	0xf871,	0xf877,	0xf865,	0xf872,	0xf874,	0xf879,	0xf875,	0xf869,
107	0xf86f,	0xf870,	0xf85b,	0xf85d,	0xf80d,	0xf702,	0xf861,	0xf873,
108	0xf864,	0xf866,	0xf867,	0xf868,	0xf86a,	0xf86b,	0xf86c,	0xf83b,
109	0xf827,	0xf860,	0xf700,	0xf85c,	0xf87a,	0xf878,	0xf863,	0xf876,
110	0xf862,	0xf86e,	0xf86d,	0xf82c,	0xf82e,	0xf82f,	0xf700,	0xf30c,
111	0xf703,	0xf820,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
112	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf209,	0xf907,
113	0xf908,	0xf909,	0xf30b,	0xf904,	0xf905,	0xf906,	0xf30a,	0xf901,
114	0xf902,	0xf903,	0xf900,	0xf310,	0xf206,	0xf200,	0xf83c,	0xf50a,
115	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
116	0xf30e,	0xf702,	0xf30d,	0xf01c,	0xf701,	0xf205,	0xf114,	0xf603,
117	0xf118,	0xf210,	0xf211,	0xf117,	0xf600,	0xf119,	0xf115,	0xf116,
118	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
119	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
120};
121
122u_short ctrl_alt_map[NR_KEYS] = {
123	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
124	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
125	0xf811,	0xf817,	0xf805,	0xf812,	0xf814,	0xf819,	0xf815,	0xf809,
126	0xf80f,	0xf810,	0xf200,	0xf200,	0xf201,	0xf702,	0xf801,	0xf813,
127	0xf804,	0xf806,	0xf807,	0xf808,	0xf80a,	0xf80b,	0xf80c,	0xf200,
128	0xf200,	0xf200,	0xf700,	0xf200,	0xf81a,	0xf818,	0xf803,	0xf816,
129	0xf802,	0xf80e,	0xf80d,	0xf200,	0xf200,	0xf200,	0xf700,	0xf30c,
130	0xf703,	0xf200,	0xf207,	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,
131	0xf505,	0xf506,	0xf507,	0xf508,	0xf509,	0xf208,	0xf200,	0xf307,
132	0xf308,	0xf309,	0xf30b,	0xf304,	0xf305,	0xf306,	0xf30a,	0xf301,
133	0xf302,	0xf303,	0xf300,	0xf20c,	0xf206,	0xf200,	0xf200,	0xf50a,
134	0xf50b,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
135	0xf30e,	0xf702,	0xf30d,	0xf200,	0xf701,	0xf205,	0xf114,	0xf603,
136	0xf118,	0xf601,	0xf602,	0xf117,	0xf600,	0xf119,	0xf115,	0xf20c,
137	0xf11a,	0xf10c,	0xf10d,	0xf11b,	0xf11c,	0xf110,	0xf311,	0xf11d,
138	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
139};
140
141ushort *key_maps[MAX_NR_KEYMAPS] = {
142	plain_map, shift_map, altgr_map, NULL,
143	ctrl_map, shift_ctrl_map, NULL, NULL,
144	alt_map, NULL, NULL, NULL,
145	ctrl_alt_map, NULL
146};
147
148unsigned int keymap_count = 7;
149
150/*
151 * Philosophy: most people do not define more strings, but they who do
152 * often want quite a lot of string space. So, we statically allocate
153 * the default and allocate dynamically in chunks of 512 bytes.
154 */
155
156char func_buf[] = {
157	'\033', '[', '[', 'A', 0, 
158	'\033', '[', '[', 'B', 0, 
159	'\033', '[', '[', 'C', 0, 
160	'\033', '[', '[', 'D', 0, 
161	'\033', '[', '[', 'E', 0, 
162	'\033', '[', '1', '7', '~', 0, 
163	'\033', '[', '1', '8', '~', 0, 
164	'\033', '[', '1', '9', '~', 0, 
165	'\033', '[', '2', '0', '~', 0, 
166	'\033', '[', '2', '1', '~', 0, 
167	'\033', '[', '2', '3', '~', 0, 
168	'\033', '[', '2', '4', '~', 0, 
169	'\033', '[', '2', '5', '~', 0, 
170	'\033', '[', '2', '6', '~', 0, 
171	'\033', '[', '2', '8', '~', 0, 
172	'\033', '[', '2', '9', '~', 0, 
173	'\033', '[', '3', '1', '~', 0, 
174	'\033', '[', '3', '2', '~', 0, 
175	'\033', '[', '3', '3', '~', 0, 
176	'\033', '[', '3', '4', '~', 0, 
177	'\033', '[', '1', '~', 0, 
178	'\033', '[', '2', '~', 0, 
179	'\033', '[', '3', '~', 0, 
180	'\033', '[', '4', '~', 0, 
181	'\033', '[', '5', '~', 0, 
182	'\033', '[', '6', '~', 0, 
183	'\033', '[', 'M', 0, 
184	'\033', '[', 'P', 0, 
185};
186
187char *funcbufptr = func_buf;
188int funcbufsize = sizeof(func_buf);
189int funcbufleft = 0;          /* space left */
190
191char *func_table[MAX_NR_FUNC] = {
192	func_buf + 0,
193	func_buf + 5,
194	func_buf + 10,
195	func_buf + 15,
196	func_buf + 20,
197	func_buf + 25,
198	func_buf + 31,
199	func_buf + 37,
200	func_buf + 43,
201	func_buf + 49,
202	func_buf + 55,
203	func_buf + 61,
204	func_buf + 67,
205	func_buf + 73,
206	func_buf + 79,
207	func_buf + 85,
208	func_buf + 91,
209	func_buf + 97,
210	func_buf + 103,
211	func_buf + 109,
212	func_buf + 115,
213	func_buf + 120,
214	func_buf + 125,
215	func_buf + 130,
216	func_buf + 135,
217	func_buf + 140,
218	func_buf + 145,
219	NULL,
220	NULL,
221	func_buf + 149,
222	NULL,
223};
224
225struct kbdiacruc accent_table[MAX_DIACR] = {
226	{'`', 'A', 0300},	{'`', 'a', 0340},
227	{'\'', 'A', 0301},	{'\'', 'a', 0341},
228	{'^', 'A', 0302},	{'^', 'a', 0342},
229	{'~', 'A', 0303},	{'~', 'a', 0343},
230	{'"', 'A', 0304},	{'"', 'a', 0344},
231	{'O', 'A', 0305},	{'o', 'a', 0345},
232	{'0', 'A', 0305},	{'0', 'a', 0345},
233	{'A', 'A', 0305},	{'a', 'a', 0345},
234	{'A', 'E', 0306},	{'a', 'e', 0346},
235	{',', 'C', 0307},	{',', 'c', 0347},
236	{'`', 'E', 0310},	{'`', 'e', 0350},
237	{'\'', 'E', 0311},	{'\'', 'e', 0351},
238	{'^', 'E', 0312},	{'^', 'e', 0352},
239	{'"', 'E', 0313},	{'"', 'e', 0353},
240	{'`', 'I', 0314},	{'`', 'i', 0354},
241	{'\'', 'I', 0315},	{'\'', 'i', 0355},
242	{'^', 'I', 0316},	{'^', 'i', 0356},
243	{'"', 'I', 0317},	{'"', 'i', 0357},
244	{'-', 'D', 0320},	{'-', 'd', 0360},
245	{'~', 'N', 0321},	{'~', 'n', 0361},
246	{'`', 'O', 0322},	{'`', 'o', 0362},
247	{'\'', 'O', 0323},	{'\'', 'o', 0363},
248	{'^', 'O', 0324},	{'^', 'o', 0364},
249	{'~', 'O', 0325},	{'~', 'o', 0365},
250	{'"', 'O', 0326},	{'"', 'o', 0366},
251	{'/', 'O', 0330},	{'/', 'o', 0370},
252	{'`', 'U', 0331},	{'`', 'u', 0371},
253	{'\'', 'U', 0332},	{'\'', 'u', 0372},
254	{'^', 'U', 0333},	{'^', 'u', 0373},
255	{'"', 'U', 0334},	{'"', 'u', 0374},
256	{'\'', 'Y', 0335},	{'\'', 'y', 0375},
257	{'T', 'H', 0336},	{'t', 'h', 0376},
258	{'s', 's', 0337},	{'"', 'y', 0377},
259	{'s', 'z', 0337},	{'i', 'j', 0377},
260};
261
262unsigned int accent_table_size = 68;