Subject: Anyone for a UK keyboard?
Distribution: world
Organization: Softage Solutions
Date: Wed, 7 Oct 1992 05:54:41 +0000

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