Return to BSD News archive
Newsgroups: comp.unix.bsd From: zawada@softage.demon.co.uk.demon.co.uk (Mark D Simpson) Path: sserve!manuel!munnari.oz.au!spool.mu.edu!uwm.edu!linac!pacific.mps.ohio-state.edu!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!caen!uunet!pipex!demon!softage.demon.co.uk.demon.co.uk!zawada Subject: Anyone for a UK keyboard? Distribution: world Organization: Softage Solutions Lines: 249 Date: Wed, 7 Oct 1992 05:54:41 +0000 Message-ID: <718437281snx@softage.demon.co.uk.demon.co.uk> Sender: usenet@gate.demon.co.uk Here's a simple patch to enable use of a UK keyboard with correct key mapping under 386bsd 0.1. This is a self extracting shell archive. Save the text after "CUT HERE" to a file called "ukkeyb.shar", then type: "sh ukkeyb.shar" to extract and read the README. If I've re-invented the wheel, don't flame me. :-) Mark --------- Mark Simpson SoftAge Solutions. (Beware of Gnomes on missions!) INTERNET: zawada@softage.demon.co.uk | JANET: zawada@uk.co.demon.h8165 / MARK_SIMPSON@hicom.lut.ac.uk | zawada@uk.co.demon.softage \/ | MARK_SIMPSON@uk.ac.lut.hicom --------------------------------CUT HERE--------------------------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: README ukkeyb.diff # Wrapped by zawada@softage.demon.co.uk on Tue Oct 6 22:00:01 1992 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(1098 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' This is a simple "get-it-working" patch to build a kernel which has roughly the correct mapping for UK keyboards. It maps all the standard keys (except some of the more obscure ones, due to a lack of documentation, and time to find the stuff!). The POUND sign is replaced by a hash. X INSTALL THIS AT YOUR OWN RISK. i.e. I accept no responsibilty for any loss or otherwise however caused. X You may copy or distribute this freely for non-profit, provided this README remains with the patch. X X Mark Simpson. Email: zawada@softage.demon.co.uk Date: 6th October 1992. X X INSTALLATION INSTRUCTIONS FOR 0.1 386BSD. X========================================= X 1. Install the patch "ukkeyb.diff" to the file /sys/i386/isa/pccons.c X patch <ukkeyb.diff X 2. Add the following line to your kernel configuration file in /sys/i386/conf X options ENGLISH_KEYB X 3. Re-configure the kernel: X config <MY_SYSTEM_NAME> X 4. Make the dependencies in /sys/compile/<MY_SYSTEM_NAME>: X make depend X 5. Then do a make, copy the file 386bsd to a copy of the FIXIT floppy, X and install on the hard disk when happy. X END_OF_FILE if test 1098 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'ukkeyb.diff' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'ukkeyb.diff'\" else echo shar: Extracting \"'ukkeyb.diff'\" \(5893 characters\) sed "s/^X//" >'ukkeyb.diff' <<'END_OF_FILE' X*** pccons.c.orig Wed Aug 19 09:13:34 1992 X--- pccons.c Tue Oct 6 03:22:39 1992 X*************** X*** 1090,1100 **** X--- 1090,1235 ---- X #define KP 0x0200 /* Keypad keys */ X #define NONE 0x0400 /* no function */ X X+ #ifdef ENGLISH_KEYB X static Scan_def scan_codes[] = X { X NONE, "", "", "", /* 0 unused */ X ASCII, "\033", "\033", "\033", /* 1 ESCape */ X ASCII, "1", "!", "!", /* 2 1 */ X+ ASCII, "2", "\"", "\000", /* 3 2 */ X+ ASCII, "3", "#", "#", /* 4 3 */ X+ ASCII, "4", "$", "$", /* 5 4 */ X+ ASCII, "5", "%", "%", /* 6 5 */ X+ ASCII, "6", "^", "\036", /* 7 6 */ X+ ASCII, "7", "&", "&", /* 8 7 */ X+ ASCII, "8", "*", "\010", /* 9 8 */ X+ ASCII, "9", "(", "(", /* 10 9 */ X+ ASCII, "0", ")", ")", /* 11 0 */ X+ ASCII, "-", "_", "\037", /* 12 - */ X+ ASCII, "=", "+", "+", /* 13 = */ X+ ASCII, "\177", "\177", "\010", /* 14 backspace */ X+ ASCII, "\t", "\177\t", "\t", /* 15 tab */ X+ ASCII, "q", "Q", "\021", /* 16 q */ X+ ASCII, "w", "W", "\027", /* 17 w */ X+ ASCII, "e", "E", "\005", /* 18 e */ X+ ASCII, "r", "R", "\022", /* 19 r */ X+ ASCII, "t", "T", "\024", /* 20 t */ X+ ASCII, "y", "Y", "\031", /* 21 y */ X+ ASCII, "u", "U", "\025", /* 22 u */ X+ ASCII, "i", "I", "\011", /* 23 i */ X+ ASCII, "o", "O", "\017", /* 24 o */ X+ ASCII, "p", "P", "\020", /* 25 p */ X+ ASCII, "[", "{", "\033", /* 26 [ */ X+ ASCII, "]", "}", "\035", /* 27 ] */ X+ ASCII, "\r", "\r", "\n", /* 28 return */ X+ CTL, "", "", "", /* 29 control */ X+ ASCII, "a", "A", "\001", /* 30 a */ X+ ASCII, "s", "S", "\023", /* 31 s */ X+ ASCII, "d", "D", "\004", /* 32 d */ X+ ASCII, "f", "F", "\006", /* 33 f */ X+ ASCII, "g", "G", "\007", /* 34 g */ X+ ASCII, "h", "H", "\010", /* 35 h */ X+ ASCII, "j", "J", "\n", /* 36 j */ X+ ASCII, "k", "K", "\013", /* 37 k */ X+ ASCII, "l", "L", "\014", /* 38 l */ X+ ASCII, ";", ":", ";", /* 39 ; */ X+ ASCII, "'", "\100", "'", /* 40 ' */ X+ ASCII, "`", "|", "`", /* 41 ` */ X+ SHIFT, "", "", "", /* 42 shift */ X+ ASCII, "#", "~", "\034", /* 43 # */ X+ ASCII, "z", "Z", "\032", /* 44 z */ X+ ASCII, "x", "X", "\030", /* 45 x */ X+ ASCII, "c", "C", "\003", /* 46 c */ X+ ASCII, "v", "V", "\026", /* 47 v */ X+ ASCII, "b", "B", "\002", /* 48 b */ X+ ASCII, "n", "N", "\016", /* 49 n */ X+ ASCII, "m", "M", "\r", /* 50 m */ X+ ASCII, ",", "<", "<", /* 51 , */ X+ ASCII, ".", ">", ">", /* 52 . */ X+ ASCII, "/", "?", "\177", /* 53 / */ X+ SHIFT, "", "", "", /* 54 shift */ X+ KP, "*", "*", "*", /* 55 kp * */ X+ ALT, "", "", "", /* 56 alt */ X+ ASCII, " ", " ", " ", /* 57 space */ X+ CAPS, "", "", "", /* 58 caps */ X+ FUNC, "\033[M", "\033[Y", "\033[k", /* 59 f1 */ X+ FUNC, "\033[N", "\033[Z", "\033[l", /* 60 f2 */ X+ FUNC, "\033[O", "\033[a", "\033[m", /* 61 f3 */ X+ FUNC, "\033[P", "\033[b", "\033[n", /* 62 f4 */ X+ FUNC, "\033[Q", "\033[c", "\033[o", /* 63 f5 */ X+ FUNC, "\033[R", "\033[d", "\033[p", /* 64 f6 */ X+ FUNC, "\033[S", "\033[e", "\033[q", /* 65 f7 */ X+ FUNC, "\033[T", "\033[f", "\033[r", /* 66 f8 */ X+ FUNC, "\033[U", "\033[g", "\033[s", /* 67 f9 */ X+ FUNC, "\033[V", "\033[h", "\033[t", /* 68 f10 */ X+ NUM, "", "", "", /* 69 num lock */ X+ SCROLL, "", "", "", /* 70 scroll lock */ X+ KP, "7", "\033[H", "7", /* 71 kp 7 */ X+ KP, "8", "\033[A", "8", /* 72 kp 8 */ X+ KP, "9", "\033[I", "9", /* 73 kp 9 */ X+ KP, "-", "-", "-", /* 74 kp - */ X+ KP, "4", "\033[D", "4", /* 75 kp 4 */ X+ KP, "5", "\033[E", "5", /* 76 kp 5 */ X+ KP, "6", "\033[C", "6", /* 77 kp 6 */ X+ KP, "+", "+", "+", /* 78 kp + */ X+ KP, "1", "\033[F", "1", /* 79 kp 1 */ X+ KP, "2", "\033[B", "2", /* 80 kp 2 */ X+ KP, "3", "\033[G", "3", /* 81 kp 3 */ X+ KP, "0", "\033[L", "0", /* 82 kp 0 */ X+ KP, ".", "\177", ".", /* 83 kp . */ X+ NONE, "", "", "", /* 84 0 */ X+ NONE, "100", "", "", /* 85 0 */ X+ NONE, "\\", "|", "", /* 86 \ */ X+ FUNC, "\033[W", "\033[i", "\033[u", /* 87 f11 */ X+ FUNC, "\033[X", "\033[j", "\033[v", /* 88 f12 */ X+ NONE, "102", "", "", /* 89 0 */ X+ NONE, "103", "", "", /* 90 0 */ X+ NONE, "", "", "", /* 91 0 */ X+ NONE, "", "", "", /* 92 0 */ X+ NONE, "", "", "", /* 93 0 */ X+ NONE, "", "", "", /* 94 0 */ X+ NONE, "", "", "", /* 95 0 */ X+ NONE, "", "", "", /* 96 0 */ X+ NONE, "", "", "", /* 97 0 */ X+ NONE, "", "", "", /* 98 0 */ X+ NONE, "", "", "", /* 99 0 */ X+ NONE, "", "", "", /* 100 */ X+ NONE, "", "", "", /* 101 */ X+ NONE, "", "", "", /* 102 */ X+ NONE, "", "", "", /* 103 */ X+ NONE, "", "", "", /* 104 */ X+ NONE, "", "", "", /* 105 */ X+ NONE, "", "", "", /* 106 */ X+ NONE, "", "", "", /* 107 */ X+ NONE, "", "", "", /* 108 */ X+ NONE, "", "", "", /* 109 */ X+ NONE, "", "", "", /* 110 */ X+ NONE, "", "", "", /* 111 */ X+ NONE, "", "", "", /* 112 */ X+ NONE, "", "", "", /* 113 */ X+ NONE, "", "", "", /* 114 */ X+ NONE, "", "", "", /* 115 */ X+ NONE, "", "", "", /* 116 */ X+ NONE, "", "", "", /* 117 */ X+ NONE, "", "", "", /* 118 */ X+ NONE, "", "", "", /* 119 */ X+ NONE, "", "", "", /* 120 */ X+ NONE, "", "", "", /* 121 */ X+ NONE, "", "", "", /* 122 */ X+ NONE, "", "", "", /* 123 */ X+ NONE, "", "", "", /* 124 */ X+ NONE, "", "", "", /* 125 */ X+ NONE, "", "", "", /* 126 */ X+ NONE, "", "", "", /* 127 */ X+ }; X+ X+ #else X+ X+ static Scan_def scan_codes[] = X+ { X+ NONE, "", "", "", /* 0 unused */ X+ ASCII, "\033", "\033", "\033", /* 1 ESCape */ X+ ASCII, "1", "!", "!", /* 2 1 */ X ASCII, "2", "@", "\000", /* 3 2 */ X ASCII, "3", "#", "#", /* 4 3 */ X ASCII, "4", "$", "$", /* 5 4 */ X*************** X*** 1221,1226 **** X--- 1356,1362 ---- X NONE, "", "", "", /* 126 */ X NONE, "", "", "", /* 127 */ X }; X+ #endif /*ENGLISH_KEYB*/ X X X END_OF_FILE if test 5893 -ne `wc -c <'ukkeyb.diff'`; then echo shar: \"'ukkeyb.diff'\" unpacked with wrong size! fi # end of 'ukkeyb.diff' fi echo shar: End of shell archive. exit 0