From: hosokawa@mt.cs.keio.ac.jp (HOSOKAWA Tatsumi)
Subject: ASCII Keyboard Patch for 386BSD(98) [Unofficial]
Organization: Tokoro Laboratory, Keio University, Yokohama Japan.
Distribution: fj
Date: Sun, 24 Jan 1993 12:39:19 GMT

$B$[$=$+$o!w7DXf$G$9!#(B

Version C2 $BMQ$N(B ASCII $B%-!<%\!<%I%Q%C%A$G$9!#A0$K:n$C$?(B version A $B$N$d(B
$B$D$h$j$O$-$A$s$H:n$C$?$D$b$j$G$9!#(B

$B$"$H!"(BHOME/CLR $B%-!<$G(B "\033[Y" $B$r=P$9$h$&$K$7$F$"$j$^$9!#(B

$B!t(B $B<!$O%f!<%6JL$KJQ99$G$-$k$h$&$K$9$k$+$J!D!#(B


*** /usr/src/sys.386bsd.org/pc98/pc98/pccons.c	Thu Dec 31 12:16:58 1992
--- /usr/src/sys.386bsd/pc98/pc98/pccons.c	Sat Jan 23 06:25:32 1993
***************
*** 79,84 ****
--- 79,89 ----
  #define	KBDATAP		(IO_KBD)	/* 0x41: kbd data port */
  #endif
  
+ #ifdef PC98
+ /*    ASCII KEYBOARD    */
+ #define PC98_ASCII_KBD
+ #endif
+ 
  struct	tty pccons;
  
  struct	pcconsoftc {
***************
*** 2567,2589 ****
  #define	FUNC		0x0100	/* function key */
  #define	KP		0x0200	/* Keypad keys */
  #define	NONE		0x0400	/* no function */
! 
  #ifdef PC98
  static Scan_def	scan_codes[] =
  {
  	ASCII,	"\033",		"\033",		"\033",		/* 0 ESCape */
  	ASCII,	"1",		"!",		"!",		/* 1 1 */
! 	ASCII,	"2",		"\"",		"\032",		/* 2 2 */
  	ASCII,	"3",		"#",		"\033",		/* 3 3 */
  	ASCII,	"4",		"$",		"\034",		/* 4 4 */
  	ASCII,	"5",		"%",		"\035",		/* 5 5 */
! 	ASCII,	"6",		"&",		"\036",		/* 6 6 */
! 	ASCII,	"7",		"'",		"\037",		/* 7 7 */
! 	ASCII,	"8",		"(",		"\177",		/* 8 8 */
! 	ASCII,	"9",		")",		"9",		/* 9 9 */
! 	ASCII,	"0",		"",		"0",		/* 10 0 */
! 	ASCII,	"-",		"=",		"-",		/* 11 - */
! 	ASCII,	"^",		"`",		"\036",		/* 12 ^ */
  	ASCII,	"\\",		"|",		"\034",		/* 13 \ */
  #if 1
  	ASCII,	"\010",		"\010",		"\010",		/* 14 backspace */
--- 2572,2602 ----
  #define	FUNC		0x0100	/* function key */
  #define	KP		0x0200	/* Keypad keys */
  #define	NONE		0x0400	/* no function */
!  
  #ifdef PC98
+ #ifdef PC98_ASCII_KBD
+ #define A_J(ascii, jis)		(ascii)
+ #else
+ #define A_J(ascii, jis)		(jis)
+ #endif
+ 
  static Scan_def	scan_codes[] =
  {
  	ASCII,	"\033",		"\033",		"\033",		/* 0 ESCape */
  	ASCII,	"1",		"!",		"!",		/* 1 1 */
! 	ASCII,	"2",		A_J("@","\""),	A_J("\000","\032"),
! 								/* 2 2 */
  	ASCII,	"3",		"#",		"\033",		/* 3 3 */
  	ASCII,	"4",		"$",		"\034",		/* 4 4 */
  	ASCII,	"5",		"%",		"\035",		/* 5 5 */
! 	ASCII,	"6",		A_J("^","&"),	"\036",		/* 6 6 */
! 	ASCII,	"7",		A_J("&","'"),	A_J("&","\037"),/* 7 7 */
! 	ASCII,	"8",		A_J("*","("),	A_J("\010","\177"),
! 								/* 8 8 */
! 	ASCII,	"9",		A_J("(",")"),	A_J("(","9"),	/* 9 9 */
! 	ASCII,	"0",		A_J(")",""),	A_J(")","0"),		/* 10 0 */
! 	ASCII,	"-",		A_J("_","="),	A_J("\037","-"),/* 11 - */
! 	ASCII,	A_J("=","^"),	A_J("+","`"),	A_J("+","\036"),/* 12 ^ */
  	ASCII,	"\\",		"|",		"\034",		/* 13 \ */
  #if 1
  	ASCII,	"\010",		"\010",		"\010",		/* 14 backspace */
***************
*** 2602,2609 ****
  	ASCII,	"i",		"I",		"\011",		/* 23 i */
  	ASCII,	"o",		"O",		"\017",		/* 24 o */
  	ASCII,	"p",		"P",		"\020",		/* 25 p */
! 	ASCII,	"@",		"~",		"\000",		/* 26 @ */
! 	ASCII,	"[",		"{",		"\033",		/* 27 [ */
  	ASCII,	"\r",		"\r",		"\n",		/* 28 return */
  	ASCII,	"a",		"A",		"\001",		/* 29 a */
  	ASCII,	"s",		"S",		"\023",		/* 30 s */
--- 2615,2624 ----
  	ASCII,	"i",		"I",		"\011",		/* 23 i */
  	ASCII,	"o",		"O",		"\017",		/* 24 o */
  	ASCII,	"p",		"P",		"\020",		/* 25 p */
! 	ASCII,	A_J("[","@"),	A_J("{","~"),	A_J("\033","\000"),
! 								/* 26 @ */
! 	ASCII,	A_J("]","["),	A_J("}","{"),	A_J("\035","\033"),
! 								/* 27 [ */
  	ASCII,	"\r",		"\r",		"\n",		/* 28 return */
  	ASCII,	"a",		"A",		"\001",		/* 29 a */
  	ASCII,	"s",		"S",		"\023",		/* 30 s */
***************
*** 2615,2623 ****
  	ASCII,	"j",		"J",		"\n",		/* 35 j */
  	ASCII,	"k",		"K",		"\013",		/* 36 k */
  	ASCII,	"l",		"L",		"\014",		/* 37 l */
! 	ASCII,	";",		"+",		";",		/* 38 ; */
! 	ASCII,	":",		"*",		":",		/* 39 : */
! 	ASCII,	"]",		"}",		"\035",		/* 40 ' */
  	ASCII,	"z",		"Z",		"\032",		/* 41 z */
  	ASCII,	"x",		"X",		"\030",		/* 42 x */
  	ASCII,	"c",		"C",		"\003",		/* 43 c */
--- 2630,2639 ----
  	ASCII,	"j",		"J",		"\n",		/* 35 j */
  	ASCII,	"k",		"K",		"\013",		/* 36 k */
  	ASCII,	"l",		"L",		"\014",		/* 37 l */
! 	ASCII,	";",		A_J(":","+"),	";",		/* 38 ; */
! 	ASCII,	A_J("'",":"),	A_J("\"","*"),	A_J("'",":"),	/* 39 : */
! 	ASCII,	A_J("\\","]"),	A_J("|","}"),	A_J("\034","\035"),
! 								/* 40 ] */
  	ASCII,	"z",		"Z",		"\032",		/* 41 z */
  	ASCII,	"x",		"X",		"\030",		/* 42 x */
  	ASCII,	"c",		"C",		"\003",		/* 43 c */
***************
*** 2629,2637 ****
  	ASCII,	",",		"<",		"<",		/* 48 , */
  	ASCII,	".",		">",		">",		/* 49 . */
  	ASCII,	"/",		"?",		"\177",		/* 50 / */
! 	ASCII,	"",		"_",		"\037",		/* 51 _ */
  	ASCII,	" ",		" ",		"\000",		/* 52 space */
  	ASCII,	" ",		" ",		" ",		/* 53 xfer */
  	KP,	"\033[I",	"\033[I",	"\033[I",	/* 54 Roll Up */
  	KP,	"\033[G",	"\033[G",	"\033[G",	/* 55 Roll Down */
  	KP,	"\033[L",	"\033[L",	"\033[L",	/* 56 INS */
--- 2645,2654 ----
  	ASCII,	",",		"<",		"<",		/* 48 , */
  	ASCII,	".",		">",		">",		/* 49 . */
  	ASCII,	"/",		"?",		"\177",		/* 50 / */
! 	ASCII,	A_J("`",""),	A_J("~","_"),	"\037",		/* 51 _ */
  	ASCII,	" ",		" ",		"\000",		/* 52 space */
  	ASCII,	" ",		" ",		" ",		/* 53 xfer */
+ 
  	KP,	"\033[I",	"\033[I",	"\033[I",	/* 54 Roll Up */
  	KP,	"\033[G",	"\033[G",	"\033[G",	/* 55 Roll Down */
  	KP,	"\033[L",	"\033[L",	"\033[L",	/* 56 INS */
***************
*** 2647,2653 ****
--- 2664,2674 ----
  	KP,	"\033OC",	"\033OC",	"\033OC",	/* 60 right-arrow */
  	KP,	"\033OB",	"\033OB",	"\033OB",	/* 61 down-arrow */
  #endif
+ #if 0 /* 386BSD(IBM-PC) has kh field in its termcap pc3 */
  	KP,	"",		"",		"",		/* 62 home/clr */
+ #else
+ 	KP,	"\033[Y",	"\033[Y",	"\033[Y",	/* 62 home/clr */
+ #endif
  	KP,	"",		"",		"",		/* 63 help */
  
  	KP,	"-",		"-",		"-",		/* 64 - */
--
$B:Y@n(B $BC#8J(B (HOSOKAWA, Tatsumi)   E-mail: hosokawa@mt.cs.keio.ac.jp 

                $B7DXf5A=NBg3X(B $BM}9)3X8&5f2J(B $B7W;;5!2J3X@l96(B $B=j8&5f<<(B
Newsgroups: fj.os.386bsd