DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T i

⟦14618dac6⟧ TextFile

    Length: 42912 (0xa7a0)
    Types: TextFile
    Names: »inputTable.c«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« 
        └─⟦2109abc41⟧ 
            └─ ⟦this⟧ »./X.V10R4/Toolkit/Xr/src/Xrlib/Intrinsic/inputTable.c« 

TextFile

/*
 *	$Source: /u1/Xr/src/Xrlib/Intrinsic/RCS/inputTable.c,v $
 *	$Header: inputTable.c,v 1.1 86/12/17 09:08:48 swick Exp $
 */

#ifndef lint
static char *rcsid_inputTable_c = "$Header: inputTable.c,v 1.1 86/12/17 09:08:48 swick Exp $";
#endif	lint

#include <Xr/xr-copyright.h>

/* $Header: inputTable.c,v 1.1 86/12/17 09:08:48 swick Exp $ */
/* Copyright 1986, Hewlett-Packard Company */
/* Copyright 1986, Massachussetts Institute of Technology */

static char rcsid[] = "$Header: inputTable.c,v 1.1 86/12/17 09:08:48 swick Exp $";
/*************************************<+>*************************************
 *****************************************************************************
 **
 **   File:        inputTable.c
 **
 **   Project:     X-ray Toolbox
 **
 **   Description: 
 **
 **
 **   ------------------------ MODIFICATION RECORD   ------------------------
 *
 * $Log:	inputTable.c,v $
 * Revision 1.1  86/12/17  09:08:48  swick
 * Initial revision
 * 
 * Revision 7.0  86/11/13  08:20:29  08:20:29  rick ()
 * Final QA release
 * 
 * Revision 6.0  86/11/10  15:22:23  15:22:23  rick ()
 * QA #2 release
 * 
 * Revision 5.1  86/11/07  14:02:14  14:02:14  rick ()
 * Added the copyright message.
 * 
 * Revision 5.0  86/10/28  08:23:00  08:23:00  rick ()
 * QA #1.1 release
 * 
 * Revision 4.1  86/10/24  08:59:04  08:59:04  karen
 * update to make ALT and 16BIT handling more general, remove CAPSLOCK
 * 
 * Revision 3.0  86/10/02  15:58:54  15:58:54  rick ()
 *  Alpha release set to 3.0
 * 
 * Revision 1.1  86/10/02  15:37:52  15:37:52  rick ()
 * Initial revision
 * 
 *
 *****************************************************************************
 *************************************<+>*************************************/

#include <Xr/keycode.h>

extern unsigned char	itf_extend[];
extern unsigned char	kanatab[];

extern unsigned char	k_us[];
extern unsigned char	k_french[];
extern unsigned char	k_canada[];
extern unsigned char	k_danish[];
extern unsigned char	k_dutch[];
extern unsigned char	k_finnish[];
extern unsigned char	k_swissfr[];
extern unsigned char	k_german[];
extern unsigned char	k_swissgr[];
extern unsigned char	k_italian[];
extern unsigned char	k_norway[];
extern unsigned char	k_spain[];
extern unsigned char	k_latinam[];
extern unsigned char	k_finnish[];
extern unsigned char	k_uk[];
extern unsigned char	k_swissf2[];
extern unsigned char	k_swissg2[];

extern unsigned char	k_isus[];
extern unsigned char	k_isfr[];
extern unsigned char	k_iscn[];
extern unsigned char	k_isdn[];
extern unsigned char	k_isdu[];
extern unsigned char	k_issw[];
extern unsigned char	k_isss[];
extern unsigned char	k_isgm[];
extern unsigned char	k_isit[];
extern unsigned char	k_isnw[];
extern unsigned char	k_ises[];
extern unsigned char	k_isls[];
extern unsigned char	k_isuk[];
extern unsigned char	k_isss2[];

unsigned char * k_alttab[] = {
	itf_extend,	/* (0) HP ITF United States */
	itf_extend,	/* (1) HP ITF Belgian  */
	itf_extend,	/* (2) HP ITF Canadian English  */
	itf_extend,	/* (3) HP ITF Danish  */
	itf_extend,	/* (4) HP ITF Dutch  */
	itf_extend,	/* (5) HP ITF Finnish  */
	itf_extend,	/* (6) HP ITF French (AZERTY) */
	itf_extend,	/* (7) HP ITF Canadian French  */
	itf_extend,	/* (8) HP ITF Swiss French  */
	itf_extend,	/* (9) HP ITF German  */
	itf_extend,	/* (10) HP ITF Swiss German  */
	itf_extend,	/* (11) HP ITF Italian  */
	itf_extend,	/* (12) HP ITF Norwegian  */
	itf_extend,	/* (13) HP ITF European Spanish  */
	itf_extend,	/* (14) HP ITF Latin Spanish  */
	itf_extend,	/* (15) HP ITF Swedish  */
	itf_extend,	/* (16) HP ITF United Kingdom  */
	kanatab,	/* (17) HP ITF Katakana  */
	itf_extend,	/* (18) HP ITF Swiss French II  */
	itf_extend,	/* (19) HP ITF Swiss German II */
	kanatab,	/* (20) HP ITF Kanji */
};

/* Typewriter keyboard table for KATAKANA */
unsigned char kanatab[] = {
	/* unshifted */
	176, 199, 192, 193, 194, K_ILLEGAL,
	204, 195, 196, 187, K_ILLEGAL, K_ILLEGAL, 
	177, 178, 188, 191, K_ILLEGAL, 179,
	189, 202, 203, 32, K_ILLEGAL, 180,
	182, 183, 186, K_ILLEGAL, 181, 221,
	184, 208, K_ILLEGAL, 212, 197, 207,
	211, K_ILLEGAL, 213, 198, 201, 200,
	K_ILLEGAL, 214, 215, 216, 217, K_ILLEGAL,
	220, 190, K_ILLEGAL, 218, 210, K_ILLEGAL,
	205, 162, 163, K_ILLEGAL, 206, 222,
	185, 
	/* shifted */
	219, 199, 192, 193, 175, K_ILLEGAL,
	204, 195, 196, 187, K_ILLEGAL, K_ILLEGAL,
	167, 168, 188, 191, K_ILLEGAL, 169,
	189, 202, 203, 32, K_ILLEGAL, 170,
	182, 183, 186, K_ILLEGAL, 171, 221,
	184, 208, K_ILLEGAL, 172, 197, 207,
	211, K_ILLEGAL, 173, 198, 201, 164, 
	K_ILLEGAL, 174, 215, 216, 161, K_ILLEGAL, 
	166, 190, K_ILLEGAL, 218, 165, K_ILLEGAL, 
	205, 223, 209, K_ILLEGAL, 176, 222, 
	185
};

