Subject: port-i386/4506: Finnish keyboard mapping for pccons
To: None <gnats-bugs@gnats.netbsd.org>
From: Andreas Gustafsson <gson@araneus.fi>
List: netbsd-bugs
Date: 11/16/1997 16:46:37
>Number: 4506
>Category: port-i386
>Synopsis: Finnish keyboard mapping for pccons
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Sun Nov 16 07:05:02 1997
>Last-Modified:
>Originator: Andreas Gustafsson <gson@araneus.fi>
>Organization:
Araneus Information Systems Oy
>Release: 1.3_ALPHA (current-971115)
>Environment:
System: NetBSD gulp.araneus.fi 1.3_ALPHA NetBSD 1.3_ALPHA (GULP) #0: Wed Nov 5 \
10:16:19 EET 1997 gson@gulp.araneus.fi:/usr/src/sys/arch/i386/compile/GULP i386
>Description:
There is no support for Finnish keyboards in pccons.
>How-To-Repeat:
Connect a Finnish keyboard to a machine running NetBSD/i386 and pccons,
press some keys, and notice that the characters produced bear only a
slight resemblance to what is engraved on the key caps.
>Fix:
Apply the following patch.
*** sys/arch/i386/isa/pccons.c.orig Sat Nov 1 17:02:19 1997
--- sys/arch/i386/isa/pccons.c Sat Nov 15 12:21:47 1997
***************
*** 85,91 ****
/*
* Non-US keyboards definition
*/
! #if defined(FRENCH_KBD) || defined(GERMAN_KBD) || defined(NORVEGIAN_KBD)
# define NONUS_KBD
# define DISPLAY_ISO8859
# define NUMERIC_SLASH_FIX
--- 85,91 ----
/*
* Non-US keyboards definition
*/
! #if defined(FRENCH_KBD) || defined(GERMAN_KBD) || defined(NORVEGIAN_KBD) || defined(FINNISH_KBD)
# define NONUS_KBD
# define DISPLAY_ISO8859
# define NUMERIC_SLASH_FIX
***************
*** 1935,1940 ****
--- 1935,2073 ----
{ NONE, "", "", "", "" } /* 127 */
};
#endif
+
+ #ifdef FINNISH_KBD
+ static Scan_def scan_codes[] = {
+ { NONE, "", "", "", "" }, /* 0 unused */
+ { ASCII, "\033", "\033", "\033", "\033" }, /* 1 ESCape */
+ { ASCII, "1", "!", "", "\241" }, /* 2 1 */
+ { ASCII, "2", "\"", "\000", "@" }, /* 3 2 */
+ { ASCII, "3", "#", "", "\243" }, /* 4 3 */
+ { ASCII, "4", "$", "", "$" }, /* 5 4 */
+ { ASCII, "5", "%", "\034", "%" }, /* 6 5 */
+ { ASCII, "6", "&", "\034", "&" }, /* 7 6 */
+ { ASCII, "7", "/", "\033", "{" }, /* 8 7 */
+ { ASCII, "8", "(", "\033", "[" }, /* 9 8 */
+ { ASCII, "9", ")", "\035", "]" }, /* 10 9 */
+ { ASCII, "0", "=", "\035", "}" }, /* 11 0 */
+ { ASCII, "+", "?", "\037", "\\" }, /* 12 - */
+ { ASCII, "'", "`", "\034", "'" }, /* 13 = */
+ { ASCII, "\177", "\177", "\010", "\177" }, /* 14 backspace */
+ { ASCII, "\t", "\177\t", "\t", "\t" }, /* 15 tab */
+ { ASCII, "q", "Q", "\021", "q" }, /* 16 q */
+ { ASCII, "w", "W", "\027", "w" }, /* 17 w */
+ { ASCII, "e", "E", "\005", "\353" }, /* 18 e */
+ { ASCII, "r", "R", "\022", "r" }, /* 19 r */
+ { ASCII, "t", "T", "\024", "t" }, /* 20 t */
+ { ASCII, "y", "Y", "\031", "y" }, /* 21 y */
+ { ASCII, "u", "U", "\025", "\374" }, /* 22 u */
+ { ASCII, "i", "I", "\011", "i" }, /* 23 i */
+ { ASCII, "o", "O", "\017", "\366" }, /* 24 o */
+ { ASCII, "p", "P", "\020", "p" }, /* 25 p */
+ { ASCII, "\345", "\305", "\035", "}" }, /* 26 [ */
+ { ASCII, "~", "^", "\036", "~" }, /* 27 ] */
+ { ASCII, "\r", "\r", "\n", "\r" }, /* 28 return */
+ { CTL, "", "", "", "" }, /* 29 control */
+ { ASCII, "a", "A", "\001", "\344" }, /* 30 a */
+ { ASCII, "s", "S", "\023", "\337" }, /* 31 s */
+ { ASCII, "d", "D", "\004", "d" }, /* 32 d */
+ { ASCII, "f", "F", "\006", "f" }, /* 33 f */
+ { ASCII, "g", "G", "\007", "g" }, /* 34 g */
+ { ASCII, "h", "H", "\010", "h" }, /* 35 h */
+ { ASCII, "j", "J", "\n", "j" }, /* 36 j */
+ { ASCII, "k", "K", "\013", "k" }, /* 37 k */
+ { ASCII, "l", "L", "\014", "l" }, /* 38 l */
+ { ASCII, "\366", "\326", "\034", "|" }, /* 39 ; */
+ { ASCII, "\344", "\304", "\033", "{" }, /* 40 ' */
+ { ASCII, "\247", "\275", "\000", "@" }, /* 41 ` */
+ { SHIFT, "", "", "", "" }, /* 42 shift */
+ { ASCII, "'", "*", "'", "'" }, /* 43 \ */
+ { ASCII, "z", "Z", "\032", "z" }, /* 44 z */
+ { ASCII, "x", "X", "\030", "x" }, /* 45 x */
+ { ASCII, "c", "C", "\003", "c" }, /* 46 c */
+ { ASCII, "v", "V", "\026", "v" }, /* 47 v */
+ { ASCII, "b", "B", "\002", "b" }, /* 48 b */
+ { ASCII, "n", "N", "\016", "n" }, /* 49 n */
+ { ASCII, "m", "M", "\015", "m" }, /* 50 m */
+ { ASCII, ",", ";", ",", "," }, /* 51 , */
+ { ASCII, ".", ":", ".", "." }, /* 52 . */
+ { ASCII, "-", "_", "\037", "-" }, /* 53 / */
+ { SHIFT, "", "", "", "" }, /* 54 shift */
+ { KP, "*", "*", "*", "*" }, /* 55 kp * */
+ { ALT, "", "", "", "" }, /* 56 alt */
+ { ASCII, " ", " ", "\000", " " }, /* 57 space */
+ { CAPS, "", "", "", "" }, /* 58 caps */
+ { FUNC, "\033[M", "\033[Y", "\033[k", "" }, /* 59 f1 */
+ { FUNC, "\033[N", "\033[Z", "\033[l", "" }, /* 60 f2 */
+ { FUNC, "\033[O", "\033[a", "\033[m", "" }, /* 61 f3 */
+ { FUNC, "\033[P", "\033[b", "\033[n", "" }, /* 62 f4 */
+ { FUNC, "\033[Q", "\033[c", "\033[o", "" }, /* 63 f5 */
+ { FUNC, "\033[R", "\033[d", "\033[p", "" }, /* 64 f6 */
+ { FUNC, "\033[S", "\033[e", "\033[q", "" }, /* 65 f7 */
+ { FUNC, "\033[T", "\033[f", "\033[r", "" }, /* 66 f8 */
+ { FUNC, "\033[U", "\033[g", "\033[s", "" }, /* 67 f9 */
+ { FUNC, "\033[V", "\033[h", "\033[t", "" }, /* 68 f10 */
+ { NUM, "", "", "", "" }, /* 69 num lock */
+ { SCROLL, "", "", "", "" }, /* 70 scroll lock */
+ { KP, "7", "\033[H", "7", "" }, /* 71 kp 7 */
+ { KP, "8", "\033[A", "8", "" }, /* 72 kp 8 */
+ { KP, "9", "\033[I", "9", "" }, /* 73 kp 9 */
+ { KP, "-", "-", "-", "" }, /* 74 kp - */
+ { KP, "4", "\033[D", "4", "" }, /* 75 kp 4 */
+ { KP, "5", "\033[E", "5", "" }, /* 76 kp 5 */
+ { KP, "6", "\033[C", "6", "" }, /* 77 kp 6 */
+ { KP, "+", "+", "+", "" }, /* 78 kp + */
+ { KP, "1", "\033[F", "1", "" }, /* 79 kp 1 */
+ { KP, "2", "\033[B", "2", "" }, /* 80 kp 2 */
+ { KP, "3", "\033[G", "3", "" }, /* 81 kp 3 */
+ { KP, "0", "\033[L", "0", "" }, /* 82 kp 0 */
+ { KP, ".", "\177", ".", "" }, /* 83 kp . */
+ { NONE, "", "", "", "" }, /* 84 0 */
+ { NONE, "100", "", "", "" }, /* 85 0 */
+ { ASCII, "<", ">", "<", "|" }, /* 86 < > */
+ { FUNC, "\033[W", "\033[i", "\033[u","" }, /* 87 f11 */
+ { FUNC, "\033[X", "\033[j", "\033[v","" }, /* 88 f12 */
+ { NONE, "102", "", "", "" }, /* 89 0 */
+ { NONE, "103", "", "", "" }, /* 90 0 */
+ { NONE, "", "", "", "" }, /* 91 0 */
+ { NONE, "", "", "", "" }, /* 92 0 */
+ { NONE, "", "", "", "" }, /* 93 0 */
+ { NONE, "", "", "", "" }, /* 94 0 */
+ { NONE, "", "", "", "" }, /* 95 0 */
+ { NONE, "", "", "", "" }, /* 96 0 */
+ { NONE, "", "", "", "" }, /* 97 0 */
+ { NONE, "", "", "", "" }, /* 98 0 */
+ { NONE, "", "", "", "" }, /* 99 0 */
+ { NONE, "", "", "", "" }, /* 100 */
+ { NONE, "", "", "", "" }, /* 101 */
+ { NONE, "", "", "", "" }, /* 102 */
+ { NONE, "", "", "", "" }, /* 103 */
+ { NONE, "", "", "", "" }, /* 104 */
+ { NONE, "", "", "", "" }, /* 105 */
+ { NONE, "", "", "", "" }, /* 106 */
+ { NONE, "", "", "", "" }, /* 107 */
+ { NONE, "", "", "", "" }, /* 108 */
+ { NONE, "", "", "", "" }, /* 109 */
+ { NONE, "", "", "", "" }, /* 110 */
+ { NONE, "", "", "", "" }, /* 111 */
+ { NONE, "", "", "", "" }, /* 112 */
+ { NONE, "", "", "", "" }, /* 113 */
+ { NONE, "", "", "", "" }, /* 114 */
+ { NONE, "", "", "", "" }, /* 115 */
+ { NONE, "", "", "", "" }, /* 116 */
+ { NONE, "", "", "", "" }, /* 117 */
+ { NONE, "", "", "", "" }, /* 118 */
+ { NONE, "", "", "", "" }, /* 119 */
+ { NONE, "", "", "", "" }, /* 120 */
+ { NONE, "", "", "", "" }, /* 121 */
+ { NONE, "", "", "", "" }, /* 122 */
+ { NONE, "", "", "", "" }, /* 123 */
+ { NONE, "", "", "", "" }, /* 124 */
+ { NONE, "", "", "", "" }, /* 125 */
+ { NONE, "", "", "", "" }, /* 126 */
+ { NONE, "", "", "", "" }, /* 127 */
+ };
+ #endif
/*
* XXXX Add tables for other keyboards here
>Audit-Trail:
>Unformatted: