File:  [MW Coherent from dump] / coherent / d / conf / kbd / french.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:37 2019 UTC (7 years, 2 months ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

/* (-lgl
 * 	COHERENT Version 4.0
 * 	Copyright (c) 1982, 1992 by Mark Williams Company.
 * 	All rights reserved. May not be copied without permission.
 -lgl) */
/*
 * French virtual console keyboard code table.
 *
 *	See header files for definitions and constants.
 *
 *	Version: 1.1, 06/25/91
 *	Version: 1.2, 06/25/92
 *	Version: 1.3, 07/09/92
 *	Version: 1.5, 06/14/93
 *	Version: 1.6, 09/01/93
 */

#include <sys/kbscan.h>
#include <sys/kb.h>

char	tbl_name[] = "French virtual console keyboard table - V1.6";

#define A	0x80 |
#define CSI	"\x1B["
#define	END	"\xFF"

KBTBL	kbtbl[] = {
/* AT                                                    Alt
 *Phys                       Ctrl           Alt   Alt    Ctrl     Alt
 *Key#  Base   Shift  Ctrl   Shift  Alt    Shift  Ctrl   Shift  Graphic Flags
 *----  ----   -----  ----   -----  ---    -----  ----   -----  ------- -----*/
{K_1,	0xFD,  0xC0,  none,  none,  0xFD,  0xC0,  none,  none,  none,	O|T  },
{K_2,	'&',   '1',   none,  none,  A'&',  A'1',  none,  none,  none,	O|T  },
{K_3,	0x82,  '2',   none,  none,  0x82,  A'2',  A'~',  none,  '~',	O|T  },
{K_4,	'"',   '3',   none,  none,  A'"',  A'3',  A'#',  none,  '#',	O|T  },
{K_5,	'\'',  '4',   none,  none,  A'\'', A'4',  A'{',  none,  '{',	O|T  },
{K_6,	'(',   '5',   esc,   esc,   A'(',  A'5',  A'[',  A esc, '[',	O|T  },
{K_7,	'-',   '6',   none,  none,  A'-',  A'6',  A'|',  none,  '|',	O|T  },
{K_8,	0x8A,  '7',   none,  none,  0x8A,  A'7',  A'`',  none,  '`',	O|T  },
{K_9,	'_',   '8',   none,  none,  A'_',  A'8',  A'\\', none,  '\\',	O|T  },
{K_10,	0x87,  '9',   rs,    rs,    0x87,  A'9',  A'^',  A rs,  '^',	O|T  },
{K_11,	0x85,  '0',   none,  none,  0x85,  A'0',  A'@',  none,  '@',	O|T  },
{K_12,	')',   0xF8,  none,  none,  A')',  0xF8,  A']',  none,  ']',	O|T  },
{K_13,	'=',   '+',   none,  none,  A'=',  A'+',  A'}',  none,  '}',	O|T  },
/* key 14 undefined */
{K_15,	bs,    bs,    del,   del,   A bs,  A bs,  none,  A del, none,	O|T  },
{K_16,	f42,   f43,   none,  none,  f42,   f43,   none,  none,  none,   F|T  },
{K_17,	'a',   'A',   soh,   soh,   A'a',  A'A',  none,  A soh, none,   C|T  },
{K_18,	'z',   'Z',   sub,   sub,   A'z',  A'Z',  none,  A sub, none,   C|T  },
{K_19,	'e',   'E',   enq,   enq,   A'e',  A'E',  none,  A enq, none,   C|T  },
{K_20,	'r',   'R',   dc2,   dc2,   A'r',  A'R',  none,  A dc2, none,   C|T  },
{K_21,	't',   'T',   dc4,   dc4,   A't',  A'T',  none,  A dc4, none,   C|T  },
{K_22,	'y',   'Y',   em,    em,    A'y',  A'Y',  none,  A em,  none,   C|T  },
{K_23,	'u',   'U',   nak,   nak,   A'u',  A'U',  none,  A nak, none,   C|T  },
{K_24,	'i',   'I',   ht,    ht,    A'i',  A'I',  none,  A ht,  none,   C|T  },
{K_25,	'o',   'O',   si,    si,    A'o',  A'O',  none,  A si,  none,   C|T  },
{K_26,	'p',   'P',   dle,   dle,   A'p',  A'P',  none,  A dle, none,   C|T  },
{K_27,	0xB0,  0xB1,  none,  none,  0xB0,  0xB1,  none,  none,  none,   O|T  },
{K_28,	'$',   0x9C,  none,  none,  A'$',  0x9C,  0xC2,  none,  0xC2,   O|T  },
{K_29,	none,  none,  none,  none,  none,  none,  none,  none,  none,   O|T  },
{K_30,	caps,  caps,  caps,  caps,  caps,  caps,  caps,  caps,  caps,   S|M  },
{K_31,	'q',   'Q',   dc1,   dc1,   A'q',  A'Q',  none,  A dc1, none,   C|T  },
{K_32,	's',   'S',   dc3,   dc3,   A's',  A'S',  none,  A dc3, none,   C|T  },
{K_33,	'd',   'D',   eot,   eot,   A'd',  A'D',  none,  A eot, none,   C|T  },
{K_34,	'f',   'F',   ack,   ack,   A'f',  A'F',  none,  A ack, none,   C|T  },
{K_35,	'g',   'G',   bel,   bel,   A'g',  A'G',  none,  A bel, none,   C|T  },
{K_36,	'h',   'H',   bs,    bs,    A'h',  A'H',  none,  A bs,  none,   C|T  },
{K_37,	'j',   'J',   nl,    nl,    A'j',  A'J',  none,  A nl,  none,   C|T  },
{K_38,	'k',   'K',   vt,    vt,    A'k',  A'K',  none,  A vt,  none,   C|T  },
{K_39,	'l',   'L',   ff,    ff,    A'l',  A'L',  none,  A ff,  none,   C|T  },
{K_40,	'm',   'M',   cr,    cr,    A'm',  A'M',  none,  A cr,  none,   C|T  },
{K_41,	0x97,  '%',   none,  none,  0x97,  A'%',  none,  none,  none,   O|T  },
{K_42,	'*',   0xE6,  none,  none,  A'*',  0xE6,  none,  none,  none,   O|T  },
{K_43,	cr,    cr,    nl,    nl,    A cr,  A cr,  A nl,  A nl,  none,   O|T  },
{K_44,	lshift,lshift,lshift,lshift,lshift,lshift,lshift,lshift,lshift, S|MB },
{K_45,	'<',   '>',   none,  none,  A'<',  A'>',  none,  none,  none,   O|T  },
{K_46,	'w',   'W',   etb,   etb,   A'w',  A'W',  none,  A etb, none,   C|T  },
{K_47,	'x',   'X',   can,   can,   A'x',  A'X',  none,  A can, none,   C|T  },
{K_48,	'c',   'C',   etx,   etx,   A'c',  A'C',  none,  A etx, none,   C|T  },
{K_49,	'v',   'V',   syn,   syn,   A'v',  A'V',  none,  A syn, none,   C|T  },
{K_50,	'b',   'B',   stx,   stx,   A'b',  A'B',  none,  A stx, none,   C|T  },
{K_51,	'n',   'N',   so,    so,    A'n',  A'N',  none,  A so,  none,   C|T  },
{K_52,	',',   '?',   none,  none,  A',',  A'?',  none,  none,  none,   O|T  },
{K_53,	';',   '.',   none,  none,  A';',  A'.',  none,  none,  none,   O|T  },
{K_54,	':',   '/',   none,  none,  A':',  A'/',  none,  none,  none,   O|T  },
{K_55,	'!',   0x15,  none,  none,  A'!',  0x15,  none,  none,  none,   O|T  },
/* key 56 undefined */
{K_57,	rshift,rshift,rshift,rshift,rshift,rshift,rshift,rshift,rshift, S|MB },
{K_58,	lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl, lctrl,  S|MB },
/* key 59 undefined */
{K_60,	lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,  lalt,   S|MB },
{K_61,	' ',   ' ',   ' ',   ' ',   A' ',  A' ',  A' ',  A' ',  none,   O|T  },
{K_62,	altgr, altgr, altgr, altgr, altgr, altgr, altgr, altgr, altgr,  S|MB },
/* key 63 undefined */
{K_64,	rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl, rctrl,  S|MB },
/* keys 65 through 74 could be functional keys on XT type keyboard */
{K_65,	f2,    f14,   f26,   f71,   vt1,   none,  none,  none,  none,   F|M  },
{K_66,	f4,    f16,   f28,   f73,   vt3,   none,  none,  none,  none,   F|M  },
{K_67,	f6,    f18,   f30,    f75,  vt5,   none,  none,  none,  none,   F|M  },
{K_68,	f8,    f20,   f65,   f77,   vt7,   none,  none,  none,  none,   F|M  },
{K_69,	f10,   f22,   f67,   f79,   vtn,   none,  none,  none,  none,   F|M  },
{K_70,	f1,    f13,   f25,   f70,   vt0,   none,  none,  none,  none,   F|M  },
{K_71,	f3,    f15,   f27,   f72,   vt2,   none,  none,  none,  none,   F|M  },
{K_72,	f5,    f17,   f29,   f74,   vt4,   none,  none,  none,  none,   F|M  },
{K_73,	f7,    f19,   f64,   f76,   vt6,   none,  none,  none,  none,   F|M  },
{K_74,	f9,    f21,   f66,   f78,   none,  none,  none,  none,  none,   F|M  },
{K_75,	f40,   f40,   f40,   f40,   f40,   f40,   f40,   f40,   f40,    F|M  },
{K_76,	f41,   f41,   f41,   f41,   f41,   f41,   reboot,f41,   f41,    F|M  },
/* keys 77 and 78 undefined */
{K_79,	f34,   f34,   f34,   f34,   f34,   f34,   f34,   f34,   f34,    F|T  },
{K_80,	f37,   f37,   f37,   f37,   f37,   f37,   f37,   f37,   f37,    F|M  },
{K_81,	f31,   f31,   f31,   f31,   f31,   f31,   f31,   f31,   f31,    F|M  },
/* key 82 undefined */
{K_83,	f38,   f38,   f38,   f38,   f38,   f38,   f38,   f38,   f38,    F|T  },
{K_84,	f32,   f32,   f32,   f32,   f32,   f32,   f32,   f32,   f32,    F|T  },
{K_85,	f39,   f39,   f39,   f39,   f39,   f39,   f39,   f39,   f39,    F|M  },
{K_86,	f33,   f33,   f33,   f33,   f33,   f33,   f33,   f33,   f33,    F|M  },
/* keys 87 and 88 undefined */
{K_89,	f36,   f36,   f36,   f36,   f36,   f36,   f36,   f36,   f36,    F|T  },
{K_90,	num,   num,   num,   num,   num,   num,   num,   num,   num,    S|M  },
{K_91,	f37,   f57,   vt7,   vt7,   f57,   f57,   f57,   f57,   f57,    F|N|M},
{K_92,	f34,   f54,   vt4,   vt4,   f54,   f54,   f54,   f54,   f54,    F|N|M},
{K_93,	f31,   f51,   vt1,   vt1,   f51,   f51,   f51,   f51,   f51,    F|N|M},
/* key 94 undefined */
{K_95,	'/',   '/',   none,  none,  none,  none,  none,  none,  none,   O|M  },
{K_96,	f38,   f58,   vt8,   vt8,   f58,   f58,   f58,   f58,   f58,    F|N|M},
{K_97,	f35,   f55,   vt5,   vt5,   f55,   f55,   f55,   f55,   f55,    F|N|M},
{K_98,	f32,   f52,   vt2,   vt2,   f52,   f52,   f52,   f52,   f52,    F|N|M},
{K_99,	f40,   f60,   vt0,   vt0,   f60,   f60,   f60,   f60,   f60,    F|N|M},
{K_100,	'*',   '*',   none,  none,  none,  none,  none,  none,  none,   O|M  },
{K_101,	f39,   f59,   vt9,   vt9,   f59,   f59,   f59,   f59,   f59,    F|N|M},
{K_102,	f36,   f56,   vt6,   vt6,   f56,   f56,   f56,   f56,   f56,    F|N|M},
{K_103,	f33,   f53,   vt3,   vt3,   f53,   f53,   f53,   f53,   f53,    F|N|M},
{K_104,	f41,   f61,   vtt,   vtt,   f61,   f61,   reboot,reboot,f61,    F|N|M},
{K_105,	f63,   f63,   vtp,   vtp,   none,  none,  none,  none,  none,   F|M  },
{K_106,	f62,   f62,   vtn,   vtn,   none,  none,  none,  none,  none,   F|M  },
/* key 107 undefined */
{K_108,	cr,    cr,    nl,    nl,    cr,    cr,    nl,    nl,    none,   O|M  },
/* key 109 undefined */
{K_110,	esc,   esc,   none,  none,  esc,   esc,   none,  none,  none,   O|M  },
/* key 111 undefined */
{K_112,	f1,    f13,   f25,   f70,   vt0,   none,  none,  none,  none,   F|M  },
{K_113,	f2,    f14,   f26,   f71,   vt1,   none,  none,  none,  none,   F|M  },
{K_114,	f3,    f15,   f27,   f72,   vt2,   none,  none,  none,  none,   F|M  },
{K_115,	f4,    f16,   f28,   f73,   vt3,   none,  none,  none,  none,   F|M  },
{K_116,	f5,    f17,   f29,   f74,   vt4,   none,  none,  none,  none,   F|M  },
{K_117,	f6,    f18,   f30,   f75,   vt5,   none,  none,  none,  none,   F|M  },
{K_118,	f7,    f19,   f64,   f76,   vt6,   none,  none,  none,  none,   F|M  },
{K_119,	f8,    f20,   f65,   f77,   vt7,   none,  none,  none,  none,   F|M  },
{K_120,	f9,    f21,   f66,   f78,   none,  none,  none,  none,  none,   F|M  },
{K_121,	f10,   f22,   f67,   f79,   vtn,   none,  none,  none,  none,   F|M  },
{K_122,	f11,   f23,   f68,   f44,   vtp,   none,  none,  none,  none,   F|M  },
{K_123,	f12,   f24,   f69,   f45,   vtt,   none,  none,  none,  none,   F|M  },
{K_124,	none,  none,  none,  none,  none,  none,  none,  none,  none,   O|M  },
{K_125,	scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll, S|M  },
{K_126,	none,  none,  none,  none,  none,  none,  none,  none,  none,   O|M  }
};

/*
 * Special and programmable function key definitions:
 *
 * Notes:
 *   1) If a key outputs a multi-byte sequence in any mode, the key
 *	must be defined as a function key (flags field == F) and all entries
 *	for the key must be function keys (i.e., f1 through f50).
 *
 *   2)	All key definition strings must be terminated by a \377 sequence.
 *	This allows the NUL ('\0') character to be embedded in function strings.
 */

unsigned char	*funkey[] = {
/* 0 reboot */	"reboot" END,		/* jump to reboot code */
/* 1 */		CSI"M" END,		/* F1 */
/* 2 */		CSI"N" END,		/* F2 */
/* 3 */		CSI"O" END,		/* F3 */
/* 4 */		CSI"P" END, 		/* F4 */
/* 5 */		CSI"Q" END,		/* F5 */
/* 6 */		CSI"R" END,		/* F6 */
/* 7 */		CSI"S" END,		/* F7 */
/* 8 */		CSI"T" END,		/* F8 */
/* 9 */		CSI"U" END,		/* F9 */
/* 10 */	CSI"V" END,		/* F10 */
/* 11 */	CSI"W" END,		/* F11 */
/* 12 */	CSI"X" END,		/* F12 */
/* 13 */	CSI"Y" END,		/* sF1 */
/* 14 */	CSI"Z" END, 		/* sF2 */
/* 15 */	CSI"a" END,		/* sF3 */
/* 16 */	CSI"b" END,		/* sF4 */
/* 17 */	CSI"c" END,		/* sF5 */
/* 18 */	CSI"d" END,		/* sF6 */
/* 19 */	CSI"e" END,		/* sF7 */
/* 20 */	CSI"f" END,		/* sF8 */
/* 21 */	CSI"g" END,		/* sF9 */
/* 22 */	CSI"h" END,		/* sF10 */
/* 23 */	CSI"i" END,		/* sF11 */
/* 24 */	CSI"j" END, 		/* sF12 */
/* 25 */	CSI"k" END,		/* cF1 */
/* 26 */	CSI"l" END,		/* cF2 */
/* 27 */	CSI"m" END,		/* cF3 */
/* 28 */	CSI"n" END,		/* cF4 */
/* 29 */	CSI"o" END,		/* cF5 */
/* 30 */	CSI"p" END,		/* cF6 */
/* 31 */	CSI"F" END,	 	/* End */
/* 32 */	CSI"B" END,		/* Down Arrow */
/* 33 */	CSI"G" END, 		/* Page Down */
/* 34 */	CSI"D" END,	 	/* Left Arrow */
/* 35 */	"" END,			/* Unshifted keypad 5 */
/* 36 */	CSI"C" END,	 	/* Right Arrow */
/* 37 */	CSI"H" END,	 	/* Home */
/* 38 */	CSI"A" END,	 	/* Up Arrow */
/* 39 */	CSI"I" END,	 	/* Page Up */
/* 40 */	CSI"L" END,	 	/* Insert */
/* 41 */	"\177" END,	 	/* Delete */
/* 42 */	"\t" END,		/* Tab */
/* 43 */	CSI"Z" END,	 	/* Back Tab */
/* 44 */	CSI"`" END,		/* c-s-F11*/
/* 45 */	CSI"{" END,		/* c-s-F12*/
/* 46 */	"F44" END,		/* unused */
/* 47 */	"F47" END,		/* unused */
/* 48 */	"F48" END,		/* unused */
/* 49 */	"F49" END,		/* unused */
/* 50 */	"F50" END,		/* unused */
/* 51 */	"1" END,	 	/* Keypad 1 */
/* 52 */	"2" END,	 	/* Keypad 2 */
/* 53 */	"3" END,	 	/* Keypad 3 */
/* 54 */	"4" END,	 	/* Keypad 4 */
/* 55 */	"5" END,	 	/* Keypad 5 */
/* 56 */	"6" END,	 	/* Keypad 6 */
/* 57 */	"7" END,	 	/* Keypad 7 */
/* 58 */	"8" END,	 	/* Keypad 8 */
/* 59 */	"9" END,	 	/* Keypad 9 */
/* 60 */	"0" END,	 	/* Keypad 0 */
/* 61 */	"." END,	 	/* Keypad . */
/* 62 */	"+" END,	 	/* Keypad + */
/* 63 */	"-" END,	 	/* Keypad - */
/* 64 */	CSI"q" END, 		/* cF7 */
/* 65 */	CSI"r" END,		/* cF8 */
/* 66 */	CSI"s" END,		/* cF9 */
/* 67 */	CSI"t" END,		/* cF10 */
/* 68 */	CSI"u" END,		/* cF11 */
/* 69 */	CSI"v" END,		/* cF12 */
/* 70 */	CSI"w" END,		/* c-s-F1 */
/* 71 */	CSI"x" END,		/* c-s-F2 */
/* 72 */	CSI"y" END,		/* c-s-F3 */
/* 73 */	CSI"z" END,		/* c-s-F4 */
/* 74 */	CSI"@" END, 		/* c-s-F5 */
/* 75 */	CSI"[" END,		/* c-s-F6 */
/* 76 */	CSI"\\" END,		/* c-s-F7 */
/* 77 */	CSI"]" END,		/* c-s-F8 */
/* 78 */	CSI"^" END,		/* c-s-F9 */
/* 79 */	CSI"_" END		/* c-s-F10 */
};

int	numfun	= sizeof(funkey) / sizeof(funkey[0]);	/* # of Fn keys */
int	numkey	= sizeof(kbtbl) / sizeof(kbtbl[0]);	/* # of actual keys */
/* end of french.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.