xref: /original-bsd/sys/news3400/bm/keyconf.c (revision 6a39c8ab)
1 /*
2  * Copyright (c) 1992 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc.
7  *
8  * %sccs.include.redist.c%
9  *
10  * from: $Hdr: keyconf.c,v 4.300 91/06/09 06:14:53 root Rel41 $ SONY
11  *
12  *	@(#)keyconf.c	7.1 (Berkeley) 06/04/92
13  */
14 
15 #ifdef CPU_DOUBLE
16 #include "../../iop/keyboard.h"
17 #include "../../iop/kbreg.h"
18 #else
19 #include "../iop/keyboard.h"
20 #include "../iop/kbreg.h"
21 #endif
22 
23 #ifndef NULL
24 #define	    NULL	(char *)0
25 #endif /* NULL */
26 
27 Pfk_table pfk_init[] = {
28 /* 00 */	/*	*/	0,	0,	NULL,	0,	NULL,
29 /* 01 */	/* F1	*/	1,	3,  "\033OP",	0,	NULL,
30 /* 02 */	/* F2	*/	2,	3,  "\033OQ",	0,	NULL,
31 /* 03 */	/* F3	*/	3,	3,  "\033OR",	0,	NULL,
32 /* 04 */	/* F4	*/	4,	3,  "\033OS",	0,	NULL,
33 /* 05 */	/* F5	*/	5,	3,  "\033OT",	0,	NULL,
34 /* 06 */	/* F6	*/	6,	3,  "\033OU",	0,	NULL,
35 /* 07 */	/* F7	*/	7,	3,  "\033OV",	0,	NULL,
36 /* 08 */	/* F8	*/	8,	3,  "\033OW",	0,	NULL,
37 /* 09 */	/* F9	*/	9,	3,  "\033OX",	0,	NULL,
38 /* 10 */	/* F10	*/	10,	3,  "\033OY",	0,	NULL,
39 /* 11 */	/* PF1	*/	12,	0,	NULL,	0,	NULL,
40 /* 12 */	/* PF2	*/	13,	0,	NULL,	0,	NULL,
41 /* 13 */	/* PF3	*/	14,	0,	NULL,	0,	NULL,
42 /* 14 */	/* PF4	*/	15,	0,	NULL,	0,	NULL,
43 /* 15 */	/* PF5	*/	16,	0,	NULL,	0,	NULL,
44 /* 16 */	/* PF6	*/	17,	0,	NULL,	0,	NULL,
45 /* 17 */	/* PF7	*/	18,	0,	NULL,	0,	NULL,
46 /* 18 */	/* PF8	*/	19,	0,	NULL,	0,	NULL,
47 /* 19 */	/* PF9	*/	20,	0,	NULL,	0,	NULL,
48 /* 20 */	/* PF10	*/	21,	0,	NULL,	0,	NULL,
49 /* 21 */	/* PF11	*/	22,	0,	NULL,	0,	NULL,
50 /* 22 */	/* PF12	*/	23,	0,	NULL,	0,	NULL,
51 /* 23 */	/* ncnv	*/	69,	0,	NULL,	0,	NULL,
52 /* 24 */	/* conv	*/	71,	0,	NULL,	0,	NULL,
53 /* 25 */	/* enter*/	74,	0,	NULL,	0,	NULL,
54 /* 26 */	/* 0	*/	87,	1,	"0",	1,	"0",
55 /* 27 */	/* 1	*/	83,	1,	"1",	1,	"1",
56 /* 28 */	/* 2	*/	84,	1,	"2",	1,	"2",
57 /* 29 */	/* 3	*/	85,	1,	"3",	1,	"3",
58 /* 30 */	/* 4	*/	79,	1,	"4",	1,	"4",
59 /* 31 */	/* 5	*/	80,	1,	"5",	1,	"5",
60 /* 32 */	/* 6	*/	81,	1,	"6",	1,	"6",
61 /* 33 */	/* 7	*/	75,	1,	"7",	1,	"7",
62 /* 34 */	/* 8	*/	76,	1,	"8",	1,	"8",
63 /* 35 */	/* 9	*/	77,	1,	"9",	1,	"9",
64 /* 36 */	/* .	*/	89,	1,	".",	1,	".",
65 /* 37 */	/* -	*/	78,	1,	"-",	1,	"/",
66 /* 38 */	/* +	*/	82,	1,	"+",	1,	"*",
67 /* 39 */	/* ,	*/	86,	1,	",",	1,	"=",
68 /* 40 */	/*nenter*/	90,	1,	"\r",	1,	"\r",
69 /* 41 */	/* up	*/	88,	3,  "\033[A",	3,  "\033[A",
70 /* 42 */	/* down	*/	92,	3,  "\033[B",	3,  "\033[B",
71 /* 43 */	/* rignt*/	93,	3,  "\033[C",	3,  "\033[C",
72 /* 44 */	/* left	*/	91,	3,  "\033[D",	3,  "\033[D",
73 };
74 
75 Key_table default_table[] = {
76 /*	key_flags		normal	shift	ctrl	alt	kana	kshft */
77 /*  0*/	0,			0,	0,	0,	0,	0,	0,
78 /*  1*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
79 /*  2*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
80 /*  3*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
81 /*  4*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
82 /*  5*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
83 /*  6*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
84 /*  7*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
85 /*  8*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
86 /*  9*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
87 /* 10*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
88 /* 11*/	N|S|C|K|J|O,		0x1b,	0x1b,	0x1b,	0,	0x1b,	0x1b,
89 /* 12*/	N|S|K|L|ALT_FUNC,	'1',	'!',	0,	0,	0xc7,	0,
90 /* 13*/ N|S|C|K|L|ALT_FUNC,	'2',	'@',	0x00,	0,	0xcc,	0,
91 /* 14*/	N|S|C|K|J|L|ALT_FUNC,	'3',	'#',	0x1b,	0,	0xb1,	0xa7,
92 /* 15*/	N|S|C|K|J|L|ALT_FUNC,	'4',	'$',	0x1c,	0,	0xb3,	0xa9,
93 /* 16*/	N|S|C|K|J|L|ALT_FUNC,	'5',	'%',	0x1d,	0,	0xb4,	0xaa,
94 /* 17*/	N|S|C|K|J|R|ALT_FUNC,	'6',	'^',	0x1e,	0,	0xb5,	0xab,
95 /* 18*/	N|S|C|K|J|R|ALT_FUNC,	'7',	'&',	0x1f,	0,	0xd4,	0xac,
96 /* 19*/	N|S|C|K|J|R|ALT_FUNC,	'8',	'*',	0x0f,	0,	0xd5,	0xad,
97 /* 20*/	N|S|K|K|J|R|ALT_FUNC,	'9',	'(',	0,	0,	0xd6,	0xae,
98 /* 21*/ N|S|K|K|J|R|ALT_FUNC,	'0',	')',	0,	0,	0xdc,	0xa6,
99 /* 22*/ N|S|K|R|ALT_FUNC,	'-',	'_',	0,	0,	0xce,	0,
100 /* 23*/ N|S|K|R|ALT_FUNC,	'=',	'+',	0,	0,	0xcd,	0,
101 /* 24*/	N|S|C|L,		'\\',	'|',	0x1c,	0,	0,	0,
102 /* 25*/ N|S|C|K|J|O,		'\b',	'\b',	'\b',	0,	'\b',	'\b',
103 /* 26*/	N|S|C|K|J|O,		'\t',	'\t',	'\t',	0,	'\t',	'\t',
104 /* 27*/	N|S|C|K|L|CAP_LOCK,	'q',	'Q',	0x11,	0,	0xc0,	0,
105 /* 28*/	N|S|C|K|L|CAP_LOCK,	'w',	'W',	0x17,	0,	0xc3,	0,
106 /* 29*/	N|S|C|K|L|J|CAP_LOCK,	'e',	'E',	0x05,	0,	0xb2,	0xa8,
107 /* 30*/	N|S|C|K|L|CAP_LOCK,	'r',	'R',	0x12,	0,	0xbd,	0,
108 /* 31*/	N|S|C|K|L|CAP_LOCK,	't',	'T',	0x14,	0,	0xb6,	0,
109 /* 32*/	N|S|C|K|R|CAP_LOCK,	'y',	'Y',	0x19,	0,	0xdd,	0,
110 /* 33*/	N|S|C|K|R|CAP_LOCK,	'u',	'U',	0x15,	0,	0xc5,	0,
111 /* 34*/	N|S|C|K|R|CAP_LOCK,	'i',	'I',	'\t',	0,	0xc6,	0,
112 /* 35*/	N|S|C|K|R|CAP_LOCK,	'o',	'O',	0x0f,	0,	0xd7,	0,
113 /* 36*/	N|S|C|K|R|CAP_LOCK,	'p',	'P',	0x10,	0,	0xbe,	0,
114 /* 37*/	N|S|C|K|R,		'[',	'{',	0x1b,	0,	0xde,	0,
115 /* 38*/	N|S|C|K|R|J,		']',	'}',	0x1d,	0,	0xdf,	0xa2,
116 /* 39*/	N|C|K|O,		0x7f,	0,	0x7f,	0,	0x7f,	0,
117 /* 40*/	PSH_SHFT,		S_CTRL,	0,	0,	0,	0,	0,
118 /* 41*/	N|S|C|K|L|CAP_LOCK,	'a',	'A',	0x01,	0,	0xc1,	0,
119 /* 42*/	N|S|C|K|L|CAP_LOCK,	's',	'S',	0x13,	0,	0xc4,	0,
120 /* 43*/	N|S|C|K|L|CAP_LOCK,	'd',	'D',	0x04,	0,	0xbc,	0,
121 /* 44*/	N|S|C|K|L|CAP_LOCK,	'f',	'F',	0x06,	0,	0xca,	0,
122 /* 45*/	N|S|C|K|L|CAP_LOCK,	'g',	'G',	0x07,	0,	0xb7,	0,
123 /* 46*/	N|S|C|K|R|CAP_LOCK,	'h',	'H',	'\b',	0,	0xb8,	0,
124 /* 47*/	N|S|C|K|R|CAP_LOCK,	'j',	'J',	'\n',	0,	0xcf,	0,
125 /* 48*/	N|S|C|K|R|CAP_LOCK,	'k',	'K',	0x0b,	0,	0xc9,	0,
126 /* 49*/	N|S|C|K|R|CAP_LOCK,	'l',	'L',	'\f',	0,	0xd8,	0,
127 /* 50*/	N|S|K|R,		';',	':',	0,	0,	0xda,	0,
128 /* 51*/	N|S|K|L,		'\'',	'"',	0,	0,	0xb9,	0,
129 /* 52*/	N|S|C|K|L|J,		'`',	'~',	0x1e,	0,	0xd1,	0xa3,
130 /* 53*/	N|S|C|K|J|O,		'\r',	'\r',	'\r',	0,	'\r',	'\r',
131 /* 54*/	PSH_SHFT,		S_LSHFT,0,	0,	0,	0,	0,
132 /* 55*/	N|S|C|K|J|L|CAP_LOCK,	'z',	'Z',	0x1a,	0,	0xc2,	0xaf,
133 /* 56*/	N|S|C|K|L|CAP_LOCK,	'x',	'X',	0x18,	0,	0xbb,	0,
134 /* 57*/	N|S|C|K|L|CAP_LOCK,	'c',	'C',	0x03,	0,	0xbf,	0,
135 /* 58*/	N|S|C|K|L|CAP_LOCK,	'v',	'V',	0x16,	0,	0xcb,	0,
136 /* 59*/	N|S|C|K|L|CAP_LOCK,	'b',	'B',	0x02,	0,	0xba,	0,
137 /* 60*/	N|S|C|K|R|CAP_LOCK,	'n',	'N',	0x0e,	0,	0xd0,	0,
138 /* 61*/	N|S|C|K|R|CAP_LOCK,	'm',	'M',	'\r',	0,	0xd3,	0,
139 /* 62*/	N|S|K|J|R,		',',	'<',	0,	0,	0xc8,	0xa4,
140 /* 63*/	N|S|K|J|R,		'.',	'>',	0,	0,	0xd9,	0xa1,
141 /* 64*/	N|S|C|K|J|R,		'/',	'?',	0x1f,	0,	0xd2,	0xa5,
142 /* 65*/	K|J,			0,	0,	0,	0,	0xdb,	0xb0,
143 /* 66*/	PSH_SHFT,		S_RSHFT,0,	0,	0,	0,	0,
144 /* 67*/	PSH_SHFT|NOT_REPT,	S_ALT,	0,	0,	0,	0,	0,
145 /* 68*/	PSH_SHFT|NOT_REPT,	S_CAPS,	0,	0,	0,	0,	0,
146 /* 69*/	PRG_FUNC|NOT_REPT,	0,	0,	0,	0,	0,	0,
147 /* 70*/	N|S|C|K|J|O,		' ',	' ',	0x00,	0,	' ',	' ',
148 /* 71*/	PRG_FUNC|NOT_REPT,	0,	0,	0,	0,	0,	0,
149 /* 72*/	SW_SHFT|NOT_REPT,	S_AN,	0,	0,	0,	0,	0,
150 /* 73*/	SW_SHFT|NOT_REPT,	S_KANA,	0,	0,	0,	0,	0,
151 /* 74*/	PRG_FUNC|NOT_REPT,	0,	0,	0,	0,	0,	0,
152 /* 75*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
153 /* 76*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
154 /* 77*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
155 /* 78*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
156 /* 79*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
157 /* 80*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
158 /* 81*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
159 /* 82*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
160 /* 83*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
161 /* 84*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
162 /* 85*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
163 /* 86*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
164 /* 87*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
165 /* 88*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
166 /* 89*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
167 /* 90*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
168 /* 91*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
169 /* 92*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
170 /* 93*/	PRG_FUNC,		0,	0,	0,	0,	0,	0,
171 };
172 
173 #define	PFK_SIZE	sizeof(pfk_init)/sizeof(Pfk_table)
174 int N_Pfk = PFK_SIZE;
175 Pfk_table pfk_table[PFK_SIZE];
176