153889Smckusick /* 2*63252Sbostic * Copyright (c) 1992, 1993 3*63252Sbostic * The Regents of the University of California. All rights reserved. 453889Smckusick * 553889Smckusick * This code is derived from software contributed to Berkeley by 653889Smckusick * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc. 753889Smckusick * 853889Smckusick * %sccs.include.redist.c% 953889Smckusick * 1053889Smckusick * from: $Hdr: keyconf.c,v 4.300 91/06/09 06:14:53 root Rel41 $ SONY 1153889Smckusick * 12*63252Sbostic * @(#)keyconf.c 8.1 (Berkeley) 06/10/93 1353889Smckusick */ 1453889Smckusick 1553889Smckusick #ifdef CPU_DOUBLE 1657177Sutashiro #include <news3400/iop/keyboard.h> 1757177Sutashiro #include <news3400/iop/kbreg.h> 1853889Smckusick #else 1957177Sutashiro #include <news3400/iop/keyboard.h> 2057177Sutashiro #include <news3400/iop/kbreg.h> 2153889Smckusick #endif 2253889Smckusick 2353889Smckusick #ifndef NULL 2453889Smckusick #define NULL (char *)0 2553889Smckusick #endif /* NULL */ 2653889Smckusick 2753889Smckusick Pfk_table pfk_init[] = { 2853889Smckusick /* 00 */ /* */ 0, 0, NULL, 0, NULL, 2953889Smckusick /* 01 */ /* F1 */ 1, 3, "\033OP", 0, NULL, 3053889Smckusick /* 02 */ /* F2 */ 2, 3, "\033OQ", 0, NULL, 3153889Smckusick /* 03 */ /* F3 */ 3, 3, "\033OR", 0, NULL, 3253889Smckusick /* 04 */ /* F4 */ 4, 3, "\033OS", 0, NULL, 3353889Smckusick /* 05 */ /* F5 */ 5, 3, "\033OT", 0, NULL, 3453889Smckusick /* 06 */ /* F6 */ 6, 3, "\033OU", 0, NULL, 3553889Smckusick /* 07 */ /* F7 */ 7, 3, "\033OV", 0, NULL, 3653889Smckusick /* 08 */ /* F8 */ 8, 3, "\033OW", 0, NULL, 3753889Smckusick /* 09 */ /* F9 */ 9, 3, "\033OX", 0, NULL, 3853889Smckusick /* 10 */ /* F10 */ 10, 3, "\033OY", 0, NULL, 3953889Smckusick /* 11 */ /* PF1 */ 12, 0, NULL, 0, NULL, 4053889Smckusick /* 12 */ /* PF2 */ 13, 0, NULL, 0, NULL, 4153889Smckusick /* 13 */ /* PF3 */ 14, 0, NULL, 0, NULL, 4253889Smckusick /* 14 */ /* PF4 */ 15, 0, NULL, 0, NULL, 4353889Smckusick /* 15 */ /* PF5 */ 16, 0, NULL, 0, NULL, 4453889Smckusick /* 16 */ /* PF6 */ 17, 0, NULL, 0, NULL, 4553889Smckusick /* 17 */ /* PF7 */ 18, 0, NULL, 0, NULL, 4653889Smckusick /* 18 */ /* PF8 */ 19, 0, NULL, 0, NULL, 4753889Smckusick /* 19 */ /* PF9 */ 20, 0, NULL, 0, NULL, 4853889Smckusick /* 20 */ /* PF10 */ 21, 0, NULL, 0, NULL, 4953889Smckusick /* 21 */ /* PF11 */ 22, 0, NULL, 0, NULL, 5053889Smckusick /* 22 */ /* PF12 */ 23, 0, NULL, 0, NULL, 5153889Smckusick /* 23 */ /* ncnv */ 69, 0, NULL, 0, NULL, 5253889Smckusick /* 24 */ /* conv */ 71, 0, NULL, 0, NULL, 5353889Smckusick /* 25 */ /* enter*/ 74, 0, NULL, 0, NULL, 5453889Smckusick /* 26 */ /* 0 */ 87, 1, "0", 1, "0", 5553889Smckusick /* 27 */ /* 1 */ 83, 1, "1", 1, "1", 5653889Smckusick /* 28 */ /* 2 */ 84, 1, "2", 1, "2", 5753889Smckusick /* 29 */ /* 3 */ 85, 1, "3", 1, "3", 5853889Smckusick /* 30 */ /* 4 */ 79, 1, "4", 1, "4", 5953889Smckusick /* 31 */ /* 5 */ 80, 1, "5", 1, "5", 6053889Smckusick /* 32 */ /* 6 */ 81, 1, "6", 1, "6", 6153889Smckusick /* 33 */ /* 7 */ 75, 1, "7", 1, "7", 6253889Smckusick /* 34 */ /* 8 */ 76, 1, "8", 1, "8", 6353889Smckusick /* 35 */ /* 9 */ 77, 1, "9", 1, "9", 6453889Smckusick /* 36 */ /* . */ 89, 1, ".", 1, ".", 6553889Smckusick /* 37 */ /* - */ 78, 1, "-", 1, "/", 6653889Smckusick /* 38 */ /* + */ 82, 1, "+", 1, "*", 6753889Smckusick /* 39 */ /* , */ 86, 1, ",", 1, "=", 6853889Smckusick /* 40 */ /*nenter*/ 90, 1, "\r", 1, "\r", 6953889Smckusick /* 41 */ /* up */ 88, 3, "\033[A", 3, "\033[A", 7053889Smckusick /* 42 */ /* down */ 92, 3, "\033[B", 3, "\033[B", 7153889Smckusick /* 43 */ /* rignt*/ 93, 3, "\033[C", 3, "\033[C", 7253889Smckusick /* 44 */ /* left */ 91, 3, "\033[D", 3, "\033[D", 7353889Smckusick }; 7453889Smckusick 7553889Smckusick Key_table default_table[] = { 7653889Smckusick /* key_flags normal shift ctrl alt kana kshft */ 7753889Smckusick /* 0*/ 0, 0, 0, 0, 0, 0, 0, 7853889Smckusick /* 1*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 7953889Smckusick /* 2*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8053889Smckusick /* 3*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8153889Smckusick /* 4*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8253889Smckusick /* 5*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8353889Smckusick /* 6*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8453889Smckusick /* 7*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8553889Smckusick /* 8*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8653889Smckusick /* 9*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8753889Smckusick /* 10*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 8853889Smckusick /* 11*/ N|S|C|K|J|O, 0x1b, 0x1b, 0x1b, 0, 0x1b, 0x1b, 8953889Smckusick /* 12*/ N|S|K|L|ALT_FUNC, '1', '!', 0, 0, 0xc7, 0, 9053889Smckusick /* 13*/ N|S|C|K|L|ALT_FUNC, '2', '@', 0x00, 0, 0xcc, 0, 9153889Smckusick /* 14*/ N|S|C|K|J|L|ALT_FUNC, '3', '#', 0x1b, 0, 0xb1, 0xa7, 9253889Smckusick /* 15*/ N|S|C|K|J|L|ALT_FUNC, '4', '$', 0x1c, 0, 0xb3, 0xa9, 9353889Smckusick /* 16*/ N|S|C|K|J|L|ALT_FUNC, '5', '%', 0x1d, 0, 0xb4, 0xaa, 9453889Smckusick /* 17*/ N|S|C|K|J|R|ALT_FUNC, '6', '^', 0x1e, 0, 0xb5, 0xab, 9553889Smckusick /* 18*/ N|S|C|K|J|R|ALT_FUNC, '7', '&', 0x1f, 0, 0xd4, 0xac, 9653889Smckusick /* 19*/ N|S|C|K|J|R|ALT_FUNC, '8', '*', 0x0f, 0, 0xd5, 0xad, 9753889Smckusick /* 20*/ N|S|K|K|J|R|ALT_FUNC, '9', '(', 0, 0, 0xd6, 0xae, 9853889Smckusick /* 21*/ N|S|K|K|J|R|ALT_FUNC, '0', ')', 0, 0, 0xdc, 0xa6, 9953889Smckusick /* 22*/ N|S|K|R|ALT_FUNC, '-', '_', 0, 0, 0xce, 0, 10053889Smckusick /* 23*/ N|S|K|R|ALT_FUNC, '=', '+', 0, 0, 0xcd, 0, 10153889Smckusick /* 24*/ N|S|C|L, '\\', '|', 0x1c, 0, 0, 0, 10253889Smckusick /* 25*/ N|S|C|K|J|O, '\b', '\b', '\b', 0, '\b', '\b', 10353889Smckusick /* 26*/ N|S|C|K|J|O, '\t', '\t', '\t', 0, '\t', '\t', 10453889Smckusick /* 27*/ N|S|C|K|L|CAP_LOCK, 'q', 'Q', 0x11, 0, 0xc0, 0, 10553889Smckusick /* 28*/ N|S|C|K|L|CAP_LOCK, 'w', 'W', 0x17, 0, 0xc3, 0, 10653889Smckusick /* 29*/ N|S|C|K|L|J|CAP_LOCK, 'e', 'E', 0x05, 0, 0xb2, 0xa8, 10753889Smckusick /* 30*/ N|S|C|K|L|CAP_LOCK, 'r', 'R', 0x12, 0, 0xbd, 0, 10853889Smckusick /* 31*/ N|S|C|K|L|CAP_LOCK, 't', 'T', 0x14, 0, 0xb6, 0, 10953889Smckusick /* 32*/ N|S|C|K|R|CAP_LOCK, 'y', 'Y', 0x19, 0, 0xdd, 0, 11053889Smckusick /* 33*/ N|S|C|K|R|CAP_LOCK, 'u', 'U', 0x15, 0, 0xc5, 0, 11153889Smckusick /* 34*/ N|S|C|K|R|CAP_LOCK, 'i', 'I', '\t', 0, 0xc6, 0, 11253889Smckusick /* 35*/ N|S|C|K|R|CAP_LOCK, 'o', 'O', 0x0f, 0, 0xd7, 0, 11353889Smckusick /* 36*/ N|S|C|K|R|CAP_LOCK, 'p', 'P', 0x10, 0, 0xbe, 0, 11453889Smckusick /* 37*/ N|S|C|K|R, '[', '{', 0x1b, 0, 0xde, 0, 11553889Smckusick /* 38*/ N|S|C|K|R|J, ']', '}', 0x1d, 0, 0xdf, 0xa2, 11653889Smckusick /* 39*/ N|C|K|O, 0x7f, 0, 0x7f, 0, 0x7f, 0, 11753889Smckusick /* 40*/ PSH_SHFT, S_CTRL, 0, 0, 0, 0, 0, 11853889Smckusick /* 41*/ N|S|C|K|L|CAP_LOCK, 'a', 'A', 0x01, 0, 0xc1, 0, 11953889Smckusick /* 42*/ N|S|C|K|L|CAP_LOCK, 's', 'S', 0x13, 0, 0xc4, 0, 12053889Smckusick /* 43*/ N|S|C|K|L|CAP_LOCK, 'd', 'D', 0x04, 0, 0xbc, 0, 12153889Smckusick /* 44*/ N|S|C|K|L|CAP_LOCK, 'f', 'F', 0x06, 0, 0xca, 0, 12253889Smckusick /* 45*/ N|S|C|K|L|CAP_LOCK, 'g', 'G', 0x07, 0, 0xb7, 0, 12353889Smckusick /* 46*/ N|S|C|K|R|CAP_LOCK, 'h', 'H', '\b', 0, 0xb8, 0, 12453889Smckusick /* 47*/ N|S|C|K|R|CAP_LOCK, 'j', 'J', '\n', 0, 0xcf, 0, 12553889Smckusick /* 48*/ N|S|C|K|R|CAP_LOCK, 'k', 'K', 0x0b, 0, 0xc9, 0, 12653889Smckusick /* 49*/ N|S|C|K|R|CAP_LOCK, 'l', 'L', '\f', 0, 0xd8, 0, 12753889Smckusick /* 50*/ N|S|K|R, ';', ':', 0, 0, 0xda, 0, 12853889Smckusick /* 51*/ N|S|K|L, '\'', '"', 0, 0, 0xb9, 0, 12953889Smckusick /* 52*/ N|S|C|K|L|J, '`', '~', 0x1e, 0, 0xd1, 0xa3, 13053889Smckusick /* 53*/ N|S|C|K|J|O, '\r', '\r', '\r', 0, '\r', '\r', 13153889Smckusick /* 54*/ PSH_SHFT, S_LSHFT,0, 0, 0, 0, 0, 13253889Smckusick /* 55*/ N|S|C|K|J|L|CAP_LOCK, 'z', 'Z', 0x1a, 0, 0xc2, 0xaf, 13353889Smckusick /* 56*/ N|S|C|K|L|CAP_LOCK, 'x', 'X', 0x18, 0, 0xbb, 0, 13453889Smckusick /* 57*/ N|S|C|K|L|CAP_LOCK, 'c', 'C', 0x03, 0, 0xbf, 0, 13553889Smckusick /* 58*/ N|S|C|K|L|CAP_LOCK, 'v', 'V', 0x16, 0, 0xcb, 0, 13653889Smckusick /* 59*/ N|S|C|K|L|CAP_LOCK, 'b', 'B', 0x02, 0, 0xba, 0, 13753889Smckusick /* 60*/ N|S|C|K|R|CAP_LOCK, 'n', 'N', 0x0e, 0, 0xd0, 0, 13853889Smckusick /* 61*/ N|S|C|K|R|CAP_LOCK, 'm', 'M', '\r', 0, 0xd3, 0, 13953889Smckusick /* 62*/ N|S|K|J|R, ',', '<', 0, 0, 0xc8, 0xa4, 14053889Smckusick /* 63*/ N|S|K|J|R, '.', '>', 0, 0, 0xd9, 0xa1, 14153889Smckusick /* 64*/ N|S|C|K|J|R, '/', '?', 0x1f, 0, 0xd2, 0xa5, 14253889Smckusick /* 65*/ K|J, 0, 0, 0, 0, 0xdb, 0xb0, 14353889Smckusick /* 66*/ PSH_SHFT, S_RSHFT,0, 0, 0, 0, 0, 14453889Smckusick /* 67*/ PSH_SHFT|NOT_REPT, S_ALT, 0, 0, 0, 0, 0, 14553889Smckusick /* 68*/ PSH_SHFT|NOT_REPT, S_CAPS, 0, 0, 0, 0, 0, 14653889Smckusick /* 69*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 14753889Smckusick /* 70*/ N|S|C|K|J|O, ' ', ' ', 0x00, 0, ' ', ' ', 14853889Smckusick /* 71*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 14953889Smckusick /* 72*/ SW_SHFT|NOT_REPT, S_AN, 0, 0, 0, 0, 0, 15053889Smckusick /* 73*/ SW_SHFT|NOT_REPT, S_KANA, 0, 0, 0, 0, 0, 15153889Smckusick /* 74*/ PRG_FUNC|NOT_REPT, 0, 0, 0, 0, 0, 0, 15253889Smckusick /* 75*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15353889Smckusick /* 76*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15453889Smckusick /* 77*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15553889Smckusick /* 78*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15653889Smckusick /* 79*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15753889Smckusick /* 80*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15853889Smckusick /* 81*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 15953889Smckusick /* 82*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16053889Smckusick /* 83*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16153889Smckusick /* 84*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16253889Smckusick /* 85*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16353889Smckusick /* 86*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16453889Smckusick /* 87*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16553889Smckusick /* 88*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16653889Smckusick /* 89*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16753889Smckusick /* 90*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16853889Smckusick /* 91*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 16953889Smckusick /* 92*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 17053889Smckusick /* 93*/ PRG_FUNC, 0, 0, 0, 0, 0, 0, 17153889Smckusick }; 17253889Smckusick 17353889Smckusick #define PFK_SIZE sizeof(pfk_init)/sizeof(Pfk_table) 17453889Smckusick int N_Pfk = PFK_SIZE; 17553889Smckusick Pfk_table pfk_table[PFK_SIZE]; 176