/* Typewriter keyboard table for EXTEND */
unsigned char itf_extend[] = {
	/* Unshifted */
	R_LEFTSHIFT,	/*	` */
	R_i,		/*	1 */
	R_MIDDOT,	/*	q */
	R_a_DOT,	/*	a */
	R_PILCROW,	/*	z */
	K_ILLEGAL,
	'@',		/*   	2 */
	'~',		/*	w */
	R_BETA, 	/*	s */
	R_s_V, 		/*	x */
	K_ILLEGAL,
	K_ILLEGAL,
	'#',		/*	3 */
	R_ae, 		/*	e */
	R_d_CROSS, 	/*	d */
	R_c_BEARD, 	/*	c */
	K_ILLEGAL,
	R_ONEFOURTH,	/*	4 */
	R_BQUOTE, 	/*	r */
	R_F, 		/*	f */
	R_SO, 		/*	v */
	' ',		/*  space */
	K_ILLEGAL,
	R_ONEHALF,	/*	5 */
	R_FQUOTE,	/*	t */
	R_OX, 		/*	g */
	R_BLACK, 	/*	b */
	K_ILLEGAL,
	'^',		/*	6 */
	R_HAT,		/*	y */
	R_YEN, 		/*	h */
	R_AUSCORE,	/*	n */
	K_ILLEGAL,
	'\\',		/*	7 */
	R_DDOT, 	/*	u */
	'$',		/*	j */
	R_OUSCORE,	/*	m */
	K_ILLEGAL,
	'[',		/*	8 */
	R_TILTA,	/*	i */
	R_CENT, 	/*	k */
	'<',		/*	, */
	K_ILLEGAL,
	']',		/*	9 */
	R_zero, 	/*	o */
	R_SPOUND,	/*	l */
	'>',		/*	. */
	K_ILLEGAL,
	R_UQUES,	/*	0 */
	R_ip, 		/*	p */
	K_ILLEGAL,
	R_DPOUND,	/*	; */
	'_',		/*	/ */
	K_ILLEGAL,
	R_PLUSMINUS,	/*	= */
	'|',		/*	] */
	R_MICRO,	/*	\ */
	K_ILLEGAL,
	R_MIDLINE,	/*	- */
	R_DEGREE,	/*	[ */
	'`',		/*	' */
	/* Shifted */
	R_RIGHTSHIFT,	/*	` */
	R_i,		/*	1 */
	R_MIDDOT,	/*	q */
	R_A_DOT,	/*	a */
	R_PILCROW,	/*	z */
	K_ILLEGAL,
	'@',		/*	2 */
	'~',		/*	w */
	R_BETA, 	/*	s */
	R_S_V, 		/*	x */
	K_ILLEGAL,
	K_ILLEGAL,
	'#',		/*	3 */
	R_AE, 		/*	e */
	R_D_CROSS, 	/*	d */
	R_C_BEARD, 	/*	c */
	K_ILLEGAL,
	R_THREEFOURTH,	/*	4 */
	R_BQUOTE, 	/*	r */
	R_F, 		/*	f */
	R_SO, 		/*	v */
	' ',		/* space */
	K_ILLEGAL,
	R_ONEHALF,	/*	5 */
	R_FQUOTE,	/*	t */
	R_OX, 		/*	g */
	R_BLACK, 	/*	b */
	K_ILLEGAL,
	'^',		/*	6 */
	R_HAT,		/*	y */
	R_YEN, 		/*	h */
	R_AUSCORE,	/*	n */
	K_ILLEGAL,
	'\\',		/*	7 */
	R_DDOT, 	/*	u */
	'$',		/*	j */
	R_OUSCORE,	/*	m */
	K_ILLEGAL,
	'\{',		/*	8 */
	R_TILTA,	/*	i */
	R_CENT, 	/*	k */
	'<',		/*	, */
	K_ILLEGAL,
	'\}',		/*	9 */
	R_ZERO, 	/*	o */
	R_SPOUND,	/*	l */
	'>',		/*	. */
	K_ILLEGAL,
	R_UQUES,	/*	0 */
	R_IP, 		/*	p */
	K_ILLEGAL,
	R_DPOUND,	/*	; */
	'_',		/*	/ */
	K_ILLEGAL,
	R_PLUSMINUS,	/*	= */
	'|',		/*	] */
	R_MICRO,	/*	\ */
	K_ILLEGAL,
	R_OVERBAR,	/*	- */
	R_DEGREE,	/*	[ */
	39,		/*	' */
};


unsigned short k_mute_enable[] = {
	K_MUTE,	/* (0) HP ITF United States */
	K_MUTE,	/* (1) HP ITF Belgian (Mute in 8 bit only) */
	K_MUTE,	/* (2) HP ITF Canadian English (Mute in 8 bit only) */
	K_MUTE,	/* (3) HP ITF Danish (Mute in 8 bit only) */
	K_MUTE,	/* (4) HP ITF Dutch (Mute in 8 bit only) */
	K_MUTE,	/* (5) HP ITF Finnish (Mute Characters - None) */
	K_MUTE,	/* (6) HP ITF French (AZERTY)(Mute in both 7 and 8 bit modes)*/
	K_MUTE,	/* (7) HP ITF Canadian French (Mute in 8 bit mode only) */
	K_MUTE,	/* (8) HP ITF Swiss French (Mute in 8 bit mode only) */
	K_MUTE,	/* (9) HP ITF German (Mute Characters - None) */
	K_MUTE,	/* (10) HP ITF Swiss German (Mute in 8 bit mode only) */
	K_MUTE,	/* (11) HP ITF Italian (Mute in 8 bit mode only) */
	K_MUTE,	/* (12) HP ITF Norwegian (Mute in 8 bit mode only) */
	K_MUTE,	/* (13) HP ITF European Spanish (Mute in 8 bit mode only) */
	K_MUTE,	/* (14) HP ITF Latin Spanish (Mute in both 7 and 8 bit modes) */
	K_MUTE,	/* (15) HP ITF Swedish (Mute in 8 bit mode only) */
	K_MUTE,	/* (16) HP ITF United Kingdom (Mute Characters - None) */
	0,	/* (17) HP ITF Katakana (Mute Characters - None) */
	K_MUTE,	/* (18) HP ITF Swiss French II (Mute in 8 bit mode only) */
	K_MUTE,	/* (19) HP ITF Swiss German II (Mute in 8 bit mode only) */
	0,	/* (20) HP ITF KANJI (Mute Characters - None) */
};

unsigned char k_alt_enable[] = {
	0,	/* (0) HP ITF United States */
	0,	/* (1) HP ITF Belgian */
	0,	/* (2) HP ITF Canadian English */
	0,	/* (3) HP ITF Danish */
	0,	/* (4) HP ITF Dutch */
	0,	/* (5) HP ITF Finnish */
	0,	/* (6) HP ITF French (AZERTY) */
	0,	/* (7) HP ITF Canadian French */
	0,	/* (8) HP ITF Swiss French */
	0,	/* (9) HP ITF German */
	0,	/* (10) HP ITF Swiss German */
	0,	/* (11) HP ITF Italian */
	0,	/* (12) HP ITF Norwegian */
	0,	/* (13) HP ITF European Spanish */
	0,	/* (14) HP ITF Latin Spanish */
	0,	/* (15) HP ITF Swedish */
	0,	/* (16) HP ITF United Kingdom */
	1,	/* (17) HP ITF Katakana (right extend set, left extend clear) */
	0,	/* (18) HP ITF Swiss French II */
	0,	/* (19) HP ITF Swiss German II */
	3,	/* (20) HP ITF Kanji (right extend toggle) */
};

unsigned char k_16bit_enable[] = {
	0,	/* (0) HP ITF United States */
	0,	/* (1) HP ITF Belgian */
	0,	/* (2) HP ITF Canadian English */
	0,	/* (3) HP ITF Danish */
	0,	/* (4) HP ITF Dutch */
	0,	/* (5) HP ITF Finnish */
	0,	/* (6) HP ITF French (AZERTY) */
	0,	/* (7) HP ITF Canadian French */
	0,	/* (8) HP ITF Swiss French */
	0,	/* (9) HP ITF German */
	0,	/* (10) HP ITF Swiss German */
	0,	/* (11) HP ITF Italian */
	0,	/* (12) HP ITF Norwegian */
	0,	/* (13) HP ITF European Spanish */
	0,	/* (14) HP ITF Latin Spanish */
	0,	/* (15) HP ITF Swedish */
	0,	/* (16) HP ITF United Kingdom */
	0,	/* (17) HP ITF Katakana */
	0,	/* (18) HP ITF Swiss French II */
	0,	/* (19) HP ITF Swiss German II */
	4, 	/* (20) HP ITF Kanji (left extend toggle) */
};

unsigned short k_code[] = {
/* unshifted table */
F1_KEY+K_s, 	F2_KEY+K_s, 	F3_KEY+K_s, 	F4_KEY+K_s,
F5_KEY+K_s, 	BREAK_KEY+K_s, 	STOP_KEY+K_s, 	MENU_KEY+K_s,
SYS_KEY+K_s, 	ENTER_KEY+K_s, 	CLR_LINE_KEY+K_s, DEL_LINE_KEY+K_s,
INSERT_LINE_KEY+K_s, CLR_DISP_KEY+K_s, F6_KEY+K_s, F7_KEY+K_s,
F8_KEY+K_s, 	MENU_KEY+K_s, 	SYS_KEY+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	'\033',
BS_KEY+K_s, 	'\n', 		HOME_UP_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	HELP_KEY+K_s, 	DO_KEY+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	CLR_LINE_KEY+K_s,CLR_DISP_KEY+K_s,
INSERT_LINE_KEY+K_s, DEL_LINE_KEY+K_s, BS_KEY+K_s, '*',
'/', 		'+', 		TAB_KEY+K_s, 	'\033',
FIND_KEY+K_s,	INSERT_CHAR_KEY+K_s, DEL_CHAR_KEY+K_s, SELECT_KEY+K_s,
PREV_KEY+K_s, 	NEXT_KEY+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
'0', 		K_ILLEGAL+K_s, 	'.', 		ENTER_KEY+K_s,
'1', 		'2', 		'3', 		'4',
'5', 		'6', 		',', 		'7',
'8', 		'9', 		'-', 		BLANK_1_KEY+K_s,
BLANK_2_KEY+K_s, BLANK_3_KEY+K_s, BLANK_4_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	CURS_LF_KEY+K_s, CURS_RT_KEY+K_s, CURS_DN_KEY+K_s,
CURS_UP_KEY+K_s, HOME_UP_KEY+K_s, K_ILLEGAL+K_s, K_ILLEGAL+K_s,
SHIFT_KEY+K_s, 	CONTROL_KEY+K_s, CAPS_KEY+K_s, 	TO_ROMAN_KEY+K_s,
TO_ALT_KEY+K_s, KANJI_LF_KEY+K_s, KANJI_RT_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	BS_KEY+K_s, 	RETURN_KEY+K_s,
TAB_KEY+K_s, 	K_LANG0, 	K_LANG2, 	K_LANG21,
K_LANG24, 	K_LANG26,	K_ILLEGAL, 	K_LANG3,
K_LANG22,	's', 		'x', 		'\033',
K_ILLEGAL+K_s, 	K_LANG4,	'e', 		'd',
'c', 		K_ILLEGAL+K_s, 	K_LANG5,	'r',
'f', 		'v', 		' ', 		K_ILLEGAL+K_s,
K_LANG6,	't', 		'g', 		'b',
K_ILLEGAL+K_s, 	K_LANG7,	K_LANG23,	'h',
'n', 		K_ILLEGAL+K_s, 	K_LANG8,	'u',
'j', 		K_LANG25,	K_ILLEGAL+K_s, 	K_LANG9,
'i', 		'k', 		K_LANG18,	K_ILLEGAL+K_s,
K_LANG10,	'o', 		'l', 		K_LANG19,
K_ILLEGAL+K_s, 	K_LANG11,	'p', 		K_ILLEGAL+K_s,
K_LANG16,	K_LANG20, 	K_ILLEGAL+K_s, 	K_LANG13,
K_LANG15, 	K_LANG1, 	K_ILLEGAL+K_s, 	K_LANG12,
K_LANG14, 	K_LANG17,

 /* shifted table */
F9_KEY+K_s, 	F10_KEY+K_s, 	F11_KEY+K_s, 	F12_KEY+K_s,
F13_KEY+K_s, 	RESET_KEY+K_s, 	SH_STOP_KEY+K_s, MENU_KEY+K_s,
USER_KEY+K_s, 	PRINT_KEY+K_s, 	CLR_ALL_LINE_KEY+K_s, DEL_LINE_KEY+K_s,
INSERT_LINE_KEY+K_s, CLR_ALL_DISP_KEY+K_s, F14_KEY+K_s,	F15_KEY+K_s,
F16_KEY+K_s, 	MENU_KEY+K_s, 	USER_KEY+K_s,   K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	'\033',
BS_KEY+K_s, 	'\n', 		HOME_DN_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	HELP_KEY+K_s, 	DO_KEY+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	CLR_ALL_LINE_KEY+K_s, CLR_ALL_DISP_KEY+K_s,
INSERT_LINE_KEY+K_s, DEL_LINE_KEY+K_s, BS_KEY+K_s, '*',
'/', 		'+', 		BACKTAB_KEY+K_s, '\177',
FIND_KEY+K_s,   INSERT_CHAR_KEY+K_s, DEL_CHAR_KEY+K_s, SH_SELECT_KEY+K_s,
PREV_KEY+K_s, 	NEXT_KEY+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
'0', 		K_ILLEGAL+K_s, 	'.', 		ENTER_KEY+K_s,
'1', 		'2', 		'3', 		'4',
'5', 		'6', 		',', 		'7',
'8', 		'9', 		'-', 		BLANK_5_KEY+K_s,
BLANK_6_KEY+K_s, BLANK_7_KEY+K_s, BLANK_8_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	ROLL_LF_KEY+K_s, ROLL_RT_KEY+K_s, ROLL_DN_KEY+K_s,
ROLL_UP_KEY+K_s, HOME_DN_KEY+K_s, K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
SHIFT_KEY+K_s, 	CONTROL_KEY+K_s, CAPS_KEY+K_s, 	TO_ROMAN_KEY+K_s,
TO_ALT_KEY+K_s, KANJI_LF_KEY+K_s, KANJI_RT_KEY+K_s, K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	K_ILLEGAL+K_s,
K_ILLEGAL+K_s, 	K_ILLEGAL+K_s, 	BS_KEY+K_s, 	RETURN_KEY+K_s,
BACKTAB_KEY+K_s, K_LANG27, 	K_LANG30, 	K_LANG49,
K_LANG52,	K_LANG54,	K_ILLEGAL+K_s, 	K_LANG31,
K_LANG50, 	'S', 		'X', 		'\177',
K_ILLEGAL+K_s, 	K_LANG32,	'E', 		'D',
'C', 		K_ILLEGAL+K_s, 	K_LANG33,	'R',
'F', 		'V', 		' ', 		K_ILLEGAL+K_s,
K_LANG34,	'T', 		'G', 		'B',
K_ILLEGAL+K_s, 	K_LANG35,	K_LANG51,	'H',
'N', 		K_ILLEGAL+K_s, 	K_LANG36,	'U',
'J', 		K_LANG53,	K_ILLEGAL+K_s, 	K_LANG37,
'I', 		'K', 		K_LANG46,	K_ILLEGAL+K_s,
K_LANG38,	'O', 		'L', 		K_LANG47,
K_ILLEGAL+K_s, 	K_LANG39,	'P', 		K_ILLEGAL+K_s,
K_LANG44,	K_LANG48, 	K_ILLEGAL+K_s, 	K_LANG41,
K_LANG43,	K_LANG28, 	K_ILLEGAL+K_s, 	K_LANG40,
K_LANG42,	K_LANG45 
};

unsigned char * k_langtab[] = {
	k_us,	   /* (0) HP ITF United States */
	k_french,  /* (1) HP ITF Belgian */
	k_canada,  /* (2) HP ITF Canadian English */
	k_danish,  /* (3) HP ITF Danish */
	k_dutch,   /* (4) HP ITF Dutch */
	k_finnish, /* (5) HP ITF Finnish */
	k_french,  /* (6) HP ITF French (AZERTY) */
	k_canada,  /* (7) HP ITF Canadian French */
	k_swissfr, /* (8) HP ITF Swiss French */
	k_german,  /* (9) HP ITF German */
	k_swissgr, /* (10) HP ITF Swiss German */
	k_italian, /* (11) HP ITF Italian */
	k_norway,  /* (12) HP ITF Norwegian */
	k_spain,   /* (13) HP ITF European Spanish */
	k_latinam, /* (14) HP ITF Latin Spanish */
	k_finnish, /* (15) HP ITF Swedish */
	k_uk,	   /* (16) HP ITF United Kingdom */
	k_us,	   /* (17) HP ITF Katakana */
	k_swissf2, /* (18) HP ITF Swiss French II */
	k_swissg2, /* (19) HP ITF Swiss German II */
	k_us, 	   /* (20) HP ITF Kanji */
};

/* Nationalized Keyboard Tables
*/
	/*	160-213						*/
	/* K_LANG31	160	@  */
	/* K_LANG35	161	^  */
	/* K_LANG36	162	&  */
	/* K_LANG37	163	*  */
	/* K_LANG38	164	(  */
	/* K_LANG39	165	)  */
	/* K_LANG40	166	_  */
	/* K_LANG12	167	-  */
	/* K_LANG41	168	+  */
	/* K_LANG13	169	=  */
	/* K_LANG51	170	Y  */
	/* K_LANG23	171	y  */
	/* K_LANG42	172	{  */
	/* K_LANG14	173	[  */
	/* K_LANG43	174	}  */
	/* K_LANG15	175	]  */
	/* K_LANG44	176	:  */
	/* K_LANG16	177	;  */
	/* K_LANG45	178	"  */
	/* K_LANG17	179	'  */
	/* K_LANG54	180	Z  */
	/* K_LANG26	181	z  */
	/* K_LANG46	182	<  */
	/* K_LANG47	183	>  */
	/* K_LANG48	184	?  */
	/* K_LANG20	185	/  */
	/* K_LANG32	186	#  */
	/* K_LANG49	187	Q  */
	/* K_LANG21	188	q  */
	/* K_LANG50	189	W  */
	/* K_LANG22	190	w  */
	/* K_LANG52	191	A  */
	/* K_LANG24	192	a  */
	/* K_LANG0	193	`  */
	/* K_LANG1	194	\  */
	/* K_LANG2	195	1  */
	/* K_LANG3	196	2  */
	/* K_LANG4	197	3  */
	/* K_LANG5	198	4  */
	/* K_LANG6	199	5  */
	/* K_LANG7	200	6  */
	/* K_LANG8	201	7  */
	/* K_LANG9	202	8  */
	/* K_LANG10	203	9  */
	/* K_LANG11	204	0  */
	/* K_LANG18	205	,  */
	/* K_LANG19	206	.  */
	/* K_LANG25	207	m  */
	/* K_LANG27	208	~  */
	/* K_LANG28	209	|  */
	/* K_LANG30	210	!  */
	/* K_LANG33	211	$  */
	/* K_LANG34	212	%  */
	/* K_LANG53	213	M  */

/* (0) HP ITF United States */
/* (17) HP ITF Katakana */
/* (20) HP ITF Kanji */
unsigned char k_us[] = {
	/* 160-213 */
	'@',	/* K_LANG31	160	@  */
	'^',	/* K_LANG35	161	^  */
	'&',	/* K_LANG36	162	&  */
	'*',	/* K_LANG37	163	*  */
	'(',	/* K_LANG38	164	(  */
	')',	/* K_LANG39	165	)  */
	'_',	/* K_LANG40	166	_  */
	'-',	/* K_LANG12	167	-  */
	'+',	/* K_LANG41	168	+  */ 
	'=',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	'\{',	/* K_LANG42	172	{  */
	'[',	/* K_LANG14	173	[  */
	'\}',	/* K_LANG43	174	}  */
	']',	/* K_LANG15	175	]  */
	':',	/* K_LANG44	176	:  */
	';',	/* K_LANG16	177	;  */
	'"',	/* K_LANG45	178	"  */
	39,	/* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	'<',	/* K_LANG46	182	<  */
	'>',	/* K_LANG47	183	>  */
	'?',	/* K_LANG48	184	?  */
	'/',	/* K_LANG20	185	/  */
	'#',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'`',	/* K_LANG0	193	`  */
	'\\',	/* K_LANG1	194	\  */
	/* 195-204 K_LANG2 - K_LANG11 */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'~',	/* K_LANG27	208	~  */
	'|',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (1) HP ITF Belgian */
/* (6) HP ITF French (AZERTY) */
unsigned char k_french[] = {
	/* 160-213 */
	'2',	/* K_LANG31	160	@  */
	'6',	/* K_LANG35	161	^  */
	'7',	/* K_LANG36	162	&  */
	'8',	/* K_LANG37	163	*  */
	'9',	/* K_LANG38	164	(  */
	'0',	/* K_LANG39	165	)  */
	R_DEGREE, /* K_LANG40	166	_  */
	')',	/* K_LANG12	167	-  */
	'_',	/* K_LANG41	168	+  */
	'-',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_DDOT,	/* K_LANG42	172	{  */
	R_HAT,	/* K_LANG14	173	[  */
	'*',	/* K_LANG43	174	}  */
	'`',	/* K_LANG15	175	]  */
	'M',	/* K_LANG44	176	:  */
	'm',	/* K_LANG16	177	;  */
	'%',	/* K_LANG45	178	"  */
	R_u_FQUOTE, /* K_LANG17	179	'  */
	'W',	/* K_LANG54	180	Z  */
	'w',	/* K_LANG26	181	z  */
	'.',	/* K_LANG46	182	<  */
	'/',	/* K_LANG47	183	>  */
	'+',	/* K_LANG48	184	?  */
	'=',	/* K_LANG20	185	/  */
	'3',	/* K_LANG32	186	#  */
	'A',	/* K_LANG49	187	Q  */
	'a',	/* K_LANG21	188	q  */
	'Z',	/* K_LANG50	189	W  */
	'z',	/* K_LANG22	190	w  */
	'Q',	/* K_LANG52	191	A  */
	'q',	/* K_LANG24	192	a  */
	'$',	/* K_LANG0	193	`  */
	'<',	/* K_LANG1	194	\  */
	'&',	/* K_LANG2	195	1  */
	R_e_BQUOTE, /* K_LANG3	196	2  */
	'"',	/* K_LANG4	197	3  */
	39,	/* K_LANG5	198	4  */
	'(',	/* K_LANG6	199	5  */
	R_SO,	/* K_LANG7	200	6  */
	R_e_FQUOTE, /* K_LANG8	201	7  */
	'!',	/* K_LANG9	202	8  */
	R_c_BEARD, /* K_LANG10	203	9  */
	R_a_FQUOTE, /* K_LANG11	204	0  */
	';',	/* K_LANG18	205	,  */
	':',	/* K_LANG19	206	.  */
	',',	/* K_LANG25	207	m  */
	R_SPOUND, /* K_LANG27	208	~  */
	'>',	/* K_LANG28	209	|  */
	'1',	/* K_LANG30	210	!  */
	'4',	/* K_LANG33	211	$  */
	'5',	/* K_LANG34	212	%  */
	'?',	/* K_LANG53	213	M  */
};

/* (2) HP ITF Canadian English */
/* (7) HP ITF Canadian French */
unsigned char k_canada[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'?',	/* K_LANG35	161	^  */
	'&',	/* K_LANG36	162	&  */
	'*',	/* K_LANG37	163	*  */
	'(',	/* K_LANG38	164	(  */
	')',	/* K_LANG39	165	)  */
	'_',	/* K_LANG40	166	_  */
	'-',	/* K_LANG12	167	-  */
	'+',	/* K_LANG41	168	+  */
	'=',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_DDOT,	/* K_LANG42	172	{  */
	R_HAT,	/* K_LANG14	173	[  */
	R_C_BEARD, /* K_LANG43	174	}  */
	R_c_BEARD, /* K_LANG15	175	]  */
	':',	/* K_LANG44	176	:  */
	';',	/* K_LANG16	177	;  */
	39,	/* K_LANG45	178	"  */
	R_FQUOTE, /* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	'<',	/* K_LANG46	182	<  */
	'>',	/* K_LANG47	183	>  */
	R_E_BQUOTE, /* K_LANG48	184	?  */
	R_e_BQUOTE, /* K_LANG20	185	/  */
	'/',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	']',	/* K_LANG0	193	`  */
	'@',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'[',	/* K_LANG27	208	~  */
	'#',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (3) HP ITF Danish */
unsigned char k_danish[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'+',	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_BQUOTE,/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_A_DOT, /* K_LANG42	172	{  */
	R_a_DOT, /* K_LANG14	173	[  */
	'^',	/* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_AE,	/* K_LANG44	176	:  */
	R_ae,	/* K_LANG16	177	;  */
	R_ZERO,	/* K_LANG45	178	"  */
	R_zero,	/* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	R_SO,	/* K_LANG32	186	#  */
	'Q',	/* K_LANG39	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	'@',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	'*',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (4) HP ITF Dutch */
unsigned char k_dutch[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'_',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	39,	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'/',	/* K_LANG12	167	-  */
	'\\',	/* K_LANG41	168	+  */
	'|',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_HAT,	/* K_LANG42	172	{  */
	R_DDOT,	/* K_LANG14	173	[  */
	'>',	/* K_LANG43	174	}  */
	'<',	/* K_LANG15	175	]  */
	'+',	/* K_LANG44	176	:  */
	':',	/* K_LANG16	177	;  */
	R_FQUOTE, /* K_LANG45	178	"  */
	R_BQUOTE, /* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	'*',	/* K_LANG47	183	>  */
	'=',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'#',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'@',	/* K_LANG0	193	`  */
	R_c_BEARD, /* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_SO,	/* K_LANG27	208	~  */
	R_F,	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (5) HP ITF Finnish */
/* (15) HP ITF Swedish */
unsigned char k_finnish[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'+',	/* K_LANG12	167	-  */
	R_E_BQUOTE, /* K_LANG41	168	+  */
	R_e_BQUOTE, /* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_A_DOT, /* K_LANG42	172	{  */
	R_a_DOT, /* K_LANG14	173	[  */
	R_U_DDOT, /* K_LANG43	174	}  */
	R_u_DDOT, /* K_LANG15	175	]  */
	R_O_DDOT, /* K_LANG44	176	:  */
	R_o_DDOT, /* K_LANG16	177	;  */
	R_A_DDOT, /* K_LANG45	178	"  */
	R_a_DDOT, /* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'#',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	39,	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	'*',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (8) HP ITF Swiss French */
unsigned char k_swissfr[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'!',	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_HAT,	/* K_LANG13	169	=  */
	'Z',	/* K_LANG51	170	Y  */
	'z',	/* K_LANG23	171	y  */
	R_u_DDOT, /* K_LANG42	172	{  */
	R_e_FQUOTE, /* K_LANG14	173	[  */
	R_BQUOTE, /* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_o_DDOT, /* K_LANG44	176	:  */
	R_e_BQUOTE, /* K_LANG16	177	;  */
	R_a_DDOT, /* K_LANG45	178	"  */
	R_a_FQUOTE, /* K_LANG17	179	'  */
	'Y',	/* K_LANG54	180	Z  */
	'y',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'*',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	R_SO,	/* K_LANG0	193	`  */
	'$',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_DEGREE, /* K_LANG27	208	~  */
	R_SPOUND, /* K_LANG28	209	|  */
	'+',	/* K_LANG30	210	!  */
	R_c_BEARD, /* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (9) HP ITF German */
unsigned char k_german[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	R_BETA,	/* K_LANG12	167	-  */
	'`',	/* K_LANG41	168	+  */
	39,	/* K_LANG13	169	=  */
	'Z',	/* K_LANG51	170	Y  */
	'z',	/* K_LANG23	171	y  */
	R_U_DDOT, /* K_LANG42	172	{  */
	R_u_DDOT, /* K_LANG14	173	[  */
	'*',	/* K_LANG43	174	}  */
	'+',	/* K_LANG15	175	]  */
	R_O_DDOT, /* K_LANG44	176	:  */
	R_o_DDOT, /* K_LANG16	177	;  */
	R_A_DDOT, /* K_LANG45	178	"  */
	R_a_DDOT, /* K_LANG17	179	'  */
	'Y',	/* K_LANG54	180	Z  */
	'y',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	R_SO,	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	R_SPOUND, /* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	'^',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (10) HP ITF Swiss German */
unsigned char k_swissgr[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'!',	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_HAT,	/* K_LANG13	169	=  */
	'Z',	/* K_LANG51	170	Y  */
	'z',	/* K_LANG23	171	y  */
	R_e_FQUOTE, /* K_LANG42	172	{  */
	R_u_DDOT, /* K_LANG14	173	[  */
	R_BQUOTE, /* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_e_BQUOTE, /* K_LANG44	176	:  */
	R_o_DDOT, /* K_LANG16	177	;  */
	R_a_FQUOTE, /* K_LANG45	178	"  */
	R_a_DDOT, /* K_LANG17	179	'  */
	'Y',	/* K_LANG54	180	Z  */
	'y',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'*',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	R_SO,	/* K_LANG0	193	`  */
	'$',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_DEGREE, /* K_LANG27	208	~  */
	R_SPOUND, /* K_LANG28	209	|  */
	'+',	/* K_LANG30	210	!  */
	R_c_BEARD, /* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (11) HP ITF Italian */
unsigned char k_italian[] = {
	/* 160-213 */
	'2',	/* K_LANG31	160	@  */
	'6',	/* K_LANG35	161	^  */
	'7',	/* K_LANG36	162	&  */
	'8',	/* K_LANG37	163	*  */
	'9',	/* K_LANG38	164	(  */
	'0',	/* K_LANG39	165	)  */
	R_DEGREE, /* K_LANG40	166	_  */
	')',	/* K_LANG12	167	-  */
	'+',	/* K_LANG41	168	+  */
	'-',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	'=',	/* K_LANG42	172	{  */
	R_i_FQUOTE, /* K_LANG14	173	[  */
	'&',	/* K_LANG43	174	}  */
	'$',	/* K_LANG15	175	]  */
	'M',	/* K_LANG44	176	:  */
	'm',	/* K_LANG16	177	;  */
	'%',	/* K_LANG45	178	"  */
	R_u_FQUOTE, /* K_LANG17	179	'  */
	'W',	/* K_LANG54	180	Z  */
	'w',	/* K_LANG26	181	z  */
	'.',	/* K_LANG46	182	<  */
	'/',	/* K_LANG47	183	>  */
	'!',	/* K_LANG48	184	?  */
	R_o_FQUOTE, /* K_LANG20	185	/  */
	'3',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'Z',	/* K_LANG50	189	W  */
	'z',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	'*',	/* K_LANG1	194	\  */
	R_SPOUND, /* K_LANG2	195	1  */
	R_e_BQUOTE, /* K_LANG3	196	2  */
	'"',	/* K_LANG4	197	3  */
	39,	/* K_LANG5	198	4  */
	'(',	/* K_LANG6	199	5  */
	'_',	/* K_LANG7	200	6  */
	R_e_FQUOTE, /* K_LANG8	201	7  */
	R_HAT,	/* K_LANG9	202	8  */
	R_c_BEARD, /* K_LANG10	203	9  */
	R_a_FQUOTE, /* K_LANG11	204	0  */
	';',	/* K_LANG18	205	,  */
	':',	/* K_LANG19	206	.  */
	',',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	R_SO,	/* K_LANG28	209	|  */
	'1',	/* K_LANG30	210	!  */
	'4',	/* K_LANG33	211	$  */
	'5',	/* K_LANG34	212	%  */
	'?',	/* K_LANG53	213	M  */
};

/* (12) HP ITF Norwegian */
unsigned char k_norway[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'+',	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_BQUOTE,/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_A_DOT, /* K_LANG42	172	{  */
	R_a_DOT, /* K_LANG14	173	[  */
	'^',	/* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_ZERO,	/* K_LANG44	176	:  */
	R_zero,	/* K_LANG16	177	;  */
	R_AE,	/* K_LANG45	178	"  */
	R_ae,	/* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'#',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	'@',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	'*',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (13) HP ITF European Spanish */
unsigned char k_spain[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	39,	/* K_LANG12	167	-  */
	R_i,	/* K_LANG41	168	+  */
	'`',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	'#',	/* K_LANG42	172	{  */
	'@',	/* K_LANG14	173	[  */
	'*',	/* K_LANG43	174	}  */
	'+',	/* K_LANG15	175	]  */
	R_N_TILTA, /* K_LANG44	176	:  */
	R_n_TILTA, /* K_LANG16	177	;  */
	R_DDOT,	/* K_LANG45	178	"  */
	R_BQUOTE, /* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	R_UQUES, /* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'<',	/* K_LANG0	193	`  */
	R_c_BEARD, /* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'>',	/* K_LANG27	208	~  */
	R_DEGREE, /* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (14) HP ITF Latin Spanish */
unsigned char k_latinam[] = {
	/* 160-213 */
	'@',	/* K_LANG31	160	@  */
	'^',	/* K_LANG35	161	^  */
	'&',	/* K_LANG36	162	&  */
	'*',	/* K_LANG37	163	*  */
	'(',	/* K_LANG38	164	(  */
	')',	/* K_LANG39	165	)  */
	'_',	/* K_LANG40	166	_  */
	'-',	/* K_LANG12	167	-  */
	'+',	/* K_LANG41	168	+  */
	'=',	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	R_DDOT,	/* K_LANG42	172	{  */
	R_BQUOTE, /* K_LANG14	173	[  */
	'"',	/* K_LANG43	174	}  */
	39,	/* K_LANG15	175	]  */
	R_N_TILTA, /* K_LANG44	176	:  */
	R_n_TILTA, /* K_LANG16	177	;  */
	':',	/* K_LANG45	178	"  */
	';',	/* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	'<',	/* K_LANG46	182	<  */
	'>',	/* K_LANG47	183	>  */
	'?',	/* K_LANG48	184	?  */
	'/',	/* K_LANG20	185	/  */
	'#',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'`',	/* K_LANG0	193	`  */
	R_UQUES, /* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_c_BEARD, /* K_LANG27	208	~  */
	R_i,	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (16) HP ITF United Kingdom */
unsigned char k_uk[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'^',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	'+',	/* K_LANG12	167	-  */
	'/',	/* K_LANG41	168	+  */
	39,	/* K_LANG13	169	=  */
	'Y',	/* K_LANG51	170	Y  */
	'y',	/* K_LANG23	171	y  */
	'\{',	/* K_LANG42	172	{  */
	'[',	/* K_LANG14	173	[  */
	'\}',	/* K_LANG43	174	}  */
	']',	/* K_LANG15	175	]  */
	'@',	/* K_LANG44	176	:  */
	'*',	/* K_LANG16	177	;  */
	'|',	/* K_LANG45	178	"  */
	'\\',	/* K_LANG17	179	'  */
	'Z',	/* K_LANG54	180	Z  */
	'z',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	R_SPOUND, /* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	'`',	/* K_LANG0	193	`  */
	'<',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	'~',	/* K_LANG27	208	~  */
	'>',	/* K_LANG28	209	|  */
	'!',	/* K_LANG30	210	!  */
	'$',	/* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (18) HP ITF Swiss French II */
unsigned char k_swissf2[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	96,	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_HAT,	/* K_LANG13	169	=  */
	'Z',	/* K_LANG51	170	Y  */
	'z',	/* K_LANG23	171	y  */
	R_u_DDOT, /* K_LANG42	172	{  */
	R_e_FQUOTE, /* K_LANG14	173	[  */
	'!',	/* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_o_DDOT, /* K_LANG44	176	:  */
	R_e_BQUOTE, /* K_LANG16	177	;  */
	R_a_DDOT, /* K_LANG45	178	"  */
	R_a_FQUOTE, /* K_LANG17	179	'  */
	'Y',	/* K_LANG54	180	Z  */
	'y',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'*',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	R_SO,	/* K_LANG0	193	`  */
	'$',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_DEGREE, /* K_LANG27	208	~  */
	R_SPOUND, /* K_LANG28	209	|  */
	'+',	/* K_LANG30	210	!  */
	R_c_BEARD, /* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};

/* (19) HP ITF Swiss German II */
unsigned char k_swissg2[] = {
	/* 160-213 */
	'"',	/* K_LANG31	160	@  */
	'&',	/* K_LANG35	161	^  */
	'/',	/* K_LANG36	162	&  */
	'(',	/* K_LANG37	163	*  */
	')',	/* K_LANG38	164	(  */
	'=',	/* K_LANG39	165	)  */
	'?',	/* K_LANG40	166	_  */
	96,	/* K_LANG12	167	-  */
	R_FQUOTE, /* K_LANG41	168	+  */
	R_HAT,	/* K_LANG13	169	=  */
	'Z',	/* K_LANG51	170	Y  */
	'z',	/* K_LANG23	171	y  */
	R_e_FQUOTE, /* K_LANG42	172	{  */
	R_u_DDOT, /* K_LANG14	173	[  */
	'!',	/* K_LANG43	174	}  */
	R_DDOT,	/* K_LANG15	175	]  */
	R_e_BQUOTE, /* K_LANG44	176	:  */
	R_o_DDOT, /* K_LANG16	177	;  */
	R_a_FQUOTE, /* K_LANG45	178	"  */
	R_a_DDOT, /* K_LANG17	179	'  */
	'Y',	/* K_LANG54	180	Z  */
	'y',	/* K_LANG26	181	z  */
	';',	/* K_LANG46	182	<  */
	':',	/* K_LANG47	183	>  */
	'_',	/* K_LANG48	184	?  */
	'-',	/* K_LANG20	185	/  */
	'*',	/* K_LANG32	186	#  */
	'Q',	/* K_LANG49	187	Q  */
	'q',	/* K_LANG21	188	q  */
	'W',	/* K_LANG50	189	W  */
	'w',	/* K_LANG22	190	w  */
	'A',	/* K_LANG52	191	A  */
	'a',	/* K_LANG24	192	a  */
	R_SO,	/* K_LANG0	193	`  */
	'$',	/* K_LANG1	194	\  */
	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
	',',	/* K_LANG18	205	,  */
	'.',	/* K_LANG19	206	.  */
	'm',	/* K_LANG25	207	m  */
	R_DEGREE, /* K_LANG27	208	~  */
	R_SPOUND, /* K_LANG28	209	|  */
	'+',	/* K_LANG30	210	!  */
	R_c_BEARD, /* K_LANG33	211	$  */
	'%',	/* K_LANG34	212	%  */
	'M',	/* K_LANG53	213	M  */
};


unsigned char * k_isotab[] = {
	k_isus,  /* (0) HP ITF United States */
	k_isfr,  /* (1) HP ITF Belgian */
	k_iscn,  /* (2) HP ITF Canadian English */
	k_isdn,  /* (3) HP ITF Danish */
	k_isdu,  /* (4) HP ITF Dutch */
	k_issw,  /* (5) HP ITF Finnish */
	k_isfr,  /* (6) HP ITF French (AZERTY) */
	k_iscn,  /* (7) HP ITF Canadian French */
	k_isss,  /* (8) HP ITF Swiss French */
	k_isgm,  /* (9) HP ITF German */
	k_isss,  /* (10) HP ITF Swiss German */
	k_isit,  /* (11) HP ITF Italian */
	k_isnw,  /* (12) HP ITF Norwegian */
	k_ises,  /* (13) HP ITF European Spanish */
	k_isls,  /* (14) HP ITF Latin Spanish */
	k_issw,  /* (15) HP ITF Swedish */
	k_isuk,  /* (16) HP ITF United Kingdom */
	k_isus,  /* (17) HP ITF Katakana */
	k_isss2, /* (18) HP ITF Swiss French II */
	k_isss2, /* (19) HP ITF Swiss German II */
	k_isus,  /* (20) HP ITF Kanji */
};

unsigned char k_isus[] = {
	35, 39, 60, 62, 64, 91, 92, 93,
	94, 96, 123, 124, 125, 126
};
unsigned char k_isfr[] = {
	R_SPOUND, 39, 60, 62, R_a_FQUOTE, R_DEGREE, R_c_BEARD, R_SO,
	R_HAT, 96, R_e_BQUOTE, R_u_FQUOTE, R_e_FQUOTE, R_DDOT
};
unsigned char k_isgm[] = {
	R_SPOUND, 39, 60, 62, R_SO, R_A_DDOT, R_O_DDOT, R_U_DDOT,
	94, 96, R_a_DDOT, R_o_DDOT, R_u_DDOT, R_BETA
};
unsigned char k_issw[] = {
	35, 39, 60, 62, R_E_BQUOTE, R_A_DDOT, R_O_DDOT, R_A_DOT,
	R_U_DDOT, R_e_BQUOTE, R_a_DDOT, R_o_DDOT, R_a_DOT, R_u_DDOT
};
unsigned char k_iscn[] = {
	35, 39, 60, 62, 64, 91, R_c_BEARD, 93,
	R_HAT, R_FQUOTE, R_e_BQUOTE, R_C_BEARD, R_E_BQUOTE, R_DDOT
};
unsigned char k_isdn[] = {
	R_SO, R_BQUOTE, 60, 62, 64, R_AE, R_ZERO, R_A_DOT,
	94, R_FQUOTE, R_ae, R_zero, R_a_DOT, R_DDOT
};
unsigned char k_isdu[] = {
	35, 39, 60, 62, 64, R_c_BEARD, 92, R_SO,
	R_HAT, R_FQUOTE, R_F, 124, R_BQUOTE, R_DDOT
};
unsigned char k_isss[] = {
	R_SPOUND, R_BQUOTE, R_e_BQUOTE, R_e_FQUOTE, R_a_FQUOTE, R_DEGREE, 
	R_c_BEARD, R_SO,
	R_HAT, R_FQUOTE, R_a_DDOT, R_o_DDOT, R_u_DDOT, R_DDOT
};
unsigned char k_isss2[] = {
	R_SPOUND, R_BQUOTE, R_e_BQUOTE, R_e_FQUOTE, R_a_FQUOTE, R_DEGREE, 
	R_c_BEARD, R_SO,
	R_HAT, 96, R_a_DDOT, R_o_DDOT, R_u_DDOT, R_DDOT
};
unsigned char k_isit[] = {
	R_SPOUND, 39, 60, 62, R_SO, R_DEGREE, R_c_BEARD, R_e_BQUOTE,
	R_HAT, R_u_FQUOTE, R_a_FQUOTE, R_o_FQUOTE, R_e_FQUOTE, R_i_FQUOTE
};
unsigned char k_isnw[] = {
	35, R_BQUOTE, 60, 62, 64, R_AE, R_ZERO, R_A_DOT,
	94, R_FQUOTE, R_ae, R_zero, R_a_DOT, R_DDOT
};
unsigned char k_ises[] = {
	35, R_BQUOTE, 60, 62, 64, R_i, R_N_TILTA, R_UQUES,
	R_DEGREE, 96, 39, R_n_TILTA, R_c_BEARD, R_DDOT
};
unsigned char k_isls[] = {
	35, R_BQUOTE, 60, 62, 64, R_i, R_N_TILTA, R_UQUES,
	94, 96, 39, R_n_TILTA, R_c_BEARD, R_DDOT
};
unsigned char k_isuk[] = {
	R_SPOUND, 39, 60, 62, 64, 91, 92 ,93,
	94, 96, 123, 124, 125, 126
};

/* Language Jumper Conversion Table */
char klang_jump[] = {
    K_HP_USASCII, 		/* 0 */	/* HP ITF keyboards */
    K_HP_USASCII, 		/* 1 */
    K_HP_KANJI, 		/* 2 */
    K_HP_SWISSFRENCH, 		/* 3 */
    K_HP_USASCII, 		/* 4 */
    K_HP_USASCII, 		/* 5 */
    K_HP_USASCII, 		/* 6 */
    K_HP_CANENG, 		/* 7 */
    K_HP_USASCII, 		/* 8 */
    K_HP_USASCII, 		/* 9 */
    K_HP_USASCII, 		/* 10 */
    K_HP_ITALIAN, 		/* 11 */
    K_HP_USASCII, 		/* 12 */
    K_HP_DUTCH, 		/* 13 */
    K_HP_SWEDISH, 		/* 14 */
    K_HP_GERMAN, 		/* 15 */
    K_HP_USASCII, 		/* 16 */
    K_HP_USASCII, 		/* 17 */
    K_HP_SWISSFRENCH2, 		/* 18 */
    K_HP_EUROSPANISH, 		/* 19 */
    K_HP_SWISSGERMAN2, 		/* 20 */
    K_HP_BELGIAN, 		/* 21 */
    K_HP_FINNISH, 		/* 22 */
    K_HP_UNITEDK, 		/* 23 */
    K_HP_CANFRENCH, 		/* 24 */
    K_HP_SWISSGERMAN, 		/* 25 */
    K_HP_NORWEGIAN, 		/* 26 */
    K_HP_FRENCH, 		/* 27 */
    K_HP_DANISH, 		/* 28 */
    K_HP_KATAKANA, 		/* 29 */
    K_HP_LATSPANISH, 		/* 30 */
    K_HP_USASCII, 		/* 31 */
};