summaryrefslogtreecommitdiff
path: root/sbin/kbd/tables/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/kbd/tables/sparc')
-rw-r--r--sbin/kbd/tables/sparc/de163
-rw-r--r--sbin/kbd/tables/sparc/de_5163
-rw-r--r--sbin/kbd/tables/sparc/dk163
-rw-r--r--sbin/kbd/tables/sparc/dk_5163
-rw-r--r--sbin/kbd/tables/sparc/nl163
-rw-r--r--sbin/kbd/tables/sparc/nl_5163
-rw-r--r--sbin/kbd/tables/sparc/no163
-rw-r--r--sbin/kbd/tables/sparc/no_5163
-rw-r--r--sbin/kbd/tables/sparc/se_5163
-rw-r--r--sbin/kbd/tables/sparc/se_fi163
-rw-r--r--sbin/kbd/tables/sparc/uk163
-rw-r--r--sbin/kbd/tables/sparc/uk_5163
-rw-r--r--sbin/kbd/tables/sparc/us163
-rw-r--r--sbin/kbd/tables/sparc/us_5163
14 files changed, 2282 insertions, 0 deletions
diff --git a/sbin/kbd/tables/sparc/de b/sbin/kbd/tables/sparc/de
new file mode 100644
index 00000000000..ffa9408d5f3
--- /dev/null
+++ b/sbin/kbd/tables/sparc/de
@@ -0,0 +1,163 @@
+/* $OpenBSD: de,v 1.1 1999/07/18 17:21:11 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "de", "germany", "type_4_layout_05" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALT)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ']', '}', C8('»'),'\035', /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALTGRAPH)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', C8('²'),'2', /* 31 */
+ '3', C8('§'),C8('³'),'3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', C8('°'),'7', /* 36 */
+ '8', '(', '`', '8', /* 37 */
+ '9', ')', '\'', '9', /* 38 */
+ '0', '=', '|', '0', /* 39 */
+ C8('ß'),'?', '\\', '\034', /* 40 */
+ GR(4), GR(5), NOP, GR(4), /* 41 */
+ '#', '^', '@', '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'z', 'Z', NOP, '\032', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('ü'),C8('Ü'),NOP, C8('ü'), /* 64 */
+ '+', '*', '~', '+', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(CAPSLOCK)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ö'),C8('Ö'),NOP, C8('ö'), /* 86 */
+ C8('ä'),C8('Ä'),NOP, C8('ä'), /* 87 */
+ '[', '{', C8('«'),'\033', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'y', 'Y', NOP, '\031', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', C8('µ'),'\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(LEFTCTRL)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ '<', '>', NOP, '<', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/de_5 b/sbin/kbd/tables/sparc/de_5
new file mode 100644
index 00000000000..4c6b16739c1
--- /dev/null
+++ b/sbin/kbd/tables/sparc/de_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: de_5,v 1.1 1999/07/18 17:21:11 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "de_5", "germany_5", "type_4_layout_25" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', C8('²'),'\000', /* 31 */
+ '3', C8('§'),C8('³'),'3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ C8('ß'),'?', '\\', '\034', /* 40 */
+ GR(4), GR(5), NOP, GR(4), /* 41 */
+ '^', C8('°'),NOP, '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', '@', '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'z', 'Z', NOP, '\032', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('ü'),C8('Ü'),NOP, C8('ü'), /* 64 */
+ '+', '*', '~', '+', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ö'),C8('Ö'),NOP, C8('ö'), /* 86 */
+ C8('ä'),C8('Ä'),NOP, C8('ä'), /* 87 */
+ '#', '\'', '`', '#', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'y', 'Y', NOP, '\031', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', C8('µ'),'\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ '<', '>', '|', '<', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/dk b/sbin/kbd/tables/sparc/dk
new file mode 100644
index 00000000000..448395fe2d6
--- /dev/null
+++ b/sbin/kbd/tables/sparc/dk
@@ -0,0 +1,163 @@
+/* $OpenBSD: dk,v 1.1 1999/07/18 17:21:11 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "dk", "denmark", "type_4_layout_04" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(COMPOSE) /* 13 */
+ ALL(TF(6)) /* 14 */
+ '~', '^', NOP, '\036', /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', NOP, '\037', /* 40 */
+ GR(4), GR(5), '|', GR(4), /* 41 */
+ '\'', '*', '`', '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), GR(1), GR(2), GR(0), /* 65 */
+ ALL('\177') /* 66 */
+ ALL(SK(ALTGRAPH)) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(CAPSLOCK)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('æ'),C8('Æ'),NOP, C8('æ'), /* 86 */
+ C8('ø'),C8('Ø'),NOP, C8('ø'), /* 87 */
+ C8('½'),C8('§'),NOP, C8('½'), /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(LEFTCTRL)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ '<', '>', '\\', '\034', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/dk_5 b/sbin/kbd/tables/sparc/dk_5
new file mode 100644
index 00000000000..dfe5bc7142b
--- /dev/null
+++ b/sbin/kbd/tables/sparc/dk_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: dk_5,v 1.1 1999/07/18 17:21:11 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "dk_5", "denmark_5", "type_4_layout_24" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', '~', '5', /* 34 */
+ '6', '&', '^', '\036', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', NOP, '\037', /* 40 */
+ GR(4), GR(5), '|', GR(4), /* 41 */
+ C8('½'),C8('§'),NOP, C8('½'), /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), GR(1), GR(2), GR(0), /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('æ'),C8('Æ'),NOP, C8('æ'), /* 86 */
+ C8('ø'),C8('Ø'),NOP, C8('ø'), /* 87 */
+ '\'', '*', '`', '\'', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ '<', '>', '\\', '\034', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/nl b/sbin/kbd/tables/sparc/nl
new file mode 100644
index 00000000000..4ab272f8328
--- /dev/null
+++ b/sbin/kbd/tables/sparc/nl
@@ -0,0 +1,163 @@
+/* $OpenBSD: nl,v 1.1 1999/07/18 17:21:12 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "nl", "netherlands", "type_4_layout_07" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', C8('¹'),'1', /* 30 */
+ '2', '"', C8('²'),'2', /* 31 */
+ '3', '#', C8('³'),'3', /* 32 */
+ '4', '$', C8('¼'),'4', /* 33 */
+ '5', '%', C8('½'),'5', /* 34 */
+ '6', '&', C8('¾'),'6', /* 35 */
+ '7', '_', C8('£'),'\037', /* 36 */
+ '8', '(', '{', '8', /* 37 */
+ '9', ')', '}', '\035', /* 38 */
+ '0', '\'', '`', '0', /* 39 */
+ '/', '?', '\\', '\034', /* 40 */
+ C8('°'),GR(2), GR(3), C8('°'), /* 41 */
+ '@', C8('§'),C8('¬'),'\000', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ GR(0), GR(1), NOP, GR(0), /* 64 */
+ '*', '|', '~', '*', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', C8('ß'),'\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ '+', C8('±'),NOP, '+', /* 86 */
+ GR(4), GR(5), NOP, GR(4), /* 87 */
+ '<', '>', '^', '\036', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', C8('«'),'\032', /* 100 */
+ 'x', 'X', C8('»'),'\030', /* 101 */
+ 'c', 'C', C8('¢'),'\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', C8('µ'),'\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', C8('·'),'.', /* 108 */
+ '-', '=', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ ']', '[', C8('¦'),'\033', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/nl_5 b/sbin/kbd/tables/sparc/nl_5
new file mode 100644
index 00000000000..a5be52ca7d3
--- /dev/null
+++ b/sbin/kbd/tables/sparc/nl_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: nl_5,v 1.1 1999/07/18 17:21:12 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "nl_5", "netherlands_5", "type_4_layout_27" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', C8('¹'),'1', /* 30 */
+ '2', '"', C8('²'),'2', /* 31 */
+ '3', '#', C8('³'),'3', /* 32 */
+ '4', '$', C8('¼'),'4', /* 33 */
+ '5', '%', C8('½'),'5', /* 34 */
+ '6', '&', C8('¾'),'6', /* 35 */
+ '7', '_', C8('£'),'\037', /* 36 */
+ '8', '(', '{', '8', /* 37 */
+ '9', ')', '}', '\035', /* 38 */
+ '0', '\'', '`', '0', /* 39 */
+ '/', '?', '\\', '\034', /* 40 */
+ C8('°'),GR(2), GR(3), C8('°'), /* 41 */
+ '@', C8('§'),C8('¬'),'\000', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ GR(0), GR(1), NOP, GR(0), /* 64 */
+ '*', '|', '~', '*', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', C8('ß'),'\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ '+', C8('±'),NOP, '+', /* 86 */
+ GR(4), GR(5), NOP, GR(4), /* 87 */
+ '<', '>', '^', '\036', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', C8('«'),'\032', /* 100 */
+ 'x', 'X', C8('»'),'\030', /* 101 */
+ 'c', 'C', C8('¢'),'\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', C8('µ'),'\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', C8('·'),'.', /* 108 */
+ '-', '=', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ ']', '[', C8('¦'),'\033', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/no b/sbin/kbd/tables/sparc/no
new file mode 100644
index 00000000000..48debacfa67
--- /dev/null
+++ b/sbin/kbd/tables/sparc/no
@@ -0,0 +1,163 @@
+/* $OpenBSD: no,v 1.1 1999/07/18 17:21:12 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "no", "norway", "type_4_layout_08" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ '~', '^', NOP, '\036', /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', NOP, '+', /* 40 */
+ '\\', GR(5), GR(4), '\034', /* 41 */
+ '\'', '*', '`', '\'', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), GR(1), GR(2), GR(0), /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(CAPSLOCK)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ø'),C8('Ø'),NOP, C8('ø'), /* 86 */
+ C8('æ'),C8('Æ'),NOP, C8('æ'), /* 87 */
+ '|', C8('§'),NOP, '|', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(LEFTCTRL)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ '<', '>', NOP, '<', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/no_5 b/sbin/kbd/tables/sparc/no_5
new file mode 100644
index 00000000000..15609619fbc
--- /dev/null
+++ b/sbin/kbd/tables/sparc/no_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: no_5,v 1.1 1999/07/18 17:21:12 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "no_5", "norway_5", "type_4_layout_28" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', '~', '5', /* 34 */
+ '6', '&', '^', '\036', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', NOP, '+', /* 40 */
+ '\\', GR(5), GR(4), '\034', /* 41 */
+ '|', C8('§'),NOP, '|', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), GR(1), GR(2), '\036', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ø'),C8('Ø'),NOP, C8('ø'), /* 86 */
+ C8('æ'),C8('Æ'),NOP, C8('æ'), /* 87 */
+ '\'', '*', '`', '\'', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ '<', '>', NOP, '<', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/se_5 b/sbin/kbd/tables/sparc/se_5
new file mode 100644
index 00000000000..17be90bb249
--- /dev/null
+++ b/sbin/kbd/tables/sparc/se_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: se_5,v 1.1 1999/07/18 17:21:12 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "se_5", "sweden_5", "type_4_layout_2b" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ '~', '^', NOP, '\036', /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', '\\', '\034', /* 40 */
+ GR(4), GR(5), NOP, GR(4), /* 41 */
+ C8('§'),C8('½'),NOP, C8('§'), /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), '^', '~', '\036', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ö'),C8('Ö'),NOP, C8('ö'), /* 86 */
+ C8('ä'),C8('Ä'),NOP, C8('ä'), /* 87 */
+ '\'', '*', '`', '\'', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ '<', '>', '|', '<', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/se_fi b/sbin/kbd/tables/sparc/se_fi
new file mode 100644
index 00000000000..d87497a8e21
--- /dev/null
+++ b/sbin/kbd/tables/sparc/se_fi
@@ -0,0 +1,163 @@
+/* $OpenBSD: se_fi,v 1.1 1999/07/18 17:21:13 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "se_fi", "sweden", "finland", "type_4_layout_0b" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(COMPOSE) /* 13 */
+ ALL(TF(6)) /* 14 */
+ '~', '^', NOP, '\036', /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', '@', '\000', /* 31 */
+ '3', '#', C8('£'),'3', /* 32 */
+ '4', C8('¤'),'$', '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '&', NOP, '6', /* 35 */
+ '7', '/', '{', '7', /* 36 */
+ '8', '(', '[', '\033', /* 37 */
+ '9', ')', ']', '\035', /* 38 */
+ '0', '=', '}', '0', /* 39 */
+ '+', '?', '\\', '\034', /* 40 */
+ GR(4), GR(5), NOP, GR(4), /* 41 */
+ '\'', '*', '`', '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ C8('å'),C8('Å'),NOP, C8('å'), /* 64 */
+ GR(0), GR(1), GR(2), GR(0), /* 65 */
+ ALL('\177') /* 66 */
+ ALL(SK(ALTGRAPH)) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(CAPSLOCK)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ C8('ö'),C8('Ö'),NOP, C8('ö'), /* 86 */
+ C8('ä'),C8('Ä'),NOP, C8('ä'), /* 87 */
+ C8('§'),C8('½'),NOP, C8('§'), /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', ';', NOP, ',', /* 107 */
+ '.', ':', NOP, '.', /* 108 */
+ '-', '_', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(LEFTCTRL)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ '<', '>', '|', '\034', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/uk b/sbin/kbd/tables/sparc/uk
new file mode 100644
index 00000000000..49e814f40d8
--- /dev/null
+++ b/sbin/kbd/tables/sparc/uk
@@ -0,0 +1,163 @@
+/* $OpenBSD: uk,v 1.1 1999/07/18 17:21:13 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "uk", "type_4_layout_0e" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', '|', '1', /* 30 */
+ '2', '@', NOP, '\000', /* 31 */
+ '3', C8('£'),'#', '3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '^', NOP, '\036', /* 35 */
+ '7', '&', NOP, '7', /* 36 */
+ '8', '*', NOP, '8', /* 37 */
+ '9', '(', NOP, '9', /* 38 */
+ '0', ')', NOP, '0', /* 39 */
+ '-', '_', C8('¬'),'\037', /* 40 */
+ '=', '+', NOP, '=', /* 41 */
+ '`', '~', NOP, '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ '[', '{', NOP, '\033', /* 64 */
+ ']', '}', NOP, '\035', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ ';', ':', NOP, ';', /* 86 */
+ '\'', '"', NOP, '\'', /* 87 */
+ '\\', '|', NOP, '\034', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', '<', NOP, ',', /* 107 */
+ '.', '>', NOP, '.', /* 108 */
+ '/', '?', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ ALL(HOLE) /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/uk_5 b/sbin/kbd/tables/sparc/uk_5
new file mode 100644
index 00000000000..e6cfc3b60c1
--- /dev/null
+++ b/sbin/kbd/tables/sparc/uk_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: uk_5,v 1.1 1999/07/18 17:21:13 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "uk_5", "type_4_layout_2e" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '"', NOP, '2', /* 31 */
+ '3', C8('£'),NOP, '3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '^', NOP, '\036', /* 35 */
+ '7', '&', NOP, '7', /* 36 */
+ '8', '*', NOP, '8', /* 37 */
+ '9', '(', NOP, '9', /* 38 */
+ '0', ')', NOP, '0', /* 39 */
+ '-', '_', NOP, '\037', /* 40 */
+ '=', '+', NOP, '=', /* 41 */
+ '`', C8('¬'),C8('¦'),'`', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ '[', '{', NOP, '\033', /* 64 */
+ ']', '}', NOP, '\035', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ ';', ':', NOP, ';', /* 86 */
+ '\'', '@', NOP, '\000', /* 87 */
+ '#', '~', NOP, '#', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', '<', NOP, ',', /* 107 */
+ '.', '>', NOP, '.', /* 108 */
+ '/', '?', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ '\\', '|', NOP, '\034', /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/us b/sbin/kbd/tables/sparc/us
new file mode 100644
index 00000000000..06873d76e0a
--- /dev/null
+++ b/sbin/kbd/tables/sparc/us
@@ -0,0 +1,163 @@
+/* $OpenBSD: us,v 1.1 1999/07/18 17:21:13 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "us", "default", "reset", "type_4_layout_00", "type_4_layout_01" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(HOLE) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(HOLE) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(HOLE) /* 27 */
+ ALL(HOLE) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '@', NOP, '\000', /* 31 */
+ '3', '#', NOP, '3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '^', NOP, '\036', /* 35 */
+ '7', '&', NOP, '7', /* 36 */
+ '8', '*', NOP, '8', /* 37 */
+ '9', '(', NOP, '9', /* 38 */
+ '0', ')', NOP, '0', /* 39 */
+ '-', '_', NOP, '\037', /* 40 */
+ '=', '+', NOP, '=', /* 41 */
+ '`', '~', NOP, '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(HOLE) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(HOLE) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ '[', '{', NOP, '\033', /* 64 */
+ ']', '}', NOP, '\035', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(HOLE) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ ';', ':', NOP, ';', /* 86 */
+ '\'', '"', NOP, '\'', /* 87 */
+ '\\', '|', NOP, '\034', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(HOLE) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', '<', NOP, ',', /* 107 */
+ '.', '>', NOP, '.', /* 108 */
+ '/', '?', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(HOLE) /* 123 */
+ ALL(HOLE) /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */
diff --git a/sbin/kbd/tables/sparc/us_5 b/sbin/kbd/tables/sparc/us_5
new file mode 100644
index 00000000000..85ec2a5cd58
--- /dev/null
+++ b/sbin/kbd/tables/sparc/us_5
@@ -0,0 +1,163 @@
+/* $OpenBSD: us_5,v 1.1 1999/07/18 17:21:14 maja Exp $ */
+
+/*
+ * Copyright (c) 1999 Mats O Jansson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Mats O Jansson.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+ { "us_5", "type_4_layout_21", "type_4_layout_22" },
+/* unshift shift alt gr control */
+ ALL(HOLE) /* 0 */
+ ALL(BB(SYSTEMBIT)) /* 1 */
+ ALL(HOLE) /* 2 */
+ ALL(LF(2)) /* 3 */
+ ALL(HOLE) /* 4 */
+ ALL(TF(1)) /* 5 */
+ ALL(TF(2)) /* 6 */
+ ALL(TF(10)) /* 7 */
+ ALL(TF(3)) /* 8 */
+ ALL(TF(11)) /* 9 */
+ ALL(TF(4)) /* 10 */
+ ALL(TF(12)) /* 11 */
+ ALL(TF(5)) /* 12 */
+ ALL(SK(ALTGRAPH)) /* 13 */
+ ALL(TF(6)) /* 14 */
+ ALL(HOLE) /* 15 */
+ ALL(TF(7)) /* 16 */
+ ALL(TF(8)) /* 17 */
+ ALL(TF(9)) /* 18 */
+ ALL(SK(ALT)) /* 19 */
+ ALL(ST(1)) /* 20 */
+ ALL(RF(1)) /* 21 */
+ ALL(RF(2)) /* 22 */
+ ALL(RF(3)) /* 23 */
+ ALL(ST(3)) /* 24 */
+ ALL(LF(3)) /* 25 */
+ ALL(LF(4)) /* 26 */
+ ALL(ST(2)) /* 27 */
+ ALL(ST(4)) /* 28 */
+ ALL('\033') /* 29 */
+ '1', '!', NOP, '1', /* 30 */
+ '2', '@', NOP, '\000', /* 31 */
+ '3', '#', NOP, '3', /* 32 */
+ '4', '$', NOP, '4', /* 33 */
+ '5', '%', NOP, '5', /* 34 */
+ '6', '^', NOP, '\036', /* 35 */
+ '7', '&', NOP, '7', /* 36 */
+ '8', '*', NOP, '8', /* 37 */
+ '9', '(', NOP, '9', /* 38 */
+ '0', ')', NOP, '0', /* 39 */
+ '-', '_', NOP, '\037', /* 40 */
+ '=', '+', NOP, '=', /* 41 */
+ '`', '~', NOP, '\036', /* 42 */
+ ALL('\b') /* 43 */
+ ALL(BF(8)) /* 44 */
+ ALL(RF(4)) /* 45 */
+ ALL(RF(5)) /* 46 */
+ ALL(RF(6)) /* 47 */
+ ALL(BF(13)) /* 48 */
+ ALL(LF(5)) /* 49 */
+ ALL(BF(10)) /* 50 */
+ ALL(LF(6)) /* 51 */
+ ALL(RF(7)) /* 52 */
+ ALL('\t') /* 53 */
+ 'q', 'Q', NOP, '\021', /* 54 */
+ 'w', 'W', NOP, '\027', /* 55 */
+ 'e', 'E', NOP, '\005', /* 56 */
+ 'r', 'R', NOP, '\022', /* 57 */
+ 't', 'T', NOP, '\024', /* 58 */
+ 'y', 'Y', NOP, '\031', /* 59 */
+ 'u', 'U', NOP, '\025', /* 60 */
+ 'i', 'I', NOP, '\t', /* 61 */
+ 'o', 'O', NOP, '\017', /* 62 */
+ 'p', 'P', NOP, '\020', /* 63 */
+ '[', '{', NOP, '\033', /* 64 */
+ ']', '}', NOP, '\035', /* 65 */
+ ALL('\177') /* 66 */
+ ALL(COMPOSE) /* 67 */
+ ALL(RF(7)) /* 68 */
+ ALL(ST(1)) /* 69 */
+ ALL(RF(9)) /* 70 */
+ ALL(BF(15)) /* 71 */
+ ALL(LF(7)) /* 72 */
+ ALL(LF(8)) /* 73 */
+ ALL(RF(13)) /* 74 */
+ ALL(HOLE) /* 75 */
+ ALL(SK(LEFTCTRL)) /* 76 */
+ 'a', 'A', NOP, '\001', /* 77 */
+ 's', 'S', NOP, '\023', /* 78 */
+ 'd', 'D', NOP, '\004', /* 79 */
+ 'f', 'F', NOP, '\006', /* 80 */
+ 'g', 'G', NOP, '\007', /* 81 */
+ 'h', 'H', NOP, '\b', /* 82 */
+ 'j', 'J', NOP, '\n', /* 83 */
+ 'k', 'K', NOP, '\013', /* 84 */
+ 'l', 'L', NOP, '\014', /* 85 */
+ ';', ':', NOP, ';', /* 86 */
+ '\'', '"', NOP, '\'', /* 87 */
+ '\\', '|', NOP, '\034', /* 88 */
+ ALL('\r') /* 89 */
+ ALL(BF(11)) /* 90 */
+ ALL(ST(3)) /* 91 */
+ ALL(RF(11)) /* 92 */
+ ALL(ST(4)) /* 93 */
+ ALL(BF(8)) /* 94 */
+ ALL(LF(9)) /* 95 */
+ ALL(RF(9)) /* 96 */
+ ALL(LF(10)) /* 97 */
+ ALL(SK(NUMLOCK)) /* 98 */
+ ALL(SK(LEFTSHIFT)) /* 99 */
+ 'z', 'Z', NOP, '\032', /* 100 */
+ 'x', 'X', NOP, '\030', /* 101 */
+ 'c', 'C', NOP, '\003', /* 102 */
+ 'v', 'V', NOP, '\026', /* 103 */
+ 'b', 'B', NOP, '\002', /* 104 */
+ 'n', 'N', NOP, '\016', /* 105 */
+ 'm', 'M', NOP, '\r', /* 106 */
+ ',', '<', NOP, ',', /* 107 */
+ '.', '>', NOP, '.', /* 108 */
+ '/', '?', NOP, '\037', /* 109 */
+ ALL(SK(RIGHTSHIFT)) /* 110 */
+ ALL('\n') /* 111 */
+ ALL(RF(13)) /* 112 */
+ ALL(ST(2)) /* 113 */
+ ALL(RF(15)) /* 114 */
+ ALL(HOLE) /* 115 */
+ ALL(HOLE) /* 116 */
+ ALL(HOLE) /* 117 */
+ ALL(LF(16)) /* 118 */
+ ALL(SK(CAPSLOCK)) /* 119 */
+ ALL(BB(0)) /* 120 */
+ ' ', ' ', ' ', '\000', /* 121 */
+ ALL(BB(0)) /* 122 */
+ ALL(RF(15)) /* 123 */
+ ALL(HOLE) /* 124 */
+ ALL(BF(14)) /* 125 */
+ ALL(ERROR) /* 126 */
+ ALL(IDLE) /* 127 */