commited some changes and added README
[meinos.git] / keyboard_layouts / de.c
blob45d4c8c3abfe88d67d25c0640246ea05bea2acdd
1 /*
2 meinOS - A unix-like x86 microkernel operating system
3 Copyright (C) 2008 Janosch Gräf <janosch.graef@gmx.net>
5 This program 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.
10 This program 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.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include <stdio.h>
20 #include <wchar.h>
22 wchar_t keyboard_layout[0x100][4] = {
23 /* Scancode * Description *//* Characters */
24 /* 00 * Keyboard error */ { 0 , 0 , 0 , 0 },
25 /* 01 * Escape */ { 0 , 0 , 0 , 0 },
26 /* 02 * 1 ! ² */ { '1' , '!' , '²' , 0 },
27 /* 03 * 2 " ³ */ { '2' , '"' , '³' , 0 },
28 /* 04 * 3 § */ { '3' , '§' , 0 , 0 },
29 /* 05 * 4 $ */ { '4' , '$' , 0 , 0 },
30 /* 06 * 5 % */ { '5' , '%' , 0 , 0 },
31 /* 07 * 6 & */ { '6' , '&' , 0 , 0 },
32 /* 08 * 7 / { */ { '7' , '/' , '{' , 0 },
33 /* 09 * 8 ( [ */ { '8' , '(' , '[' , 0 },
34 /* 0A * 9 ) ] */ { '9' , ')' , ']' , 0 },
35 /* 0B * 0 = } */ { '0' , '=' , '}' , 0 },
36 /* 0C * ß ? \ */ { 'ß' , '?' , '\\', 0 },
37 /* 0D * ` ' */ { '`' , '\'', 0 , 0 },
38 /* 0E * Backspace */ { '\b', '\b', '\b', 0 },
39 /* 0F * Tab */ { '\t', '\t', '\t', 0 },
40 /* 10 * q Q @ */ { 'q' , 'Q' , '@' , 0 },
41 /* 11 * w W */ { 'w' , 'W' , 0 , 0 },
42 /* 12 * e E € */ { 'e' , 'E' , '€' , 0 },
43 /* 13 * r R */ { 'r' , 'R' , 0 , 0 },
44 /* 14 * t T */ { 't' , 'T' , 0 , 0 },
45 /* 15 * z Z */ { 'z' , 'Z' , 0 , 0 },
46 /* 16 * u U */ { 'u' , 'U' , 0 , 0 },
47 /* 17 * i I */ { 'i' , 'I' , 0 , 0 },
48 /* 18 * o O */ { 'o' , 'O' , 0 , 0 },
49 /* 19 * p P */ { 'p' , 'P' , 0 , 0 },
50 /* 1A * ü Ü */ { 'ü' , 'Ü' , 0 , 0 },
51 /* 1B * + * ~ */ { '+' , '*' , '~' , 0 },
52 /* 1C * Enter */ { '\n', '\n', '\n', 0 },
53 /* 1D * LCtrl */ { 0 , 0 , 0 , 0 },
54 /* 1E * a A */ { 'a' , 'A' , 0 , 0 },
55 /* 1F * s S */ { 's' , 'S' , 0 , 0 },
56 /* 20 * d D */ { 'd' , 'D' , 0 , 0 },
57 /* 21 * f F */ { 'f' , 'F' , 0 , 0 },
58 /* 22 * g G */ { 'g' , 'G' , 0 , 0 },
59 /* 23 * h H */ { 'h' , 'H' , 0 , 0 },
60 /* 24 * j J */ { 'j' , 'J' , 0 , 0 },
61 /* 25 * k K */ { 'k' , 'K' , 0 , 0 },
62 /* 26 * l L */ { 'l' , 'L' , 0 , 0 },
63 /* 27 * ö Ö */ { 'ö' , 'Ö' , 0 , 0 },
64 /* 28 * ä Ä */ { 'ä' , 'Ä' , 0 , 0 },
65 /* 29 * ^ ° */ { '^' , '°' , 0 , 0 },
66 /* 2A * LShift */ { 0 , 0 , 0 , 0 },
67 /* 2B * # ' */ { '#' , '\'', 0 , 0 },
68 /* 2C * y Y */ { 'y' , 'Y' , 0 , 0 },
69 /* 2D * x X */ { 'x' , 'X' , 0 , 0 },
70 /* 2E * c C */ { 'c' , 'C' , 0 , 0 },
71 /* 2F * v V */ { 'v' , 'V' , 0 , 0 },
72 /* 30 * b B */ { 'b' , 'B' , 0 , 0 },
73 /* 31 * n N */ { 'n' , 'N' , 0 , 0 },
74 /* 32 * m M */ { 'm' , 'M' , 'µ' , 0 },
75 /* 33 * , ; */ { ',' , ';' , 0 , 0 },
76 /* 34 * . : */ { '.' , ':' , 0 , 0 },
77 /* 35 * - _ */ { '-' , '_' , 0 , 0 },
78 /* 36 * RShift */ { 0 , 0 , 0 , 0 },
79 /* 37 * Keypad * */ { '*' , '*' , '*' , '*' },
80 /* 38 * LAlt */ { 0 , 0 , 0 , 0 },
81 /* 39 * Spacebar */ { ' ' , ' ' , 0 , 0 },
82 /* 3A * Capslock */ { 0 , 0 , 0 , 0 },
83 /* 3B * F1 */ { 0 , 0 , 0 , 0 },
84 /* 3C * F2 */ { 0 , 0 , 0 , 0 },
85 /* 3D * F3 */ { 0 , 0 , 0 , 0 },
86 /* 3E * F4 */ { 0 , 0 , 0 , 0 },
87 /* 3F * F5 */ { 0 , 0 , 0 , 0 },
88 /* 40 * F6 */ { 0 , 0 , 0 , 0 },
89 /* 41 * F7 */ { 0 , 0 , 0 , 0 },
90 /* 42 * F8 */ { 0 , 0 , 0 , 0 },
91 /* 43 * F9 */ { 0 , 0 , 0 , 0 },
92 /* 44 * F10 */ { 0 , 0 , 0 , 0 },
93 /* 45 * NumLock */ { 0 , 0 , 0 , 0 },
94 /* 46 * ScrollLock */ { 0 , 0 , 0 , 0 },
95 /* 47 * Keypad 7 */ { '7' , '7' , '7' , '7' },
96 /* 48 * Keypad 8 */ { '8' , '8' , '8' , '8' },
97 /* 49 * Keypad 9 */ { '9' , '9' , '9' , '9' },
98 /* 4A * Keypad - */ { '-' , '-' , '-' , '-' },
99 /* 4B * Keypad 4 */ { '4' , '4' , '4' , '4' },
100 /* 4C * Keypad 5 */ { '5' , '5' , '5' , '5' },
101 /* 4D * Keypad 6 */ { '6' , '6' , '6' , '6' },
102 /* 4E * Keypad + */ { '+' , '+' , '+' , '+' },
103 /* 4F * Keypad 1 */ { '1' , '1' , '1' , '1' },
104 /* 50 * Keypad 2 */ { '2' , '2' , '2' , '2' },
105 /* 51 * Keypad 3 */ { '3' , '3' , '3' , '3' },
106 /* 52 * Keypad 0 */ { '0' , '0' , '0' , '0' },
107 /* 53 * Keypad . */ { ',' , ',' , ',' , ',' },
108 /* 54 * F11 */ { 0 , 0 , 0 , 0 },
109 /* 55 * F12 */ { 0 , 0 , 0 , 0 },
110 /* 56 * < > | */ { '<' , '>' , '|' , 0 },
111 /* 57 * */ { 0 , 0 , 0 , 0 },
112 /* 58 * */ { 0 , 0 , 0 , 0 },
113 /* 59 * */ { 0 , 0 , 0 , 0 },
114 /* 5A * */ { 0 , 0 , 0 , 0 },
115 /* 5B * */ { 0 , 0 , 0 , 0 },
116 /* 5C * */ { 0 , 0 , 0 , 0 },
117 /* 5D * */ { 0 , 0 , 0 , 0 },
118 /* 5E * */ { 0 , 0 , 0 , 0 },
119 /* 5F * */ { 0 , 0 , 0 , 0 },
120 /* 60 * */ { 0 , 0 , 0 , 0 },
121 /* 61 * */ { 0 , 0 , 0 , 0 },
122 /* 62 * */ { 0 , 0 , 0 , 0 },
123 /* 63 * */ { 0 , 0 , 0 , 0 },
124 /* 64 * */ { 0 , 0 , 0 , 0 },
125 /* 65 * */ { 0 , 0 , 0 , 0 },
126 /* 66 * */ { 0 , 0 , 0 , 0 },
127 /* 67 * */ { 0 , 0 , 0 , 0 },
128 /* 68 * */ { 0 , 0 , 0 , 0 },
129 /* 69 * */ { 0 , 0 , 0 , 0 },
130 /* 6A * */ { 0 , 0 , 0 , 0 },
131 /* 6B * */ { 0 , 0 , 0 , 0 },
132 /* 6C * */ { 0 , 0 , 0 , 0 },
133 /* 6D * */ { 0 , 0 , 0 , 0 },
134 /* 6E * */ { 0 , 0 , 0 , 0 },
135 /* 6F * */ { 0 , 0 , 0 , 0 },
136 /* 70 * */ { 0 , 0 , 0 , 0 },
137 /* 71 * */ { 0 , 0 , 0 , 0 },
138 /* 72 * */ { 0 , 0 , 0 , 0 },
139 /* 73 * */ { 0 , 0 , 0 , 0 },
140 /* 74 * */ { 0 , 0 , 0 , 0 },
141 /* 75 * */ { 0 , 0 , 0 , 0 },
142 /* 76 * */ { 0 , 0 , 0 , 0 },
143 /* 77 * */ { 0 , 0 , 0 , 0 },
144 /* 78 * */ { 0 , 0 , 0 , 0 },
145 /* 79 * */ { 0 , 0 , 0 , 0 },
146 /* 7A * */ { 0 , 0 , 0 , 0 },
147 /* 7B * */ { 0 , 0 , 0 , 0 },
148 /* 7C * */ { 0 , 0 , 0 , 0 },
149 /* 7D * */ { 0 , 0 , 0 , 0 },
150 /* 7E * */ { 0 , 0 , 0 , 0 },
151 /* 7F * */ { 0 , 0 , 0 , 0 },
152 /* 80 * */ { 0 , 0 , 0 , 0 },
153 /* 81 * */ { 0 , 0 , 0 , 0 },
154 /* 82 * */ { 0 , 0 , 0 , 0 },
155 /* 83 * */ { 0 , 0 , 0 , 0 },
156 /* 84 * */ { 0 , 0 , 0 , 0 },
157 /* 85 * */ { 0 , 0 , 0 , 0 },
158 /* 86 * */ { 0 , 0 , 0 , 0 },
159 /* 87 * */ { 0 , 0 , 0 , 0 },
160 /* 88 * */ { 0 , 0 , 0 , 0 },
161 /* 89 * */ { 0 , 0 , 0 , 0 },
162 /* 8A * */ { 0 , 0 , 0 , 0 },
163 /* 8B * */ { 0 , 0 , 0 , 0 },
164 /* 8C * */ { 0 , 0 , 0 , 0 },
165 /* 8D * */ { 0 , 0 , 0 , 0 },
166 /* 8E * */ { 0 , 0 , 0 , 0 },
167 /* 8F * */ { 0 , 0 , 0 , 0 },
168 /* 90 * */ { 0 , 0 , 0 , 0 },
169 /* 91 * */ { 0 , 0 , 0 , 0 },
170 /* 92 * */ { 0 , 0 , 0 , 0 },
171 /* 93 * */ { 0 , 0 , 0 , 0 },
172 /* 94 * */ { 0 , 0 , 0 , 0 },
173 /* 95 * */ { 0 , 0 , 0 , 0 },
174 /* 96 * */ { 0 , 0 , 0 , 0 },
175 /* 97 * */ { 0 , 0 , 0 , 0 },
176 /* 98 * */ { 0 , 0 , 0 , 0 },
177 /* 99 * */ { 0 , 0 , 0 , 0 },
178 /* 9A * */ { 0 , 0 , 0 , 0 },
179 /* 9B * */ { 0 , 0 , 0 , 0 },
180 /* 9C * */ { 0 , 0 , 0 , 0 },
181 /* 9D * RCtrl */ { 0 , 0 , 0 , 0 },
182 /* 9E * */ { 0 , 0 , 0 , 0 },
183 /* 9F * */ { 0 , 0 , 0 , 0 },
184 /* A0 * */ { 0 , 0 , 0 , 0 },
185 /* A1 * */ { 0 , 0 , 0 , 0 },
186 /* A2 * */ { 0 , 0 , 0 , 0 },
187 /* A3 * */ { 0 , 0 , 0 , 0 },
188 /* A4 * */ { 0 , 0 , 0 , 0 },
189 /* A5 * */ { 0 , 0 , 0 , 0 },
190 /* A6 * */ { 0 , 0 , 0 , 0 },
191 /* A7 * */ { 0 , 0 , 0 , 0 },
192 /* A8 * */ { 0 , 0 , 0 , 0 },
193 /* A9 * */ { 0 , 0 , 0 , 0 },
194 /* AA * */ { 0 , 0 , 0 , 0 },
195 /* AB * */ { 0 , 0 , 0 , 0 },
196 /* AC * */ { 0 , 0 , 0 , 0 },
197 /* AD * */ { 0 , 0 , 0 , 0 },
198 /* AE * */ { 0 , 0 , 0 , 0 },
199 /* AF * */ { 0 , 0 , 0 , 0 },
200 /* B0 * */ { 0 , 0 , 0 , 0 },
201 /* B1 * */ { 0 , 0 , 0 , 0 },
202 /* B2 * */ { 0 , 0 , 0 , 0 },
203 /* B3 * */ { 0 , 0 , 0 , 0 },
204 /* B4 * */ { 0 , 0 , 0 , 0 },
205 /* B5 * */ { 0 , 0 , 0 , 0 },
206 /* B6 * */ { 0 , 0 , 0 , 0 },
207 /* B7 * */ { 0 , 0 , 0 , 0 },
208 /* B8 * RAlt */ { 0 , 0 , 0 , 0 },
209 /* B9 * */ { 0 , 0 , 0 , 0 },
210 /* BA * */ { 0 , 0 , 0 , 0 },
211 /* BB * */ { 0 , 0 , 0 , 0 },
212 /* BC * */ { 0 , 0 , 0 , 0 },
213 /* BD * */ { 0 , 0 , 0 , 0 },
214 /* BE * */ { 0 , 0 , 0 , 0 },
215 /* BF * */ { 0 , 0 , 0 , 0 },
216 /* C0 * */ { 0 , 0 , 0 , 0 },
217 /* C1 * */ { 0 , 0 , 0 , 0 },
218 /* C2 * */ { 0 , 0 , 0 , 0 },
219 /* C3 * */ { 0 , 0 , 0 , 0 },
220 /* C4 * */ { 0 , 0 , 0 , 0 },
221 /* C5 * */ { 0 , 0 , 0 , 0 },
222 /* C6 * */ { 0 , 0 , 0 , 0 },
223 /* C7 * */ { 0 , 0 , 0 , 0 },
224 /* C8 * */ { 0 , 0 , 0 , 0 },
225 /* C9 * */ { 0 , 0 , 0 , 0 },
226 /* CA * */ { 0 , 0 , 0 , 0 },
227 /* CB * */ { 0 , 0 , 0 , 0 },
228 /* CC * */ { 0 , 0 , 0 , 0 },
229 /* CD * */ { 0 , 0 , 0 , 0 },
230 /* CE * */ { 0 , 0 , 0 , 0 },
231 /* CF * */ { 0 , 0 , 0 , 0 },
232 /* D0 * */ { 0 , 0 , 0 , 0 },
233 /* D1 * */ { 0 , 0 , 0 , 0 },
234 /* D2 * */ { 0 , 0 , 0 , 0 },
235 /* D3 * */ { 0 , 0 , 0 , 0 },
236 /* D4 * */ { 0 , 0 , 0 , 0 },
237 /* D5 * */ { 0 , 0 , 0 , 0 },
238 /* D6 * */ { 0 , 0 , 0 , 0 },
239 /* D7 * */ { 0 , 0 , 0 , 0 },
240 /* D8 * */ { 0 , 0 , 0 , 0 },
241 /* D9 * */ { 0 , 0 , 0 , 0 },
242 /* DA * */ { 0 , 0 , 0 , 0 },
243 /* DB * */ { 0 , 0 , 0 , 0 },
244 /* DC * */ { 0 , 0 , 0 , 0 },
245 /* DD * */ { 0 , 0 , 0 , 0 },
246 /* DE * */ { 0 , 0 , 0 , 0 },
247 /* DF * */ { 0 , 0 , 0 , 0 },
248 /* E0 * */ { 0 , 0 , 0 , 0 },
249 /* E1 * */ { 0 , 0 , 0 , 0 },
250 /* E2 * */ { 0 , 0 , 0 , 0 },
251 /* E3 * */ { 0 , 0 , 0 , 0 },
252 /* E4 * */ { 0 , 0 , 0 , 0 },
253 /* E5 * */ { 0 , 0 , 0 , 0 },
254 /* E6 * */ { 0 , 0 , 0 , 0 },
255 /* E7 * */ { 0 , 0 , 0 , 0 },
256 /* E8 * */ { 0 , 0 , 0 , 0 },
257 /* E9 * */ { 0 , 0 , 0 , 0 },
258 /* EA * */ { 0 , 0 , 0 , 0 },
259 /* EB * */ { 0 , 0 , 0 , 0 },
260 /* EC * */ { 0 , 0 , 0 , 0 },
261 /* ED * */ { 0 , 0 , 0 , 0 },
262 /* EE * */ { 0 , 0 , 0 , 0 },
263 /* EF * */ { 0 , 0 , 0 , 0 },
264 /* F0 * */ { 0 , 0 , 0 , 0 },
265 /* F1 * */ { 0 , 0 , 0 , 0 },
266 /* F2 * */ { 0 , 0 , 0 , 0 },
267 /* F3 * */ { 0 , 0 , 0 , 0 },
268 /* F4 * */ { 0 , 0 , 0 , 0 },
269 /* F5 * */ { 0 , 0 , 0 , 0 },
270 /* F6 * */ { 0 , 0 , 0 , 0 },
271 /* F7 * */ { 0 , 0 , 0 , 0 },
272 /* F8 * */ { 0 , 0 , 0 , 0 },
273 /* F9 * */ { 0 , 0 , 0 , 0 },
274 /* FA * */ { 0 , 0 , 0 , 0 },
275 /* FB * */ { 0 , 0 , 0 , 0 },
276 /* FC * */ { 0 , 0 , 0 , 0 },
277 /* FD * */ { 0 , 0 , 0 , 0 },
278 /* FE * */ { 0 , 0 , 0 , 0 },
279 /* FF * */ { 0 , 0 , 0 , 0 }
282 int main() {
283 printf("meinOS-KL[de ]");
284 fwrite(keyboard_layout,1,sizeof(keyboard_layout),stdout);
285 return 0;