summaryrefslogtreecommitdiff
path: root/keymaps/atari
diff options
context:
space:
mode:
Diffstat (limited to 'keymaps/atari')
-rw-r--r--keymaps/atari/atari-de-deadkeys.kmap256
-rw-r--r--keymaps/atari/atari-de-emacs.kmap514
-rw-r--r--keymaps/atari/atari-de.kmap267
-rw-r--r--keymaps/atari/atari-fr.kmap269
-rw-r--r--keymaps/atari/atari-se-deadkeys.kmap237
-rw-r--r--keymaps/atari/atari-se.kmap247
-rw-r--r--keymaps/atari/atari-uk-deadkeys.kmap234
-rw-r--r--keymaps/atari/atari-uk.kmap244
-rw-r--r--keymaps/atari/atari-us-deadkeys.kmap232
-rw-r--r--keymaps/atari/atari-us.kmap242
10 files changed, 2742 insertions, 0 deletions
diff --git a/keymaps/atari/atari-de-deadkeys.kmap b/keymaps/atari/atari-de-deadkeys.kmap
new file mode 100644
index 0000000..63088f1
--- /dev/null
+++ b/keymaps/atari/atari-de-deadkeys.kmap
@@ -0,0 +1,256 @@
+#
+# Keyboard Mapping for Atari Keyboards, German Layout
+# ---------------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# There is no natural way to generate Meta codes for the characters [,],{,},
+# @ and \, that already need Alt to be pressed together with one of the
+# umlaut keys. I've choosen the following scheme, though it may not be
+# very intuitive in all cases (who knows a better solution??):
+# 1) The key with Alt (and maybe shift) gives the character engraved to the
+# right (i.e. [,@,\,...)
+# 2) The key with Control (and maybe shift) gives the control character
+# corresponding the the character engraved to the _right_, if one exists.
+# This happens because the umlaut characters have no corresponding control
+# character anyway.
+# 3) The key with Control and Alt (and maybe shift) gives the Meta equivalent
+# (with 8. bit set or prepended by ESC) of the character engraved to the
+# right. Again, Meta's of the umlaut characters do not exist, since they
+# already have their 8. bit set.
+# One could argue that it would be more consistent to require Alt and Control
+# to be pressed to get the control characters (case 2). That's true, but in
+# my opinion, it is even more inconsistent to generate Meta codes without the
+# Alt key pressed (but just with Control). And it would be very bad, if the
+# Meta versions of [,{,@,... could not be typed at all!
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+# nul = Control_at
+keycode 3 = two quotedbl nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three section Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six ampersand Control_asciicircum VoidSymbol Meta_six Meta_ampersand Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven slash Control_underscore VoidSymbol Meta_seven Meta_slash Meta_Control_underscore VoidSymbol
+keycode 9 = eight parenleft Delete VoidSymbol Meta_eight Meta_parenleft Meta_Delete VoidSymbol
+keycode 10 = nine parenright VoidSymbol VoidSymbol Meta_nine Meta_parenright VoidSymbol VoidSymbol
+keycode 11 = zero equal VoidSymbol VoidSymbol Meta_zero Meta_equal VoidSymbol VoidSymbol
+keycode 12 = ssharp question VoidSymbol VoidSymbol Meta_question Meta_question VoidSymbol VoidSymbol
+keycode 13 = dead_acute dead_grave VoidSymbol VoidSymbol Meta_apostrophe Meta_grave VoidSymbol VoidSymbol
+keycode 14 = Delete Delete Delete Delete Meta_Delete Meta_Delete Meta_Delete Meta_Delete
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +z
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = +udiaeresis +Udiaeresis nul Control_backslash at backslash Meta_at Meta_backslash
+keycode 27 = plus asterisk Control_bracketright VoidSymbol Meta_plus Meta_asterisk Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+# Escape = Control-[
+keycode 39 = +odiaeresis +Odiaeresis Escape VoidSymbol bracketleft braceleft Meta_bracketleft Meta_braceleft
+keycode 40 = +adiaeresis +Adiaeresis Control_bracketright VoidSymbol bracketright braceright Meta_bracketright Meta_braceright
+keycode 41 = numbersign dead_circumflex Control_asciicircum Control_asciicircum Meta_numbersign Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum
+keycode 42 = Shift
+keycode 43 = dead_tilde bar VoidSymbol VoidSymbol Meta_asciitilde Meta_bar VoidSymbol VoidSymbol
+keycode 44 = +y
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma semicolon dead_cedilla VoidSymbol Meta_comma Meta_semicolon VoidSymbol VoidSymbol
+keycode 52 = period colon VoidSymbol VoidSymbol Meta_period Meta_colon VoidSymbol VoidSymbol
+keycode 53 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+# ClrHome
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = less greater VoidSymbol VoidSymbol Meta_less Meta_greater VoidSymbol VoidSymbol
+# F246 = Undo
+keycode 97 = F246 Break F246 F246 Last_Console F246 Spawn_Console F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-de-emacs.kmap b/keymaps/atari/atari-de-emacs.kmap
new file mode 100644
index 0000000..07b11e6
--- /dev/null
+++ b/keymaps/atari/atari-de-emacs.kmap
@@ -0,0 +1,514 @@
+# Keyboard Mapping for Atari Keyboards, German Layout
+# ---------------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License.
+#
+# Notes:
+# ------
+#
+# This file assumes that the currently active mapping is the Atari default
+# mapping (US layout) in my version as found in drivers/char/defkeymap.c
+# (conditionalized to machine type). Only the necessary alternations are
+# done!
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. All characters needed for
+# German are possible without deadkeys. If you want them, apply the following
+# replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# In atari-german-deadkeys.map exactly this is done.
+#
+# Lines commented out by '!' are settings that are done implicitly by
+# loadkeys.
+#
+# There is no natural way to generate Meta codes for the characters [,],{,},
+# @ and \, that already need Alt to be pressed together with one of the
+# umlaut keys. I've choosen the following scheme, though it may not be
+# very intuitive in all cases (who knows a better solution??):
+# 1) The key with Alt (and maybe shift) gives the character engraved to the
+# right (i.e. [,@,\,...)
+# 2) The key with Control (and maybe shift) gives the control character
+# corresponding the the character engraved to the _right_, if one exists.
+# This happens because the umlaut characters have no corresponding control
+# character anyway.
+# 3) The key with Control and Alt (and maybe shift) gives the Meta equivalent
+# (with 8. bit set or prepended by ESC) of the character engraved to the
+# right. Again, Meta's of the umlaut characters do not exist, since they
+# already have their 8. bit set.
+# One could argue that it would be more consistent to require Alt and Control
+# to be pressed to get the control characters (case 2). That's true, but in
+# my opinion, it is even more inconsistent to generate Meta codes without the
+# Alt key pressed (but just with Control). And it would be very bad, if the
+# Meta versions of [,{,@,... could not be typed at all!
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The standard loadkeys (at least the version I have) doesn't understand the
+# combination of Meta and Control in symbolic names (i.e. Meta_Control_a is
+# invalid, but some names like Meta_Backspace or Meta_Tab are). For this
+# reason, I replaced the offending names by their numeric equivalent. This
+# depends on KT_META being 8!
+#
+# The umlaut keys cannot be set via ?diaeresis, because this would make them
+# to be of type KT_LATIN1, and they should be type KT_LETTER to be affected
+# by CAPSLOCK. Their definition is thus in hex :-(
+#
+
+# only define tables for plain, shift, ctrl, shift+ctrl, alt, shift+alt,
+# alt+ctrl, shift+alt+ctrl, i.e. always AltGr omitted
+keymaps 0,1,4,5,8,9,12,13
+strings as usual
+compose as usual for "iso-8859-1"
+
+keycode 0 =
+
+keycode 1 = Escape Escape \
+ Escape Escape \
+ Meta_Escape Meta_Escape \
+ Meta_Escape Meta_Escape
+
+keycode 2 = one exclam \
+ VoidSymbol VoidSymbol \
+ Meta_one Meta_exclam \
+ VoidSymbol VoidSymbol
+
+# nul = Control_at
+keycode 3 = two quotedbl \
+ nul nul \
+ Meta_two Meta_quotedbl \
+ Meta_nul VoidSymbol
+
+# Meta_Escape = Control_bracketleft
+keycode 4 = three section \
+ Escape VoidSymbol \
+ Meta_three VoidSymbol \
+ Meta_Escape VoidSymbol
+
+keycode 5 = four dollar \
+ Control_backslash VoidSymbol \
+ Meta_four Meta_dollar \
+ Meta_Control_backslash VoidSymbol
+
+keycode 6 = five percent \
+ Control_bracketright VoidSymbol \
+ Meta_five Meta_percent \
+ Meta_Control_bracketright VoidSymbol
+
+keycode 7 = six ampersand \
+ Control_asciicircum VoidSymbol \
+ Meta_six Meta_ampersand \
+ Meta_Control_asciicircum VoidSymbol
+
+keycode 8 = seven slash \
+ Control_underscore VoidSymbol \
+ Meta_seven Meta_slash \
+ Meta_Control_underscore VoidSymbol
+
+keycode 9 = eight parenleft \
+ Delete VoidSymbol \
+ Meta_eight Meta_parenleft \
+ Meta_Delete VoidSymbol
+
+keycode 10 = nine parenright \
+ VoidSymbol VoidSymbol \
+ Meta_nine Meta_parenright \
+ VoidSymbol VoidSymbol
+
+keycode 11 = zero equal \
+ VoidSymbol VoidSymbol \
+ Meta_zero Meta_equal \
+ VoidSymbol VoidSymbol
+
+# ssharp has 8th bit already set, so don't define meta code for it!
+keycode 12 = ssharp question \
+ VoidSymbol VoidSymbol \
+ VoidSymbol Meta_question \
+ VoidSymbol VoidSymbol
+
+# F23 for making emacs C-x C-' easier
+keycode 13 = apostrophe grave \
+ F23 VoidSymbol \
+ Meta_apostrophe Meta_grave \
+ VoidSymbol VoidSymbol
+
+# Backspace key should send ^? code to distinguish from C-h
+keycode 14 = Delete Delete \
+ Delete Delete \
+ Meta_Delete Meta_Delete \
+
+# F21 for emacs C-TAB
+keycode 15 = Tab Tab \
+ F21 F21 \
+ Meta_Tab Meta_Tab \
+ VoidSymbol VoidSymbol
+
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +z
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+
+# without Alt or Control: umlaut
+# with Control: Control chars for Alt chars
+# with Alt: standard Atari alternate symbols
+# with Alt and Control: Meta's for Alt chars (Who knows a better way
+# to implement these?)
+keycode 26 = +udiaeresis +Udiaeresis \
+ nul Control_backslash \
+ at backslash \
+ Meta_at Meta_backslash
+
+keycode 27 = plus asterisk \
+ VoidSymbol VoidSymbol \
+ Meta_plus Meta_asterisk \
+ VoidSymbol VoidSymbol
+
+keycode 28 = Return Return \
+ Linefeed Linefeed \
+ Meta_Control_m Meta_Control_m \
+ Meta_Linefeed Meta_Linefeed
+
+keycode 29 = Control
+
+keycode 30 = +a
+keycode 31 = +s
+keycode 32 = +d
+keycode 33 = +f
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+
+# without Alt or Control: umlaut
+# with Control: Control chars for Alt chars
+# with Alt: standard Atari alternate symbols
+# with Alt and Control: Meta's for Alt chars (Who knows a better way
+# to implement these?)
+# Escape = Control_bracketleft
+# braceleft has no associated Control code
+keycode 39 = +odiaeresis +Odiaeresis \
+ Escape VoidSymbol \
+ bracketleft braceleft \
+ Meta_bracketleft Meta_braceleft
+
+# without Alt or Control: umlaut
+# with Control: Control chars for Alt chars
+# with Alt: standard Atari alternate symbols
+# with Alt and Control: Meta's for Alt chars (Who knows a better way
+# to implement these?)
+# braceright has no associated Control code
+keycode 40 = +adiaeresis +Adiaeresis \
+ Control_bracketright VoidSymbol \
+ bracketright braceright \
+ Meta_bracketright Meta_braceright
+
+# ^^ at unshifted, too, for convenience
+keycode 41 = numbersign asciicircum \
+ Control_asciicircum Control_asciicircum \
+ Meta_numbersign Meta_asciicircum \
+ Meta_Control_asciicircum Meta_Control_asciicircum
+
+keycode 42 = Shift
+
+keycode 43 = asciitilde bar \
+ VoidSymbol VoidSymbol \
+ Meta_asciitilde Meta_bar \
+ VoidSymbol VoidSymbol
+
+keycode 44 = +y
+keycode 45 = +x
+keycode 46 = +c
+keycode 47 = +v
+keycode 48 = +b
+keycode 49 = +n
+keycode 50 = +m
+
+keycode 51 = comma semicolon \
+ VoidSymbol VoidSymbol \
+ Meta_comma Meta_semicolon \
+ VoidSymbol VoidSymbol
+
+keycode 52 = period colon \
+ VoidSymbol VoidSymbol \
+ Meta_period Meta_colon \
+ VoidSymbol VoidSymbol
+
+# ^_ at unshifted, too, for convenience
+keycode 53 = minus underscore \
+ Control_underscore Control_underscore \
+ Meta_minus Meta_underscore \
+ Meta_Control_underscore Meta_Control_underscore
+
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+
+keycode 57 = space space \
+ nul nul \
+ Meta_space Meta_space \
+ Meta_nul Meta_nul
+
+keycode 58 = Caps_Lock
+
+# ctrl+Fx conventionally is the same as without
+keycode 59 = F1 F11 \
+ F1 F11 \
+ Console_1 Console_11 \
+ VoidSymbol VoidSymbol
+
+keycode 60 = F2 F12 \
+ F2 F12 \
+ Console_2 Console_12 \
+ VoidSymbol VoidSymbol
+
+keycode 61 = F3 F13 \
+ F3 F13 \
+ Console_3 Console_13 \
+ VoidSymbol VoidSymbol
+
+keycode 62 = F4 F14 \
+ F4 F14 \
+ Console_4 Console_14 \
+ VoidSymbol VoidSymbol
+
+keycode 63 = F5 F15 \
+ F5 F15 \
+ Console_5 Console_15 \
+ VoidSymbol VoidSymbol
+
+keycode 64 = F6 F16 \
+ F6 F16 \
+ Console_6 Console_16 \
+ VoidSymbol VoidSymbol
+
+keycode 65 = F7 F17 \
+ F7 F17 \
+ Console_7 Console_17 \
+ VoidSymbol VoidSymbol
+
+keycode 66 = F8 F18 \
+ F8 F18 \
+ Console_8 Console_18 \
+ VoidSymbol VoidSymbol
+
+keycode 67 = F9 F19 \
+ F9 F19 \
+ Console_9 Console_19 \
+ VoidSymbol VoidSymbol
+
+keycode 68 = F10 F20 \
+ F10 F20 \
+ Console_10 Console_20 \
+ VoidSymbol VoidSymbol
+
+keycode 69 =
+keycode 70 =
+
+keycode 71 = Home End \
+ Meta_less Meta_greater \
+ Meta_less Meta_greater \
+ Meta_less Meta_greater
+
+# C-up = M-C-a = beginning-of-defun
+keycode 72 = Up PageUp \
+ Meta_Control_a Up \
+ PageUp Meta_less \
+ Scroll_Backward Scroll_Backward
+
+keycode 73 =
+
+keycode 74 = KP_Subtract
+
+# C-left = M-a = backward-sentence/c-beginning-of-statement
+keycode 75 = Left Left \
+ Meta_a Decr_Console \
+ Meta_b Meta_B \
+ Left Left
+
+keycode 76 =
+
+# C-right = M-e = forward-sentence/c-end-of-statement
+keycode 77 = Right Right \
+ Meta_e Incr_Console \
+ Meta_f Meta_F \
+ Right Right
+
+keycode 78 = KP_Add
+
+keycode 79 =
+
+# C-down = M-C-e = end-of-defun
+keycode 80 = Down PageDown \
+ Meta_Control_e Down \
+ PageDown Meta_greater \
+ Scroll_Forward Scroll_Forward
+
+keycode 81 =
+
+# C-Ins = F24 -> overwrite-mode
+# M-C-Ins = F25 -> auto-fill-mode
+# S-M-C-Ins = F22 -> insert-header-defines
+keycode 82 = Insert Insert \
+ F24 Insert \
+ Insert Insert \
+ F25 F22
+
+# S-Del -> C-w -> kill-region
+# C-Del -> M-C-? -> backward-kill-word
+# S-C-Del -> M-C-k -> kill-sexp
+# M-Del -> M-d -> kill-word
+# C-A-D -> BOOT
+keycode 83 = Remove Control_w \
+ Meta_Delete Meta_Control_k \
+ Meta_d Meta_D \
+ Boot Meta_Control_d
+
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+
+keycode 96 = less greater \
+ VoidSymbol VoidSymbol \
+ Meta_less Meta_greater \
+ VoidSymbol VoidSymbol
+
+# Undo: (strange key: doesn't generate any keycode with Control, Alt get
+# unpressed magically...)
+keycode 97 = Macro Break
+
+# Help:
+keycode 98 = Help Show_Memory \
+ Show_Registers Last_Console \
+ Show_State VoidSymbol \
+ KeyboardSignal Num_Lock
+
+# is really '(' on keypad, on my keyboard PageUp
+# C-PageUp -> M-C-a = beginning-of-defun
+# S-C-PageUp = F27 -> C-x [ = backward-page
+# M-PageUp -> M-{ = backward-paragraph
+keycode 99 = PageUp Scroll_Backward \
+ Meta_Control_a F27 \
+ Meta_braceleft PageUp \
+ PageUp PageUp
+
+# is really ')' on keypad, on my keyboard PageDown
+# C-PageDown -> M-C-e = end-of-defun
+# S-C-PageDown = F28 -> C-x ] = forward-page
+# M-PageDown -> M-} = forward-paragraph
+keycode 100 = PageDown Scroll_Forward \
+ Meta_Control_e F28 \
+ Meta_braceleft PageDown \
+ PageDown PageDown
+
+keycode 101 = KP_Divide
+
+keycode 102 = KP_Multiply
+
+keycode 103 = KP_7 Home \
+ seven VoidSymbol \
+ Ascii_7 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 104 = KP_8 Up \
+ eight VoidSymbol \
+ Ascii_7 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 105 = KP_9 PageUp \
+ nine VoidSymbol \
+ Ascii_9 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 106 = KP_4 Left \
+ four VoidSymbol \
+ Ascii_4 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 107 = KP_5 VoidSymbol \
+ five VoidSymbol \
+ Ascii_5 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 108 = KP_6 Right \
+ six VoidSymbol \
+ Ascii_6 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 109 = KP_1 End \
+ one VoidSymbol \
+ Ascii_1 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 110 = KP_2 Down \
+ two VoidSymbol \
+ Ascii_2 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 111 = KP_3 PageDown \
+ three VoidSymbol \
+ Ascii_3 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 112 = KP_0 Insert \
+ zero VoidSymbol \
+ Ascii_0 VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 113 = KP_Period Remove \
+ period VoidSymbol \
+ VoidSymbol VoidSymbol \
+ VoidSymbol VoidSymbol
+
+keycode 114 = KP_Enter
+
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+
+string Help = "\033[P"
+
+# own extensions
+string F21 = "\033[31~"
+string F22 = "\033[32~"
+string F23 = "\033[33~"
+string F24 = "\033[34~"
+string F25 = "\033[35~"
+string F26 = "\033[36~"
+string F27 = "\030["
+string F28 = "\030]"
+
diff --git a/keymaps/atari/atari-de.kmap b/keymaps/atari/atari-de.kmap
new file mode 100644
index 0000000..a8cd02b
--- /dev/null
+++ b/keymaps/atari/atari-de.kmap
@@ -0,0 +1,267 @@
+#
+# Keyboard Mapping for Atari Keyboards, German Layout
+# ---------------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. All characters needed for
+# German are possible without deadkeys. If you want them, apply the following
+# replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# quotedbl -> dead_diaeresis
+# Ctrl-comma -> dead_cedilla
+#
+# There is no natural way to generate Meta codes for the characters [,],{,},
+# @ and \, that already need Alt to be pressed together with one of the
+# umlaut keys. I've choosen the following scheme, though it may not be
+# very intuitive in all cases (who knows a better solution??):
+# 1) The key with Alt (and maybe shift) gives the character engraved to the
+# right (i.e. [,@,\,...)
+# 2) The key with Control (and maybe shift) gives the control character
+# corresponding the the character engraved to the _right_, if one exists.
+# This happens because the umlaut characters have no corresponding control
+# character anyway.
+# 3) The key with Control and Alt (and maybe shift) gives the Meta equivalent
+# (with 8. bit set or prepended by ESC) of the character engraved to the
+# right. Again, Meta's of the umlaut characters do not exist, since they
+# already have their 8. bit set.
+# One could argue that it would be more consistent to require Alt and Control
+# to be pressed to get the control characters (case 2). That's true, but in
+# my opinion, it is even more inconsistent to generate Meta codes without the
+# Alt key pressed (but just with Control). And it would be very bad, if the
+# Meta versions of [,{,@,... could not be typed at all!
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+# nul = Control_at
+keycode 3 = two quotedbl nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three section Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six ampersand Control_asciicircum VoidSymbol Meta_six Meta_ampersand Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven slash Control_underscore VoidSymbol Meta_seven Meta_slash Meta_Control_underscore VoidSymbol
+keycode 9 = eight parenleft Delete VoidSymbol Meta_eight Meta_parenleft Meta_Delete VoidSymbol
+keycode 10 = nine parenright VoidSymbol VoidSymbol Meta_nine Meta_parenright VoidSymbol VoidSymbol
+keycode 11 = zero equal VoidSymbol VoidSymbol Meta_zero Meta_equal VoidSymbol VoidSymbol
+keycode 12 = ssharp question VoidSymbol VoidSymbol Meta_question Meta_question VoidSymbol VoidSymbol
+keycode 13 = apostrophe grave VoidSymbol VoidSymbol Meta_apostrophe Meta_grave VoidSymbol VoidSymbol
+keycode 14 = Delete Delete Delete Delete Meta_Delete Meta_Delete Meta_Delete Meta_Delete
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +z
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = +udiaeresis +Udiaeresis nul Control_backslash at backslash Meta_at Meta_backslash
+keycode 27 = plus asterisk Control_bracketright VoidSymbol Meta_plus Meta_asterisk Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+# Escape = Control-[
+keycode 39 = +odiaeresis +Odiaeresis Escape VoidSymbol bracketleft braceleft Meta_bracketleft Meta_braceleft
+keycode 40 = +adiaeresis +Adiaeresis Control_bracketright VoidSymbol bracketright braceright Meta_bracketright Meta_braceright
+keycode 41 = numbersign asciicircum Control_asciicircum Control_asciicircum Meta_numbersign Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum
+keycode 42 = Shift
+keycode 43 = asciitilde bar VoidSymbol VoidSymbol Meta_asciitilde Meta_bar VoidSymbol VoidSymbol
+keycode 44 = +y
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma semicolon VoidSymbol VoidSymbol Meta_comma Meta_semicolon VoidSymbol VoidSymbol
+keycode 52 = period colon VoidSymbol VoidSymbol Meta_period Meta_colon VoidSymbol VoidSymbol
+keycode 53 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+# ClrHome
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = less greater VoidSymbol VoidSymbol Meta_less Meta_greater VoidSymbol VoidSymbol
+# F246 = Undo
+keycode 97 = F246 Break F246 F246 Last_Console F246 Spawn_Console F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-fr.kmap b/keymaps/atari/atari-fr.kmap
new file mode 100644
index 0000000..f16dea9
--- /dev/null
+++ b/keymaps/atari/atari-fr.kmap
@@ -0,0 +1,269 @@
+#
+# Keyboard Mapping for Atari Keyboards, French Layout
+# ---------------------------------------------------
+#
+# Copyright 2004 Bill Allombert
+# Based on:
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. All characters needed for
+# German are possible without deadkeys. If you want them, apply the following
+# replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# quotedbl -> dead_diaeresis
+# Ctrl-comma -> dead_cedilla
+#
+# There is no natural way to generate Meta codes for the characters [,],{,},
+# @ and \, that already need Alt to be pressed together with one of the
+# umlaut keys. I've choosen the following scheme, though it may not be
+# very intuitive in all cases (who knows a better solution??):
+# 1) The key with Alt (and maybe shift) gives the character engraved to the
+# right (i.e. [,@,\,...)
+# 2) The key with Control (and maybe shift) gives the control character
+# corresponding the the character engraved to the _right_, if one exists.
+# This happens because the umlaut characters have no corresponding control
+# character anyway.
+# 3) The key with Control and Alt (and maybe shift) gives the Meta equivalent
+# (with 8. bit set or prepended by ESC) of the character engraved to the
+# right. Again, Meta's of the umlaut characters do not exist, since they
+# already have their 8. bit set.
+# One could argue that it would be more consistent to require Alt and Control
+# to be pressed to get the control characters (case 2). That's true, but in
+# my opinion, it is even more inconsistent to generate Meta codes without the
+# Alt key pressed (but just with Control). And it would be very bad, if the
+# Meta versions of [,{,@,... could not be typed at all!
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = ampersand one VoidSymbol VoidSymbol Meta_ampersand Meta_one VoidSymbol VoidSymbol
+keycode 3 = eacute two nul VoidSymbol Meta_eacute Meta_two Meta_nul VoidSymbol
+keycode 4 = quotedbl three Escape VoidSymbol Meta_quotedbl Meta_three Meta_Escape VoidSymbol
+
+keycode 5 = apostrophe four Control_backslash VoidSymbol Meta_apostrophe Meta_four Meta_Control_backslash VoidSymbol
+keycode 6 = parenleft five Control_bracketright VoidSymbol Meta_parenleft Meta_five Meta_Control_bracketright VoidSymbol
+keycode 7 = section six Control_asciicircum VoidSymbol Meta_section Meta_six Meta_Control_asciicircum VoidSymbol
+keycode 8 = egrave seven Control_underscore VoidSymbol Meta_egrave Meta_seven Meta_Control_underscore VoidSymbol
+keycode 9 = exclam eight Delete VoidSymbol Meta_exclam Meta_eight Meta_Delete VoidSymbol
+keycode 10 = ccedilla nine VoidSymbol VoidSymbol Meta_ccedilla Meta_nine VoidSymbol VoidSymbol
+keycode 11 = agrave zero VoidSymbol VoidSymbol Meta_agrave Meta_zero VoidSymbol VoidSymbol
+keycode 12 = parenright degree VoidSymbol VoidSymbol Meta_parenright Meta_degree VoidSymbol VoidSymbol
+keycode 13 = minus underscore VoidSymbol VoidSymbol Meta_minus Meta_underscore VoidSymbol VoidSymbol
+keycode 14 = Delete Delete Delete Delete Meta_Delete Meta_Delete Meta_Delete Meta_Delete
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +a
+keycode 17 = +z
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = dead_circumflex dead_diaeresis Escape VoidSymbol bracketleft braceleft Meta_Escape VoidSymbol
+keycode 27 = dollar asterisk Control_bracketright VoidSymbol bracketright braceright Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +q
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+# Escape = Control-[
+keycode 39 = +m
+keycode 40 = ugrave percent Control_backslash Control_backslash backslash Meta_percent VoidSymbol VoidSymbol
+keycode 41 = grave sterling Control_asciicircum Control_asciicircum Meta_grave Meta_sterling Meta_Control_asciicircum Meta_Control_asciicircum
+keycode 42 = Shift
+keycode 43 = numbersign bar VoidSymbol VoidSymbol at asciitilde VoidSymbol VoidSymbol
+keycode 44 = +w
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = comma question VoidSymbol VoidSymbol Meta_comma Meta_question VoidSymbol VoidSymbol
+keycode 51 = semicolon period VoidSymbol VoidSymbol Meta_semicolon Meta_period VoidSymbol VoidSymbol
+keycode 52 = colon slash VoidSymbol VoidSymbol Meta_colon Meta_slash VoidSymbol VoidSymbol
+keycode 53 = equal plus Control_underscore Control_underscore Meta_equal Meta_plus Meta_Control_underscore Meta_Control_underscore
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+# ClrHome
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = less greater VoidSymbol VoidSymbol Meta_less Meta_greater VoidSymbol VoidSymbol
+# F246 = Undo
+keycode 97 = F246 Break F246 F246 Last_Console F246 Spawn_Console F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-se-deadkeys.kmap b/keymaps/atari/atari-se-deadkeys.kmap
new file mode 100644
index 0000000..07e53df
--- /dev/null
+++ b/keymaps/atari/atari-se-deadkeys.kmap
@@ -0,0 +1,237 @@
+#
+# Keyboard Mapping for Atari Keyboards, Swedish Layout
+# ----------------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+# Credits to Elias Mårtenson (elias@omicron.se) for writing the
+# original Swedish map, from which I got the specifics. His comments:
+# I tried to make this keymap look as much like the swedish
+# TOS-keymap as possible. There are some problems with the
+# meta-keycodes though, there aren't enough keys for them.
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two dead_diaeresis nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six ampersand Control_asciicircum VoidSymbol Meta_six Meta_ampersand Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven slash Control_underscore VoidSymbol Meta_seven Meta_slash Meta_Control_underscore VoidSymbol
+keycode 9 = eight parenleft Delete VoidSymbol Meta_eight Meta_parenleft Meta_Delete VoidSymbol
+keycode 10 = nine parenright VoidSymbol VoidSymbol Meta_nine Meta_parenright VoidSymbol VoidSymbol
+keycode 11 = zero equal VoidSymbol VoidSymbol Meta_zero Meta_equal VoidSymbol VoidSymbol
+keycode 12 = plus question nul VoidSymbol Meta_plus Meta_question Meta_nul VoidSymbol
+keycode 13 = +eacute +Eacute VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = +aring +Aring Escape VoidSymbol bracketleft braceleft Meta_bracketleft Meta_braceleft
+keycode 27 = +udiaeresis +Udiaeresis Control_bracketright VoidSymbol bracketright braceright Meta_bracketright Meta_braceright
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = +odiaeresis +Odiaeresis VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 40 = +adiaeresis +Adiaeresis Control_g VoidSymbol dead_grave dead_tilde Meta_Control_g VoidSymbol
+keycode 41 = dead_acute asterisk nul VoidSymbol Meta_apostrophe Meta_asterisk Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = backslash bar Control_backslash VoidSymbol dead_circumflex at Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma semicolon dead_cedilla VoidSymbol Meta_comma Meta_semicolon VoidSymbol VoidSymbol
+keycode 52 = period colon VoidSymbol VoidSymbol Meta_period Meta_colon VoidSymbol VoidSymbol
+keycode 53 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = less greater VoidSymbol VoidSymbol Meta_less Meta_greater VoidSymbol VoidSymbol
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-se.kmap b/keymaps/atari/atari-se.kmap
new file mode 100644
index 0000000..70f4264
--- /dev/null
+++ b/keymaps/atari/atari-se.kmap
@@ -0,0 +1,247 @@
+#
+# Keyboard Mapping for Atari Keyboards, Swedish Layout
+# ----------------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+# Credits to Elias Mårtenson (elias@omicron.se) for writing the
+# original Swedish map, from which I got the specifics. His comments:
+# I tried to make this keymap look as much like the swedish
+# TOS-keymap as possible. There are some problems with the
+# meta-keycodes though, there aren't enough keys for them.
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. If you want them, apply the
+# following replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# quotedbl -> dead_diaeresis
+# Ctrl-comma -> dead_cedilla
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two quotedbl nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six ampersand Control_asciicircum VoidSymbol Meta_six Meta_ampersand Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven slash Control_underscore VoidSymbol Meta_seven Meta_slash Meta_Control_underscore VoidSymbol
+keycode 9 = eight parenleft Delete VoidSymbol Meta_eight Meta_parenleft Meta_Delete VoidSymbol
+keycode 10 = nine parenright VoidSymbol VoidSymbol Meta_nine Meta_parenright VoidSymbol VoidSymbol
+keycode 11 = zero equal VoidSymbol VoidSymbol Meta_zero Meta_equal VoidSymbol VoidSymbol
+keycode 12 = plus question nul VoidSymbol Meta_plus Meta_question Meta_nul VoidSymbol
+keycode 13 = +eacute +Eacute VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = +aring +Aring Escape VoidSymbol bracketleft braceleft Meta_bracketleft Meta_braceleft
+keycode 27 = +udiaeresis +Udiaeresis Control_bracketright VoidSymbol bracketright braceright Meta_bracketright Meta_braceright
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = +odiaeresis +Odiaeresis VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 40 = +adiaeresis +Adiaeresis Control_g VoidSymbol grave asciitilde Meta_Control_g VoidSymbol
+keycode 41 = apostrophe asterisk nul VoidSymbol Meta_apostrophe Meta_asterisk Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = backslash bar Control_backslash VoidSymbol asciicircum at Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma semicolon VoidSymbol VoidSymbol Meta_comma Meta_semicolon VoidSymbol VoidSymbol
+keycode 52 = period colon VoidSymbol VoidSymbol Meta_period Meta_colon VoidSymbol VoidSymbol
+keycode 53 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = less greater VoidSymbol VoidSymbol Meta_less Meta_greater VoidSymbol VoidSymbol
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-uk-deadkeys.kmap b/keymaps/atari/atari-uk-deadkeys.kmap
new file mode 100644
index 0000000..f6a26ff
--- /dev/null
+++ b/keymaps/atari/atari-uk-deadkeys.kmap
@@ -0,0 +1,234 @@
+#
+# Keyboard Mapping for Atari Keyboards, UK Layout
+# -----------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+# Credits to Keith Tomlin (tomlin@spods.dcs.kcl.ac.uk) for writing the
+# original UK map, from which I got the UK specifics.
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two dead_diaeresis nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six dead_circumflex Control_asciicircum VoidSymbol Meta_six Meta_asciicircum Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven ampersand Control_underscore VoidSymbol Meta_seven Meta_ampersand Meta_Control_underscore VoidSymbol
+keycode 9 = eight asterisk Delete VoidSymbol Meta_eight Meta_asterisk Meta_Delete VoidSymbol
+keycode 10 = nine parenleft VoidSymbol VoidSymbol Meta_nine Meta_parenleft VoidSymbol VoidSymbol
+keycode 11 = zero parenright VoidSymbol VoidSymbol Meta_zero Meta_parenright VoidSymbol VoidSymbol
+keycode 12 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 13 = equal plus VoidSymbol VoidSymbol Meta_equal Meta_plus VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = bracketleft braceleft Escape VoidSymbol Meta_bracketleft Meta_braceleft Meta_Escape VoidSymbol
+keycode 27 = bracketright braceright Control_bracketright VoidSymbol Meta_bracketright Meta_braceright Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = semicolon colon VoidSymbol VoidSymbol Meta_semicolon Meta_colon VoidSymbol VoidSymbol
+keycode 40 = dead_acute at Control_g VoidSymbol Meta_apostrophe Meta_at Meta_Control_g VoidSymbol
+keycode 41 = dead_grave bar nul VoidSymbol Meta_grave Meta_bar Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = numbersign dead_tilde Control_backslash VoidSymbol Meta_numbersign Meta_asciitilde Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma less dead_cedilla VoidSymbol Meta_comma Meta_less VoidSymbol VoidSymbol
+keycode 52 = period greater VoidSymbol VoidSymbol Meta_period Meta_greater VoidSymbol VoidSymbol
+keycode 53 = slash question Delete Delete Meta_slash Meta_question Meta_Delete Meta_Delete
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 =
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-uk.kmap b/keymaps/atari/atari-uk.kmap
new file mode 100644
index 0000000..a7abf0f
--- /dev/null
+++ b/keymaps/atari/atari-uk.kmap
@@ -0,0 +1,244 @@
+#
+# Keyboard Mapping for Atari Keyboards, UK Layout
+# -----------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+# Credits to Keith Tomlin (tomlin@spods.dcs.kcl.ac.uk) for writing the
+# original UK map, from which I got the UK specifics.
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. If you want them, apply the
+# following replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# quotedbl -> dead_diaeresis
+# Ctrl-comma -> dead_cedilla
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two quotedbl nul VoidSymbol Meta_two Meta_quotedbl Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six asciicircum Control_asciicircum VoidSymbol Meta_six Meta_asciicircum Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven ampersand Control_underscore VoidSymbol Meta_seven Meta_ampersand Meta_Control_underscore VoidSymbol
+keycode 9 = eight asterisk Delete VoidSymbol Meta_eight Meta_asterisk Meta_Delete VoidSymbol
+keycode 10 = nine parenleft VoidSymbol VoidSymbol Meta_nine Meta_parenleft VoidSymbol VoidSymbol
+keycode 11 = zero parenright VoidSymbol VoidSymbol Meta_zero Meta_parenright VoidSymbol VoidSymbol
+keycode 12 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 13 = equal plus VoidSymbol VoidSymbol Meta_equal Meta_plus VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = bracketleft braceleft Escape VoidSymbol Meta_bracketleft Meta_braceleft Meta_Escape VoidSymbol
+keycode 27 = bracketright braceright Control_bracketright VoidSymbol Meta_bracketright Meta_braceright Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = semicolon colon VoidSymbol VoidSymbol Meta_semicolon Meta_colon VoidSymbol VoidSymbol
+keycode 40 = apostrophe at Control_g VoidSymbol Meta_apostrophe Meta_at Meta_Control_g VoidSymbol
+keycode 41 = grave bar nul VoidSymbol Meta_grave Meta_bar Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = numbersign asciitilde Control_backslash VoidSymbol Meta_numbersign Meta_asciitilde Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma less VoidSymbol VoidSymbol Meta_comma Meta_less VoidSymbol VoidSymbol
+keycode 52 = period greater VoidSymbol VoidSymbol Meta_period Meta_greater VoidSymbol VoidSymbol
+keycode 53 = slash question Delete Delete Meta_slash Meta_question Meta_Delete Meta_Delete
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 =
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-us-deadkeys.kmap b/keymaps/atari/atari-us-deadkeys.kmap
new file mode 100644
index 0000000..1a9dc46
--- /dev/null
+++ b/keymaps/atari/atari-us-deadkeys.kmap
@@ -0,0 +1,232 @@
+#
+# Keyboard Mapping for Atari Keyboards, US Layout
+# -----------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two at nul VoidSymbol Meta_two Meta_at Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six dead_acute Control_asciicircum VoidSymbol Meta_six Meta_asciicircum Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven ampersand Control_underscore VoidSymbol Meta_seven Meta_ampersand Meta_Control_underscore VoidSymbol
+keycode 9 = eight asterisk Delete VoidSymbol Meta_eight Meta_asterisk Meta_Delete VoidSymbol
+keycode 10 = nine parenleft VoidSymbol VoidSymbol Meta_nine Meta_parenleft VoidSymbol VoidSymbol
+keycode 11 = zero parenright VoidSymbol VoidSymbol Meta_zero Meta_parenright VoidSymbol VoidSymbol
+keycode 12 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 13 = equal plus VoidSymbol VoidSymbol Meta_equal Meta_plus VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = bracketleft braceleft Escape VoidSymbol Meta_bracketleft Meta_braceleft Meta_Escape VoidSymbol
+keycode 27 = bracketright braceright Control_bracketright VoidSymbol Meta_bracketright Meta_braceright Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = semicolon colon VoidSymbol VoidSymbol Meta_semicolon Meta_colon VoidSymbol VoidSymbol
+keycode 40 = dead_acute dead_diaeresis Control_g VoidSymbol Meta_apostrophe Meta_quotedbl Meta_Control_g VoidSymbol
+keycode 41 = dead_grave dead_tilde nul VoidSymbol Meta_grave Meta_asciitilde Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = backslash bar Control_backslash VoidSymbol Meta_backslash Meta_bar Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma less dead_cedilla VoidSymbol Meta_comma Meta_less VoidSymbol VoidSymbol
+keycode 52 = period greater VoidSymbol VoidSymbol Meta_period Meta_greater VoidSymbol VoidSymbol
+keycode 53 = slash question Delete Delete Meta_slash Meta_question Meta_Delete Meta_Delete
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 =
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
diff --git a/keymaps/atari/atari-us.kmap b/keymaps/atari/atari-us.kmap
new file mode 100644
index 0000000..3939c73
--- /dev/null
+++ b/keymaps/atari/atari-us.kmap
@@ -0,0 +1,242 @@
+#
+# Keyboard Mapping for Atari Keyboards, US Layout
+# -----------------------------------------------
+#
+# Copyright 1994 Roman Hodek
+# Updated August 1998 Roman Hodek
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file README.legal in the main directory of this archive
+# for more details.
+#
+# Notes:
+# ------
+#
+# This keymap does not use an AltGr key, since the Atari keyboard
+# doesn't have such a key. Most times, the Alt key takes over the role
+# of AltGr.
+#
+# Some mappings you might want to know about:
+# - ClrHome is Home (aka Find)
+# - Shift+ClrHome is End (aka Select)
+# - Shift+Up/Down are Page Up/Down (aka Prior/Next)
+# - Alt + the numbers of the keypad lets you enter a character by its
+# decimal code
+# - Shift+Control + one of a,b,c,d,e,f or a number on the keypad lets
+# you enter the hex code of a character
+# - Alt+CapsLock is NumLock
+# - You can enter F11..F20 by pressing Shift+F1..F10
+# - Console (vt) switching:
+# Alt+F1..F10 switch to console 1..10
+# Shift+Alt+F1..F10 switch to console 11..20
+# Control+Alt+F1..F10 switch to console 21..30
+# Shift+Control_Alt+F1..F10 switch to console 31..40
+# Alt+Left/Right switches to previous/next console
+# Alt+Undo switches to last console
+# Alt+Control+Undo sends a keyboard request to the init process;
+# the default action is to spawn a new console
+# - Kernel information:
+# Alt+Help, Shift+Alt+Help, Control+Alt+Help: system status
+# Control+Help: registers
+# Shift+Help: memory info
+# (Note: with a 2.1 kernel and MAGIC_SYSRQ enabled, Alt+Help is SysRq)
+# - Shift+Undo sends a signal to the current foreground process (same as ^C)
+# - Alt+Up/Down scroll the console up/down (if implemented in the kernel)
+# - Alt+Ins stops/starts output (Scroll_Lock function, same as ^S/^Q)
+# - Control+Alt+Delete reboots the system, as usual (by sending a request to
+# the init process)
+#
+# Dead keys (i.e. pressing ^ and e gives œ, an e with hat) are not
+# used, because I consider this annoying. If you want them, apply the
+# following replacements:
+# grave -> dead_grave
+# apostrophe -> dead_acute
+# asciicircum -> dead_circumflex
+# asciitilde -> dead_tilde
+# quotedbl -> dead_diaeresis
+# Ctrl-comma -> dead_cedilla
+#
+# I've kept the convention that the digit keys 2..8 on the main keyboard
+# generate the control characters not corresponding to letters (^@, ^[ .. ^_
+# and ^?=DEL) when pressed with Control. It is convention, too, that the shift
+# key must not be pressed for this effect. Also, Meta+Control plus these keys
+# give the Metas of these controls.
+#
+# The current loadkeys (0.96) doesn't know names for KP_Parenleft (0x0312) and
+# KP_Parenright, so I had to write them down as hex codes :-(
+#
+
+charset "iso-8859-1"
+keymaps 0-1,4-5,8-9,12-13
+strings as usual
+compose as usual for "iso-8859-1"
+
+# plain Shift Control Shift+Control Alt Shift+Alt Control+Alt Shift+Ctrl+Alt
+keycode 1 = Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = one exclam VoidSymbol VoidSymbol Meta_one Meta_exclam VoidSymbol VoidSymbol
+keycode 3 = two at nul VoidSymbol Meta_two Meta_at Meta_nul VoidSymbol
+keycode 4 = three numbersign Escape VoidSymbol Meta_three Meta_numbersign Meta_Escape VoidSymbol
+keycode 5 = four dollar Control_backslash VoidSymbol Meta_four Meta_dollar Meta_Control_backslash VoidSymbol
+keycode 6 = five percent Control_bracketright VoidSymbol Meta_five Meta_percent Meta_Control_bracketright VoidSymbol
+keycode 7 = six asciicircum Control_asciicircum VoidSymbol Meta_six Meta_asciicircum Meta_Control_asciicircum VoidSymbol
+keycode 8 = seven ampersand Control_underscore VoidSymbol Meta_seven Meta_ampersand Meta_Control_underscore VoidSymbol
+keycode 9 = eight asterisk Delete VoidSymbol Meta_eight Meta_asterisk Meta_Delete VoidSymbol
+keycode 10 = nine parenleft VoidSymbol VoidSymbol Meta_nine Meta_parenleft VoidSymbol VoidSymbol
+keycode 11 = zero parenright VoidSymbol VoidSymbol Meta_zero Meta_parenright VoidSymbol VoidSymbol
+keycode 12 = minus underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 13 = equal plus VoidSymbol VoidSymbol Meta_equal Meta_plus VoidSymbol VoidSymbol
+keycode 14 = BackSpace BackSpace BackSpace BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +q
+keycode 17 = +w
+keycode 18 = +e
+ shift control keycode 18 = Hex_E
+keycode 19 = +r
+keycode 20 = +t
+keycode 21 = +y
+keycode 22 = +u
+keycode 23 = +i
+keycode 24 = +o
+keycode 25 = +p
+keycode 26 = bracketleft braceleft Escape VoidSymbol Meta_bracketleft Meta_braceleft Meta_Escape VoidSymbol
+keycode 27 = bracketright braceright Control_bracketright VoidSymbol Meta_bracketright Meta_braceright Meta_Control_bracketright VoidSymbol
+keycode 28 = Return Return Return Return Meta_Control_m Meta_Control_m Return Return
+keycode 29 = Control
+keycode 30 = +a
+ shift control keycode 30 = Hex_A
+keycode 31 = +s
+keycode 32 = +d
+ shift control keycode 32 = Hex_D
+keycode 33 = +f
+ shift control keycode 33 = Hex_F
+keycode 34 = +g
+keycode 35 = +h
+keycode 36 = +j
+keycode 37 = +k
+keycode 38 = +l
+keycode 39 = semicolon colon VoidSymbol VoidSymbol Meta_semicolon Meta_colon VoidSymbol VoidSymbol
+keycode 40 = apostrophe quotedbl Control_g VoidSymbol Meta_apostrophe Meta_quotedbl Meta_Control_g VoidSymbol
+keycode 41 = grave asciitilde nul VoidSymbol Meta_grave Meta_asciitilde Meta_nul VoidSymbol
+keycode 42 = Shift
+keycode 43 = backslash bar Control_backslash VoidSymbol Meta_backslash Meta_bar Meta_Control_backslash VoidSymbol
+keycode 44 = +z
+keycode 45 = +x
+keycode 46 = +c
+ shift control keycode 46 = Hex_C
+keycode 47 = +v
+keycode 48 = +b
+ shift control keycode 48 = Hex_B
+keycode 49 = +n
+keycode 50 = +m
+keycode 51 = comma less VoidSymbol VoidSymbol Meta_comma Meta_less VoidSymbol VoidSymbol
+keycode 52 = period greater VoidSymbol VoidSymbol Meta_period Meta_greater VoidSymbol VoidSymbol
+keycode 53 = slash question Delete Delete Meta_slash Meta_question Meta_Delete Meta_Delete
+keycode 54 = Shift
+keycode 55 =
+keycode 56 = Alt
+keycode 57 = space space nul nul Meta_space Meta_space Meta_nul Meta_nul
+keycode 58 = Caps_Lock
+ alt keycode 58 = Num_Lock
+keycode 59 = F1 F11 F1 F1 Console_1 Console_11 Console_21 Console_31
+keycode 60 = F2 F12 F2 F2 Console_2 Console_12 Console_22 Console_32
+keycode 61 = F3 F13 F3 F3 Console_3 Console_13 Console_23 Console_33
+keycode 62 = F4 F14 F4 F4 Console_4 Console_14 Console_24 Console_34
+keycode 63 = F5 F15 F5 F5 Console_5 Console_15 Console_25 Console_35
+keycode 64 = F6 F16 F6 F6 Console_6 Console_16 Console_26 Console_36
+keycode 65 = F7 F17 F7 F7 Console_7 Console_17 Console_27 Console_37
+keycode 66 = F8 F18 F8 F8 Console_8 Console_18 Console_28 Console_38
+keycode 67 = F9 F19 F9 F9 Console_9 Console_19 Console_29 Console_39
+keycode 68 = F10 F20 F10 F10 Console_10 Console_20 Console_30 Console_40
+keycode 69 =
+keycode 70 =
+keycode 71 = Find Select Find Select Find Select Find Select
+keycode 72 = Up Prior Up Prior Scroll_Backward Prior Up Prior
+keycode 73 =
+keycode 74 = KP_Subtract
+keycode 75 = Left
+ alt keycode 75 = Decr_Console
+keycode 76 =
+keycode 77 = Right
+ alt keycode 77 = Incr_Console
+keycode 78 = KP_Add
+keycode 79 =
+keycode 80 = Down Next Down Next Scroll_Forward Next Down Next
+keycode 81 =
+keycode 82 = Insert
+ alt keycode 82 = Scroll_Lock
+keycode 83 = Remove Remove Remove Remove Meta_Delete Meta_Delete Boot Meta_Delete
+keycode 84 =
+keycode 85 =
+keycode 86 =
+keycode 87 =
+keycode 88 =
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 =
+keycode 97 = F246 Break F246 F246 Last_Console F246 F246 F246
+keycode 98 = Help Show_Memory Show_Registers VoidSymbol Show_State Show_State Show_State VoidSymbol
+keycode 99 = 0x0312 # K_PPARENL; loadkeys has no symbol for this :-(
+keycode 100 = 0x0313 # K_PPARENR
+keycode 101 = KP_Divide
+keycode 102 = KP_Multiply
+keycode 103 = KP_7
+ shift keycode 103 = Find
+ shift control keycode 103 = Hex_7
+ alt keycode 103 = Ascii_7
+keycode 104 = KP_8
+ shift keycode 104 = Up
+ shift control keycode 104 = Hex_8
+ alt keycode 104 = Ascii_8
+keycode 105 = KP_9
+ shift keycode 105 = Prior
+ shift control keycode 105 = Hex_9
+ alt keycode 105 = Ascii_9
+keycode 106 = KP_4
+ shift keycode 106 = Right
+ shift control keycode 106 = Hex_4
+ alt keycode 106 = Ascii_4
+keycode 107 = KP_5
+ shift control keycode 107 = Hex_5
+ alt keycode 107 = Ascii_5
+keycode 108 = KP_6
+ shift keycode 108 = Left
+ shift control keycode 108 = Hex_6
+ alt keycode 108 = Ascii_6
+keycode 109 = KP_1
+ shift keycode 109 = Select
+ shift control keycode 109 = Hex_1
+ alt keycode 109 = Ascii_1
+keycode 110 = KP_2
+ shift keycode 110 = Down
+ shift control keycode 110 = Hex_2
+ alt keycode 110 = Ascii_2
+keycode 111 = KP_3
+ shift keycode 111 = Next
+ shift control keycode 111 = Hex_3
+ alt keycode 111 = Ascii_3
+keycode 112 = KP_0
+ shift keycode 112 = Insert
+ shift control keycode 112 = Hex_0
+ alt keycode 112 = Ascii_0
+keycode 113 = KP_Period
+ shift keycode 113 = Remove
+ alt control keycode 113 = Boot
+keycode 114 = KP_Enter
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =