#include "ckcsym.h"

#include "ckcdeb.h"			/* Includes... */
#include "ckcker.h"
#include "ckucmd.h"
#include "ckcxla.h"

#ifdef NOXFER
#define zdstuff(a)
#endif /* NOXFER */

#ifndef NOCSETS
char *xlav = "Character Set Translation 8.0.042, 3 Jul 2000";

/*  C K U X L A  */

/*  C-Kermit tables and functions supporting character set translation.  */
/*
  Author: Frank da Cruz <fdc@columbia.edu>,
  Columbia University Academic Information Systems, New York City.

  Copyright (C) 1985, 2004,
    Trustees of Columbia University in the City of New York.
    All rights reserved.  See the C-Kermit COPYING.TXT file or the
    copyright text in the ckcmai.c module for disclaimer and permissions.
*/

/* Character set translation data and functions */

extern int zincnt;			/* File i/o macros and variables */
extern char *zinptr;
extern int zoutcnt;
extern char *zoutptr;
extern int byteorder;
extern int xfrxla;

int tslevel  = TS_L0;			/* Transfer syntax level (0,1,2) */
int tcharset = TC_TRANSP;		/* Transfer syntax character set */
int tcs_save = -1;			/* For save/restore term charset */
int tcs_transp = 0;			/* Term charset is TRANSPARENT flag */

#ifdef CKOUNI
int tcsr     = TX_8859_1;		/* Remote terminal character set */
#else /* CKOUNI */
int tcsr     = FC_USASCII;
#endif /* CKOUNI */
int language = L_USASCII;		/* Language */

#ifdef UNICODE
int ucsbom = 1;				/* Add BOM to new UCS files? */
int ucsorder = -1;			/* Default byte order for UCS files */
int fileorder = -1;			/* Byte order of current file */
					/* 0 = BE, 1 = LE */
#endif /* UNICODE */
/*
  Default local file and terminal character set.
  Normally ASCII, but for some systems we know otherwise.
*/
int fcs_save = -1;
#ifdef datageneral			/* Data General AOS/VS */
int fcharset = FC_DGMCS;		/* uses the DG International set */
int dcset8   = FC_DGMCS;
int dcset7   = FC_USASCII;
int tcsl     = FC_DGMCS;
#else
#ifdef NEXT				/* The NeXT workstation */
int fcharset = FC_NEXT;			/* uses its own 8-bit set */
int dcset8   = FC_NEXT;
int dcset7   = FC_USASCII;
int tcsl     = FC_NEXT;
#else
#ifdef MAC				/* The Macintosh */
int fcharset = FC_APPQD;		/* uses an extended version of */
int dcset8   = FC_APPQD;
int dcset7   = FC_USASCII;
int tcsl     = FC_APPQD;		/* Apple Quickdraw */
#else
#ifdef AUX
int fcharset = FC_APPQD;		/* Ditto for Apple A/UX */
int dcset8   = FC_APPQD;
int dcset7   = FC_USASCII;
int tcsl     = FC_APPQD;
#else
#ifdef AMIGA				/* The Commodore Amiga */
int fcharset = FC_1LATIN;		/* uses Latin-1 */
int dcset8   = FC_1LATIN;
int dcset7   = FC_USASCII;
int tcsl     = FC_1LATIN;
#else					/* All others */
#ifdef CKOUNI 				/* OS/2 Unicode */
int fcharset = FC_1LATIN;
int dcset8   = FC_1LATIN;
int dcset7   = FC_USASCII;
int tcsl     = TX_8859_1;
int prncs    = TX_CP437;
#else					/* All others */
int fcharset = FC_USASCII;		/* use ASCII by default */
int dcset8   = FC_1LATIN;		/* But default 8-bit set is Latin-1 */
int dcset7   = FC_USASCII;
int tcsl     = FC_USASCII;
int prncs    = FC_CP437;
#endif /* CKOUNI */
#endif /* AMIGA */
#endif /* AUX */
#endif /* MAC */
#endif /* NEXT */
#endif /* datageneral */

int s_cset = XMODE_A;			/* SEND charset selection = AUTO */
int r_cset = XMODE_A;			/* RECV charset selection = AUTO */
int afcset[MAXFCSETS+1];		/* Character-set associations */
int axcset[MAXTCSETS+1];
int xlatype = XLA_NONE;			/* Translation type */

#ifdef UNICODE
#ifdef CK_ANSIC
extern int (*xl_utc[MAXTCSETS+1])(USHORT);  /* Unicode to TCS */
extern int (*xl_ufc[MAXFCSETS+1])(USHORT);  /* Unicode to FCS */
extern USHORT (*xl_tcu[MAXTCSETS+1])(CHAR); /* TCS to Unicode */
extern USHORT (*xl_fcu[MAXFCSETS+1])(CHAR); /* FCS to Unicode */
#else
extern int (*xl_utc[MAXTCSETS+1])();
extern int (*xl_ufc[MAXFCSETS+1])();
extern USHORT (*xl_tcu[MAXTCSETS+1])();
extern USHORT (*xl_fcu[MAXFCSETS+1])();
#endif /* CK_ANSIC */
#endif /* UNICODE */

/* Bureaucracy section */

_PROTOTYP( CHAR xnel1, (CHAR c) );	/* NeXT to Latin-1 */
_PROTOTYP( CHAR xl143, (CHAR c) );	/* Latin-1 to IBM CP437 */
_PROTOTYP( CHAR xl1as, (CHAR c) );	/* Latin-1 to US ASCII */
_PROTOTYP( CHAR zl1as, (CHAR c) );	/* Latin-1 to US ASCII */

#ifdef CYRILLIC
_PROTOTYP( CHAR xassk, (CHAR c) );	/* ASCII to Short KOI */
_PROTOTYP( CHAR xskcy, (CHAR c) );	/* Short KOI to Latin/Cyrillic */
#endif /* CYRILLIC */

#ifdef LATIN2
_PROTOTYP( CHAR xnel2, (CHAR c) );	/* NeXT to Latin-2 */
_PROTOTYP( CHAR xl243, (CHAR c) );	/* Latin-2 to IBM CP437 */
_PROTOTYP( CHAR xl2as, (CHAR c) );	/* Latin-2 to US ASCII */
_PROTOTYP( CHAR zl2as, (CHAR c) );	/* Latin-2 to US ASCII */
_PROTOTYP( CHAR xl2r8, (CHAR c) );	/* Latin-2 to HP */
_PROTOTYP( CHAR xl2l9, (CHAR c) );	/* Latin-2 to Latin-9 */
_PROTOTYP( CHAR xl9l2, (CHAR c) );	/* Latin-9 to Latin-2 */
_PROTOTYP( CHAR xl2mz, (CHAR c) );	/* Latin-2 to Mazovia */
_PROTOTYP( CHAR xmzl2, (CHAR c) );	/* Mazovia to Latin-2 */
_PROTOTYP( CHAR xl1mz, (CHAR c) );	/* Latin-1 to Mazovia */
_PROTOTYP( CHAR xmzl1, (CHAR c) );	/* Mazovia to Latin-1 */
_PROTOTYP( CHAR xmzl9, (CHAR c) );	/* Latin-9 to Mazovia */
_PROTOTYP( CHAR xl9mz, (CHAR c) );	/* Mazovia to Latin-9 */
#endif /* LATIN2 */

/* Transfer character-set info */

struct csinfo tcsinfo[] = {
/*  Name              size code      designator alphabet keyword            */
  "TRANSPARENT",       256,TC_TRANSP, "",      AL_UNK,  "transparent",  /* 0 */
  "ASCII",             128,TC_USASCII,"",      AL_ROMAN,"ascii",        /* 1 */
  "ISO 8859-1 Latin-1",256,TC_1LATIN, "I6/100",AL_ROMAN,"latin1-iso",   /* 2 */
#ifdef LATIN2
  "ISO 8859-2 Latin-2",256,TC_2LATIN, "I6/101",AL_ROMAN,"latin2-iso",   /* 3 */
#endif /* LATIN2 */
#ifdef CYRILLIC
  /* 4 */
  "ISO 8859-5 Latin/Cyrillic",256,TC_CYRILL,"I6/144",AL_CYRIL,"cyrillic-iso",
#endif /* CYRILLIC */
#ifdef KANJI
  "Japanese EUC",16384,TC_JEUC,  "I14/87/13", AL_JAPAN, "euc-jp",       /* 5 */
#endif /* KANJI */
#ifdef HEBREW
  /* 6 */
  "ISO 8859-8 Latin/Hebrew",256,TC_HEBREW,"I6/138",AL_HEBREW,"hebrew-iso",
#endif /* HEBREW */
#ifdef GREEK
  "ISO 8859-7 Latin/Greek",256,TC_GREEK,"I6/126",AL_GREEK,"greek-iso", /*  7 */
#endif /* GREEK */
  "ISO 8859-15 Latin-9",256,TC_9LATIN,"I6/203",AL_ROMAN,"latin9-iso",  /*  8 */
  "ISO 10646 / Unicode UCS-2",64000,TC_UCS2,"I162",AL_UNIV,"ucs2",     /*  9 */
  "ISO 10646 / Unicode UTF-8",64000,TC_UTF8,"I190",AL_UNIV,"utf8",     /* 10 */
  "",0,0,"",0,""
};
int ntcsets = (sizeof(tcsinfo) / sizeof(struct csinfo)) - 1;

struct keytab tcstab[] = {		/* Keyword table for */
    "ascii",         TC_USASCII, 0,	/* SET TRANSFER CHARACTER-SET */
#ifdef CYRILLIC
    "cyrillic-iso",  TC_CYRILL,  0,
#endif /* CYRILLIC */
#ifdef GREEK
    "elot928-greek", TC_GREEK,   CM_INV,
#endif /* GREEK */
#ifdef KANJI
    "euc-jp",        TC_JEUC,    0,
#endif /* KANJI */
#ifdef GREEK
    "greek-iso",     TC_GREEK,   0,
#endif /* GREEK */
#ifdef HEBREW
    "hebrew-iso",    TC_HEBREW,  0,
#endif /* HEBREW */
#ifdef KANJI
    "japanese-euc",  TC_JEUC,    CM_INV,
#endif /* KANJI */
    "l",             TC_1LATIN,  CM_ABR|CM_INV,
    "la",            TC_1LATIN,  CM_ABR|CM_INV,
    "lat",           TC_1LATIN,  CM_ABR|CM_INV,
    "lati",          TC_1LATIN,  CM_ABR|CM_INV,
    "latin",         TC_1LATIN,  CM_ABR|CM_INV,
    "latin1-iso",    TC_1LATIN,  0,
#ifdef LATIN2
    "latin2-iso",    TC_2LATIN,  0,
#endif /* LATIN2 */
    "latin9-iso",    TC_9LATIN,  0,
    "transparent",   TC_TRANSP,  0,
#ifdef UNICODE
    "ucs2",          TC_UCS2,    0,
    "utf8",          TC_UTF8,    0,
#endif /* UNICODE */
    "", 0, 0
};
int ntcs = (sizeof(tcstab) / sizeof(struct keytab)) - 1;

/* File character set information structure, indexed by character set code, */
/* as defined in ckuxla.h.  This table must be in order of file character */
/* set number! */

struct csinfo fcsinfo[] = { /* File character set information... */
  /* Descriptive Name              Size  Designator */
  "US ASCII",                     128, FC_USASCII, NULL, AL_ROMAN, "ascii",
  "British/UK ISO-646",           128, FC_UKASCII, NULL, AL_ROMAN, "british",
  "Dutch ISO-646",                128, FC_DUASCII, NULL, AL_ROMAN, "dutch",
  "Finnish ISO-646",              128, FC_FIASCII, NULL, AL_ROMAN, "finnish",
  "French ISO-646",               128, FC_FRASCII, NULL, AL_ROMAN, "french",
  "Canadian-French NRC", 128, FC_FCASCII, NULL, AL_ROMAN, "canadian-french",
  "German ISO-646",               128, FC_GEASCII, NULL, AL_ROMAN, "german",
  "Hungarian ISO-646",            128, FC_HUASCII, NULL, AL_ROMAN, "hungarian",
  "Italian ISO-646",              128, FC_ITASCII, NULL, AL_ROMAN, "italian",
  "Norwegian/Danish ISO-646",128,FC_NOASCII,NULL,AL_ROMAN,"norwegian/danish",
  "Portuguese ISO-646",           128, FC_POASCII, NULL, AL_ROMAN,"portuguese",
  "Spanish ISO-646",              128, FC_SPASCII, NULL, AL_ROMAN, "spanish",
  "Swedish ISO-646",              128, FC_SWASCII, NULL, AL_ROMAN, "swedish",
  "Swiss NRC",                    128, FC_CHASCII, NULL, AL_ROMAN, "swiss",
  "ISO 8859-1 Latin-1",           256, FC_1LATIN,  NULL, AL_ROMAN,"latin1-iso",
  "ISO 8859-2 Latin-2",           256, FC_2LATIN,  NULL, AL_ROMAN,"latin2-iso",
  "DEC Multinational", 256,  FC_DECMCS, NULL,AL_ROMAN,"dec-multinational",
  "NeXT Multinational", 256, FC_NEXT,   NULL,AL_ROMAN,"next-multinational",
  "PC Code Page 437",            256, FC_CP437,   NULL, AL_ROMAN,"cp437",
  "PC Code Page 850",            256, FC_CP850,   NULL, AL_ROMAN,"cp850",
  "PC Code Page 852",            256, FC_CP852,   NULL, AL_ROMAN,"cp852",
  "Apple Macintosh Latin", 256, FC_APPQD,   NULL, AL_ROMAN,"macintosh-latin",
  "Data General International",256,FC_DGMCS,NULL,AL_ROMAN,"dg-international",
  "Hewlett Packard Roman8",    256, FC_HPR8,    NULL, AL_ROMAN, "hp-roman8",
  "ISO 8859-5 Latin/Cyrillic", 256, FC_CYRILL,  NULL, AL_CYRIL,"cyrillic-iso",
  "CP866 Cyrillic",	       256, FC_CP866,   NULL, AL_CYRIL,"cp866",
  "Short KOI",                 128, FC_KOI7,    NULL, AL_CYRIL,"short-koi",
  "Old KOI-8 Cyrillic",        256, FC_KOI8,    NULL, AL_CYRIL,"koi8-cyrillic",
  "Japanese JIS7",	  16384, FC_JIS7,    NULL, AL_JAPAN, "jis7-kanji",
  "Japanese Shift JIS",	  16384, FC_SHJIS,   NULL, AL_JAPAN, "shift-jis-kanji",
  "Japanese EUC",	  16384, FC_JEUC,    NULL, AL_JAPAN, "euc-jp",
  "Japanese DEC Kanji",	  16384, FC_JDEC,    NULL, AL_JAPAN, "dec-kanji",
  "Hebrew-7 DEC",           128, FC_HE7,     NULL, AL_HEBREW, "hebrew-7",
  "ISO 8859-8 Latin/Hebrew",256, FC_HEBREW,  NULL, AL_HEBREW, "hebrew-iso",
  "CP862 Hebrew",           256, FC_CP862,   NULL, AL_HEBREW, "cp862-hebrew",
  "ELOT 927 Greek",         128, FC_ELOT,    NULL, AL_GREEK, "elot927-greek",
  "ISO 8859-7 Latin/Greek", 256, FC_GREEK,   NULL, AL_GREEK, "greek-iso",
  "CP869 Greek",            256, FC_CP869,   NULL, AL_GREEK, "cp869-greek",
  "ISO 8859-15 Latin-9",    256, FC_9LATIN,  NULL, AL_ROMAN, "latin9-iso",
  "PC Code Page 858",       256, FC_CP850,   NULL, AL_ROMAN, "cp858",
  "PC Code Page 855",       256, FC_CP855,   NULL, AL_CYRIL, "cp855-cyrillic",
  "Windows Code Page 1251", 256, FC_CP1251,  NULL, AL_CYRIL, "cp1251-cyrillic",
  "Bulgarian PC Code Page", 256, FC_BULGAR,  NULL, AL_CYRIL, "bulgaria-pc",
  "Windows Code Page 1250", 256, FC_CP1250,  NULL, AL_ROMAN, "cp1250",
  "Polish Mazovia PC Code Page", 256, FC_MAZOVIA, NULL, AL_ROMAN, "mazovia-pc",
  "ISO 10646 / Unicode UCS-2", 64000, FC_UCS2, NULL, AL_UNIV, "ucs2",
  "ISO 10646 / Unicode UTF-8", 64000, FC_UCS2, NULL, AL_UNIV, "utf8",
  "KOI8-R Russian+Boxdrawing",256,  FC_KOI8R, NULL, AL_CYRIL,"koi8r",
  "KOI8-U Ukrainian+Boxdrawing",256,FC_KOI8U, NULL, AL_CYRIL,"koi8u",
  "Windows Code Page 1252", 256, FC_CP1252,  NULL, AL_ROMAN, "cp1252",
  "",0,0,NULL,0,NULL
};

/* Local file character sets */
/* Includes 7-bit National Replacement Character Sets of ISO 646 */
/* Plus ISO Latin-1, DEC Multinational Character Set (MCS), NeXT char set, */
/* Various PC and Windows code pages, etc. */

struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */
/*
  IMPORTANT: This table is replicated below as ttcstab (terminal character
  set table).  The only differences are the addition of TRANSPARENT
  and the removal of the Kanji sets, which are not supported yet.
  If you make changes to this table, also change ttcstab.
*/

/* Keyword             Value       Flags */
    "apple-quickdraw",    FC_APPQD,   CM_INV, /* Apple Quickdraw */
    "ascii",              FC_USASCII, 0, /* ASCII */
    "british",            FC_UKASCII, 0, /* British NRC */
    "bulgaria-pc",        FC_BULGAR,  0, /* Bulgarian PC Code Page */
    "canadian-french",    FC_FCASCII, 0, /* French Canadian NRC */
#ifdef LATIN2
    "cp1250",             FC_CP1250,  0, /* Windows CP 1250 */
#endif /* LATIN2 */
#ifdef CYRILLIC
    "cp1251-cyrillic",    FC_CP1251,  0, /* Windows CP 1251 */
#endif /* CYRILLIC */
    "cp1252",             FC_CP1252,  0, /* Windows CP 1252 */
    "cp437",              FC_CP437,   0, /* PC CP437 */
    "cp850",              FC_CP850,   0, /* PC CP850 */
#ifdef LATIN2
    "cp852",              FC_CP852,   0, /* PC CP852 */
#endif /* LATIN2 */
#ifdef CYRILLIC
    "cp855-cyrillic",     FC_CP855,   0, /* PC CP855 */
#endif /* CYRILLIC */
    "cp858",              FC_CP858,   0, /* PC CP858 */
#ifdef HEBREW
    "cp862-hebrew",       FC_CP862,   0, /* PC CP862 */
#endif /* HEBREW */
#ifdef CYRILLIC
    "cp866-cyrillic",     FC_CP866,   0, /* CP866 Cyrillic */
#endif /* CYRILLIC */
#ifdef GREEK
    "cp869-greek",        FC_CP869,   0, /* CP869 Greek */
#endif /* GREEK */
#ifdef CYRILLIC
    "cyrillic-iso",       FC_CYRILL,  0, /* ISO Latin/Cyrillic Alphabet */
#endif /* CYRILLIC */
    "danish",             FC_NOASCII, 0, /* Norwegian and Danish NRC */
#ifdef KANJI
    "dec-kanji",          FC_JDEC,    0, /* Japanese DEC Kanji */
#endif /* KANJI */
    "dec-multinational",  FC_DECMCS,  0, /* DEC multinational character set */
    "dg-international",   FC_DGMCS,   0, /* Data General multinational */
    "dutch",              FC_DUASCII, 0, /* Dutch NRC */
#ifdef GREEK
    "elot927-greek",      FC_ELOT,    0, /* ELOT 927 Greek */
    "elot928-greek",      FC_GREEK,   0, /* Same as ISO 8859-7 Latin/Greek */
#endif /* GREEK */
#ifdef KANJI
    "euc-jp",             FC_JEUC,    0, /* Japanese EUC */
#endif /* KANJI */
    "finnish",            FC_FIASCII, 0, /* Finnish NRC */
    "french",             FC_FRASCII, 0, /* French NRC */
    "fr-canadian",        FC_FCASCII, CM_INV, /* French Canadian NRC */
    "german",             FC_GEASCII, 0, /* German NRC */
#ifdef GREEK
    "greek-iso",          FC_GREEK,   0, /* ISO 8859-7 Latin/Greek */
#endif /* GREEK */
#ifdef HEBREW
    "he",                 FC_HEBREW,  CM_ABR|CM_INV,
    "heb",                FC_HEBREW,  CM_ABR|CM_INV,
    "hebr",               FC_HEBREW,  CM_ABR|CM_INV,
    "hebre",              FC_HEBREW,  CM_ABR|CM_INV,
    "hebrew",             FC_HEBREW,  CM_ABR|CM_INV,
    "hebrew-7",           FC_HE7,     0, /* DEC 7-Bit Hebrew */
    "hebrew-iso",         FC_HEBREW,  0, /* ISO Latin/Hebrew */
#endif /* HEBREW */
    "hp-roman8",          FC_HPR8,    0, /* Hewlett Packard Roman8 */
    "hungarian",          FC_HUASCII, 0, /* Hungarian NRC */
#ifdef KANJI
    "iso2022jp-kanji",    FC_JIS7,    0, /* Synonym for JIS-7 */
#endif /* KANJI */
    "italian",            FC_ITASCII, 0, /* Italian NRC */
#ifdef KANJI
    "japanese-euc",       FC_JEUC,    CM_INV, /* Japanese EUC */
    "jis7-kanji",         FC_JIS7,    0, /* Japanese JIS7 7bit code */
#endif /* KANJI */
#ifdef CYRILLIC
    "k",                  FC_KOI8,    CM_ABR|CM_INV,
    "ko",                 FC_KOI8,    CM_ABR|CM_INV,
    "koi",                FC_KOI8,    CM_ABR|CM_INV,
    "koi8",               FC_KOI8,    0, /* Old KOI-8 Cyrillic */
    "koi8-cyrillic",      FC_KOI8,    CM_INV,
    "koi8r",              FC_KOI8R,   0, /* KOI8-R RFC1489 */
    "koi8u",              FC_KOI8U,   0, /* KOI8-U RFC2319 */
#endif /* CYRILLIC */
    "l",                  FC_1LATIN,  CM_ABR|CM_INV,
    "la",                 FC_1LATIN,  CM_ABR|CM_INV,
    "lat",                FC_1LATIN,  CM_ABR|CM_INV,
    "lati",               FC_1LATIN,  CM_ABR|CM_INV,
    "latin",              FC_1LATIN,  CM_ABR|CM_INV,
    "latin1-iso",         FC_1LATIN,  0, /* ISO Latin Alphabet 1 */
#ifdef LATIN2
    "latin2-iso",         FC_2LATIN,  0, /* ISO Latin Alphabet 2 */
#endif /* LATIN2 */
    "latin9-iso",         FC_9LATIN,  0, /* ISO Latin Alphabet 9 */
    "macintosh-latin",    FC_APPQD,   0, /* "Extended Mac Latin" */
#ifdef LATIN2
    "mazovia-pc",         FC_MAZOVIA, 0, /* Polish Mazovia PC code page */
#endif /* LATIN2 */
    "next-multinational", FC_NEXT,    0, /* NeXT workstation */
    "norwegian",          FC_NOASCII, 0, /* Norwegian and Danish NRC */
    "portuguese",         FC_POASCII, 0, /* Portuguese NRC */
#ifdef KANJI
    "shift-jis-kanji",    FC_SHJIS,   0, /* Japanese Kanji Shift-JIS */
#endif /* KANJI */
#ifdef CYRILLIC
    "short-koi",          FC_KOI7,    0, /* Short KOI Cyrillic */
#endif /* CYRILLIC */
    "spanish",            FC_SPASCII, 0, /* Spanish NRC */
    "swedish",            FC_SWASCII, 0, /* Swedish NRC */
    "swiss",              FC_CHASCII, 0, /* Swiss NRC */
#ifdef UNICODE
    "ucs2",               FC_UCS2,    0, /* ISO 10646 / Unicode UCS-2 */
    "utf8",               FC_UTF8,    0, /* ISO 10646 / Unicode UTF-8 */
#endif /* UNICODE */
    "", 0, 0
};
int nfilc = (sizeof(fcstab) / sizeof(struct keytab)) - 1;

struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */
/*
  IMPORTANT: This table is a replica of fcstab, immediately above, with the
  addition of TRANSPARENT and deletion of the Japanese sets.  If you make
  changes to this table, make the corresponding changes to fcstab.
*/
/* Keyword               Value       Flags */
    "apple-quickdraw",    FC_APPQD,   CM_INV, /* Apple Quickdraw */
    "ascii",              FC_USASCII, 0, /* ASCII */
    "british",            FC_UKASCII, 0, /* British NRC */
    "bulgaria-pc",        FC_BULGAR,  0, /* Bulgarian PC Code Page */
    "canadian-french",    FC_FCASCII, 0, /* French Canadian NRC */
#ifdef LATIN2
    "cp1250",             FC_CP1250,  0, /* Windows CP 1250 */
#endif /* LATIN2 */
#ifdef CYRILLIC
    "cp1251-cyrillic",    FC_CP1251,  0, /* Windows CP 1251 */
#endif /* CYRILLIC */
    "cp1252",             FC_CP1252,  0, /* Windows CP 1252 */
    "cp437",              FC_CP437,   0, /* IBM CP437 */
    "cp850",              FC_CP850,   0, /* IBM CP850 */
#ifdef LATIN2
    "cp852",              FC_CP852,   0, /* IBM CP852 */
#endif /* LATIN2 */
#ifdef CYRILLIC
    "cp855-cyrillic",     FC_CP855,   0, /* PC CP855 */
#endif /* CYRILLIC */
    "cp858",              FC_CP858,   0, /* PC CP858 */
#ifdef HEBREW
    "cp862-hebrew",       FC_CP862,   0, /* PC CP862 */
#endif /* HEBREW */
#ifdef CYRILLIC
    "cp866-cyrillic",     FC_CP866,   0, /* CP866 Cyrillic */
#endif /* CYRILLIC */
#ifdef GREEK
    "cp869-greek",        FC_CP869,   0, /* CP869 Greek */
#endif /* GREEK */
#ifdef CYRILLIC
    "cyrillic-iso",       FC_CYRILL,  0, /* ISO Latin/Cyrillic Alphabet */
#endif /* CYRILLIC */
    "danish",             FC_NOASCII, 0, /* Norwegian and Danish NRC */
#ifdef COMMENT
#ifdef KANJI
    "dec-kanji",          FC_JDEC,    0, /* Japanese DEC Kanji */
#endif /* KANJI */
#endif /* COMMENT */
    "dec-multinational",  FC_DECMCS,  0, /* DEC multinational character set */
    "dg-international",   FC_DGMCS,   0, /* Data General multinational */
    "dutch",              FC_DUASCII, 0, /* Dutch NRC */
#ifdef GREEK
    "elot927-greek",      FC_ELOT,    0, /* ELOT 927 Greek */
    "elot928-greek",      FC_GREEK,   0, /* Same as ISO 8859-7 Latin/Greek */
#endif /* GREEK */
    "finnish",            FC_FIASCII, 0, /* Finnish NRC */
    "french",             FC_FRASCII, 0, /* French NRC */
    "fr-canadian",        FC_FCASCII, CM_INV, /* French Canadian NRC */
    "german",             FC_GEASCII, 0, /* German NRC */
#ifdef GREEK
    "greek-iso",          FC_GREEK,   0, /* ISO 8859-7 Latin/Greek */
#endif /* GREEK */
#ifdef HEBREW
    "he",                 FC_HEBREW,  CM_ABR|CM_INV,
    "heb",                FC_HEBREW,  CM_ABR|CM_INV,
    "hebr",               FC_HEBREW,  CM_ABR|CM_INV,
    "hebre",              FC_HEBREW,  CM_ABR|CM_INV,
    "hebrew",             FC_HEBREW,  CM_ABR|CM_INV,
    "hebrew-7",           FC_HE7,     0, /* DEC 7-Bit Hebrew */
    "hebrew-iso",         FC_HEBREW,  0, /* ISO Latin/Hebrew */
#endif /* HEBREW */
    "hp-roman8",          FC_HPR8,    0, /* Hewlett Packard Roman8 */
    "hungarian",          FC_HUASCII, 0, /* Hungarian NRC */
    "italian",            FC_ITASCII, 0, /* Italian NRC */
#ifdef COMMENT
/* Kanji terminal character sets not implemented yet */
#ifdef KANJI
    "japanese-euc",       FC_JEUC,    0, /* Japanese EUC */
    "jis7-kanji",         FC_JIS7,    0, /* Japanese JIS7 7bit code */
#endif /* KANJI */
#endif /* COMMENT */
#ifdef CYRILLIC
    "k",                  FC_KOI8,    CM_ABR|CM_INV,
    "ko",                 FC_KOI8,    CM_ABR|CM_INV,
    "koi",                FC_KOI8,    CM_ABR|CM_INV,
    "koi8",               FC_KOI8,    0, /* Old KOI-8 Cyrillic */
    "koi8-cyrillic",      FC_KOI8,    CM_INV,
    "koi8r",              FC_KOI8R,   0, /* KOI8-R RFC1489 */
    "koi8u",              FC_KOI8U,   0, /* KOI8-U RFC2319 */
#endif /* CYRILLIC */
    "l",                  FC_1LATIN,  CM_ABR|CM_INV,
    "la",                 FC_1LATIN,  CM_ABR|CM_INV,
    "lat",                FC_1LATIN,  CM_ABR|CM_INV,
    "lati",               FC_1LATIN,  CM_ABR|CM_INV,
    "latin",              FC_1LATIN,  CM_ABR|CM_INV,
    "latin1-iso",         FC_1LATIN,  0, /* ISO Latin Alphabet 1 */
#ifdef LATIN2
    "latin2-iso",         FC_2LATIN,  0, /* ISO Latin Alphabet 2 */
#endif /* LATIN2 */
    "latin9-iso",         FC_9LATIN,  0, /* ISO Latin Alphabet 9 */
    "macintosh-latin",    FC_APPQD,   0, /* "Extended Mac Latin */
#ifdef LATIN2
    "mazovia-pc",         FC_MAZOVIA, 0, /* Polish Mazovia PC code page */
#endif /* LATIN2 */
    "next-multinational", FC_NEXT,    0, /* NeXT workstation */
    "norwegian",          FC_NOASCII, 0, /* Norwegian and Danish NRC */
    "portuguese",         FC_POASCII, 0, /* Portuguese NRC */
#ifdef COMMENT
/* Kanji terminal character sets not implemented yet. */
#ifdef KANJI
    "shift-jis-kanji",    FC_SHJIS,   0, /* Japanese Kanji Shift-JIS */
#endif /* KANJI */
#endif /* COMMENT */
#ifdef CYRILLIC
    "short-koi",          FC_KOI7,    0, /* Short KOI Cyrillic */
#endif /* CYRILLIC */
    "spanish",            FC_SPASCII, 0, /* Spanish NRC */
    "swedish",            FC_SWASCII, 0, /* Swedish NRC */
    "swiss",              FC_CHASCII, 0, /* Swiss NRC */
    "transparent",        FC_TRANSP,  0, /* Transparent */
#ifdef UNICODE
    "utf8",               FC_UTF8,    0, /* ISO 10646 / Unicode UTF-8 */
#endif /* UNICODE */
    "", 0, 0
};
int ntermc = (sizeof(ttcstab) / sizeof(struct keytab)) - 1;

/* This table contains the equivalent FCS number for each TCS. */
/* If the TC_xxx symbol definitions are ever changed, fix this table. */
/* Ditto if another TCS is added. */

int
cseqtab[MAXTCSETS+1] = {		/* TCS/FCS equivalency table */
    -1,					/*  0 = Transparent */
    FC_USASCII,				/*  1 = ASCII */
    FC_1LATIN,				/*  2 = Latin-1 */
    FC_2LATIN,				/*  3 = Latin-2 */
    FC_CYRILL,				/*  4 = Latin/Cyrillic */
    FC_JEUC,				/*  5 = Japanese EUC */
    FC_HEBREW,				/*  6 = Latin/Hebrew */
    FC_GREEK,				/*  7 = Latin/Greek */
    FC_9LATIN,				/*  8 = Latin-9 */
    FC_UCS2,				/*  9 = UCS-2 */
    FC_UTF8				/* 10 = UTF-8 */
};

/*
 Languages:

 This table allows C-Kermit to have a SET LANGUAGE command to apply special
 language-specific rules when translating from a character set that contains
 national characters into plain ASCII, like German umlaut-a becomes ae.

 Originally, I thought it would be a good idea to let SET LANGUAGE also select
 an appropriate FILE CHARACTER-SET and TRANSFER CHARACTER-SET automatically,
 and these are included in the langinfo structure.  Later I realized that this
 was a bad idea.  Any particular language (e.g. Dutch) can be represented by
 many different and incompatible character sets.

 (But we could use the new (1998) ASSOCIATE command for this...)
*/

struct langinfo langs[] = {
/*  Language code   File Charset Xfer Charset Name */
    L_USASCII,      FC_USASCII,  TC_USASCII,  "ASCII (American English)",
    L_DANISH,       FC_NOASCII,  TC_1LATIN,   "Danish",
    L_DUTCH,        FC_DUASCII,  TC_1LATIN,   "Dutch",
    L_FINNISH,      FC_FIASCII,  TC_1LATIN,   "Finnish",
    L_FRENCH,       FC_FRASCII,  TC_1LATIN,   "French",
    L_GERMAN,       FC_GEASCII,  TC_1LATIN,   "German",
#ifdef GREEK
    L_GREEK,        FC_GREEK,    TC_GREEK,    "Greek",
#endif /* GREEK */
#ifdef HEBREW
    L_HEBREW,       FC_HEBREW,   TC_HEBREW,   "Hebrew",
#endif /* HEBREW */
    L_HUNGARIAN,    FC_HUASCII,  TC_2LATIN,   "Hungarian",
    L_ICELANDIC,    FC_USASCII,  TC_1LATIN,   "Icelandic",
    L_ITALIAN,      FC_ITASCII,  TC_1LATIN,   "Italian",
#ifdef KANJI
    L_JAPANESE,     FC_JEUC,     TC_JEUC,     "Japanese",
#endif /* KANJI */
    L_NORWEGIAN,    FC_NOASCII,  TC_1LATIN,   "Norwegian",
    L_PORTUGUESE,   FC_POASCII,  TC_1LATIN,   "Portuguese",
#ifdef CYRILLIC
    L_RUSSIAN,      FC_CP866,    TC_CYRILL,   "Russian",
#endif /* CYRILLIC */
    L_SPANISH,      FC_SPASCII,  TC_1LATIN,   "Spanish",
    L_SWEDISH,      FC_SWASCII,  TC_1LATIN,   "Swedish",
    L_SWISS,        FC_CHASCII,  TC_1LATIN,   "Swiss"
};
int nlangs = (sizeof(langs) / sizeof(struct langinfo));

/*
  Keyword table for the SET LANGUAGE command.
  Only a few of these (German, Scandinavian, etc) actually do anything.
  The language is used to invoke special translation rules when converting
  from an 8-bit character set to ASCII; for example, German u-diaeresis
  becomes "ue", Dutch y-diaeresis becomes "ij".  Languages without associated
  rules are invisible (CM_INV).
*/
struct keytab lngtab[] = {
    "ascii",            L_USASCII,    CM_INV,
    "danish",           L_DANISH,     0,
    "dutch",            L_DUTCH,      0,
    "english",          L_USASCII,    CM_INV,
    "finnish",          L_FINNISH,    0,
    "french",           L_FRENCH,     0,
    "german",           L_GERMAN,     0,
#ifdef GREEK
    "greek",            L_GREEK,      CM_INV,
#endif /* GREEK */
#ifdef HEBREW
    "hebrew",           L_HEBREW,     CM_INV,
#endif /* HEBREW */
    "hungarian",        L_HUNGARIAN,  CM_INV,
    "icelandic",        L_ICELANDIC,  0,
    "italian",          L_ITALIAN,    CM_INV,
#ifdef KANJI
    "japanese",         L_JAPANESE,   CM_INV,
#endif /* KANJI */
    "norwegian",        L_NORWEGIAN,  0,
    "none",             L_USASCII,    0,
    "portuguese",       L_PORTUGUESE, CM_INV,
#ifdef CYRILLIC
    "russian",          L_RUSSIAN,    0,
#endif /* CYRILLIC */
    "spanish",          L_SPANISH,    CM_INV,
    "swedish",          L_SWEDISH,    0,
#ifdef CYRILLIC
    "ukrainian",        L_RUSSIAN,    0,
#endif /* CYRILLIC */
    "", 0, 0
};
int nlng = (sizeof(lngtab) / sizeof(struct keytab)) - 1; /* how many */


/* Translation tables ... */

/*
  For each pair of (transfer,file) character sets, we need two translation
  functions, one for sending, one for receiving.
*/

/*
  Here is the first table, Latin-1 to ASCII, fully annotated...
  This one is absolutely NOT invertible, since we're going from an 8-bit
  set to a 7-bit set.  Accented letters are mapped to unaccented
  equivalents, C1 control characters are all translated to "?", etc.
*/
CONST CHAR
yl1as[] = {  /* ISO 8859-1 Latin Alphabet 1 to US ASCII */
      /*  Source character    Description               => Translation */
      /*  Dec row/col Set                                           */
  0,  /*  000  00/00  C0 NUL  Ctrl-@                    =>  (self)  */
  1,  /*  001  00/01  C0 SOH  Ctrl-A                    =>  (self)  */
  2,  /*  002  00/02  C0 STX  Ctrl-B                    =>  (self)  */
  3,  /*  003  00/03  C0 ETX  Ctrl-C                    =>  (self)  */
  4,  /*  004  00/04  C0 EOT  Ctrl-D                    =>  (self)  */
  5,  /*  005  00/05  C0 ENQ  Ctrl-E                    =>  (self)  */
  6,  /*  006  00/06  C0 ACK  Ctrl-F                    =>  (self)  */
  7,  /*  007  00/07  C0 BEL  Ctrl-G                    =>  (self)  */
  8,  /*  008  00/08  C0 BS   Ctrl-H                    =>  (self)  */
  9,  /*  009  00/09  C0 HT   Ctrl-I                    =>  (self)  */
 10,  /*  010  00/10  C0 LF   Ctrl-J                    =>  (self)  */
 11,  /*  011  00/11  C0 VT   Ctrl-K                    =>  (self)  */
 12,  /*  012  00/12  C0 FF   Ctrl-L                    =>  (self)  */
 13,  /*  013  00/13  C0 CR   Ctrl-M                    =>  (self)  */
 14,  /*  014  00/14  C0 SO   Ctrl-N                    =>  (self)  */
 15,  /*  015  00/15  C0 SI   Ctrl-O                    =>  (self)  */
 16,  /*  016  01/00  C0 DLE  Ctrl-P                    =>  (self)  */
 17,  /*  017  01/01  C0 DC1  Ctrl-Q                    =>  (self)  */
 18,  /*  018  01/02  C0 DC2  Ctrl-R                    =>  (self)  */
 19,  /*  019  01/03  C0 DC3  Ctrl-S                    =>  (self)  */
 20,  /*  020  01/04  C0 DC4  Ctrl-T                    =>  (self)  */
 21,  /*  021  01/05  C0 NAK  Ctrl-U                    =>  (self)  */
 22,  /*  022  01/06  C0 SYN  Ctrl-V                    =>  (self)  */
 23,  /*  023  01/07  C0 ETB  Ctrl-W                    =>  (self)  */
 24,  /*  024  01/08  C0 CAN  Ctrl-X                    =>  (self)  */
 25,  /*  025  01/09  C0 EM   Ctrl-Y                    =>  (self)  */
 26,  /*  026  01/10  C0 SUB  Ctrl-Z                    =>  (self)  */
 27,  /*  027  01/11  C0 ESC  Ctrl-[                    =>  (self)  */
 28,  /*  028  01/12  C0 FS   Ctrl-\                    =>  (self)  */
 29,  /*  029  01/13  C0 GS   Ctrl-]                    =>  (self)  */
 30,  /*  030  01/14  C0 RS   Ctrl-^                    =>  (self)  */
 31,  /*  031  01/15  C0 US   Ctrl-_                    =>  (self)  */
 32,  /*  032  02/00     SP   Space                     =>  (self)  */
 33,  /*  033  02/01  G0 !    Exclamation mark          =>  (self)  */
 34,  /*  034  02/02  G0 "    Doublequote               =>  (self)  */
 35,  /*  035  02/03  G0 #    Number sign               =>  (self)  */
 36,  /*  036  02/04  G0 $    Dollar sign               =>  (self)  */
 37,  /*  037  02/05  G0 %    Percent sign              =>  (self)  */
 38,  /*  038  02/06  G0 &    Ampersand                 =>  (self)  */
 39,  /*  039  02/07  G0 '    Apostrophe                =>  (self)  */
 40,  /*  040  02/08  G0 (    Left parenthesis          =>  (self)  */
 41,  /*  041  02/09  G0 )    Right parenthesis         =>  (self)  */
 42,  /*  042  02/10  G0 *    Asterisk                  =>  (self)  */
 43,  /*  043  02/11  G0 +    Plus sign                 =>  (self)  */
 44,  /*  044  02/12  G0 ,    Comma                     =>  (self)  */
 45,  /*  045  02/13  G0 -    Hyphen, minus sign        =>  (self)  */
 46,  /*  046  02/14  G0 .    Period, full stop         =>  (self)  */
 47,  /*  047  02/15  G0 /    Slash, solidus            =>  (self)  */
 48,  /*  048  03/00  G0 0    Digit 0                   =>  (self)  */
 49,  /*  049  03/01  G0 1    Digit 1                   =>  (self)  */
 50,  /*  050  03/02  G0 2    Digit 2                   =>  (self)  */
 51,  /*  051  03/03  G0 3    Digit 3                   =>  (self)  */
 52,  /*  052  03/04  G0 4    Digit 4                   =>  (self)  */
 53,  /*  053  03/05  G0 5    Digit 5                   =>  (self)  */
 54,  /*  054  03/06  G0 6    Digit 6                   =>  (self)  */
 55,  /*  055  03/07  G0 7    Digit 7                   =>  (self)  */
 56,  /*  056  03/08  G0 8    Digit 8                   =>  (self)  */
 57,  /*  057  03/09  G0 9    Digit 9                   =>  (self)  */
 58,  /*  058  03/10  G0 :    Colon                     =>  (self)  */
 59,  /*  059  03/11  G0 ;    Semicolon                 =>  (self)  */
 60,  /*  060  03/12  G0 <    Less-than sign            =>  (self)  */
 61,  /*  061  03/13  G0 =    Equals sign               =>  (self)  */
 62,  /*  062  03/14  G0 >    Greater-than sign         =>  (self)  */
 63,  /*  063  03/15  G0 ?    Question mark             =>  (self)  */
 64,  /*  064  04/00  G0 @    Commercial at sign        =>  (self)  */
 65,  /*  065  04/01  G0 A    Letter A                  =>  (self)  */
 66,  /*  066  04/02  G0 B    Letter B                  =>  (self)  */
 67,  /*  067  04/03  G0 C    Letter C                  =>  (self)  */
 68,  /*  068  04/04  G0 D    Letter D                  =>  (self)  */
 69,  /*  069  04/05  G0 E    Letter E                  =>  (self)  */
 70,  /*  070  04/06  G0 F    Letter F                  =>  (self)  */
 71,  /*  071  04/07  G0 G    Letter G                  =>  (self)  */
 72,  /*  072  04/08  G0 H    Letter H                  =>  (self)  */
 73,  /*  073  04/09  G0 I    Letter I                  =>  (self)  */
 74,  /*  074  04/10  G0 J    Letter J                  =>  (self)  */
 75,  /*  075  04/11  G0 K    Letter K                  =>  (self)  */
 76,  /*  076  04/12  G0 L    Letter L                  =>  (self)  */
 77,  /*  077  04/13  G0 M    Letter M                  =>  (self)  */
 78,  /*  078  04/14  G0 N    Letter N                  =>  (self)  */
 79,  /*  079  04/15  G0 O    Letter O                  =>  (self)  */
 80,  /*  080  05/00  G0 P    Letter P                  =>  (self)  */
 81,  /*  081  05/01  G0 Q    Letter Q                  =>  (self)  */
 82,  /*  082  05/02  G0 R    Letter R                  =>  (self)  */
 83,  /*  083  05/03  G0 S    Letter S                  =>  (self)  */
 84,  /*  084  05/04  G0 T    Letter T                  =>  (self)  */
 85,  /*  085  05/05  G0 U    Letter U                  =>  (self)  */
 86,  /*  086  05/06  G0 V    Letter V                  =>  (self)  */
 87,  /*  087  05/07  G0 W    Letter W                  =>  (self)  */
 88,  /*  088  05/08  G0 X    Letter X                  =>  (self)  */
 89,  /*  089  05/09  G0 Y    Letter Y                  =>  (self)  */
 90,  /*  090  05/10  G0 Z    Letter Z                  =>  (self)  */
 91,  /*  091  05/11  G0 [    Left square bracket       =>  (self)  */
 92,  /*  092  05/12  G0 \    Reverse slash             =>  (self)  */
 93,  /*  093  05/13  G0 ]    Right square bracket      =>  (self)  */
 94,  /*  094  05/14  G0 ^    Circumflex accent         =>  (self)  */
 95,  /*  095  05/15  G0 _    Underline, low line       =>  (self)  */
 96,  /*  096  06/00  G0 `    Grave accent              =>  (self)  */
 97,  /*  097  06/01  G0 a    Letter a                  =>  (self)  */
 98,  /*  098  06/02  G0 b    Letter b                  =>  (self)  */
 99,  /*  099  06/03  G0 c    Letter c                  =>  (self)  */
100,  /*  100  06/04  G0 d    Letter d                  =>  (self)  */
101,  /*  101  06/05  G0 e    Letter e                  =>  (self)  */
102,  /*  102  06/06  G0 f    Letter f                  =>  (self)  */
103,  /*  103  06/07  G0 g    Letter g                  =>  (self)  */
104,  /*  104  06/08  G0 h    Letter h                  =>  (self)  */
105,  /*  105  06/09  G0 i    Letter i                  =>  (self)  */
106,  /*  106  06/10  G0 j    Letter j                  =>  (self)  */
107,  /*  107  06/11  G0 k    Letter k                  =>  (self)  */
108,  /*  108  06/12  G0 l    Letter l                  =>  (self)  */
109,  /*  109  06/13  G0 m    Letter m                  =>  (self)  */
110,  /*  110  06/14  G0 n    Letter n                  =>  (self)  */
111,  /*  111  06/15  G0 o    Letter o                  =>  (self)  */
112,  /*  112  07/00  G0 p    Letter p                  =>  (self)  */
113,  /*  113  07/01  G0 q    Letter q                  =>  (self)  */
114,  /*  114  07/02  G0 r    Letter r                  =>  (self)  */
115,  /*  115  07/03  G0 s    Letter s                  =>  (self)  */
116,  /*  116  07/04  G0 t    Letter t                  =>  (self)  */
117,  /*  117  07/05  G0 u    Letter u                  =>  (self)  */
118,  /*  118  07/06  G0 v    Letter v                  =>  (self)  */
119,  /*  119  07/07  G0 w    Letter w                  =>  (self)  */
120,  /*  120  07/08  G0 x    Letter x                  =>  (self)  */
121,  /*  121  07/09  G0 y    Letter y                  =>  (self)  */
122,  /*  122  07/10  G0 z    Letter z                  =>  (self)  */
123,  /*  123  07/11  G0 {    Left curly bracket        =>  (self)  */
124,  /*  124  07/12  G0 |    Vertical bar              =>  (self)  */
125,  /*  125  07/13  G0 }    Right curly bracket       =>  (self)  */
126,  /*  126  07/14  G0 ~    Tilde                     =>  (self)  */
127,  /*  127  07/15     DEL  Delete, Rubout            =>  (self)  */
UNK,  /*  128  08/00  C1                                =>  UNK     */
UNK,  /*  129  08/01  C1                                =>  UNK     */
UNK,  /*  130  08/02  C1                                =>  UNK     */
UNK,  /*  131  08/03  C1                                =>  UNK     */
UNK,  /*  132  08/04  C1 IND                            =>  UNK     */
UNK,  /*  133  08/05  C1 NEL                            =>  UNK     */
UNK,  /*  134  08/06  C1 SSA                            =>  UNK     */
UNK,  /*  135  08/07  C1 ESA                            =>  UNK     */
UNK,  /*  136  08/08  C1 HTS                            =>  UNK     */
UNK,  /*  137  08/09  C1                                =>  UNK     */
UNK,  /*  138  08/10  C1                                =>  UNK     */
UNK,  /*  139  08/11  C1                                =>  UNK     */
UNK,  /*  140  08/12  C1                                =>  UNK     */
UNK,  /*  141  08/13  C1 RI                             =>  UNK     */
UNK,  /*  142  08/14  C1 SS2                            =>  UNK     */
UNK,  /*  143  08/15  C1 SS3                            =>  UNK     */
UNK,  /*  144  09/00  C1 DCS                            =>  UNK     */
UNK,  /*  145  09/01  C1                                =>  UNK     */
UNK,  /*  146  09/02  C1                                =>  UNK     */
UNK,  /*  147  09/03  C1 STS                            =>  UNK     */
UNK,  /*  148  09/04  C1                                =>  UNK     */
UNK,  /*  149  09/05  C1                                =>  UNK     */
UNK,  /*  150  09/06  C1 SPA                            =>  UNK     */
UNK,  /*  151  09/07  C1 EPA                            =>  UNK     */
UNK,  /*  152  09/08  C1                                =>  UNK     */
UNK,  /*  153  09/09  C1                                =>  UNK     */
UNK,  /*  154  09/10  C1                                =>  UNK     */
UNK,  /*  155  09/11  C1 CSI                            =>  UNK     */
UNK,  /*  156  09/12  C1 ST                             =>  UNK     */
UNK,  /*  157  09/13  C1 OSC                            =>  UNK     */
UNK,  /*  158  09/14  C1 PM                             =>  UNK     */
UNK,  /*  159  09/15  C1 APC                            =>  UNK     */
 32,  /*  160  10/00  G1      No-break space            =>  SP      */
 33,  /*  161  10/01  G1      Inverted exclamation      =>  !       */
 99,  /*  162  10/02  G1      Cent sign                 =>  c       */
 35,  /*  163  10/03  G1      Pound sign                =>  #       */
 36,  /*  164  10/04  G1      Currency sign             =>  $       */
 89,  /*  165  10/05  G1      Yen sign                  =>  Y       */
124,  /*  166  10/06  G1      Broken bar                =>  |       */
 80,  /*  167  10/07  G1      Paragraph sign            =>  P       */
 34,  /*  168  10/08  G1      Diaeresis                 =>  "       */
 67,  /*  169  10/09  G1      Copyright sign            =>  C       */
 97,  /*  170  10/10  G1      Feminine ordinal          =>  a       */
 34,  /*  171  10/11  G1      Left angle quotation      =>  "       */
126,  /*  172  10/12  G1      Not sign                  =>  ~       */
 45,  /*  173  10/13  G1      Soft hyphen               =>  -       */
 82,  /*  174  10/14  G1      Registered trade mark     =>  R       */
 95,  /*  175  10/15  G1      Macron                    =>  _       */
111,  /*  176  11/00  G1      Degree sign, ring above   =>  o       */
UNK,  /*  177  11/01  G1      Plus-minus sign           =>  UNK     */
 50,  /*  178  11/02  G1      Superscript two           =>  2       */
 51,  /*  179  11/03  G1      Superscript three         =>  3       */
 39,  /*  180  11/04  G1      Acute accent              =>  '       */
117,  /*  181  11/05  G1      Micro sign                =>  u       */
 45,  /*  182  11/06  G1      Pilcrow sign              =>  -       */
 45,  /*  183  11/07  G1      Middle dot                =>  -       */
 44,  /*  184  11/08  G1      Cedilla                   =>  ,       */
 49,  /*  185  11/09  G1      Superscript one           =>  1       */
111,  /*  186  11/10  G1      Masculine ordinal         =>  o       */
 34,  /*  187  11/11  G1      Right angle quotation     =>  "       */
UNK,  /*  188  11/12  G1      One quarter               =>  UNK     */
UNK,  /*  189  11/13  G1      One half                  =>  UNK     */
UNK,  /*  190  11/14  G1      Three quarters            =>  UNK     */
 63,  /*  191  11/15  G1      Inverted question mark    =>  ?       */
 65,  /*  192  12/00  G1      A grave                   =>  A       */
 65,  /*  193  12/01  G1      A acute                   =>  A       */
 65,  /*  194  12/02  G1      A circumflex              =>  A       */
 65,  /*  195  12/03  G1      A tilde                   =>  A       */
 65,  /*  196  12/04  G1      A diaeresis               =>  A       */
 65,  /*  197  12/05  G1      A ring above              =>  A       */
 65,  /*  198  12/06  G1      A with E                  =>  A       */
 67,  /*  199  12/07  G1      C Cedilla                 =>  C       */
 69,  /*  200  12/08  G1      E grave                   =>  E       */
 69,  /*  201  12/09  G1      E acute                   =>  E       */
 69,  /*  202  12/10  G1      E circumflex              =>  E       */
 69,  /*  203  12/11  G1      E diaeresis               =>  E       */
 73,  /*  204  12/12  G1      I grave                   =>  I       */
 73,  /*  205  12/13  G1      I acute                   =>  I       */
 73,  /*  206  12/14  G1      I circumflex              =>  I       */
 73,  /*  207  12/15  G1      I diaeresis               =>  I       */
 68,  /*  208  13/00  G1      Icelandic Eth             =>  D       */
 78,  /*  209  13/01  G1      N tilde                   =>  N       */
 79,  /*  210  13/02  G1      O grave                   =>  O       */
 79,  /*  211  13/03  G1      O acute                   =>  O       */
 79,  /*  212  13/04  G1      O circumflex              =>  O       */
 79,  /*  213  13/05  G1      O tilde                   =>  O       */
 79,  /*  214  13/06  G1      O diaeresis               =>  O       */
120,  /*  215  13/07  G1      Multiplication sign       =>  x       */
 79,  /*  216  13/08  G1      O oblique stroke          =>  O       */
 85,  /*  217  13/09  G1      U grave                   =>  U       */
 85,  /*  218  13/10  G1      U acute                   =>  U       */
 85,  /*  219  13/11  G1      U circumflex              =>  U       */
 85,  /*  220  13/12  G1      U diaeresis               =>  U       */
 89,  /*  221  13/13  G1      Y acute                   =>  Y       */
 84,  /*  222  13/14  G1      Icelandic Thorn           =>  T       */
115,  /*  223  13/15  G1      German sharp s            =>  s       */
 97,  /*  224  14/00  G1      a grave                   =>  a       */
 97,  /*  225  14/01  G1      a acute                   =>  a       */
 97,  /*  226  14/02  G1      a circumflex              =>  a       */
 97,  /*  227  14/03  G1      a tilde                   =>  a       */
 97,  /*  228  14/04  G1      a diaeresis               =>  a       */
 97,  /*  229  14/05  G1      a ring above              =>  a       */
 97,  /*  230  14/06  G1      a with e                  =>  a       */
 99,  /*  231  14/07  G1      c cedilla                 =>  c       */
101,  /*  232  14/08  G1      e grave                   =>  e       */
101,  /*  233  14/09  G1      e acute                   =>  e       */
101,  /*  234  14/10  G1      e circumflex              =>  e       */
101,  /*  235  14/11  G1      e diaeresis               =>  e       */
105,  /*  236  14/12  G1      i grave                   =>  i       */
105,  /*  237  14/13  G1      i acute                   =>  i       */
105,  /*  238  14/14  G1      i circumflex              =>  i       */
105,  /*  239  14/15  G1      i diaeresis               =>  i       */
100,  /*  240  15/00  G1      Icelandic eth             =>  d       */
110,  /*  241  15/01  G1      n tilde                   =>  n       */
111,  /*  242  15/02  G1      o grave                   =>  o       */
111,  /*  243  15/03  G1      o acute                   =>  o       */
111,  /*  244  15/04  G1      o circumflex              =>  o       */
111,  /*  245  15/05  G1      o tilde                   =>  o       */
111,  /*  246  15/06  G1      o diaeresis               =>  o       */
 47,  /*  247  15/07  G1      Division sign             =>  /       */
111,  /*  248  15/08  G1      o oblique stroke          =>  o       */
117,  /*  249  15/09  G1      u grave                   =>  u       */
117,  /*  250  15/10  G1      u acute                   =>  u       */
117,  /*  251  15/11  G1      u circumflex              =>  u       */
117,  /*  252  15/12  G1      u diaeresis               =>  u       */
121,  /*  253  15/13  G1      y acute                   =>  y       */
116,  /*  254  15/14  G1      Icelandic thorn           =>  t       */
121   /*  255  15/15  G1      y diaeresis               =>  y       */
};


/* Translation tables for ISO Latin Alphabet 1 to local file character sets */

/*
  Most of the remaining tables are not annotated like the one above, because
  the size of the resulting source file would be ridiculous.  Each row in the
  following tables corresponds to a column of ISO 8859-1.
*/

CONST CHAR
yl185[] = {  /* ISO 8859-1 Latin Alphabet 1 (Latin-1) to IBM Code Page 850 */
/*
  This is based on IBM's official invertible translation.  Reference: IBM
  Character Data Representation Architecture (CDRA), Level 1, Registry,
  SC09-1291-00 (1990), p.152.  (Note: Latin-1 is IBM Code Page 00819.)  Note:
  IBM's bizarre rearrangement of C0 controls and DEL has been undone in this
  table.
*/
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
186, 205, 201, 187, 200, 188, 204, 185, 203, 202, 206, 223, 220, 219, 254, 242,
179, 196, 218, 191, 192, 217, 195, 180, 194, 193, 197, 176, 177, 178, 213, 159,
255, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 240, 169, 238,
248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168,
183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225,
133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
};

CONST CHAR
y85l1[] = {  /* IBM Code Page 850 to Latin-1 */
/*
  This is from IBM CDRA page 153.  It is the inverse of yl185[].
  As of edit 183, this table is no longer pure CDRA.  The translations
  involving C0 controls and DEL have been removed.
*/
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 248, 163, 216, 215, 159,
225, 237, 243, 250, 241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
155, 156, 157, 144, 151, 193, 194, 192, 169, 135, 128, 131, 133, 162, 165, 147,
148, 153, 152, 150, 145, 154, 227, 195, 132, 130, 137, 136, 134, 129, 138, 164,
240, 208, 202, 203, 200, 158, 205, 206, 207, 149, 146, 141, 140, 166, 204, 139,
211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217, 253, 221, 175, 180,
173, 177, 143, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 142, 160
};

#ifdef COMMENT
CONST CHAR
yl1r8[] = {  /* Latin-1 to Hewlett Packard Roman8 */
/* This is HP's official translation, straight from iconv */
/* It is NOT invertible. */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 184, 191, 187, 186, 188, 124, 189, 171,  99, 249, 251, 126,  45,  82, 176,
179, 254,  50,  51, 168, 243, 244, 242,  44,  49, 250, 253, 247, 248, 245, 185,
161, 224, 162, 225, 216, 208, 211, 180, 163, 220, 164, 165, 230, 229, 166, 167,
227, 182, 232, 231, 223, 233, 218, 120, 210, 173, 237, 174, 219, 177, 240, 222,
200, 196, 192, 226, 204, 212, 215, 181, 201, 197, 193, 205, 217, 213, 209, 221,
228, 183, 202, 198, 194, 234, 206,  47, 214, 203, 199, 195, 207, 178, 241, 239
};
CONST CHAR
yr8l1[] = {  /* Hewlett Packard Roman8 to Latin-1 */
/* This is HP's official translation, straight from iconv */
/* It is NOT invertible. */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 192, 194, 200, 202, 203, 206, 207, 180,  96,  94, 168, 126, 217, 219, 163,
175, 221, 253, 176, 199, 231, 209, 241, 161, 191, 164, 163, 165, 167, 102, 162,
226, 234, 244, 251, 225, 233, 243, 250, 224, 232, 242, 249, 228, 235, 246, 252,
197, 238, 216, 198, 229, 237, 248, 230, 196, 236, 214, 220, 201, 239, 223, 212,
193, 195, 227, 208, 240, 205, 204, 211, 210, 213, 245,  83, 115, 218,  89, 255,
222, 254, 183, 181, 182, 190,  45, 188, 189, 170, 186, 171,  42, 187, 177, 160
};
#else /* !COMMENT */
/* This is an invertible mapping, approved by HP in January 1994. */
CONST CHAR
yl1r8[] = {  /* ISO Latin-1 to HP Roman8, Invertible */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 184, 191, 187, 186, 188, 169, 189, 171, 170, 249, 251, 172, 175, 190, 176,
179, 254, 235, 236, 168, 243, 244, 242, 238, 246, 250, 253, 247, 248, 245, 185,
161, 224, 162, 225, 216, 208, 211, 180, 163, 220, 164, 165, 230, 229, 166, 167,
227, 182, 232, 231, 223, 233, 218, 252, 210, 173, 237, 174, 219, 177, 240, 222,
200, 196, 192, 226, 204, 212, 215, 181, 201, 197, 193, 205, 217, 213, 209, 221,
228, 183, 202, 198, 194, 234, 206, 255, 214, 203, 199, 195, 207, 178, 241, 239
};

CONST CHAR
yr8l1[] = { /* HP Roman8 to ISO Latin-1, Invertible */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 192, 194, 200, 202, 203, 206, 207, 180, 166, 169, 168, 172, 217, 219, 173,
175, 221, 253, 176, 199, 231, 209, 241, 161, 191, 164, 163, 165, 167, 174, 162,
226, 234, 244, 251, 225, 233, 243, 250, 224, 232, 242, 249, 228, 235, 246, 252,
197, 238, 216, 198, 229, 237, 248, 230, 196, 236, 214, 220, 201, 239, 223, 212,
193, 195, 227, 208, 240, 205, 204, 211, 210, 213, 245, 178, 179, 218, 184, 255,
222, 254, 183, 181, 182, 190, 185, 188, 189, 170, 186, 171, 215, 187, 177, 247
};
#endif /* COMMENT */

CONST CHAR
yl143[] = {  /* Latin-1 to IBM Code Page 437 */
/*
  Although the IBM CDRA does not include an official translation between CP437
  and ISO Latin Alphabet 1, it does include an official, invertible
  translation between CP437 and CP850 (page 196), and another from CP850 to
  Latin-1 (CP819) (page 153).  This translation was obtained with a two-step
  process based on those tables.
  As of edit 183, the translation is modified to leave C0 controls alone.
*/
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
186, 205, 201, 187, 200, 188, 204, 185, 203, 202, 206, 223, 220, 219, 254, 242,
179, 196, 218, 191, 192, 217, 195, 180, 194, 193, 197, 176, 177, 178, 213, 159,
255, 173, 155, 156, 207, 157, 221, 245, 249, 184, 166, 174, 170, 240, 169, 238,
248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168,
183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
209, 165, 227, 224, 226, 229, 153, 158, 190, 235, 233, 234, 154, 237, 232, 225,
133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
208, 164, 149, 162, 147, 228, 148, 246, 189, 151, 163, 150, 129, 236, 231, 152
};

CONST CHAR
y43l1[] = {  /* IBM Code Page 437 to Latin-1 */
/*
  This table is the inverse of yl143[].
*/
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 162, 163, 165, 215, 159,
225, 237, 243, 250, 241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
155, 156, 157, 144, 151, 193, 194, 192, 169, 135, 128, 131, 133, 248, 216, 147,
148, 153, 152, 150, 145, 154, 227, 195, 132, 130, 137, 136, 134, 129, 138, 164,
240, 208, 202, 203, 200, 158, 205, 206, 207, 149, 146, 141, 140, 166, 204, 139,
211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217, 253, 221, 175, 180,
173, 177, 143, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 142, 160
};

CONST CHAR
yl1aq[] = {  /* Latin-1 to Extended Mac Latin (based on Apple QuickDraw) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
182, 183, 184, 185, 189, 196, 197, 198, 206, 207, 210, 211, 217, 218, 195, 212,
209, 215, 213, 226, 227, 228, 240, 245, 246, 247, 249, 250, 251, 253, 254, 255,
202, 193, 162, 163, 219, 180, 201, 164, 172, 169, 187, 199, 194, 208, 168, 248,
161, 177, 170, 173, 171, 181, 166, 225, 252, 176, 188, 200, 178, 179, 186, 192,
203, 231, 229, 204, 128, 129, 174, 130, 233, 131, 230, 232, 237, 234, 235, 236,
220, 132, 241, 238, 239, 205, 133, 165, 175, 244, 242, 243, 134, 160, 222, 167,
136, 135, 137, 139, 138, 140, 190, 141, 143, 142, 144, 145, 147, 146, 148, 149,
221, 150, 152, 151, 153, 155, 154, 214, 191, 157, 156, 158, 159, 224, 223, 216
};

CONST CHAR
yl1du[] = {  /* Latin-1 to Dutch ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, UNK,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK,  39, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK,  35, 124, UNK, UNK,  93, 123,  67, UNK,  34, UNK,  45,  82, UNK,
 91, UNK, UNK, UNK, 126, 117, UNK, UNK,  44, UNK, UNK,  34, 125,  92,  64,  63,
 65,  65,  65,  65,  91,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
 97,  97,  97,  97,  97,  97,  97,  99, 101, 101, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 111,  47, 111, 117, 117, 117, 117, 121, UNK,  91
};

CONST CHAR
yl1fi[] = {  /* Latin-1 to Finnish ISO NRC (*not* ISO 646) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK, UNK,  95,
UNK,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  91,  93,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  92, 120,  79,  85,  85,  85,  94,  89, UNK, 115,
 97,  97,  97,  97, 123, 125,  97,  99, 101,  96, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 124,  47, 111, 117, 117, 117, 126, 121, UNK, 121
};

CONST CHAR
yl1fr[] = {  /* Latin-1 to French ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, UNK,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK,  35, UNK, UNK, UNK,  93,  34,  67, UNK,  34, UNK,  45,  82, UNK,
 91, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
 64,  97,  97,  97,  97,  97,  97,  92, 125, 123, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 111,  47, 111, 124, 117, 117, 117, 121, UNK, 121
};

CONST CHAR
yl1fc[] = {  /* Latin-1 to French-Canadian ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK, UNK,  95,
UNK,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
 64,  97,  91,  97,  97,  97,  97,  92, 125, 123,  93, 101, 105, 105,  94, 105,
UNK, 110, 111, 111,  96, 111, 111,  47, 111, 124, 117, 126, 117, 121, UNK, 121
};

CONST CHAR
yl1ge[] = {  /* Latin-1 to German ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK,  64,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  91,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  92, 120,  79,  85,  85,  85,  93,  89, UNK, 126,
 97,  97,  97,  97, 123,  97,  97,  99, 101, 101, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 124,  47, 111, 117, 117, 117, 125, 121, UNK, 121
};

CONST CHAR
yl1hu[] = {  /* Latin-1 to Hungarian ISO-646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK,  36, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK,  64, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  91,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  92, 120,  79,  85,  85,  85,  93,  89, UNK, 115,
 97,  96,  97,  97,  97,  97,  97,  99, 101, 123, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 124,  47, 111, 117, 117, 117, 125, 121, UNK, 121
};

CONST CHAR
yl1it[] = {  /* Latin-1 to Italian ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, UNK,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
UNK,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK,  35, UNK, UNK, UNK,  64,  34,  67, UNK,  34, UNK,  45,  82, UNK,
 91, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
123,  97,  97,  97,  97,  97,  97,  92, 125,  93, 101, 101, 126, 105, 105, 105,
UNK, 110, 124, 111, 111, 111, 111,  47, 111,  96, 117, 117, 117, 121, UNK, 121
};

CONST CHAR
yl1ne[] = {  /* Latin-1 to NeXT */
/* NEED TO MAKE THIS ONE INVERTIBLE, LIKE CP850 */
/*
  Which means finding all the graphic characters in the NeXT set that have
  no equivalent in Latin-1 and assigning them to the UNK positions (mostly
  Latin-1 C1 controls).  Then make the ynel1[] table be the inverse of this
  one.  But first we should try to get an official Latin-1/NeXT translation
  table from NeXT, Inc.
*/
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
 32, 161, 162, 163, 168, 165, 181, 167, 200, 160, 227, 171, 190, UNK, 176, 197,
202, 209, 201, 204, 194, 157, 182, 183, 203, 192, 235, 187, 210, 211, 212, 191,
129, 130, 131, 132, 133, 134, 225, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 158, 233, 151, 152, 153, 154, 155, 156, 251,
213, 214, 215, 216, 217, 218, 241, 219, 220, 221, 222, 223, 224, 226, 228, 229,
230, 231, 236, 237, 238, 239, 240, 159, 249, 242, 243, 244, 246, 247, 252, 253
};

CONST CHAR
yl1no[] = {  /* Latin-1 to Norwegian/Danish ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  93,  91,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  92,  85,  85,  85,  85,  89, UNK, 115,
 97,  97,  97,  97,  97, 125, 123,  99, 101, 101, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 111,  47, 124, 117, 117, 117, 117, 121, UNK, 121
};

CONST CHAR
yl1po[] = {  /* Latin-1 to Portuguese ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  91,  65,  65,  65,  92,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  93,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
 97,  97,  97, 123,  97,  97,  97, 124, 101, 101, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 125, 111,  47, 111, 117, 117, 117, 117, 121, UNK, 121
};

CONST CHAR
yl1sp[] = {  /* Latin-1 to Spanish ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, UNK,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,  96, UNK, UNK, 126, 127,
126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  91, UNK,  35, UNK, UNK, UNK,  64,  34,  67, UNK,  34, UNK,  45,  82, UNK,
123, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  93,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  92,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
124,  97,  97,  97,  97,  97,  97, 125, 101, 101, 101, 101, 105, 105, 105, 105,
UNK, 124, 111, 111, 111, 111, 111,  47, 111, 117, 117, 117, 117, 121, UNK, 121
};

CONST CHAR
yl1sw[] = {  /* Latin-1 to Swedish ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK, UNK,  95,
UNK,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  91,  93,  65,  67,  69,  64,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  92, 120,  79,  85,  85,  85,  94,  89, UNK, 115,
 97,  97,  97,  97, 123, 125,  97,  99, 101,  96, 101, 101, 105, 105, 105, 105,
UNK, 110, 111, 111, 111, 111, 124,  47, 111, 117, 117, 117, 126, 121, UNK, 121
};

CONST CHAR
yl1ch[] = {  /* Latin-1 to Swiss ISO 646 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, UNK,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, UNK, UNK, UNK, UNK, UNK,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32,  33, UNK, UNK, UNK, UNK, UNK, UNK,  34,  67, UNK,  34, UNK,  45,  82, UNK,
UNK, UNK, UNK, UNK,  39, 117, UNK, UNK,  44, UNK, UNK,  34, UNK, UNK, UNK,  63,
 65,  65,  65,  65,  65,  65,  65,  67,  69,  69,  69,  69,  73,  73,  73,  73,
UNK,  78,  79,  79,  79,  79,  79, 120,  79,  85,  85,  85,  85,  89, UNK, 115,
 64,  97,  97,  97, 123,  97,  97,  92,  95,  91,  93, 101, 105, 105,  94, 105,
UNK, 110, 111, 111,  96, 111, 124,  47, 111,  35, 117, 126, 125, 121, UNK, 121
};

CONST CHAR
yl1dm[] = {  /* Latin-1 to DEC Multinational Character Set */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 32, 161, 162, 163, 168, 165, 124, 167,  34, 169, 170, 171, 126, UNK,  82, UNK,
176, 177, 178, 179,  39, 181, 182, 183,  44, 185, 186, 187, 188, 189, UNK, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
UNK, 209, 210, 211, 212, 213, 214, 120, 216, 217, 218, 219, 220, 221, UNK, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
UNK, 241, 242, 243, 244, 245, 246,  47, 248, 249, 250, 251, 252, UNK, UNK, 253
};

CONST CHAR
yl1dg[] = {  /* Latin-1 to Data General International Character Set */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 171, 167, 168, 166, 181, 191, 187, 189, 173, 169, 177, 161, 255, 174, 175,
188, 182, 164, 165, 190, 163, 178, 185, 186, 179, 170, 176, 223, 162, 220, 172,
193, 192, 194, 196, 195, 197, 198, 199, 201, 200, 202, 203, 205, 204, 206, 207,
184, 208, 210, 209, 211, 213, 212, 215, 214, 217, 216, 218, 219, 221, 222, 252,
225, 224, 226, 228, 227, 229, 230, 231, 233, 232, 234, 235, 237, 236, 238, 239,
183, 240, 242, 241, 243, 245, 244, 247, 246, 249, 248, 250, 251, 180, 254, 253
};


/* Local file character sets to ISO Latin Alphabet 1 */

#ifdef NOTUSED
CONST CHAR
yasl1[] = {  /* ASCII to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127
};
#endif /* NOTUSED */

CONST CHAR
yaql1[] = {  /* Extended Mac Latin (based on Apple Quickdraw) to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
196, 197, 199, 201, 209, 214, 220, 225, 224, 226, 228, 227, 229, 231, 233, 232,
234, 235, 237, 236, 238, 239, 241, 243, 242, 244, 246, 245, 250, 249, 251, 252,
221, 176, 162, 163, 167, 215, 182, 223, 174, 169, 178, 180, 168, 179, 198, 216,
185, 177, 188, 189, 165, 181, 128, 129, 130, 131, 190, 170, 186, 132, 230, 248,
191, 161, 172, 142, 133, 134, 135, 171, 187, 166, 160, 192, 195, 213, 136, 137,
173, 144, 138, 139, 143, 146, 247, 145, 255, 140, 141, 164, 208, 240, 222, 254,
253, 183, 147, 148, 149, 194, 202, 193, 203, 200, 205, 206, 207, 204, 211, 212,
150, 210, 218, 219, 217, 151, 152, 153, 175, 154, 155, 156, 184, 157, 158, 159
};

CONST CHAR
ydul1[] = {  /* Dutch ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, 163,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
190,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 255, 189, 124,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 168, 164, 188,  39, 127
};

CONST CHAR
yfil1[] = {  /* Finnish NRC (*not* ISO-646) to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 196, 214, 197, 220,  95,
233,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 229, 252, 127
};

CONST CHAR
yfrl1[] = {  /* French ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, 163,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
224,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 176, 231, 167,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 249, 232, 168, 127
};

CONST CHAR
yfcl1[] = {  /* French-Canadian ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
224,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 226, 231, 234, 238,  95,
244,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 249, 232, 251, 127
};

CONST CHAR
ygel1[] = {  /* German ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
167,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 196, 214, 220,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 252, 223, 127
};

CONST CHAR
yitl1[] = {  /* Italian ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, 163,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
167,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 176, 231, 233,  94,  95,
249,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 224, 242, 232, 236, 127
};

CONST CHAR
ynel1[] = {  /* NeXT to Latin-1 */
/* NEED TO MAKE THIS ONE INVERTIBLE */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
160, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 217, 218, 219, 220, 221, 222, 181, 215, 247,
169, 161, 162, 163, UNK, 165, UNK, 167, 164, UNK, UNK, 171, UNK, UNK, UNK, UNK,
174, UNK, UNK, UNK, 183, 166, 182, UNK, UNK, UNK, UNK, 187, UNK, UNK, 172, 191,
185,  96, 180,  94, 126, 175, UNK, UNK, 168, 178, 176, 184, 179, UNK, UNK, UNK,
UNK, 177, 188, 189, 190, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235,
236, 198, 237, 170, 238, 239, 240, 241, UNK, 216, UNK, 186, 242, 243, 244, 245,
246, 230, 249, 250, 251, UNK, 252, 253, UNK, 248, UNK, 223, 254, 255, UNK, UNK
};

CONST CHAR
ynol1[] = {  /* Norwegian/Danish ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 198, 216, 197,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 230, 248, 229, 126, 127
};

CONST CHAR
ypol1[] = {  /* Portuguese ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 195, 199, 213,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 227, 231, 245, 126, 127
};

CONST CHAR
yspl1[] = {  /* Spanish ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, 163,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
167,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 161, 209, 191,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 176, 241, 231, 126, 127
};

CONST CHAR
yswl1[] = {  /* Swedish ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
201,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 196, 214, 197, 220,  95,
233,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 229, 252, 127
};

CONST CHAR
ychl1[] = {  /* Swiss ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34, 249,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
224,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 233, 231, 234, 238, 232,
244,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 252, 251, 127
};

CONST CHAR
yhul1[] = {  /* Hungarian ISO 646 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35, 164,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
193,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 201, 214, 220,  94,  95,
225,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 246, 252,  34, 127
};

CONST CHAR
ydml1[] = {  /* DEC Multinational Character Set to Latin-1 */
/* Note: This is a null translation */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
};

CONST CHAR
ydgl1[] = {  /* Data General International to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 172, 189, 181, 178, 179, 164, 162, 163, 170, 186, 161, 191, 169, 174, 175,
187, 171, 182, 185, 253, 165, 177, 240, 208, 183, 184, 167, 176, 168, 180, 166,
193, 192, 194, 196, 195, 197, 198, 199, 201, 200, 202, 203, 205, 204, 206, 207,
209, 211, 210, 212, 214, 213, 216, 215, 218, 217, 219, 220, 190, 221, 222, 188,
225, 224, 226, 228, 227, 229, 230, 231, 233, 232, 234, 235, 237, 236, 238, 239,
241, 243, 242, 244, 246, 245, 248, 247, 250, 249, 251, 252, 223, 255, 254, 173
};


/* Translation tables for Cyrillic character sets */

#ifdef CYRILLIC
CONST CHAR
ylcac[] = {  /* Latin/Cyrillic to CP866 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19, 208, 209,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
196, 179, 192, 217, 191, 218, 195, 193, 180, 194, 197, 176, 177, 178, 211, 216,
205, 186, 200, 188, 187, 201, 204, 202, 185, 203, 206, 223, 220, 219, 254, UNK,
255, 240, 132, 131, 242,  83,  73, 244,  74, 139, 141, 151, 138,  45, 246, 135,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
252, 241, 164, 163, 243, 115, 105, 245, 106, 171, 173, 231, 170,  21, 247, 167
};

CONST CHAR
ylc55[] = {  /* Latin/Cyrillic to CP855 (inverse of y55lc) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
174, 175, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194, 195,
196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 217, 218, 219, 220, 223, 254,
255, 133, 129, 131, 135, 137, 139, 141, 143, 145, 147, 149, 151, 240, 153, 155,
161, 163, 236, 173, 167, 169, 234, 244, 184, 190, 199, 209, 211, 213, 215, 221,
226, 228, 230, 232, 171, 182, 165, 252, 246, 250, 159, 242, 238, 248, 157, 224,
160, 162, 235, 172, 166, 168, 233, 243, 183, 189, 198, 208, 210, 212, 214, 216,
225, 227, 229, 231, 170, 181, 164, 251, 245, 249, 158, 241, 237, 247, 156, 222,
239, 132, 128, 130, 134, 136, 138, 140, 142, 144, 146, 148, 150, 253, 152, 154
};

CONST CHAR
ylc1251[] = {  /* Latin/Cyrillic to CP1251 (inverse of y1251lc) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
130, 132, 133, 134, 135, 136, 137, 139, 145, 146, 147, 148, 149, 150, 151, 152,
153, 155, 164, 165, 166, 169, 171, 172, 174, 176, 177, 180, 181, 182, 183, 187,
160, 168, 128, 129, 170, 189, 178, 175, 163, 138, 140, 142, 141, 173, 161, 143,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
185, 184, 144, 131, 186, 190, 179, 191, 188, 154, 156, 158, 157, 167, 162, 159
};

CONST CHAR
ylcbu[] = {  /* Latin/Cyrillic to Bulgarian PC Code Page */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
255, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
213, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 214, 253, 254
};

CONST CHAR
ylck8[] = {  /* Latin/Cyrillic to Old KOI-8 Cyrillic */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
UNK, 229, UNK, UNK, UNK,  83,  73,  73,  74, UNK, UNK, UNK, 235, UNK, 245, UNK,
225, 226, 247, 231, 228, 229, 246, 250, 233, 234, 235, 236, 237, 238, 239, 240,
242, 243, 244, 245, 230, 232, 227, 254, 251, 253, 255, 249, 248, 252, 224, 241,
193, 194, 215, 199, 196, 197, 214, 218, 201, 202, 203, 204, 205, 206, 207, 208,
210, 211, 212, 213, 198, 200, 195, 222, 219, 221, 223, 217, 216, 220, 192, 209,
UNK, 197, UNK, UNK, UNK, 115, 105, 105, 106, UNK, UNK, UNK, 203, UNK, 213, UNK
};

CONST CHAR
yaclc[] = {  /* CP866 to Latin/Cyrillic */
/* NEED TO MAKE THIS ONE INVERTIBLE */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
161, 241, 164, 244, 167, 247, 174, 254, UNK, UNK, UNK, UNK, 240, UNK, UNK, UNK
};

CONST CHAR
y55lc[] = {  /* CP855 to Latin/Cyrillic (inverse of ylc55) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
242, 162, 243, 163, 241, 161, 244, 164, 245, 165, 246, 166, 247, 167, 248, 168,
249, 169, 250, 170, 251, 171, 252, 172, 254, 174, 255, 175, 238, 206, 234, 202,
208, 176, 209, 177, 230, 198, 212, 180, 213, 181, 228, 196, 211, 179, 128, 129,
130, 131, 132, 133, 134, 229, 197, 216, 184, 135, 136, 137, 138, 217, 185, 139,
140, 141, 142, 143, 144, 145, 218, 186, 146, 147, 148, 149, 150, 151, 152, 153,
219, 187, 220, 188, 221, 189, 222, 190, 223, 154, 155, 156, 157, 191, 239, 158,
207, 224, 192, 225, 193, 226, 194, 227, 195, 214, 182, 210, 178, 236, 204, 240,
173, 235, 203, 215, 183, 232, 200, 237, 205, 233, 201, 231, 199, 253, 159, 160
};

CONST CHAR
y1251lc[] = {  /* CP1251 to Latin/Cyrillic (inverse of ylc1251) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
162, 163, 128, 243, 129, 130, 131, 132, 133, 134, 169, 135, 170, 172, 171, 175,
242, 136, 137, 138, 139, 140, 141, 142, 143, 144, 249, 145, 250, 252, 251, 255,
160, 174, 254, 168, 146, 147, 148, 253, 161, 149, 164, 150, 151, 173, 152, 167,
153, 154, 166, 246, 155, 156, 157, 158, 241, 240, 244, 159, 248, 165, 245, 247,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
};

CONST CHAR
ybulc[] = {  /* Bulgarian PC Code Page to Latin/Cyrillic */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 209,
210, 211, 212, 213, 214, 208, 253, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 128
};

CONST CHAR
yk8lc[] = {  /* Old KOI-8 Cyrillic to Latin/Cyrillic */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
238, 208, 209, 230, 212, 213, 228, 211, 229, 216, 217, 218, 219, 220, 221, 222,
223, 239, 224, 225, 226, 227, 214, 210, 236, 235, 215, 232, 237, 233, 231, 234,
206, 176, 177, 198, 180, 181, 196, 179, 197, 184, 185, 186, 187, 188, 189, 190,
191, 207, 192, 193, 194, 195, 182, 178, 204, 203, 183, 200, 205, 201, 199, 127
};

CONST CHAR
ylcsk[] = {  /* Latin/Cyrillic to Short KOI */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94, 127,
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32, 101, UNK, UNK, UNK,  83,  73,  73,  74, UNK, UNK, UNK, 107,  45, 117, UNK,
 97,  98, 119, 103, 100, 101, 118, 122, 105, 106, 107, 108, 109, 110, 111, 112,
114, 115, 116, 117, 102, 104,  99, 126, 123, 125,  39, 121, 120, 124,  96, 113,
 97,  98, 119, 103, 100, 101, 118, 122, 105, 106, 107, 108, 109, 110, 111, 112,
114, 115, 116, 117, 102, 104,  99, 126, 123, 125,  39, 121, 120, 124,  96, 113,
UNK, 101, UNK, UNK, UNK,  83,  73,  73,  74, UNK, UNK, UNK, 107, UNK, 117, UNK
};

CONST CHAR yskcy[] = {  /* Short KOI to Latin/Cyrillic */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
206, 176, 177, 198, 180, 181, 196, 179, 197, 184, 185, 186, 187, 188, 189, 190,
191, 207, 192, 193, 194, 195, 182, 178, 204, 203, 183, 200, 205, 201, 199, 127
};
#endif /* CYRILLIC */

#ifdef LATIN2

/* Latin-2 tables */

CONST CHAR
yl252[] = {				/* Latin-2 to Code Page 852 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
174, 175, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194, 195,
196, 197, 200, 201, 202, 203, 204, 205, 206, 217, 218, 219, 220, 223, 240, 254,
255, 164, 244, 157, 207, 149, 151, 245, 249, 230, 184, 155, 141, 170, 166, 189,
248, 165, 242, 136, 239, 150, 152, 243, 247, 231, 173, 156, 171, 241, 167, 190,
232, 181, 182, 198, 142, 145, 143, 128, 172, 144, 168, 211, 183, 214, 215, 210,
209, 227, 213, 224, 226, 138, 153, 158, 252, 222, 233, 235, 154, 237, 221, 225,
234, 160, 131, 199, 132, 146, 134, 135, 159, 130, 169, 137, 216, 161, 140, 212,
208, 228, 229, 162, 147, 139, 148, 246, 253, 133, 163, 251, 129, 236, 238, 250
};

CONST CHAR
y52l2[] = {				/* Code Page 852 to Latin-2 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 249, 230, 231, 179, 235, 213, 245, 238, 172, 196, 198,
201, 197, 229, 244, 246, 165, 181, 166, 182, 214, 220, 171, 187, 163, 215, 232,
225, 237, 243, 250, 161, 177, 174, 190, 202, 234, 173, 188, 200, 186, 128, 129,
130, 131, 132, 133, 134, 193, 194, 204, 170, 135, 136, 137, 138, 175, 191, 139,
140, 141, 142, 143, 144, 145, 195, 227, 146, 147, 148, 149, 150, 151, 152, 164,
240, 208, 207, 203, 239, 210, 205, 206, 236, 153, 154, 155, 156, 222, 217, 157,
211, 223, 212, 209, 241, 242, 169, 185, 192, 218, 224, 219, 253, 221, 254, 180,
158, 189, 178, 183, 162, 167, 247, 184, 176, 168, 255, 251, 216, 248, 159, 160
};

CONST CHAR
yl21250[] = {				/* Latin-2 to Code Page 1250 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 139, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 155, 166, 169, 171, 172, 174, 177, 181, 182, 183, 187,
160, 165, 162, 163, 164, 188, 140, 167, 168, 138, 170, 141, 143, 173, 142, 175,
176, 185, 178, 179, 180, 190, 156, 161, 184, 154, 186, 157, 159, 189, 158, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
};

CONST CHAR
y1250l2[] = {				/* Code Page 1250 to Latin-2 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 169, 138, 166, 171, 174, 172,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 185, 149, 182, 187, 190, 188,
160, 183, 162, 163, 164, 161, 150, 167, 168, 151, 170, 152, 153, 173, 154, 175,
176, 155, 178, 179, 180, 156, 157, 158, 184, 177, 186, 159, 165, 189, 181, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
};

CONST CHAR
yl2mz[] = {			     /* Latin-2 to Mazovia (NOT invertible) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
255, 143, UNK, 156, 155,  76, 152,  21,  34,  83,  83,  84, 160,  45,  90, 161,
248, 134,  44, 146,  39, 108, 158, UNK,  44, 115, 115, 116, 166,  34, 122, 167,
 82,  65,  65,  65, 142,  76, 149, 128,  67,  69, 144,  69,  69,  73,  73,  68,
 68, 165,  78, 163,  79, 153, 153, 250,  82,  85,  85, 154, 154,  89,  84, 225,
114,  97, 131,  97, 132, 108, 141, 135,  99, 130, 145, 137, 101, 105, 140, 101,
100, 164, 110, 162, 147, 148, 148, 246, 114, 117, 117, 129, 129, 121, 116, 249
};

CONST CHAR
ymzl2[] = {			     /* Mazovia to Latin-2 (NOT INVERTIBLE) */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 252, 233, 226, 228,  97, 177, 231, 101, 235, 101, 105, 238, 230, 196, 161,
202, 234, 179, 244, 246, 198, 117, 117, 166, 214, 220, 164, 163,  89, 182, 102,
172, 175, 243, 211, 242, 210, 188, 191,  63, UNK, UNK, UNK, UNK,  33,  34,  34,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, 247, UNK, 176, 255, 215, UNK, UNK, UNK, UNK, 160
};

CONST CHAR
yl2l1[] = {				/* Latin-2 to Latin-1 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 'A', UNK, 'L', 164, 'L', 'S', 167, 168, 'S', 'S', 'T', 'Z', 173, 'Z', 'Z',
176, 'a', UNK, 'l', 180, 'l', 's', UNK, 184, 's', 's', 't', 'z', UNK, 'z', 'z',
'R', 193, 194, 'A', 196, 'L', 'C', 199, 'C', 201, 'E', 203, 'E', 205, 'I', 'D',
208, 'N', 'N', 211, 212, 'O', 214, 215, 'R', 'U', 218, 'U', 220, 221, 'T', 223,
'r', 225, 226, 'a', 228, 'l', 'c', 231, 'c', 233, 'e', 235, 'e', 237, 'i', 'd',
240, 'n', 'n', 243, 244, 'o', 246, 247, 'r', 'u', 250, 'u', 252, 253, 't', '.'
};

CONST CHAR
yl1l2[] = {				/* Latin-1 to Latin-2 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 'A', UNK, 'L', 164, UNK, UNK, 167, 168, 'C', 'a', '<', '>', 173, 'R', UNK,
176, UNK, UNK, UNK, 180, UNK, UNK, UNK, 184, UNK, 'o', '>', UNK, UNK, UNK, UNK,
'A', 193, 194, 'A', 196, 'A', 'A', 199, 'E', 201, 'E', 203, 'I', 205, 'I', 'I',
208, 'N', 'O', 211, 212, 'O', 214, 215, 'O', 'U', 218, 'U', 220, 221, UNK, 223,
'a', 225, 226, 'a', 228, 'a', 'a', 231, 'e', 233, 'e', 235, 'i', 237, 'i', 'i',
240, 'n', 'o', 243, 244, 'o', 246, 247, 'o', 'u', 250, 'u', 252, 253, UNK, 'y'
};

CONST CHAR
yl2as[] = {				/* Latin-2 to ASCII */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
 32, 'A', UNK, 'L', UNK, 'L', 'S', UNK,  34, 'S', 'S', 'T', 'Z', '-', 'Z', 'Z',
UNK, 'a', UNK, 'l',  39, 'l', 's', UNK,  44, 's', 's', 't', 'z', UNK, 'z', 'z',
'R', 'A', 'A', 'A', 'A', 'L', 'C', 'C', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'D',
'D', 'N', 'N', 'O', 'O', 'O', 'O', 'x', 'R', 'U', 'U', 'U', 'U', 'Y', 'T', 's',
'r', 'a', 'a', 'a', 'a', 'l', 'c', 'c', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'd',
'd', 'n', 'n', 'o', 'o', 'o', 'o', '/', 'r', 'u', 'u', 'u', 'u', 'y', 't', '.'
};
#endif /* LATIN2 */

#ifdef HEBREW
/*
  8-bit Tables providing invertible translation between Latin/Hebrew and CP862.
*/
CONST CHAR
y62lh[] = {  /* PC Code Page 862 to ISO 8859-8 Latin/Hebrew */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 162, 163, 165, 128, 129,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 172, 189, 188, 140, 171, 187,
141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
157, 158, 159, 161, 164, 166, 167, 168, 169, 170, 173, 174, 175, 223, 179, 180,
182, 184, 185, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
203, 204, 205, 206, 207, 208, 181, 209, 210, 211, 212, 213, 214, 215, 216, 217,
218, 177, 219, 220, 221, 222, 186, 251, 176, 183, 252, 253, 254, 178, 255, 160
};

CONST CHAR
ylh62[] = {  /* ISO 8859-8 Latin/Hebrew to PC Code Page 862 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 173, 176, 177, 178,
179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
255, 195, 155, 156, 196, 157, 197, 198, 199, 200, 201, 174, 170, 202, 203, 204,
248, 241, 253, 206, 207, 230, 208, 249, 209, 210, 246, 175, 172, 171, 211, 212,
213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 243, 244, 245, 205,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 247, 250, 251, 252, 254
};
/*
  7-bit table providing readable translation from DEC Hebrew-7 to CP862.
*/
CONST CHAR
yh762[] = {
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
UNK,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 123, 124, 125, 126, 127
};
/*
  8-bit table providing readable translation from CP862 to Hebrew-7.
*/
CONST CHAR
y62h7[] = {  /* PC Code Page 862 to Hebrew-7 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 123, 124, 125, 126, 127,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
};
/*
  7-bit table providing readable translation from Hebrew-7 to ISO Latin/Hebrew.
*/
CONST CHAR
yh7lh[] = {
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 123, 124, 125, 126, 127
};
/*
  8-bit table providing readable translation from ISO Latin/Hebrew to Hebrew-7.
*/
CONST CHAR
ylhh7[] = {  /* Latin/Hebrew to Hebrew-7 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 123, 124, 125, 126, 127,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, UNK
};
#endif /* HEBREW */

#ifdef GREEK
/*
  8-bit Tables providing invertible translation between Latin/Greek and CP869.
*/
CONST CHAR
ylg69[] = {  /* ISO 8859-7 Latin/Greek to PC Code Page 869 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
135, 147, 148, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194,
195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 217, 218, 219, 220, 223, 254,
255, 139, 140, 156, 128, 129, 138, 245, 249, 151, 130, 174, 137, 240, 131, 142,
248, 241, 153, 154, 239, 247, 134, 136, 141, 143, 144, 175, 146, 171, 149, 152,
161, 164, 165, 166, 167, 168, 169, 170, 172, 173, 181, 182, 183, 184, 189, 190,
198, 199, 132, 207, 208, 209, 210, 211, 212, 213, 145, 150, 155, 157, 158, 159,
252, 214, 215, 216, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
234, 235, 237, 236, 238, 242, 243, 244, 246, 250, 160, 251, 162, 163, 253, 133
};

CONST CHAR
y69lg[] = {  /* PC Code Page 869 to ISO 8859-7 Latin/Greek */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
164, 165, 170, 174, 210, 255, 182, 128, 183, 172, 166, 161, 162, 184, 175, 185,
186, 218, 188, 129, 130, 190, 219, 169, 191, 178, 179, 220, 163, 221, 222, 223,
250, 192, 252, 253, 193, 194, 195, 196, 197, 198, 199, 189, 200, 201, 171, 187,
131, 132, 133, 134, 135, 202, 203, 204, 205, 136, 137, 138, 139, 206, 207, 140,
141, 142, 143, 144, 145, 146, 208, 209, 147, 148, 149, 150, 151, 152, 153, 211,
212, 213, 214, 215, 216, 217, 225, 226, 227, 154, 155, 156, 157, 228, 229, 158,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 242, 244, 180,
173, 177, 245, 246, 247, 167, 248, 181, 176, 168, 249, 251, 224, 254, 159, 160
};
/*
  7-bit table providing readable translation from ELOT 927 to CP869.
*/
CONST CHAR
yeg69[] = {
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96, 164, 165, 166, 167, 168, 169, 170, 172, 173, 181, 182, 183, 184, 189, 190,
198, 199, 207, 208, 209, 210, 211, 212, 213,  32,  32,  23, 124, 125, 126, 127
};
/*
  8-bit table providing readable translation from CP869 to ELOT 927.
*/
CONST CHAR
y69eg[] = {  /* PC Code Page 869 to ELOT 927 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 123, 124, 125, 126, 127,
UNK, UNK, UNK, UNK, UNK, UNK,  97, UNK,  46, UNK, 124,  39,  39, 101,  45, 103,
105, 105, 111, UNK, UNK, 116, 116, UNK, 120,  50,  51,  97, UNK, 101, 103, 105,
105, 105, 111, 116,  97,  98,  99, 100, 101, 102, 103, UNK, 104, 105,  34,  34,
UNK, UNK, UNK, UNK, UNK, 106, 107, 108, 109, UNK, UNK, UNK, UNK, 110, 111, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, 112, 113, UNK, UNK, UNK, UNK, UNK, UNK, UNK, 114,
115, 116, 117, 118, 119, 120,  97,  98,  99, UNK, UNK, UNK, UNK, 100, 101, UNK,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115,  39,
 45, UNK, 116, 117, 118, UNK, 119, UNK, UNK, UNK, 120, 116, 116, 120, UNK,  32

};
/*
  7-bit table providing readable translation from ELOT 927 to ISO Latin/Greek.
*/
CONST CHAR
yeglg[] = {
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 211, 212, 213, 214, 215, 216, 217,  32,  32, 123, 124, 125, 126, 127
};
/*
  8-bit table providing readable translation from ISO Latin/Greek to ELOT 927.
*/
CONST CHAR
ylgeg[] = {  /* Latin/Greek to ELOT 927 */
  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
 16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
 32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
 48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
 64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
 96,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
 80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90, 123, 124, 125, 126, 127,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
 32,  39,  39, UNK, UNK, UNK, 124, UNK,  34, UNK, UNK,  34, UNK,  45, UNK,  45,
UNK, UNK,  50,  51,  39, UNK,  97,  46, 101, 103, 105,  34, 111, UNK, 116, 120,
UNK,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, UNK, 114, 115, 116, 117, 118, 119, 120, 105, 116,  97, 101, 103, 105,
116,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 105, 116, 111, 116, 120, UNK
};
#endif /* GREEK */

/* Translation functions ... */

CHAR					/* The identity function... */
#ifdef CK_ANSIC
ident(CHAR c)				/* (no longer used) */
#else
ident(c) CHAR c;
#endif /* CK_ANSIC */
{ /* ident */
    return(c);				/* Instead, enter NULL in the  */
}					/* table of functions to avoid */
					/* needless function calls.    */

CHAR
#ifdef CK_ANSIC
xleft128(CHAR c)
#else
xleft128(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xleft128 */
    return((c < 128) ? c : '?');
}

CHAR
#ifdef CK_ANSIC
xleft160(CHAR c)
#else
xleft160(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xleft160 */
    return((c < 160) ? c : '?');
}


CHAR
#ifdef CK_ANSIC
xl1as(CHAR c)
#else
xl1as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1as */ 				/* Latin-1 to US ASCII... */
    switch(langs[language].id) {

      case L_DUTCH:
	if (c == 255) {			/* Dutch umlaut-y */
	    zmstuff('j');		/* becomes ij */
	    return('i');
	} else return(yl1as[c]);	/* all others by the book */

      case L_GERMAN:
	switch (c) {			/* German, special rules. */
	  case 196:			/* umlaut-A -> Ae */
	    zmstuff('e');
	    return('A');
	  case 214:			/* umlaut-O -> Oe */
	    zmstuff('e');
	    return('O');
	  case 220:			/* umlaut-U -> Ue */
	    zmstuff('e');
	    return('U');
	  case 228:			/* umlaut-a -> ae */
	    zmstuff('e');
	    return('a');
	  case 246:			/* umlaut-o -> oe */
	    zmstuff('e');
	    return('o');
	  case 252:			/* umlaut-u -> ue */
	    zmstuff('e');
	    return('u');
	  case 223:			/* ess-zet -> ss */
	    zmstuff('s');
	    return('s');
	  default: return(yl1as[c]);	/* all others by the book */
	}
      case L_DANISH:
      case L_FINNISH:
      case L_NORWEGIAN:
      case L_SWEDISH:
	switch (c) {			/* Scandanavian languages. */
	  case 196:			/* umlaut-A -> Ae */
          case 198:			/* AE ligature also -> Ae */
	    zmstuff('e');
	    return('A');
	  case 214:			/* umlaut-O -> Oe */
	  case 216:			/* O-slash -> Oe */
	    zmstuff('e');
	    return('O');
	  case 220:			/* umlaut-U -> Ue */
	  /*  return('Y'); replaced by "Ue" by popular demand. */
          /*  Y for Umlaut-U is only used in German names. */
	    zmstuff('e');
	    return('U');
	  case 228:			/* umlaut-a -> ae */
          case 230:			/* ditto for ae ligature */
	    zmstuff('e');
	    return('a');
	  case 246:			/* umlaut-o -> oe */
	  case 248:			/* o-slash -> oe */
	    zmstuff('e');
	    return('o');
	  case 252:			/* umlaut-u -> ue */
	  /*  return('y'); replaced by "ue" by popular demand. */
	    zmstuff('e');
	    return('u');
	  case 197:			/* A-ring -> Aa */
	    zmstuff('a');
	    return('A');
          case 229:			/* a-ring -> aa */
	    zmstuff('a');
	    return('a');
	  default: return(yl1as[c]);	/* All others by the book */
	}
      case L_ICELANDIC:			/* Icelandic. */
	switch (c) {
	  case 198:			/* uppercase AE -> AE */
	    zmstuff('e');
	    return('A');
	  case 208:			/* uppercase Eth -> D */
	    return('D');
	  case 214:			/* uppercase O-diaeresis -> Oe */
	    zmstuff('e');
	    return('O');
	  case 222:			/* uppercase Thorn -> Th */
	    zmstuff('h');
	    return('T');
	  case 230:			/* lowercase ae -> ae */
	    zmstuff('e');
	    return('a');
	  case 240:			/* lowercase Eth -> d */
	    return('d');
	  case 246:			/* lowercase O-diaeresis -> oe */
	    zmstuff('e');
	    return('o');
	  case 254:			/* lowercase Thorn -> th */
	    zmstuff('h');
	    return('t');
	  default: return(yl1as[c]);	/* All others by the book */
	}
      default:
	return(yl1as[c]);		/* None of the above, by the table. */
    }
}

CHAR					/* CP1252 to ASCII */
#ifdef CK_ANSIC
xw1as(CHAR c)
#else
xw1as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1as */
    switch(c) {				/* Microsoft name... */
      case 0x80: return('?');		/* Euro Sign */
      case 0x82: return('\047');	/* Single Low-9 Quotation Mark */
      case 0x83: return('f');		/* Latin Small Letter f with Hook */
      case 0x84: return('"');		/* Double low-9 Quotation Mark */
      case 0x85: return('-');		/* Horizontal Ellipsis */
      case 0x86: return('+');		/* Dagger */
      case 0x87: return('+');		/* Double Dagger */
      case 0x88: return('^');		/* Modifier Letter Circumflex Accent */
      case 0x89: return('?');		/* Per Mille Sign */
      case 0x8A: return('S');		/* Latin Capital Letter S with Caron */
      case 0x8B: return('<');		/* Single Left Angle Quotation Mark */
      case 0x8C: return('O');		/* Latin Capital Ligature OE */
      case 0x8E: return('Z');		/* Latin Capital Letter Z with Caron */
      case 0x91: return('\047');	/* Left Single Quotation Mark */
      case 0x92: return('\047');	/* Right Single Quotation Mark */
      case 0x93: return('"');		/* Left Double Quotation Mark */
      case 0x94: return('"');		/* Right Double Quotation Mark */
      case 0x95: return('.');		/* Bullet */
      case 0x96: return('-');		/* En Dash */
      case 0x97: return('-');		/* Em Dash */
      case 0x98: return('~');		/* Small Tilde */
      case 0x99: return('T');		/* Trade Mark Sign */
      case 0x9A: return('s');		/* Latin Small Letter s with Caron */
      case 0x9B: return('>');		/* Single Right Angle Quotation Mark */
      case 0x9C: return('o');		/* Latin Small Ligature OE */
      case 0x9E: return('z');		/* Latin Small Letter z with Caron */
      case 0x9F: return('Y');		/* Latin Capital Letter Y Diaeresis */
      default:
	if (c > 0x80 && c < 0xa0)
	  return('?');
	else
	  return(yl1as[c]);
    }
}

CHAR					/* CP1252 to Latin-1 */
#ifdef CK_ANSIC
xw1l1(CHAR c)
#else
xw1l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1l1 */
    if (c == 0x95) return(0xb7);	/* Middle dot */
    return((c < 160) ? xw1as(c) : c);
}

CHAR					/* Latin-1 to German */
#ifdef CK_ANSIC
xl1ge(CHAR c)
#else
xl1ge(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1ge */
    return(yl1ge[c]);
}

CHAR					/* German to Latin-1 */
#ifdef CK_ANSIC
xgel1(CHAR c)
#else
xgel1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xgel1 */
    if (c & 0x80)
      return(UNK);
    return(ygel1[c]);
}

CHAR
#ifdef CK_ANSIC
xgeas(CHAR c)
#else
xgeas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xgeas */				/* German ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:				/* umlaut-A -> Ae */
	zmstuff('e');
	return('A');
      case 92:				/* umlaut-O -> Oe */
	zmstuff('e');
	return('O');
      case 93:				/* umlaut-U -> Ue */
	zmstuff('e');
	return('U');
      case 123:				/* umlaut-a -> ae */
	zmstuff('e');
	return('a');
      case 124:				/* umlaut-o -> oe */
	zmstuff('e');
	return('o');
      case 125:				/* umlaut-u -> ue */
	zmstuff('e');
	return('u');
      case 126:				/* ess-zet -> ss */
	zmstuff('s');
	return('s');
      default:  return(c);		/* all others stay the same */
    }
}

CHAR
#ifdef CK_ANSIC
xl1w1(CHAR c)
#else
xl1w1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1w1 */				/* Latin-1 to CP1252 (Windows L1) */
    if (c > 127 && c < 160)
      return(UNK);
    else
      return(c);
}

CHAR
#ifdef CK_ANSIC
xduas(CHAR c)
#else
xduas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xduas */				/* Dutch ISO 646 to US ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 64:  return(UNK);		/* 3/4 */
      case 91:				/* y-diaeresis */
	zmstuff('j');
	return('i');
      case 92:  return(UNK);		/* 1/2 */
      case 93:  return(124);		/* vertical bar */
      case 123: return(34);		/* diaeresis */
      case 124: return(UNK);		/* Florin */
      case 125: return(UNK);		/* 1/4 */
      case 126: return(39);		/* Apostrophe */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xfias(CHAR c)
#else
xfias(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfias */				/* Finnish ISO 646 to US ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:				/* A-diaeresis */
	zmstuff('e');
	return('A');
      case 92:				/* O-diaeresis */
	zmstuff('e');
	return('O');
      case 93:				/* A-ring */
	zmstuff('a');
	return('A');
      case 94:				/* U-diaeresis */
	/* return('Y'); */
	zmstuff('e');
	return('U');
      case 96:				/* e-acute */
	return('e');
      case 123:				/* a-diaeresis */
	zmstuff('e');
	return('a');
      case 124:				/* o-diaeresis */
	zmstuff('e');
	return('o');
      case 125:				/* a-ring */
	zmstuff('a');
	return('a');
      case 126:				/* u-diaeresis */
	/* return('y'); */
	zmstuff('e');
	return('U');
      default:
	return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xfras(CHAR c)
#else
xfras(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfras */				/* French ISO 646 to US ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 64:  return(97);		/* a grave */
      case 91:  return(UNK);		/* degree sign */
      case 92:  return(99);		/* c cedilla */
      case 93:  return(UNK);		/* paragraph sign */
      case 123: return(101);		/* e acute */
      case 124: return(117);		/* u grave */
      case 125: return(101);		/* e grave */
      case 126: return(34);		/* diaeresis */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xfcas(CHAR c)
#else
xfcas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfcas */				/* French Canadian ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 64:  return('a');		/* a grave */
      case 91:  return('a');		/* a circumflex */
      case 92:  return('c');		/* c cedilla */
      case 93:  return('e');		/* e circumflex */
      case 94:  return('i');		/* i circumflex */
      case 96:  return('o');		/* o circumflex */
      case 123: return('e');		/* e acute */
      case 124: return('u');		/* u grave */
      case 125: return('e');		/* e grave */
      case 126: return('u');		/* u circumflex */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xitas(CHAR c)
#else
xitas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xitas */				/* Italian ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:  return(UNK);		/* degree */
      case 92:  return('c');		/* c cedilla */
      case 93:  return('e');		/* e acute */
      case 96:  return('u');		/* u grave */
      case 123: return('a');		/* a grave */
      case 124: return('o');		/* o grave */
      case 125: return('e');		/* e grave */
      case 126: return('i');		/* i grave */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xneas(CHAR c)
#else
xneas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xneas */				/* NeXT to ASCII */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 234) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 250) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    c = xnel1(c);			/* Convert to Latin-1 */
    return(yl1as[c]);			/* Convert Latin-1 to ASCII */
}

CHAR
#ifdef CK_ANSIC
xnoas(CHAR c)
#else
xnoas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xnoas */				/* Norge/Danish ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:
	zmstuff('E');			/* AE digraph */
	return('A');
      case 92: return('O');		/* O slash */
      case 93:				/* A ring */
	zmstuff('a');
	return('A');
      case 123:				/* ae digraph */
	zmstuff('e');
	return('a');
      case 124: return('o');		/* o slash */
      case 125:				/* a ring */
	zmstuff('a');
	return('a');
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xpoas(CHAR c)
#else
xpoas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xpoas */				/* Portuguese ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:  return('A');		/* A tilde */
      case 92:  return('C');		/* C cedilla */
      case 93:  return('O');		/* O tilde */
      case 123: return('a');		/* a tilde */
      case 124: return('c');		/* c cedilla */
      case 125: return('o');		/* o tilde */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xspas(CHAR c)
#else
xspas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xspas */				/* Spanish ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 91:  return(33);		/* Inverted exclamation */
      case 92:  return('N');		/* N tilde */
      case 93:  return(63);		/* Inverted question mark */
      case 123: return(UNK);		/* degree */
      case 124: return('n');		/* n tilde */
      case 125: return('c');		/* c cedilla */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xswas(CHAR c)
#else
xswas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xswas */				/* Swedish ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 64:  return('E');		/* E acute */
      case 91:				/* A diaeresis */
	zmstuff('e');
	return('A');
      case 92:				/* O diaeresis */
	zmstuff('e');
	return('O');
      case 93:				/* A ring */
	zmstuff('a');
	return('A');
      case 94:				/* U diaeresis */
	/* return('Y'); */
	zmstuff('e');
	return('U');
      case 96:  return('e');		/* e acute */
      case 123:				/* a diaeresis */
	zmstuff('e');
	return('a');
      case 124:				/* o diaeresis */
	zmstuff('e');
	return('o');
      case 125:				/* a ring */
	zmstuff('a');
	return('a');
      case 126:				/* u diaeresis */
	/* return('y'); */
	zmstuff('e');
	return('u');
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xchas(CHAR c)
#else
xchas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xchas */				/* Swiss ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 35:  return('u');		/* u grave */
      case 64:  return('a');		/* a grave */
      case 91:  return('e');		/* e acute */
      case 92:  return('c');		/* c cedilla */
      case 93:  return('e');		/* e circumflex */
      case 94:  return('i');		/* i circumflex */
      case 95:  return('e');		/* e grave */
      case 96:  return('o');		/* o circumflex */
      case 123:				/* a diaeresis */
	zmstuff('e');
	return('a');
      case 124:				/* o diaeresis */
	zmstuff('e');
	return('o');
      case 125:				/* u diaeresis */
	zmstuff('e');
	return('u');
      case 126: return('u');		/* u circumflex */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xhuas(CHAR c)
#else
xhuas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xhuas */				/* Hungarian ISO 646 to ASCII */
    if (c & 0x80)
      return(UNK);
    switch (c) {
      case 64:  return('A');		/* A acute */
      case 91:  return('E');		/* E acute */
      case 92:  return('O');		/* O diaeresis */
      case 93:  return('U');		/* U diaeresis */
      case 96:  return('a');		/* a acute */
      case 123: return('e');		/* e acute */
      case 124: return('o');		/* o acute */
      case 125: return('u');		/* u acute */
      case 126: return(34);		/* double acute accent */
      default:  return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xdmas(CHAR c)
#else
xdmas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xdmas */				/* DEC MCS to ASCII */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 215) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 247) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    return(yl1as[c]);			/* Otherwise treat like Latin-1 */
}

CHAR
#ifdef CK_ANSIC
xdgas(CHAR c)
#else
xdgas(c) CHAR c;
#endif /* CK_ANSIC */
{ /*  xdgas */				/* Data General to ASCII */
    switch(c) {
      case 180: return('f');		/* Florin */
      case 183: return('<');		/* Less-equal */
      case 184: return('>');		/* Greater-equal */
      case 186: return(96);		/* Grave accent */
      case 191: return('^');		/* Uparrow */
      case 215:
	if (langs[language].id == L_FRENCH) { /* OE digraph */
	    zmstuff('E');
	    return('O');
	} else return('O');
      case 247:
	if (langs[language].id == L_FRENCH) { /* oe digraph */
	    zmstuff('e');
	    return('o');
	} else return('o');
      case 175: case 179: case 220: case 222:
      case 223: case 254: case 255:
	return(UNK);
      default:				/* The rest, convert to Latin-1 */
	return(yl1as[ydgl1[c]]);	/* and from there to ASCII */
    }
}

CHAR
#ifdef CK_ANSIC
xr8as(CHAR c)
#else
xr8as(c) CHAR c;
#endif /* CK_ANSIC */
{ /*  xr8as */				/* Hewlett Packard Roman8 to ASCII */
    switch(c) {
      case 175: return('L');		/* Lira */
      case 190: return('f');		/* Florin */
      case 235: return('S');		/* S caron */
      case 236: return('s');		/* s caron */
      case 246: return('-');		/* Horizontal bar */
      case 252: return('*');		/* Solid box */
      default:				/* The rest, convert to Latin-1 */
	return(yl1as[yr8l1[c]]);	/* and from there to ASCII */
    }
}

CHAR
#ifdef CK_ANSIC
xukl1(CHAR c)
#else
xukl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xukl1 */				/* UK ASCII to Latin-1 */
    if (c & 0x80)
      return(UNK);
    if (c == 35)
      return(163);
    else return(c);
}

CHAR
#ifdef CK_ANSIC
xl1uk(CHAR c)
#else
xl1uk(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1uk */				/* Latin-1 to UK ASCII */
    if (c == 163)
      return(35);
    else return(yl1as[c]);
}

CHAR					/* Latin-1 to French ISO 646 */
#ifdef CK_ANSIC
xl1fr(CHAR c)
#else
xl1fr(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1fr */
    return(yl1fr[c]);
}


CHAR					/* French ISO 646 to Latin-1 */
#ifdef CK_ANSIC
xfrl1(CHAR c)
#else
xfrl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfrl1 */
    if (c & 0x80)
      return(UNK);
    return(yfrl1[c]);
}

CHAR					/* Latin-1 to Dutch ASCII */
#ifdef CK_ANSIC
xl1du(CHAR c)
#else
xl1du(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1du */
    return(yl1du[c]);
}

CHAR
#ifdef CK_ANSIC
xdul1(CHAR c)
#else
xdul1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xdul1 */				/* Dutch ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(ydul1[c]);
}

CHAR
#ifdef CK_ANSIC
xfil1(CHAR c)
#else
xfil1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfil1 */				/* Finnish ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yfil1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1fi(CHAR c)
#else
xl1fi(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1fi */				/* Latin-1 to Finnish ISO 646 */
    return(yl1fi[c]);
}

CHAR
#ifdef CK_ANSIC
xfcl1(CHAR c)
#else
xfcl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xfcl1 */				/* French Canadian ISO646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yfcl1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1fc(CHAR c)
#else
xl1fc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1fc */				/* Latin-1 to French Canadian ISO646 */
    return(yl1fc[c]);
}

CHAR
#ifdef CK_ANSIC
xitl1(CHAR c)
#else
xitl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xitl1 */				/* Italian ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yitl1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1it(CHAR c)
#else
xl1it(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1it */				/* Latin-1 to Italian ISO 646 */
    return(yl1it[c]);
}

CHAR
#ifdef CK_ANSIC
xnel1(CHAR c)
#else
xnel1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xnel1 */		 		/* NeXT to Latin-1 */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 234) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 250) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    return(ynel1[c]);
}

CHAR
#ifdef CK_ANSIC
xnel9(CHAR c)
#else
xnel9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xnel9 */		 		/* NeXT to Latin-9 */
    switch (c) {
      case 234: return(188);		/* OE */
      case 250: return(189);		/* oe */
      case 188: return(234);		/* keep it invertible... */
      case 189: return(250);		/* oe */
      default:
	return(ynel1[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xl1ne(CHAR c)
#else
xl1ne(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1ne */		 		/* Latin-1 to NeXT */
    return(yl1ne[c]);
}

CHAR
#ifdef CK_ANSIC
xl9ne(CHAR c)
#else
xl9ne(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl9ne */		 		/* Latin-9 to NeXT */
    switch (c) {
      case 188: return(234);		/* OE */
      case 189: return(250);		/* oe */
      case 234: return(188);		/* OE */
      case 250: return(189);		/* oe */
      default:
	return(yl1ne[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xnol1(CHAR c)
#else
xnol1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xnol1 */		 		/* Norway/Denmark ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(ynol1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1no(CHAR c)
#else
xl1no(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1no */		 		/* Latin-1 to Norway/Denmark ISO 646 */
    return(yl1no[c]);
}

CHAR
#ifdef CK_ANSIC
xpol1(CHAR c)
#else
xpol1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xpol1 */				/* Portuguese ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(ypol1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1po(CHAR c)
#else
xl1po(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1po */				/* Latin-1 to Portuguese ISO 646 */
    return(yl1po[c]);
}

CHAR
#ifdef CK_ANSIC
xspl1(CHAR c)
#else
xspl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xspl1 */				/* Spanish ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yspl1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1sp(CHAR c)
#else
xl1sp(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1sp */				/* Latin-1 to Spanish ISO 646 */
    return(yl1sp[c]);
}

CHAR
#ifdef CK_ANSIC
xswl1(CHAR c)
#else
xswl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xswl1 */				/* Swedish ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yswl1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1sw(CHAR c)
#else
xl1sw(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1sw */				/* Latin-1 to Swedish ISO 646 */
    return(yl1sw[c]);
}

CHAR
#ifdef CK_ANSIC
xchl1(CHAR c)
#else
xchl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xchl1 */				/* Swiss ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(ychl1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1ch(CHAR c)
#else
xl1ch(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1ch */				/* Latin-1 to Swiss ISO 646 */
    return(yl1ch[c]);
}

CHAR
#ifdef CK_ANSIC
xhul1(CHAR c)
#else
xhul1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xhul1 */				/* Hungarian ISO 646 to Latin-1 */
    if (c & 0x80)
      return(UNK);
    return(yhul1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1hu(CHAR c)
#else
xl1hu(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1hu */				/* Latin-1 to Hungarian ISO 646 */
    return(yl1hu[c]);
}

CHAR
#ifdef CK_ANSIC
xl1dm(CHAR c)
#else
xl1dm(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1dm */				/* Latin-1 to DEC MCS */
    return(yl1dm[c]);
}

CHAR
#ifdef CK_ANSIC
xl9dm(CHAR c)
#else
xl9dm(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl9dm */				/* Latin-9 to DEC MCS */
    switch (c) {
      case 188: return(215);
      case 189: return(247);
      case 215: return(188);
      case 247: return(189);
      default:
	return(yl1dm[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xl9w1(CHAR c)
#else
xl9w1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl9w1 */				/* Latin-9 to CP1252 */
    if (c < 128)
      return(c);
    else if (c < 160)
      return('?');
    switch (c) {
      case 0xa4: return(0x80);		/* Euro */
      case 0xa6: return(0x8a);		/* S-caron */
      case 0xa8: return(0x9a);		/* s-caron */
      case 0xb4: return(0x8e);		/* Z-caron */
      case 0xb8: return(0x9e);		/* z-caron */
      case 0xbc: return(0x8c);		/* OE */
      case 0xbd: return(0x9c);		/* oe */
      case 0xbe: return(0x9f);		/* Y-diaeresis */
      default:
	return(c);
    }
}

CHAR
#ifdef CK_ANSIC
xl1dg(CHAR c)
#else
xl1dg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1dg */				/* Latin-1 to DG ICS */
    return(yl1dg[c]);
}

CHAR
#ifdef CK_ANSIC
xdml1(CHAR c)
#else
xdml1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xdml1 */				/* DEC MCS to Latin-1 */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 215) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 247) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    return(ydml1[c]);
}

CHAR
#ifdef CK_ANSIC
xdml9(CHAR c)
#else
xdml9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xdml9 */				/* DEC MCS to Latin-9 */
    switch (c) {
      case 215: return(188);		/* OE */
      case 247: return(189);		/* oe */
      case 188: return(215);		/* and swap the other two... */
      case 189: return(247);		/* (1/4 and 1/2) */
      default:				/* to keep it invertible */
	return(ydml1[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xdgl1(CHAR c)
#else
xdgl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xdgl1 */				/* DG International CS to Latin-1 */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 215) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 247) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    return(ydgl1[c]);
}

CHAR
#ifdef CK_ANSIC
xr8l1(CHAR c)
#else
xr8l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xr8l1 */				/* Hewlett Packard Roman8 to Latin-1 */
    return(yr8l1[c]);
}

CHAR
#ifdef CK_ANSIC
xl1r8(CHAR c)
#else
xl1r8(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1r8 */				/* Latin-1 to Hewlett Packard Roman8 */
    return(yl1r8[c]);
}

/* Translation functions for receiving files and translating them into ASCII */

CHAR
#ifdef CK_ANSIC
zl1as(CHAR c)
#else
zl1as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* zl1as */
    switch(langs[language].id) {

      case L_DUTCH:
	if (c == 255) {			/* Dutch umlaut-y */
	    zdstuff('j');		/* becomes ij */
	    return('i');
	} else return(yl1as[c]);	/* all others by the book */

      case L_GERMAN:
	switch (c) {			/* German, special rules. */
	  case 196:			/* umlaut-A -> Ae */
	    zdstuff('e');
	    return('A');
	  case 214:			/* umlaut-O -> Oe */
	    zdstuff('e');
	    return('O');
	  case 220:			/* umlaut-U -> Ue */
	    zdstuff('e');
	    return('U');
	  case 228:			/* umlaut-a -> ae */
	    zdstuff('e');
	    return('a');
	  case 246:			/* umlaut-o -> oe */
	    zdstuff('e');
	    return('o');
	  case 252:			/* umlaut-u -> ue */
	    zdstuff('e');
	    return('u');
	  case 223:			/* ess-zet -> ss */
	    zdstuff('s');
	    return('s');
	  default: return(yl1as[c]);	/* all others by the book */
	}
      case L_DANISH:
      case L_FINNISH:
      case L_NORWEGIAN:
      case L_SWEDISH:
	switch (c) {			/* Scandanavian languages. */
	  case 196:			/* umlaut-A -> Ae */
	    zdstuff('e');
	    return('A');
	  case 214:			/* umlaut-O -> Oe */
	  case 216:			/* O-slash -> Oe */
	    zdstuff('e');
	    return('O');
	  case 220:			/* umlaut-U -> Y */
	    /* return('Y'); */
	    zdstuff('e');
	    return('U');
	  case 228:			/* umlaut-a -> ae */
	    zdstuff('e');
	    return('a');
	  case 246:			/* umlaut-o -> oe */
	  case 248:			/* o-slash -> oe */
	    zdstuff('e');
	    return('o');
	  case 252:			/* umlaut-u -> y */
	    /* return('y'); */
	    zdstuff('e');
	    return('u');
	  case 197:			/* A-ring -> Aa */
	    zdstuff('a');
	    return('A');
          case 229:			/* a-ring -> aa */
	    zdstuff('a');
	    return('a');
	  default: return(yl1as[c]);	/* All others by the book */
	}
      default:
	return(yl1as[c]);		/* No language, go by the table. */
    }
}

CHAR					/* IBM CP437 to Latin-1 */
#ifdef CK_ANSIC
x43l1(CHAR c)
#else
x43l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x43l1 */
    return(y43l1[c]);
}

CHAR					/* IBM CP850 to Latin-1 */
#ifdef CK_ANSIC
x85l1(CHAR c)
#else
x85l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x85l1 */
    return(y85l1[c]);
}

CHAR					/* Latin-1 to IBM CP437 */
#ifdef CK_ANSIC
xl143(CHAR c)
#else
xl143(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl143 */
    return(yl143[c]);
}

CHAR					/* Latin-1 to CP850 */
#ifdef CK_ANSIC
xl185(CHAR c)
#else
xl185(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl185 */
    return(yl185[c]);
}

CHAR
#ifdef CK_ANSIC
x43as(CHAR c)
#else
x43as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x43as */				/* CP437 to ASCII */
    c = y43l1[c];			/* Translate to Latin-1 */
    return(xl143(c));			/* and from Latin-1 to ASCII. */
}

CHAR
#ifdef CK_ANSIC
x85as(CHAR c)
#else
x85as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x85as */				/* CP850 to ASCII */
    c = y85l1[c];			/* Translate to Latin-1 */
    return(xl1as(c));			/* and from Latin-1 to ASCII. */
}

CHAR					/* Macintosh Latin to Latin-1 */
#ifdef CK_ANSIC
xaql1(CHAR c)
#else
xaql1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xaql1 */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 206) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 207) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    return(yaql1[c]);
}

CHAR					/* Macintosh Latin to ASCII */
#ifdef CK_ANSIC
xaqas(CHAR c)
#else
xaqas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xaqas */
    if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
	if (c == 206) {			/* handle OE digraph. */
	    zmstuff('E');
	    return('O');
	} else if (c == 207) {		/* Also lowercase oe. */
	    zmstuff('e');
	    return('o');
	}
    }
    c = yaql1[c];			/* Translate to Latin-1 */
    return(xl1as(c));			/* then to ASCII. */
}

CHAR					/* Latin-1 to Macintosh Latin */
#ifdef CK_ANSIC
xl1aq(CHAR c)
#else
xl1aq(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1aq */
    return(yl1aq[c]);
}

#ifdef LATIN2

/* Translation functions for Latin Alphabet 2 */

CHAR					/* Latin-2 to Latin-1 */
#ifdef CK_ANSIC
xl2l1(CHAR c)
#else
xl2l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2l1 */
    return(yl2l1[c]);
}

CHAR
#ifdef CK_ANSIC
xl2w1(CHAR c)
#else
xl2w1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2w1 */				/* Latin-2 to CP1252 (Windows L1) */
    if (c > 127 && c < 160)
      return(UNK);
    else
      return(yl2l1[c]);
}

CHAR					/* Latin-1 to Latin-2 */
#ifdef CK_ANSIC
xl1l2(CHAR c)
#else
xl1l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll1l2 */
    return(yl1l2[c]);
}

CHAR					/* CP1252 to Latin-1 */
#ifdef CK_ANSIC
xw1l2(CHAR c)
#else
xw1l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1l2 */
    switch (c) {
      case 0x8a: return(0xa9);		/* S caron */
      case 0x8e: return(0xae);		/* Z caron */
      case 0x9a: return(0xb9);		/* s caron */
      case 0x9e: return(0xbe);		/* z caron */
      default:
	return((c < 160) ? xw1as(c) : xl1l2(c));
    }
}


CHAR					/* Latin-2 to ASCII */
#ifdef CK_ANSIC
xl2as(CHAR c)
#else
xl2as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2as */
    return(yl2as[c]);
}

CHAR					/* Latin-2 to CP852 */
#ifdef CK_ANSIC
xl252(CHAR c)
#else
xl252(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll252 */
    return(yl252[c]);
}

CHAR					/* Latin-2 to Mazovia */
#ifdef CK_ANSIC
xl2mz(CHAR c)
#else
xl2mz(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2mz */
    return(yl2mz[c]);
}

CHAR					/* Latin-1 to Mazovia */
#ifdef CK_ANSIC
xl1mz(CHAR c)
#else
xl1mz(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll1mz */
    return(yl2mz[yl1l2[c]]);
}

CHAR					/* Mazovia to Latin-1 */
#ifdef CK_ANSIC
xmzl1(CHAR c)
#else
xmzl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xmzl1 */
    return(yl2l1[ymzl2[c]]);
}

CHAR					/* Mazovia to Latin-9 */
#ifdef CK_ANSIC
xmzl9(CHAR c)
#else
xmzl9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xmzl9 */
    return(xl2l9(ymzl2[c]));
}

CHAR					/* CP852 to Latin-2 */
#ifdef CK_ANSIC
x52l2(CHAR c)
#else
x52l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x52l2 */
    return(y52l2[c]);
}

CHAR					/* Mazovia to Latin-2 */
#ifdef CK_ANSIC
xmzl2(CHAR c)
#else
xmzl2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xmzl2 */
    return(ymzl2[c]);
}

CHAR					/* Latin-2 to CP1250 */
#ifdef CK_ANSIC
xl21250(CHAR c)
#else
xl21250(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll21250 */
    return(yl21250[c]);
}

CHAR					/* CP1250 to Latin-2 */
#ifdef CK_ANSIC
x1250l2(CHAR c)
#else
x1250l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x1250l2 */
    return(y1250l2[c]);
}

CHAR					/* CP852 to ASCII */
#ifdef CK_ANSIC
x52as(CHAR c)
#else
x52as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl52as */
    return(yl2as[y52l2[c]]);		/* CP852 -> Latin-2 -> ASCII */
}

CHAR					/* CP1250 to ASCII */
#ifdef CK_ANSIC
x1250as(CHAR c)
#else
x1250as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1250as */
    return(yl2as[y1250l2[c]]);		/* CP81250 -> Latin-2 -> ASCII */
}


CHAR					/* CP852 to Latin-1 */
#ifdef CK_ANSIC
x52l1(CHAR c)
#else
x52l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl52l1 */
    return(yl2l1[y52l2[c]]);		/* CP852 -> Latin-2 -> Latin-1 */
}

CHAR					/* CP1250 to Latin-1 */
#ifdef CK_ANSIC
x1250l1(CHAR c)
#else
x1250l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1250l1 */
    return(yl2l1[y1250l2[c]]);		/* CP1250 -> Latin-2 -> Latin-1 */
}

CHAR					/* CP1250 to Latin-9 */
#ifdef CK_ANSIC
x1250l9(CHAR c)
#else
x1250l9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x1250l9 */
    if (c == (CHAR)128)			/* Euro */
      return((CHAR)164);
    else
      return(xl2l9(y1250l2[c]));	/* CP1250 -> Latin-2 -> Latin-9 */
}

CHAR					/* Latin-1 to CP852 */
#ifdef CK_ANSIC
xl152(CHAR c)
#else
xl152(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll152 */
    return(yl252[yl1l2[c]]);		/* Latin-1 -> Latin-2 -> CP852 */
}

CHAR					/* Latin-1 to CP1250 */
#ifdef CK_ANSIC
xl11250(CHAR c)
#else
xl11250(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll11250 */
    return(yl21250[yl1l2[c]]);		/* Latin-1 -> Latin-2 -> CP1250 */
}

CHAR					/* Latin-9 to CP1250 */
#ifdef CK_ANSIC
xl91250(CHAR c)
#else
xl91250(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll91250 */
    if (c == (CHAR)164)			/* Euro */
      return((CHAR)128);
    else
      return(yl21250[xl9l2(c)]);	/* Latin-9 -> Latin-2 -> CP1250 */
}

CHAR					/* Latin-9 to Mazovia */
#ifdef CK_ANSIC
xl9mz(CHAR c)
#else
xl9mz(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll9mz */
    return(yl2mz[xl9l2(c)]);		/* Latin-9 -> Latin-2 -> Mazovia */
}

CHAR					/* Latin-9 to Mazovia */
#ifdef CK_ANSIC
xmzas(CHAR c)
#else
xmzas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xmzas */
    return(yl2as[xmzl2(c)]);		/* Mazovia -> Latin-2 -> ASCII */
}

CHAR					/* Latin-2 to NeXT */
#ifdef CK_ANSIC
xl2ne(CHAR c)
#else
xl2ne(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2ne */
    switch(c) {
      case 162: return(198);		/* Breve */
      case 163: return(232);		/* L with stroke */
      case 178: return(206);		/* Ogonek */
      case 179: return(248);		/* l with stroke */
      case 183: return(207);		/* Caron */
      case 189: return(205);		/* Double acute */
      case 208: return(144);		/* D stroke = Eth */
      case 240: return(230);		/* d stroke = eth */
      case 255: return(199);		/* Dot above */
      default:  return(yl1ne[yl2l1[c]]);
    }
}

CHAR					/* Latin-2 to CP437 */
#ifdef CK_ANSIC
xl243(CHAR c)
#else
xl243(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll243 */
    return(yl1l2[y43l1[c]]);
}

CHAR					/* Latin-2 to CP850 */
#ifdef CK_ANSIC
xl285(CHAR c)
#else
xl285(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll285 */
    return(yl1l2[y85l1[c]]);
}

CHAR					/* Latin-2 to Apple */
#ifdef CK_ANSIC
xl2aq(CHAR c)
#else
xl2aq(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2aq */
    return(yl1aq[yl2l1[c]]);		/* Could do more... */
}

CHAR					/* Latin-2 to DGI */
#ifdef CK_ANSIC
xl2dg(CHAR c)
#else
xl2dg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2dg */
    return(ydgl1[yl1l2[c]]);
}

CHAR					/* Latin-2 to Short KOI */
#ifdef CK_ANSIC
xl2sk(CHAR c)
#else
xl2sk(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2sk */
    return(islower(c) ? toupper(c) : c);
}

CHAR					/* NeXT to Latin-2 */
#ifdef CK_ANSIC
xnel2(CHAR c)
#else
xnel2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xnel2 */
    switch (c) {
      case 144: return(208);		/* D stroke = Eth */
      case 198: return(162);		/* Breve */
      case 199: return(255);		/* Dot above */
      case 205: return(189);		/* Double acute */
      case 206: return(178);		/* Ogonek */
      case 207: return(183);		/* Caron */
      case 230: return(240);		/* d stroke = eth */
      case 232: return(163);		/* L with stroke */
      case 248: return(179);		/* l with stroke */
      default:  return(yl1l2[ynel1[c]]); /* Others, go thru Latin-1 */
    }
}

CHAR					/* CP437 to Latin-2 */
#ifdef CK_ANSIC
x43l2(CHAR c)
#else
x43l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl43l2 */
    return(yl1l2[y43l1[c]]);
}

CHAR					/* CP850 to Latin-2 */
#ifdef CK_ANSIC
x85l2(CHAR c)
#else
x85l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl85l2 */
    return(yl1l2[y85l1[c]]);
}

CHAR					/* Apple to Latin-2 */
#ifdef CK_ANSIC
xaql2(CHAR c)
#else
xaql2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlaql2 */
    switch (c) {
      case 249: return(162);		/* Breve accent */
      case 250: return(255);		/* Dot accent */
      case 253: return(189);		/* Double acute */
      default: return(yl1l2[yaql1[c]]);
    }
}

CHAR					/* DGI to Latin-2 */
#ifdef CK_ANSIC
xdgl2(CHAR c)
#else
xdgl2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xldgl2 */
    return(yl1l2[ydgl1[c]]);		/* (for now) */
}

CHAR					/* Short KOI to Latin-2 */
#ifdef CK_ANSIC
xskl2(CHAR c)
#else
xskl2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlskl2 */
    return(islower(c) ? toupper(c) : c);
}

CHAR					/* Latin-2 to German */
#ifdef CK_ANSIC
xl2ge(CHAR c)
#else
xl2ge(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2ge */
    switch(c) {
      case 167: return(64);		/* Paragraph sign */
      case 196: return(91);		/* A-diaeresis */
      case 214: return(92);		/* O-diaeresis */
      case 220: return(93);		/* U-diaeresis */
      case 223: return(126);		/* double-s */
      case 228: return(123);		/* a-diaeresis */
      case 246: return(124);		/* o-diaeresis */
      case 252: return(125);		/* u-diaeresis */
      default:  return(yl2as[c]);	/* Others */
    }
}

CHAR					/* German to Latin-2 */
#ifdef CK_ANSIC
xgel2(CHAR c)
#else
xgel2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlgel2 */
    if (c & 0x80)
      return(UNK);
    switch(c) {
      case 64:  return(167);		/* Paragraph sign */
      case 91:  return(196);		/* A-diaeresis */
      case 92:  return(214);		/* O-diaeresis */
      case 93:  return(220);		/* U-diaeresis */
      case 123: return(228);		/* a-diaeresis */
      case 126: return(223);		/* double-s */
      case 124: return(246);		/* o-diaeresis */
      case 125: return(252);		/* u-diaeresis */
      default:  return(c);		/* Others */
    }
}

CHAR					/* Latin-2 to Hungarian */
#ifdef CK_ANSIC
xl2hu(CHAR c)
#else
xl2hu(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xll2hu */
    switch(c) {
      case 164: return(36);		/* Currency symbol */
      case 189: return(126);		/* Double acute accent */
      case 193: return(64);		/* A-acute */
      case 201: return(91);		/* E-acute */
      case 214: return(92);		/* O-diaeresis */
      case 220: return(93);		/* U-diaeresis */
      case 225: return(96);		/* a-acute */
      case 233: return(123);		/* e-acute */
      case 246: return(124);		/* o-diaeresis */
      case 252: return(125);		/* u-diaeresis */
      default:  return(yl2as[c]);	/* Others */
    }
}

CHAR					/* Hungarian to Latin-2 */
#ifdef CK_ANSIC
xhul2(CHAR c)
#else
xhul2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlhul2 */
    if (c & 0x80)
      return(UNK);
    switch(c) {
      case 36:  return(164);		/* Currency symbol */
      case 64:  return(193);		/* A-acute */
      case 91:  return(201);		/* E-acute */
      case 92:  return(214);		/* O-diaeresis */
      case 93:  return(220);		/* U-diaeresis */
      case 96:  return(225);		/* a-acute */
      case 123: return(233);		/* e-acute */
      case 124: return(246);		/* o-diaeresis */
      case 125: return(252);		/* u-diaeresis */
      case 126: return(189);		/* Double acute accent */
      default:  return(c);		/* Others */
    }
}

CHAR
#ifdef CK_ANSIC
xr8l2(CHAR c)
#else
xr8l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xr8l2 */ /* Hewlett Packard Roman8 to Latin-2 */
    switch (c) {
      case 235: return(169);		/* S caron */
      case 236: return(185);		/* s caron */
      default:  return(yl1l2[yr8l1[c]]);
    }
}

CHAR
#ifdef CK_ANSIC
xl2r8(CHAR c)
#else
xl2r8(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2r8 */ /* Latin-2 to Hewlett Packard Roman8 Character Set */
    switch (c) {
      case 169: return(235);		/* S caron */
      case 185: return(236);		/* s caron */
      default:  return(yr8l1[yl1l2[c]]);
    }
}

#else /* NOLATIN2 */

#define xl1mz NULL
#define xmzl1 NULL
#define xl2mz NULL
#define xmzl2 NULL
#define xl9mz NULL
#define xmzl9 NULL
#define xmzas NULL

#define xl11250 NULL
#define xl21250 NULL
#define xl91250 NULL

#define x1250as NULL
#define x1250l1 NULL
#define x1250l2 NULL
#define x1250l9 NULL

#define xl2l1 NULL
#define xl2w1 NULL
#define xl1l2 NULL
#define xw1l2 NULL
#define xl2as NULL
#define xl252 NULL
#define x52l2 NULL
#define x52as NULL
#define x52l1 NULL
#define xl152 NULL
#define xl2ne NULL
#define xl243 NULL
#define xl285 NULL
#define xl2aq NULL
#define xl2dg NULL
#define xl2sk NULL
#define xnel2 NULL
#define x43l2 NULL
#define x85l2 NULL
#define xaql2 NULL
#define xdgl2 NULL
#define xskl2 NULL
#define xl2ge NULL
#define xgel2 NULL
#define xl2hu NULL
#define xhul2 NULL
#define xl2r8 NULL
#define xr8l2 NULL
#endif /* LATIN2 */

/* This one can also be used for ELOT 927, Hebrew 7, etc */

CHAR
#ifdef CK_ANSIC
xassk(CHAR c)
#else
xassk(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xassk */				/* ASCII to Short KOI */
    if (c & 0x80)
      return(UNK);
    return((c > 95) ? (c - 32) : c);	/* Fold columns 6-7 to 4-5 */
}

#ifdef CYRILLIC
/* Translation functions for Cyrillic character sets */

CHAR					/* Latin/Cyrillic to CP866 */
#ifdef CK_ANSIC
xlcac(CHAR c)
#else
xlcac(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlcac */				/* PC Code Page 866 */
    return(ylcac[c]);
}

CHAR					/* Latin/Cyrillic to */
#ifdef CK_ANSIC
xlc55(CHAR c)
#else
xlc55(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlc55 */				/* PC Code Page 855 */
    return(ylc55[c]);
}

CHAR					/* Latin/Cyrillic to */
#ifdef CK_ANSIC
xlc1251(CHAR c)
#else
xlc1251(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlc1251 */				/* PC Code Page 1251 */
    return(ylc1251[c]);
}

CHAR					/* Latin/Cyrillic to... */
#ifdef CK_ANSIC
xlcbu(CHAR c)
#else
xlcbu(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlcbu */				/* Bulgarian PC Code Page */
    return(ylcbu[c]);
}

CHAR					/* Latin/Cyrillic to Old KOI-8 */
#ifdef CK_ANSIC
xlck8(CHAR c)
#else
xlck8(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlck8 */
    return(ylck8[c]);
}

CHAR					/* Latin/Cyrillic to KOI8-R */
#ifdef CK_ANSIC
xlckr(CHAR c)
#else
xlckr(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlckr */
    switch(c) {
      case 0xa1: return(0xb3);		/* Io */
      case 0xf1: return(0xa3);		/* io */
      default:
	if (c > 0x7f && c < 0xc0)
	  return(UNK);
	return(ylck8[c]);
    }
}

CHAR					/* Latin/Cyrillic to  KOI8-U */
#ifdef CK_ANSIC
xlcku(CHAR c)
#else
xlcku(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlcku */
    switch(c) {
      case 0xa1: return(0xb3);		/* Io */
      case 0xf1: return(0xa3);		/* io */
      case 0xf4: return(0xa4);		/* Ukrainian ie */
      case 0xf6: return(0xa6);		/* Ukrainian i */
      case 0xf7: return(0xa7);		/* Ukrainian yi */
      case 0xf3: return(0xad);		/* Ukrainian ghe with upturn */
      case 0xa4: return(0xb4);		/* Ukrainian Ie */
      case 0xa6: return(0xb6);		/* Ukrainian I */
      case 0xa7: return(0xb7);		/* Ukrainian Yi */
      case 0xa3: return(0xbd);		/* Ukrainian Ghe with upturn */
      default:
	if (c > 0x7f && c < 0xc0)
	  return(UNK);
	return(ylck8[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xlcsk(CHAR c)
#else
xlcsk(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlcsk */				/* Latin/Cyrillic to Short KOI */
    return(ylcsk[c]);
}

CHAR
#ifdef CK_ANSIC
xlcas(CHAR c)
#else
xlcas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlcas */				/* Latin/Cyrillic to ASCII */
    if (langs[language].id == L_RUSSIAN)
      return(ylcsk[c]);
    else
      return((c > 127) ? '?' : c);
}

CHAR					/* CP866 */
#ifdef CK_ANSIC
xaclc(CHAR c)
#else
xaclc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xaclc */				/* to Latin/Cyrillic */
    return(yaclc[c]);
}

CHAR					/* CP855 */
#ifdef CK_ANSIC
x55lc(CHAR c)
#else
x55lc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x55lc */				/* to Latin/Cyrillic */
    return(y55lc[c]);
}

CHAR					/* Bulgarian PC Code Page ... */
#ifdef CK_ANSIC
xbulc(CHAR c)
#else
xbulc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xbulc */				/* to Latin/Cyrillic */
    return(ybulc[c]);
}

CHAR					/* CP1251 */
#ifdef CK_ANSIC
x1251lc(CHAR c)
#else
x1251lc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x1251lc */				/* to Latin/Cyrillic */
    return(y1251lc[c]);
}

CHAR					/* Old KOI-8 to Latin/Cyrillic */
#ifdef CK_ANSIC
xk8lc(CHAR c)
#else
xk8lc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xk8lc */
    return(yk8lc[c]);
}

CHAR					/* KOI8-R to Latin/Cyrillic */
#ifdef CK_ANSIC
xkrlc(CHAR c)
#else
xkrlc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xkrlc */
    if (c == 0xb3) return(0xa1);
    else if (c == 0xa3) return(0xf1);
    else if (c > 0x7f && c < 0xc0)
      return(UNK);
    return(yk8lc[c]);
}

CHAR					/* KOI8-U to Latin/Cyrillic */
#ifdef CK_ANSIC
xkulc(CHAR c)
#else
xkulc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xkulc */
    switch (c) {
      case 0xb3: return(0xa1);		/* Io */
      case 0xa3: return(0xf1);		/* io */
      case 0xa4: return(0xf4);		/* Ukrainian ie */
      case 0xa6: return(0xf6);		/* Ukrainian i */
      case 0xa7: return(0xf7);		/* Ukrainian yi */
      case 0xad: return(0xf3);		/* Ukrainian ghe with upturn */
      case 0xb4: return(0xa4);		/* Ukrainian Ie */
      case 0xb6: return(0xa6);		/* Ukrainian I */
      case 0xb7: return(0xa7);		/* Ukrainian Yi */
      case 0xbd: return(0xa3);		/* Ukrainian Ghe with upturn */
      /* Note substitution of Gje for Ghe-Upturn, which is not in 8859-5 */
      default:
	if (c > 0x7f && c < 0xc0)
	  return(UNK);
	return(yk8lc[c]);
    }
}

CHAR
#ifdef CK_ANSIC
xskcy(CHAR c)
#else
xskcy(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xskcy */			/* Short KOI to Latin/Cyrillic */
    return(yskcy[c & 0x7f]);
}

CHAR
#ifdef CK_ANSIC
xascy(CHAR c)
#else
xascy(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xascy */			/* ASCII to Latin/Cyrillic */
    if (langs[language].id == L_RUSSIAN) { /* If LANGUAGE == RUSSIAN  */
	return(yskcy[c & 0x7f]);	/* treat ASCII as Short KOI */
    } else return((c > 127) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
xacas(CHAR c)
#else
xacas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xacas */			/* CP866 to ASCII */
    if (langs[language].id == L_RUSSIAN) {
	c = yaclc[c];			/* First to Latin/Cyrillic */
	return(ylcsk[c]);		/* Then to Short KOI */
    } else return((c > 127) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
x55as(CHAR c)
#else
x55as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x55as */			/* CP855 to ASCII */
    if (langs[language].id == L_RUSSIAN) {
	c = y55lc[c];			/* First to Latin/Cyrillic */
	return(ylcsk[c]);		/* Then to Short KOI */
    } else return((c > 127) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
x1251as(CHAR c)
#else
x1251as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x1251as */			/* CP81251 to ASCII */
    if (langs[language].id == L_RUSSIAN) {
	c = y1251lc[c];			/* First to Latin/Cyrillic */
	return(ylcsk[c]);		/* Then to Short KOI */
    } else return((c > 127) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
xskas(CHAR c)
#else
xskas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xskas */				/* Short KOI to ASCII */
    return((c > 95) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
xk8as(CHAR c)
#else
xk8as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xk8as */				/* Old KOI-8 Cyrillic to ASCII */
    if (langs[language].id == L_RUSSIAN) {
	c = yk8lc[c];			/* First to Latin/Cyrillic */
	return(ylcsk[c]);		/* Then to Short KOI */
    } else return((c > 127) ? '?' : c);
}

CHAR
#ifdef CK_ANSIC
xl1sk(CHAR c)
#else
xl1sk(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1sk */				/* Latin-1 to Short KOI */
    c = zl1as(c);			/* Convert to ASCII */
    return(c = xassk(c));		/* Convert ASCII to Short KOI */
}

CHAR
#ifdef CK_ANSIC
xw1lc(CHAR c)
#else
xw1lc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1lc */				/* CP1252 to Latin/Cyrillic */
    return((c < 160) ? xw1as(c) : zl1as(c));
}

CHAR
#ifdef CK_ANSIC
xaslc(CHAR c)
#else
xaslc(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xaslc */			/* ASCII to Latin/Cyrillic */
    if (langs[language].id == L_RUSSIAN)
      return(yskcy[c & 0x7f]);
    else return(c & 0x7f);
}

CHAR
#ifdef CK_ANSIC
xasac(CHAR c)
#else
xasac(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xasac */			/* ASCII to CP866 */
    if (c & 0x80)
      return(UNK);
    if (langs[language].id == L_RUSSIAN) { /* Use Short KOI */
	c = xskcy(c);			/* Translate to Latin/Cyrillic */
	return(ylcac[c]);		/* Then to CP866 */
    } else return(c & 0x7f);
}

CHAR
#ifdef CK_ANSIC
xas55(CHAR c)
#else
xas55(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xas55 */			/* ASCII to CP855 */
    if (c & 0x80)
      return(UNK);
    if (langs[language].id == L_RUSSIAN) { /* Use Short KOI */
	c = xskcy(c);			/* Translate to Latin/Cyrillic */
	return(ylc55[c]);		/* Then to CP866 */
    } else return(c & 0x7f);
}

CHAR
#ifdef CK_ANSIC
xas1251(CHAR c)
#else
xas1251(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xas1251 */			/* ASCII to CP81251 */
    if (c & 0x80)
      return(UNK);
    if (langs[language].id == L_RUSSIAN) { /* Use Short KOI */
	c = xskcy(c);			/* Translate to Latin/Cyrillic */
	return(ylc1251[c]);		/* Then to CP866 */
    } else return(c & 0x7f);
}

CHAR
#ifdef CK_ANSIC
xask8(CHAR c)
#else
xask8(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xask8 */			/* ASCII to KOI-8 */
    if (c & 0x80)
      return(UNK);
    if (langs[language].id == L_RUSSIAN) { /* Use Short KOI */
	c = xskcy(c);			/* Translate to Latin/Cyrillic */
	return(ylck8[c]);		/* Then to KOI-8 */
    } else return(c & 0x7f);
}
#else /* No Cyrillic */
#define xacas NULL
#define x55as NULL
#define x1251as NULL
#define xaclc NULL
#define x55lc NULL
#define x1251lc NULL
#define xasac NULL
#define xas55 NULL
#define xas1251 NULL
#define xascy NULL
#define xask8 NULL
#define xaslc NULL
#define xassk NULL
#define xk8as NULL
#define xk8lc NULL
#define xkrlc NULL
#define xkulc NULL
#define xl1sk NULL
#define xw1lc NULL
#define xlcac NULL
#define xlc55 NULL
#define xlc1251 NULL
#define xlcas NULL
#define xlck8 NULL
#define xlckr NULL
#define xlcku NULL
#define xlch7 NULL
#define xlcsk NULL
#define xskas NULL
#define xskcy NULL
#define xbulc NULL
#define xlcbu NULL
#endif /* CYRILLIC */

/* Translation functions for Hebrew character sets */

#ifdef HEBREW

CHAR
#ifdef CK_ANSIC
xash7(CHAR c)
#else
xash7(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xash7 */			/* ASCII to Hebrew-7 */
    if (c & 0x80)
      return(UNK);
    if (c == 96) return('?');
    if (c > 96 && c < 123) return(c - 32);
    else return(c);
}

CHAR
#ifdef CK_ANSIC
xl1h7(CHAR c)
#else
xl1h7(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1h7 */			/* Latin-1 to Hebrew-7 */
    return(xash7(xl1as(c)));
}

CHAR
#ifdef CK_ANSIC
xl1lh(CHAR c)
#else
xl1lh(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1lh */				/* Latin-1 to Latin/Hebrew */
    switch(c) {
      case 170: return('a');		/* Feminine ordinal */
      case 186: return('o');		/* Masculine ordinal */
      case 215: return(170);		/* Times */
      case 247: return(186);		/* Divide */
      default:  return( (c > 190) ? xl1as(c) : c );
    }
}

CHAR
#ifdef CK_ANSIC
xw1lh(CHAR c)
#else
xw1lh(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1lh */				/* CP1252 to Latin/Hebrew */
    switch(c) {
      case 170: return('a');		/* Feminine ordinal */
      case 186: return('o');		/* Masculine ordinal */
      case 215: return(170);		/* Times */
      case 247: return(186);		/* Divide */
      default:
	if (c < 160)
	  return(xw1as(c));
	else
	  return((c > 190) ? xl1as(c) : c);
    }
}

#ifdef LATIN2
CHAR
#ifdef CK_ANSIC
xl2h7(CHAR c)
#else
xl2h7(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2h7 */				/* Latin-2 to Hebrew-7 */
    return(xash7(xl2as(c)));
}
#else
#define xl2h7 NULL
#endif /* LATIN2 */

#ifndef NOCYRIL
CHAR
#ifdef CK_ANSIC
xlch7(CHAR c)
#else
xlch7(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlch7 */				/* Latin/Cyrillic to Hebrew-7 */
    return(xash7(xlcas(c)));
}
#endif /* NOCYRIL */

CHAR
#ifdef CK_ANSIC
xlhas(CHAR c)
#else
xlhas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlhas */			/* Latin/Hebrew to ASCII */
    return( (c > 127) ? '?' : c );
}

CHAR
#ifdef CK_ANSIC
xlhl1(CHAR c)
#else
xlhl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlhl1 */			/* Latin/Hebrew to Latin-1 */
    switch (c) {
      case 170: return(215);
      case 186: return(247);
      default: return( (c > 190) ? '?' : c );
    }
}

CHAR
#ifdef CK_ANSIC
xlhw1(CHAR c)
#else
xlhw1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlhw1 */			/* Latin/Hebrew to CP1252 */
    if (c > 127 && c < 160)
      return('?');
    switch (c) {
      case 170: return(215);
      case 186: return(247);
      default: return( (c > 190) ? '?' : c );
    }
}

CHAR
#ifdef CK_ANSIC
xlh62(CHAR c)
#else
xlh62(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlh62 */			/* Latin/Hebrew to CP862 */
    return(ylh62[c]);
}

CHAR
#ifdef CK_ANSIC
xl162(CHAR c)
#else
xl162(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl162 */			/* Latin-1 to CP862 */
    return(xlh62(xl1lh(c)));	/* Via Latin/Hebrew */
}

CHAR
#ifdef CK_ANSIC
xlhh7(CHAR c)
#else
xlhh7(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlhh7 */			/* Latin/Hebrew to Hebrew-7 */
    return(ylhh7[c]);
}

CHAR
#ifdef CK_ANSIC
xh7as(CHAR c)
#else
xh7as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xh7as */			/* Hebrew-7 to ASCII */
    if (c & 0x80)
      return(UNK);
    return( (c > 95 && c < 123) ? '?' : c );
}

CHAR
#ifdef CK_ANSIC
x62lh(CHAR c)
#else
x62lh(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x62lh */			/* CP862 to Latin/Hebrew */
    return(y62lh[c]);
}

CHAR
#ifdef CK_ANSIC
x62as(CHAR c)
#else
x62as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x62as */			/* CP862 to ASCII */
    return( xlhas(x62lh(c)) );
}

CHAR
#ifdef CK_ANSIC
x62l1(CHAR c)
#else
x62l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x62l1 */			/* CP862 to Latin-1 */
    return( xlhl1(x62lh(c)) );
}

CHAR
#ifdef CK_ANSIC
xh7lh(CHAR c)
#else
xh7lh(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xh7lh */			/* Hebrew-7 to Latin/Hebrew */
    if (c & 0x80)
      return(UNK);
    return(yh7lh[c]);
}

#else /* No Hebrew */

#define xash7 NULL
#define xl1h7 NULL
#define xl2h7 NULL
#define xlch7 NULL
#define xl1lh NULL
#define xw1lh NULL
#define xlhas NULL
#define xlhl1 NULL
#define xlhw1 NULL
#define xl162 NULL
#define xlhh7 NULL
#define xlh62 NULL
#define xh7as NULL
#define x62as NULL
#define x62l1 NULL
#define xh7lh NULL
#define x62lh NULL

#endif /* HEBREW */

/* Translation functions for Greek character sets */

#ifdef GREEK

CHAR
#ifdef CK_ANSIC
xaseg(CHAR c)
#else
xaseg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xaseg */			/* ASCII to ELOT 927 */
    if (c & 0x80)
      return(UNK);
    if (c > 96 && c < 123) return(c - 32);
    else return(c);
}

CHAR
#ifdef CK_ANSIC
xl1eg(CHAR c)
#else
xl1eg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1ge */			/* Latin-1 to ELOT 927 */
    return(xaseg(xl1as(c)));
}

CHAR
#ifdef CK_ANSIC
xl2lg(CHAR c)
#else
xl2lg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2lg */			/* Latin-1 to Latin/Greek */
    if (c < 160) return(c);
    else if (c == 160 || c == 168 || c == 173 || c == 174)
      return(c);
    else return('?');
}

CHAR
#ifdef CK_ANSIC
xl1lg(CHAR c)
#else
xl1lg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl1lg */			/* Latin-1 to Latin/Greek */
    if (c < 160) return(c);
    switch(c) {
      case 160:				/* Themselves */
      case 164:
      case 166:
      case 167:
      case 168:
      case 169:
      case 171:
      case 172:
      case 173:
      case 176:
      case 177:
      case 178:
      case 179:
      case 180:
      case 187:
      case 189:
	return(c);
      case 181:				/* Lowercase mu */
	return(236);
      default:
	return(UNK);
    }
}

CHAR
#ifdef CK_ANSIC
xw1lg(CHAR c)
#else
xw1lg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1lg */				/* CP1252 to Latin/Greek */
    return((c < 160) ? xw1as(c) : xl1lg(c));
}


#ifdef LATIN2
CHAR
#ifdef CK_ANSIC
xl2eg(CHAR c)
#else
xl2eg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2eg */				/* Latin-2 to ELOT 927 */
    return(xaseg(xl2as(c)));
}
#else
#define xl2eg NULL
#endif /* LATIN2 */

#ifndef NOCYRIL
CHAR
#ifdef CK_ANSIC
xlceg(CHAR c)
#else
xlceg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlceg */			/* Latin/Cyrillic to ELOT 927 */
    return(xaseg(xlcas(c)));
}
#endif /* NOCYRIL */

CHAR
#ifdef CK_ANSIC
xlgas(CHAR c)
#else
xlgas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlgas */			/* Latin/Greek to ASCII */
    return( (c > 127) ? '?' : c );
}

CHAR
#ifdef CK_ANSIC
xlgl1(CHAR c)
#else
xlgl1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlgl1 */			/* Latin/Greek to Latin-1 */
    if (c == 236)
      return(181);
    else
      return(xl1lg(c));
}

CHAR
#ifdef CK_ANSIC
xlgw1(CHAR c)
#else
xlgw1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlgw1 */			/* Latin/Greek to Latin-1 */
    if (c > 127 && c < 160)
      return('?');
    return(xlgl1(c));
}

CHAR
#ifdef CK_ANSIC
xlg69(CHAR c)
#else
xlg69(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlg69 */			/* Latin/Greek to CP869 */
    return(ylg69[c]);
}

CHAR
#ifdef CK_ANSIC
xl169(CHAR c)
#else
xl169(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl169 */			/* Latin-1 to CP869 */
    return(xlg69(xl1lg(c)));	/* Via Latin/Greek */
}

CHAR
#ifdef CK_ANSIC
xlgeg(CHAR c)
#else
xlgeg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xlgeg */			/* Latin/Greek to ELOT 927 */
    return(ylgeg[c]);
}

CHAR
#ifdef CK_ANSIC
xegas(CHAR c)
#else
xegas(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xegas */			/* ELOT 927 to ASCII */
    if (c & 0x80)
      return(UNK);
    return( (c > 96 && c < 123) ? '?' : c );
}

CHAR
#ifdef CK_ANSIC
x69lg(CHAR c)
#else
x69lg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x69lg */			/* CP869 to Latin/Greek */
    return(y69lg[c]);
}

CHAR
#ifdef CK_ANSIC
x69as(CHAR c)
#else
x69as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x69as */			/* CP869 to ASCII */
    return( xlgas(x69lg(c)) );
}

CHAR
#ifdef CK_ANSIC
x69l1(CHAR c)
#else
x69l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x69l1 */			/* CP869 to Latin-1 */
    return( xlgl1(x69lg(c)) );
}

CHAR
#ifdef CK_ANSIC
xeglg(CHAR c)
#else
xeglg(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xeglg */			/* ELOT 927 to Latin/Greek */
    return(yeglg[c]);
}

#else /* No Greek */

#define x69as NULL
#define x69l1 NULL
#define x69lg NULL
#define xaseg NULL
#define xegas NULL
#define xeglg NULL
#define xl169 NULL
#define xl1eg NULL
#define xl1lg NULL
#define xw1lg NULL
#define xl2ge NULL
#define xl2lg NULL
#define xlcge NULL
#define xlg69 NULL
#define xlgas NULL
#define xlgeg NULL
#define xlgge NULL
#define xlgl1 NULL
#define xlgw1 NULL

#endif /* GREEK */


/* Translation functions for Japanese Kanji character sets */

#ifdef KANJI
/*
  Translate Kanji Transfer Character Set (EUC) to local file character set,
  contributed by Dr. Hirofumi Fujii, Japan High Energy Research Laboratory
  (KEK), Tokyo, Japan.

  a is a byte to be translated, which may be a single-byte character,
  the Katakana prefix, the first byte of a two-byte Kanji character, or the
  second byte of 2-byte Kanji character.

  fn is the output function.

  Returns 0 on success, -1 on failure.
*/

_PROTOTYP(static int jpnxas, (int, int[]) );
_PROTOTYP(static int jpnxkt, (int, int[]) );
_PROTOTYP(static int jpnxkn, (int[], int[]) );

static int jpncnt;			/* Byte count for Japanese */
static int jpnlst;			/* Last status (for JIS7) */

static int
jpnxas(a, obuf) int a; int obuf[]; { /* Translate ASCII to local file code */
    int r;

    r = 0;
    if (fcharset == FC_JIS7) {
	switch (jpnlst) {
	  case 1:
	    obuf[0] = 0x0f;
	    obuf[1] = a;
	    r = 2;
	    break;
	  case 2:
	    obuf[0] = 0x1b;
	    obuf[1] = 0x28;
	    obuf[2] = 0x4a;
	    obuf[3] = a;
	    r = 4;
	    break;
	  default:
	    obuf[0] = a;
	    r = 1;
	    break;
	}
    } else {
	obuf[0] = a;
	r = 1;
    }
    return(r);
}

static int
jpnxkt(a, obuf) int a; int obuf[]; {
/* Translate JIS X 201 Katakana to local code */

    int r;

    r = 0;
    if (fcharset == FC_JIS7) {
	switch (jpnlst) {
	  case 2:				/* from Kanji */
	    obuf[r++] = 0x1b;
	    obuf[r++] = 0x28;
	    obuf[r++] = 0x4a;
	  case 0:				/* from Roman */
	    obuf[r++] = 0x0e;
	  default:
	    obuf[r++] = (a & 0x7f);
	  break;
	}
    } else {
	if (fcharset == FC_JEUC)
	  obuf[r++] = 0x8e;
	obuf[r++] = (a | 0x80);
    }
    return(r);
}

static int
jpnxkn(ibuf, obuf) int ibuf[], obuf[]; {
    /* Translate JIS X 0208 Kanji to local code */
    int c1, c2;
    int r;

    c1 = ibuf[0] & 0x7f;
    c2 = ibuf[1] & 0x7f;

    if (fcharset == FC_SHJIS) {
	if (c1 & 1)
	  c2 += 0x1f;
	else
	  c2 += 0x7d;

        if (c2 >= 0x7f) c2++;

        c1 = ((c1 - 0x21) >> 1) + 0x81;
        if (c1 > 0x9f) c1 += 0x40;

        obuf[0] = c1;
        obuf[1] = c2;
        r = 2;
    } else if (fcharset == FC_JIS7) {
        r = 0;
        switch (jpnlst) {
  	  case 1:
	    obuf[r++] = 0x0f; /* From Katakana */
  	  case 0:
	    obuf[r++] = 0x1b;
	    obuf[r++] = 0x24;
	    obuf[r++] = 0x42;
	  default:
	    obuf[r++] = c1;
	    obuf[r++] = c2;
	    break;
	}
    } else {
        obuf[0] = (c1 | 0x80);
        obuf[1] = (c2 | 0x80);
        r = 2;
    }
    return(r);
}

int
xkanjf() {
/* Initialize parameters for xkanji */
/* This function should be called when F/X-packet is received */
    jpncnt = jpnlst = 0;
    return(0);
}

int
#ifdef CK_ANSIC
xkanjz(int (*fn)(char))
#else
xkanjz(fn) int (*fn)();
#endif /* CK_ANSIC */
{ /* xkanjz */
/*
  Terminate xkanji
  This function must be called when Z-packet is received
  (before closing the file).
*/
    static int obuf[6];
    int r, i, c;

    if (fcharset == FC_JIS7) {
        c = 'A';			/* Dummy Roman character */
        r = jpnxas(c, obuf) - 1;	/* -1 removes Dummy character */
        if (r > 0) {
	    for (i = 0; i < r; i++)
	      if (((*fn)((char) obuf[i])) < 0)
		return(-1);
	}
    }
    return(0);
}

int
#ifdef CK_ANSIC
xkanji(int a, int (*fn)(char))
#else
xkanji(a, fn) int a; int (*fn)();
#endif /* CK_ANSIC */
{ /* xkanji */
    static int xbuf[2];
    static int obuf[8];

    int i, r;
    int c7;
    int state=0;

    r = 0;
    if (jpncnt == 0) {
	/* 1st byte */
	if ((a & 0x80) == 0) {
	    /* 8th bit is 0, i.e., single-byte code */
	    r = jpnxas(a, obuf);
	    state = 0;
	} else {
	    /* 8th bit is 1, check the range */
	    c7 = a & 0x7f;
	    if (((c7 > 0x20) && (c7 < 0x7f)) || (c7 == 0x0e)) {
	        /* double byte code */
	        xbuf[jpncnt++] = a;
	    } else {
	        /* single byte code */
	        r = jpnxas(a, obuf);
	        state = 0;
	    }
	}
    } else {
	/* not the 1st byte */
	xbuf[jpncnt++] = a;
	if (xbuf[0] == 0x8e) {
	    r = jpnxkt(xbuf[1], obuf);
	    state = 1;
	} else {
	    r = jpnxkn(xbuf, obuf);
	    state = 2;
	}
    }
    if (r > 0) {
        for (i = 0; i < r; i++ )
	  if (((*fn)((char) obuf[i])) < 0)
	    return(-1);
        jpnlst = state;
        jpncnt = 0;
    }
    return(0);
}

/*
  Function for translating from Japanese file character set
  to Japanese EUC transfer character set.
  Returns a pointer to a string containing 0, 1, or 2 bytes.
*/

/* zkanji */
static int jpnstz;			/* status for JIS-7 */
static int jpnpnd;			/* number of pending bytes */
static int jpnpnt;			/* pending buffer index */
static int jpnpbf[8];			/* pending buffer */

/* There is some duplication here between the old and new JIS-7 parsers */
/* to be cleaned up later... */

VOID
j7init() {				/* Initialize JIS-7 parser */
    jpnstz = 0;
    jpnpnd = 0;
    jpnpnt = 0;
}

int
getj7() {				/* Reads JIS-7 returns next EUC byte */
    int x;

    if (jpnpnd > 0) {			/* If something is pending */
	x = (unsigned) jpnpbf[jpnpnt++]; /* Get it */
	jpnpnd--;
	if (jpnpnd < 0) jpnpnd = 0;
	return((unsigned)x);
    }
    jpnpnt = 0;

    if ((x = zminchar()) < 0) return(x);
    while (jpnpnd == 0) {		/* While something is pending... */
	if ((x > 0x20) && (x < 0x7f)) {	/* 7-bit graphic character */
	    switch (jpnstz) {
	      case 1:			 /* Katakana */
#ifdef COMMENT
		/* This can't be right... */
		jpnpbf[jpnpnd++] = 0x80; /* Insert flag (NOT SS2???) */
#else
		jpnpbf[jpnpnd++] = 0x8e; /* Insert SS2 */
#endif /* COMMENT */
		jpnpbf[jpnpnd++] = (x | 0x80); /* Insert Kana + 8th bit */
		break;
	      case 2:			/* Kanji */
		jpnpbf[jpnpnd++] = (x | 0x80); /* Get another byte */
		if ((x = zminchar()) < 0) return(x);
		jpnpbf[jpnpnd++] = (x | 0x80);
		break;
	      default:			/* ASCII / JIS Roman */
		jpnpbf[jpnpnd++] = x;
		break;
	    }
	} else if (x == 0x0e) {		/* ^N = SO */
	    jpnstz = 1;			/* Katakana */
	    if ((x = zminchar()) < 0) return(x);
	} else if (x == 0x0f) {		/* ^O = SI */
	    jpnstz = 0;			/* ASCII / JIS Roman */
	    if ((x = zminchar()) < 0) return(x);
	} else if (x == 0x1b) {		/* Escape */
	    jpnpbf[jpnpnd++] = x;	/* Save in buffer */
	    if ((x = zminchar()) < 0) return(x);
	    jpnpbf[jpnpnd++] = x;	/* Save in buffer */
	    if (x == '$') {		/* <ESC>$ */
		if ((x = zminchar()) < 0) return(x);
		jpnpbf[jpnpnd++] = x;
		if ((x == '@') || (x == 'B')) {	/* Kanji */
		    jpnstz = 2;
		    jpnpnt = jpnpnd = 0;
		    if ((x = zminchar()) < 0) return(x);
		}
	    } else if (x == '(') {	/* <ESC>( == 94-byte single-byte set */
		if ((x = zminchar()) < 0) return(x);
		jpnpbf[jpnpnd++] = x;
		if ((x == 'B') || (x == 'J')) {	/* ASCII or JIS Roman */
		    jpnstz = 0;		        /* Set state */
		    jpnpnt = jpnpnd = 0;        /* Reset pointers */
		    if ((x = zminchar()) < 0) return(x);
		}
	    } else if (x == 0x1b) {	/* <ESC><ESC> */
		jpnpnt = jpnpnd = 0;	/* Reset pointers, stay in state */
		if ((x = zminchar()) < 0) return(x);
	    }
	} else {			/* Not <ESC> - just save it */
	    jpnpbf[jpnpnd++] = x;
	}
    }
    jpnpnt = 0;
    x = (unsigned)jpnpbf[jpnpnt++];
    jpnpnd--;
    return((unsigned)x);
}

USHORT
#ifdef CK_ANSIC
eu_to_sj(USHORT eu)			/* EUC-JP to Shift-JIS */
#else
eu_to_sj(eu) USHORT eu;
#endif /* CK_ANSIC */
{
    int c1, c2;
    union ck_short jcode,scode;

    jcode.x_short = eu;
    c1 = (jcode.x_char[byteorder] & 0x7f);
    c2 = (jcode.x_char[1-byteorder] & 0x7f);

    if (c1 & 1)
      c2 += 0x1f;
    else
      c2 += 0x7d;
    if (c2 >= 0x7f)
      c2++;
    c1 = ((c1 - 0x21) >> 1) + 0x81;
    if (c1 > 0x9f)
      c1 += 0x40;

    scode.x_char[byteorder] = c1;
    scode.x_char[1-byteorder] = c2;
    return(scode.x_short);
}


USHORT
#ifdef CK_ANSIC
sj_to_eu(USHORT sj)			/* Shift-JIS to EUC-JP */
#else
sj_to_eu(sj) USHORT sj;
#endif /* CK_ANSIC */
{
    union ck_short jcode, scode;
    int c0, c1;

    scode.x_short = sj;
    c0 = scode.x_char[byteorder];	/* Left (hi order) byte */
    c1 = scode.x_char[1-byteorder];	/* Right (lo order) byte */

    if (((c0 >= 0x81) && (c0 <= 0x9f)) || /* High order byte has 8th bit set */
        ((c0 >= 0xe0) && (c0 <= 0xfc))) { /* Kanji */
	if (c0 <= 0x9f)			  /* Two bytes in */
	  c0 -= 0x71;			  /* Do the shifting... */
	else
	  c0 -= 0xb1;
	c0 = c0 * 2 + 1;
	if (c1 > 0x7f) c1 -= 1;
	if (c1 >= 0x9e) {
	    c1 -= 0x7d;
	    c0 += 1;
	} else {
	    c1 -= 0x1f;
	}
	jcode.x_char[byteorder] = (c0 | 0x80); /* Two bytes out */
	jcode.x_char[1-byteorder] = (c1 | 0x80);

    } else if (c0 == 0) {		/* Single byte */
	if (c1 >= 0xa1 && c1 <= 0xdf) {	/* Katakana */
	    jcode.x_char[byteorder] = 0x8e; /* SS2 */
	    jcode.x_char[1-byteorder] = c1; /* Kana code */
	} else {			/* ASCII or C0 */
	    jcode.x_short = c1;
	}
    } else {				/* Something bad */
	debug(F001,"sj_to_eu bad sj","",sj);
	jcode.x_short = 0xffff;
    }
    return(jcode.x_short);
}

int
zkanjf() {				/* Initialize */
    jpnstz = jpnpnd = jpnpnt = 0;
    return(0);
}

int
zkanjz() {
    return(0);
}

int
#ifdef CK_ANSIC
zkanji(int (*fn)(void))
#else
zkanji(fn) int (*fn)();
#endif /* CK_ANSIC */
{ /* zkanji */
    /* Read Japanese local code and translate to Japanese EUC */
    int a;
    int sc[3];

    /* No pending characters */
    if (fcharset == FC_SHJIS) {		/* Translating from Shift-JIS */
        if (jpnpnd) {
            jpnpnd--;
            return(jpnpbf[jpnpnt++]);
        }
        a = (*fn)();
	jpnpnd = jpnpnt = 0;
	if (((a >= 0x81) && (a <= 0x9f)) ||
	    ((a >= 0xe0) && (a <= 0xfc))) { /* 2-byte Kanji code */
	    sc[0] = a;
	    if ((sc[1] = (*fn)()) < 0)	/* Get second byte */
	      return(sc[1]);
	    if (sc[0] <= 0x9f)
	      sc[0] -= 0x71;
	    else
	      sc[0] -= 0xb1;
	    sc[0] = sc[0] * 2 + 1;
	    if (sc[1] > 0x7f)
	      sc[1]--;
	    if (sc[1] >= 0x9e) {
	        sc[1] -= 0x7d;
	        sc[0]++;
	    } else {
	        sc[1] -= 0x1f;
	    }
	    a = (sc[0] | 0x80);
	    jpnpbf[0] = (sc[1] | 0x80);
	    jpnpnd = 1;
	    jpnpnt = 0;
	} else if ((a >= 0xa1) && (a <= 0xdf)) { /* Katakana */
	    jpnpbf[0] = a;
	    jpnpnd = 1;
	    jpnpnt = 0;
	    a = 0x8e;
	}
	return(a);
    } else if (fcharset == FC_JIS7 ) {	/* 7-bit JIS X 0208 */
        if (jpnpnd) {
            a = jpnpbf[jpnpnt++];
	    jpnpnd--;
            return(a);
        }
        jpnpnt = 0;
        if ((a = (*fn)()) < 0)
	  return(a);
        while (jpnpnd == 0) {
            if ((a > 0x20) && (a < 0x7f)) {
                switch (jpnstz) {
		  case 1:
		    jpnpbf[jpnpnd++] = 0x80; /* Katakana */
		    jpnpbf[jpnpnd++] = (a | 0x80);
		    break;
		  case 2:
		    jpnpbf[jpnpnd++] = (a | 0x80); /* Kanji */
		    if ((a = (*fn)()) < 0)
		      return(a);
		    jpnpbf[jpnpnd++] = (a | 0x80);
		    break;
		  default:
		    jpnpbf[jpnpnd++] = a; /* Single byte */
		    break;
                }
            } else if (a == 0x0e) {
                jpnstz = 1;
                if ((a = (*fn)()) < 0)
		  return(a);
            } else if (a == 0x0f) {
                jpnstz = 0;
                if ((a = (*fn)()) < 0)
		  return(a);
            } else if (a == 0x1b) {
                jpnpbf[jpnpnd++] = a;	/* Escape */
                if ((a = (*fn)()) < 0)
		  return(a);
                jpnpbf[jpnpnd++] = a;
                if (a == '$') {
                    if ((a = (*fn)()) < 0)
		      return(a);
                    jpnpbf[jpnpnd++] = a;
                    if ((a == '@') || (a == 'B')) {
                        jpnstz = 2;
			jpnpnt = jpnpnd = 0;
                        if ((a = (*fn)()) < 0)
			  return(a);
                    }
                } else if (a == '(') {
                    if ((a = (*fn)()) < 0)
		      return(a);
                    jpnpbf[jpnpnd++] = a;
                    if ((a == 'B') || (a == 'J')) {
                        jpnstz = 0;
			jpnpnt = jpnpnd = 0;
                        if ((a = (*fn)()) < 0)
			  return(a);
                    }
                } else if (a == 0x1b) {
                    jpnpnt = jpnpnd = 0;
                    if ((a = (*fn)()) < 0)
		      return(a);
                }
            } else {
                jpnpbf[jpnpnd++] = a;
            }
        }
        jpnpnt = 0;
        a = jpnpbf[jpnpnt++];
	jpnpnd--;
        return(a);
    } else {
        a = (*fn)();
        return(a);
    }
}
#endif /* KANJI */

/* Euro functions */

#ifdef LATIN2
CHAR
#ifdef CK_ANSIC
xl2l9(CHAR c)
#else
xl2l9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl2l9 */ 				/* Latin-2 to Latin-9... */
    switch (c) {
      case 169: return((CHAR)166);	/* S caron */
      case 185: return((CHAR)168);	/* s caron */
      case 174: return((CHAR)180);	/* Z caron */
      case 190: return((CHAR)184);	/* z caron */
      default:
	return(yl2l1[c]);
    }

}

_PROTOTYP( CHAR xl258, ( CHAR ) );
CHAR
#ifdef CK_ANSIC
xl258(CHAR c)
#else
xl258(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl258 */ 				/* Latin-2 to CP858... */
    return(c);
}
#else
#define xl2l9 NULL
#define xl258 NULL
#endif /* LATIN2 */

CHAR
#ifdef CK_ANSIC
zl9as(CHAR c)
#else
zl9as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* zl9as */ 				/* Latin-9 to US ASCII... */
    if (c < (CHAR)0x80) return(c);	/* Save a function call */
    switch (c) {
      case 0xa4: return(UNK);		/* Euro */
      case 0xa6: return('S');		/* S Caron */
      case 0xa8: return('s');		/* s Caron */
      case 0xb4: return('Z');		/* Z Caron */
      case 0xbc: return('O');		/* OE digraph */
      case 0xbd: return('o');		/* oe digraph */
      case 0xbe: return('Y');		/* Y diaeresis */
      default:   return(zl1as(c));	/* The rest is like Latin-1 */
    }
}

_PROTOTYP( CHAR xl9as, ( CHAR ) );
CHAR
#ifdef CK_ANSIC
xl9as(CHAR c)
#else
xl9as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl9as */ 				/* Latin-9 to US ASCII... */
    if (c < (CHAR)0x80) return(c);	/* Save a function call */
    switch (c) {
      case 0xa4: return(UNK);		/* Euro */
      case 0xa6: return('S');		/* S Caron */
      case 0xa8: return('s');		/* s Caron */
      case 0xb4: return('Z');		/* Z Caron */
      case 0xb8: return('z');		/* z Caron */
      case 0xbc: return('O');		/* OE digraph */
      case 0xbd: return('o');		/* oe digraph */
      case 0xbe: return('Y');		/* Y diaeresis */
      default:   return(xl1as(c));	/* The rest is like Latin-1 */
    }
}

CHAR					/* CP1252 to Latin-9 */
#ifdef CK_ANSIC
xw1l9(CHAR c)
#else
xw1l9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xw1l9 */
    switch (c) {
      case 0x80: return(0xa4);		/* Euro sign */
      case 0x8a: return(0xa6);		/* S caron */
      case 0x8c: return(0xbc);		/* OE */
      case 0x8e: return(0xb4);		/* Z caron */
      case 0x9a: return(0xa8);		/* s caron */
      case 0x9c: return(0xbd);		/* oe */
      case 0x9e: return(0xb8);		/* z caron */
      case 0x9f: return(0xbe);		/* Y diaeresis */
      case 0xa4:			/* Currency sign */
      case 0xa6:			/* Broken vertical bar */
      case 0xa8:			/* Diaeresis */
      case 0xb4:			/* Acute accent */
      case 0xb8:			/* Cedilla */
      case 0xbc:			/* 1/4 */
      case 0xbd:			/* 1/2 */
      case 0xbe: return('?');		/* 3/4 */
      default: return((c < 160) ? xw1as(c) : c);
    }
}

#ifdef LATIN2
CHAR
#ifdef CK_ANSIC
xl9l2(CHAR c)
#else
xl9l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl9l2 */ 				/* Latin-9 to Latin-2... */
    if (c < (CHAR)0x80) return(c);	/* Save a function call */
    switch (c) {
      case 0xa4: return(UNK);		/* Euro */
      case 0xa6: return((CHAR)0xa9);	/* S Caron */
      case 0xa8: return((CHAR)0xb9);	/* s Caron */
      case 0xb4: return((CHAR)0xae);	/* Z Caron */
      case 0xb8: return((CHAR)0xaf);	/* z Caron */
      case 0xbc: return('O');		/* OE digraph */
      case 0xbd: return('o');		/* oe digraph */
      case 0xbe: return('Y');		/* Y diaeresis */
      default:   return(xl1l2(c));	/* The rest is like Latin-1 */
    }
}
#else
#define xl9l2 NULL
#endif /* LATIN2 */

CHAR
#ifdef CK_ANSIC
xl958(CHAR c)
#else
xl958(c) CHAR c;
#endif /* CK_ANSIC */
{ /* xl958 */ 				/* Latin-9 to CP858... */
    if (c == 0xa4)			/* Euro Symbol */
      return((CHAR)0xd5);
    else if (c == 0x9e)			/* This was currency symbol */
      return((CHAR)0xcf);
    c = yl185[c];
    return(c);
}

CHAR
#ifdef CK_ANSIC
x58as(CHAR c)
#else
x58as(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x58as */ 				/* CP858 to US ASCII... */
    if (c == 0xd5)			/* Euro rather than dotless i */
      return(UNK);
    else
      return(x85as(c));			/* The rest is like CP850 */
}

CHAR
#ifdef CK_ANSIC
x58l1(CHAR c)
#else
x58l1(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x58l1 */ 				/* CP858 to Latin-1... */
    if (c == 0xd5)			/* Euro rather than dotless i */
      return((CHAR)0xa4);		/* Return currency symbol */
    else if (c == 0xcf)			/* This keeps it invertible */
      return((CHAR)0x9e);
    else
      return(x85l1(c));
}

#ifdef LATIN2
CHAR
#ifdef CK_ANSIC
x58l2(CHAR c)
#else
x58l2(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x58l2 */ 				/* CP858 to Latin-2... */
    if (c == 0xd5)			/* Euro rather than dotless i */
      return((CHAR)0xa4);		/* Return currency symbol */
    else if (c == 0xcf)			/* This keeps it invertible */
      return((CHAR)0x9e);		/* (if it ever was...) */
    else				/* Otherwise like CP850 */
      return(x85l2(c));
}
#else
#define x58l2 NULL
#endif /* LATIN2 */

CHAR
#ifdef CK_ANSIC
x58l9(CHAR c)
#else
x58l9(c) CHAR c;
#endif /* CK_ANSIC */
{ /* x58l9 */ 				/* CP-858 to Latin-9... */
    if (c == 0xd5)			/* Euro rather than dotless i */
      return((CHAR)0xa4);		/* Return currency symbol */
    else if (c == 0xcf)			/* This keeps it invertible */
      return((CHAR)0x9e);		/* (if it ever was...) */
    else				/* Otherwise like CP850 */
      return(x85l1(c));			/* to Latin-1 */
}

/* End Euro functions */


/*  TABLES OF TRANSLATION FUNCTIONS */

/*
  First, the table of translation functions for RECEIVING files.  That is,
  *from* the TRANSFER character set *to* the FILE character set, an array of
  pointers to functions.  The first index is the TRANSFER CHARACTER-SET
  number, the second index is the FILE CHARACTER-SET number.

  These arrays must be fully populated, even if (as is the case with Kanji
  character sets), all the entries are NULL.  Otherwise, subscript
  calculations will be wrong and we'll use the wrong functions.
*/

/* Pointers to byte-for-byte translation functions */

_PROTOTYP( CHAR (*rx), (CHAR) );
_PROTOTYP( CHAR (*sx), (CHAR) );

#ifdef UNICODE
_PROTOTYP( int (*xut), (USHORT) );	/* Translation function UCS to TCS */
_PROTOTYP( int (*xuf), (USHORT) );	/* Translation function UCS to FCS */
_PROTOTYP( USHORT (*xtu), (CHAR) );	/* Translation function TCS to UCS */
_PROTOTYP( USHORT (*xfu), (CHAR) );	/* Translation function FCS to UCS */
#endif /* UNICODE */

#ifdef CK_ANSIC
CHAR (*xlr[MAXTCSETS+1][MAXFCSETS+1])(CHAR) =
#else
CHAR (*xlr[MAXTCSETS+1][MAXFCSETS+1])() =
#endif /* CK_ANSIC */
{
    NULL,			/* 0,0 transparent to us ascii */
    NULL,			/* 0,1 transparent to uk ascii */
    NULL,			/* 0,2 transparent to dutch nrc */
    NULL,			/* 0,3 transparent to finnish nrc */
    NULL,			/* 0,4 transparent to french nrc */
    NULL,			/* 0,5 transparent to fr-canadian nrc */
    NULL,			/* 0,6 transparent to german nrc */
    NULL,			/* 0,7 transparent to hungarian nrc */
    NULL,			/* 0,8 transparent to italian nrc */
    NULL,			/* 0,9 transparent to norge/danish nrc */
    NULL,			/* 0,10 transparent to portuguese nrc */
    NULL,			/* 0,11 transparent to spanish nrc */
    NULL,			/* 0,12 transparent to swedish nrc */
    NULL,			/* 0,13 transparent to swiss nrc */
    NULL,			/* 0,14 transparent to latin-1 */
    NULL,			/* 0,15 transparent to latin-2 */
    NULL,			/* 0,16 transparent to DEC MCS */
    NULL,			/* 0,17 transparent to NeXT */
    NULL,			/* 0,18 transparent to CP437 */
    NULL,			/* 0,19 transparent to CP850 */
    NULL,			/* 0,20 transparent to CP852 */
    NULL,			/* 0,21 transparent to Macintosh Latin */
    NULL,			/* 0,22 transparent to DGI */
    NULL,			/* 0,23 transparent to HP */
    NULL,			/* 0,24 transparent to Latin/Cyrillic */
    NULL,                       /* 0,25 transparent to CP866 */
    NULL,			/* 0,26 transparent to Short KOI-7 */
    NULL,                       /* 0,27 transparent to Old KOI-8 Cyrillic */
    NULL,			/* 0,28 transparent to JIS-7 */
    NULL,			/* 0,29 transparent to Shift-JIS */
    NULL,			/* 0,30 transparent to J-EUC */
    NULL,			/* 0,31 transparent to DEC Kanji */
    NULL,			/* 0,32 transparent to Hebrew-7 */
    NULL,			/* 0,33 transparent to Latin/Hebrew */
    NULL,			/* 0,34 transparent to CP862 Hebrew */
    NULL,			/* 0,35 transparent to ELOT 927 Greek */
    NULL,			/* 0,36 transparent to Latin/Greek */
    NULL,			/* 0,37 transparent to CP869 */
    NULL,			/* 0,38 transparent to Latin-9 */
    NULL,			/* 0,39 transparent to CP858 */
    NULL,			/* 0,40 transparent to CP855 */
    NULL,			/* 0,41 transparent to CP1251 */
    NULL,			/* 0,42 transparent to Bulgarian */
    NULL,			/* 0,43 transparent to CP1250 */
    NULL,			/* 0,44 transparent to Mazovia */
    NULL,			/* 0,45 transparent to UCS-2 */
    NULL,			/* 0,46 transparent to UTF-8 */
    NULL,			/* 0,47 transparent to KOI8R */
    NULL,			/* 0,48 transparent to KOI8U */
    NULL,			/* 0,49 transparent to CP1252 */
    NULL,			/* 1,0 ascii to us ascii */
    NULL,			/* 1,1 ascii to uk ascii */
    NULL,			/* 1,2 ascii to dutch nrc */
    NULL,			/* 1,3 ascii to finnish nrc */
    NULL,			/* 1,4 ascii to french nrc */
    NULL,			/* 1,5 ascii to fr-canadian nrc */
    NULL,			/* 1,6 ascii to german nrc */
    NULL,			/* 1,7 ascii to hungarian nrc */
    NULL,			/* 1,8 ascii to italian nrc */
    NULL,			/* 1,9 ascii to norge/danish nrc */
    NULL,			/* 1,10 ascii to portuguese nrc */
    NULL,			/* 1,11 ascii to spanish nrc */
    NULL,			/* 1,12 ascii to swedish nrc */
    NULL,			/* 1,13 ascii to swiss nrc */
    NULL,			/* 1,14 ascii to latin-1 */
    NULL,			/* 1,15 ascii to latin-2 */
    NULL,			/* 1,16 ascii to DEC MCS */
    NULL,			/* 1,17 ascii to NeXT */
    NULL,			/* 1,18 ascii to CP437 */
    NULL,			/* 1,19 ascii to CP850 */
    NULL,			/* 1,20 ascii to CP852 */
    NULL,			/* 1,21 ascii to Macintosh Latin */
    NULL,			/* 1,22 ascii to DGI */
    NULL,			/* 1,23 ascii to HP */
    xaslc,                      /* 1,24 ascii to Latin/Cyrillic */
    xasac,                      /* 1,25 ascii to CP866 */
    xassk,                      /* 1,26 ascii to Short KOI */
    xask8,                      /* 1,27 ascii to Old KOI-8 Cyrillic */
    NULL,			/* 1,28 ascii to JIS-7 */
    NULL,			/* 1,29 ascii to Shift-JIS */
    NULL,			/* 1,30 ascii to J-EUC */
    NULL,			/* 1,31 ascii to DEC Kanji */
    xash7,			/* 1,32 ascii to Hebrew-7 */
    NULL,			/* 1,33 ascii to Latin/Hebrew */
    NULL,			/* 1,34 ascii to CP862 Hebrew */
    xaseg,			/* 1,35 ascii to ELOT 927 Greek */
    NULL,			/* 1,36 ascii to Latin/Greek */
    NULL,			/* 1,37 ascii to CP869 */
    NULL,			/* 1,38 ascii to Latin-9 */
    NULL,			/* 1,39 ascii to CP858 */
    xas55,			/* 1,40 ascii to CP855 */
    xas1251,			/* 1,41 ascii to CP1251 */
    xleft128,			/* 1,42 ascii to bulgarian */
    xleft128,			/* 1,43 ascii to CP1250 */
    xleft128,			/* 1,44 ascii to Mazovia */
    NULL,			/* 1,45 ascii to UCS-2 */
    NULL,			/* 1,46 ascii to UTF-8 */
    NULL,			/* 1,47 ascii to KOI8-R */
    NULL,			/* 1,48 ascii to KOI8-U */
    NULL,			/* 1,49 ascii to CP1252 */
    zl1as,			/* 2,0 latin-1 to us ascii */
    xl1uk,			/* 2,1 latin-1 to uk ascii */
    xl1du,			/* 2,2 latin-1 to dutch nrc */
    xl1fi,			/* 2,3 latin-1 to finnish nrc */
    xl1fr,			/* 2,4 latin-1 to french nrc */
    xl1fc,			/* 2,5 latin-1 to fr-canadian nrc */
    xl1ge,			/* 2,6 latin-1 to german nrc */
    xl1it,			/* 2,7 latin-1 to italian nrc */
    xl1hu,			/* 2,8 latin-1 to hungarian nrc */
    xl1no,			/* 2,9 latin-1 to norge/danish nrc */
    xl1po,			/* 2,10 latin-1 to portuguese nrc */
    xl1sp,			/* 2,11 latin-1 to spanish nrc */
    xl1sw,			/* 2,12 latin-1 to swedish nrc */
    xl1ch,			/* 2,13 latin-1 to swiss nrc */
    NULL,			/* 2,14 latin-1 to latin-1 */
    xl1l2,			/* 2,15 latin-1 to latin-2 */
    xl1dm,			/* 2,16 latin-1 to DEC MCS */
    xl1ne,			/* 2,17 latin-1 to NeXT */
    xl143,			/* 2,18 latin-1 to CP437 */
    xl185,			/* 2,19 latin-1 to CP850 */
    xl152,			/* 2,20 latin-1 to CP852 */
    xl1aq,			/* 2,21 latin-1 to Macintosh Latin */
    xl1dg,			/* 2,22 latin-1 to DGI */
    xl1r8,			/* 2,23 latin-1 to HP Roman8 */
    zl1as,			/* 2,24 latin-1 to Latin/Cyrillic */
    zl1as,                      /* 2,25 latin-1 to CP866 */
    xl1sk,                      /* 2,26 latin-1 to Short KOI */
    zl1as,		       	/* 2,27 latin-1 to Old KOI-8 Cyrillic */
    NULL,			/* 2,28 latin-1 to JIS-7 */
    NULL,			/* 2,29 latin-1 to Shift-JIS */
    NULL,			/* 2,30 latin-1 to J-EUC */
    NULL,			/* 2,31 latin-1 to DEC Kanji */
    xl1h7,			/* 2,32 latin-1 to Hebrew-7 */
    xl1lh,			/* 2,33 latin-1 to Latin/Hebrew */
    xl162,			/* 2,34 latin-1 to CP862 Hebrew */
    xl1eg,			/* 2,35 latin-1 to ELOT 927 Greek */
    xl1lg,			/* 2,36 latin-1 to Latin/Greek */
    xl169,			/* 2,37 latin-1 to CP869 */
    NULL,			/* 2,38 latin-1 to Latin9 */
    xl185,			/* 2,39 latin-1 to CP858 */
    zl1as,			/* 2,40 latin-1 to CP855 */
    zl1as,			/* 2,41 latin-1 to CP1251 */
    zl1as,			/* 2,42 latin-1 to Bulgarian */
    xl11250,			/* 2,43 latin-1 to CP1250 */
    xl1mz,			/* 2,44 latin-1 to Mazovia */
    NULL,			/* 2,45 latin-1 to UCS-2 */
    NULL,			/* 2,46 latin-1 to UTF-8 */
    zl1as,			/* 2,47 latin-1 to KOI8R */
    zl1as,			/* 2,48 latin-1 to KOI8U */
    xl1w1,			/* 2,49 latin-1 to CP1252 */
    xl2as,			/* 3,0 latin-2 to us ascii */
    xl2as,			/* 3,1 latin-2 to uk ascii */
    xl2as,			/* 3,2 latin-2 to dutch nrc */
    xl2as,			/* 3,3 latin-2 to finnish nrc */
    xl2as,			/* 3,4 latin-2 to french nrc */
    xl2as,			/* 3,5 latin-2 to fr-canadian nrc */
    xl2as,			/* 3,6 latin-2 to german nrc */
    xl2as,			/* 3,7 latin-2 to italian nrc */
    xl2as,			/* 3,8 latin-2 to hungarian nrc */
    xl2as,			/* 3,9 latin-2 to norge/danish nrc */
    xl2as,			/* 3,10 latin-2 to portuguese nrc */
    xl2as,			/* 3,11 latin-2 to spanish nrc */
    xl2as,			/* 3,12 latin-2 to swedish nrc */
    xl2as,			/* 3,13 latin-2 to swiss nrc */
    xl2l1,			/* 3,14 latin-2 to latin-1 */
    NULL,			/* 3,15 latin-2 to latin-2 */
    xl2l1,			/* 3,16 latin-2 to DEC MCS */
    xl2ne,			/* 3,17 latin-2 to NeXT */
    xl243,			/* 3,18 latin-2 to CP437 */
    xl285,			/* 3,19 latin-2 to CP850 */
    xl252,			/* 3,20 latin-2 to CP852 */
    xl2aq,			/* 3,21 latin-2 to Macintosh Latin */
    xl2dg,			/* 3,22 latin-2 to DGI */
    xl2r8,			/* 3,23 latin-2 to HP */
    xl2as,			/* 3,24 latin-2 to Latin/Cyrillic */
    xl2as,                      /* 3,25 latin-2 to CP866 */
    xl2sk,                      /* 3,26 latin-2 to Short KOI */
    xl2as,		       	/* 3,27 latin-2 to Old KOI-8 Cyrillic */
    NULL,			/* 3,28 latin-2 to JIS-7 */
    NULL,			/* 3,29 latin-2 to Shift-JIS */
    NULL,			/* 3,30 latin-2 to J-EUC */
    NULL,			/* 3,31 latin-2 to DEC Kanji */
    xl2h7,			/* 3,32 latin-2 to Hebrew-7 */
    xl2as,			/* 3,33 latin-2 to Latin/Hebrew */
    xl2as,			/* 3,34 latin-2 to CP862 Hebrew */
    xassk,			/* 3,35 latin-2 to ELOT 927 Greek */
    xl2as,			/* 3,36 latin-2 to Latin/Greek */
    xl2as,			/* 3,37 latin-2 to CP869 */
    xl2l9,			/* 3,38 latin-2 to Latin-9 */
    xl258,			/* 3,39 latin-2 to CP858 */
    xl2as,			/* 3,40 latin-2 to CP855 */
    xl2as,			/* 3,41 latin-2 to CP1251 */
    xl2as,			/* 3,42 latin-2 to Bulgarian */
    xl21250,			/* 3,43 latin-2 to CP1250 */
    xl2mz,			/* 3,44 latin-2 to Mazovia */
    NULL,			/* 3,45 latin-2 to UCS-2 */
    NULL,			/* 3,46 latin-2 to UTF-8 */
    xl2as,			/* 3,47 latin-2 to KOI8R */
    xl2as,			/* 3,48 latin-2 to KOI8U */
    xl2w1,			/* 3,49 latin-2 to CP1252 */
    xlcas,			/* 4,0 latin/cyrillic to us ascii */
    xlcas,			/* 4,1 latin/cyrillic to uk ascii */
    xlcas, 		        /* 4,2 latin/cyrillic to dutch nrc */
    xlcas,			/* 4,3 latin/cyrillic to finnish ascii */
    xlcas,			/* 4,4 latin/cyrillic to french nrc */
    xlcas,			/* 4,5 latin/cyrillic to fr-canadian nrc */
    xlcas,			/* 4,6 latin/cyrillic to german nrc */
    xlcas,			/* 4,7 latin/cyrillic to italian nrc */
    xlcas,			/* 4,8 latin/cyrillic to hungarian nrc */
    xlcas,			/* 4,9 latin/cyrillic to norge/danish nrc */
    xlcas,			/* 4,10 latin/cyrillic to portuguese nrc */
    xlcas,			/* 4,11 latin/cyrillic to spanish nrc */
    xlcas,			/* 4,12 latin/cyrillic to swedish nrc */
    xlcas,			/* 4,13 latin/cyrillic to swiss nrc */
    xlcas,			/* 4,14 latin/cyrillic to latin-1 */
    xlcas,			/* 4,15 latin/cyrillic to latin-2 */
    xlcas,			/* 4,16 latin/cyrillic to DEC MCS */
    xlcas,			/* 4,17 latin/cyrillic to NeXT */
    xlcas,			/* 4,18 latin/cyrillic to CP437 */
    xlcas,			/* 4,19 latin/cyrillic to CP850 */
    xlcas,			/* 4,20 latin/cyrillic to CP852 */
    xlcas,			/* 4,21 latin/cyrillic to Macintosh Latin */
    xlcas,			/* 4,22 latin/cyrillic to DGI */
    xlcas,			/* 4,23 latin/cyrillic to HP */
    NULL,                       /* 4,24 latin/cyrillic to Latin/Cyrillic */
    xlcac,                      /* 4,25 latin/cyrillic to CP866 */
    xlcsk,                      /* 4,26 latin/cyrillic to Short KOI */
    xlck8,		       	/* 4,27 latin/cyrillic to Old KOI-8 Cyrillic */
    NULL,			/* 4,28 latin/cyril to JIS-7 */
    NULL,			/* 4,29 latin/cyril to Shift-JIS */
    NULL,			/* 4,30 latin/cyril to J-EUC */
    NULL,			/* 4,31 latin/cyril to DEC Kanji */
    xlch7,			/* 4,32 latin/cyril to Hebrew-7 */
    xlcas,			/* 4,33 latin/cyril to Latin/Hebrew */
    xlcas,			/* 4,34 latin/cyril to CP862 Hebrew */
    xassk,			/* 4,35 latin/cyril to ELOT 927 Greek */
    xleft160,			/* 4,36 latin/cyril to Latin/Greek */
    xleft128,			/* 4,37 latin/cyril to CP869 */
    xlcas,			/* 4,38 latin/cyril to latin-9 */
    xlcas,			/* 4,39 latin/cyril to CP858 */
    xlc55,			/* 4,40 latin/cyril to CP855 */
    xlc1251,			/* 4,41 latin/cyril to CP1251 */
    xlcbu,			/* 4,42 latin/cyril to Bulgarian */
    xlcas,			/* 4,43 latin/cyril to CP1250 */
    xlcas,			/* 4,44 latin/cyril to Mazovia */
    NULL,			/* 4,45 latin/cyril to UCS-2 */
    NULL,			/* 4,46 latin/cyril to UTF-8 */
    xlckr,			/* 4,47 latin/cyril to KOI8R */
    xlcku,			/* 4,48 latin/cyril to KOI8U */
    xlcas,			/* 4,49 latin/cyril to CP1252 */
    NULL,			/* 5,00 */
    NULL,			/* 5,01 */
    NULL,			/* 5,02 */
    NULL,			/* 5,03 */
    NULL,			/* 5,04 */
    NULL,			/* 5,05 */
    NULL,			/* 5,06 */
    NULL,			/* 5,07 */
    NULL,			/* 5,08 */
    NULL,			/* 5,09 */
    NULL,			/* 5,10 */
    NULL,			/* 5,11 */
    NULL,			/* 5,12 */
    NULL,			/* 5,13 */
    NULL,			/* 5,14 */
    NULL,			/* 5,15 */
    NULL,			/* 5,16 */
    NULL,			/* 5,17 */
    NULL,			/* 5,18 */
    NULL,			/* 5,19 */
    NULL,			/* 5,20 */
    NULL,			/* 5,21 */
    NULL,			/* 5,22 */
    NULL,			/* 5,23 */
    NULL,			/* 5,24 */
    NULL,			/* 5,25 */
    NULL,			/* 5,26 */
    NULL,			/* 5,27 */
    NULL,			/* 5,28 */
    NULL,			/* 5,29 */
    NULL,			/* 5,30 */
    NULL,			/* 5,31 */
    NULL,			/* 5,32 */
    NULL,			/* 5,33 */
    NULL,			/* 5,34 */
    NULL,			/* 5,35 */
    NULL,			/* 5,36 */
    NULL,			/* 5,37 */
    NULL,			/* 5,38 */
    NULL,			/* 5,39 */
    NULL,			/* 5,40 */
    NULL,			/* 5,41 */
    NULL,			/* 5,42 */
    NULL,			/* 5,43 */
    NULL,			/* 5,44 */
    NULL,			/* 5,45 */
    NULL,			/* 5,46 */
    NULL,			/* 5,47 */
    NULL,			/* 5,48 */
    NULL,			/* 5,49 */
    xlhas,			/* 6,0 latin/hebrew to us ascii */
    xlhas,			/* 6,1 latin/hebrew to uk ascii */
    xlhas, 		        /* 6,2 latin/hebrew to dutch nrc */
    xlhas,			/* 6,3 latin/hebrew to finnish ascii */
    xlhas,			/* 6,4 latin/hebrew to french nrc */
    xlhas,			/* 6,5 latin/hebrew to fr-canadian nrc */
    xlhas,			/* 6,6 latin/hebrew to german nrc */
    xlhas,			/* 6,7 latin/hebrew to italian nrc */
    xlhas,			/* 6,8 latin/hebrew to hungarian nrc */
    xlhas,			/* 6,9 latin/hebrew to norge/danish nrc */
    xlhas,			/* 6,10 latin/hebrew to portuguese nrc */
    xlhas,			/* 6,11 latin/hebrew to spanish nrc */
    xlhas,			/* 6,12 latin/hebrew to swedish nrc */
    xlhas,			/* 6,13 latin/hebrew to swiss nrc */
    xlhl1,			/* 6,14 latin/hebrew to latin-1 */
    xlhas,			/* 6,15 latin/hebrew to latin-2 */
    xlhl1,			/* 6,16 latin/hebrew to DEC MCS */
    xlhas,			/* 6,17 latin/hebrew to NeXT */
    xlhas,			/* 6,18 latin/hebrew to CP437 */
    xlhas,			/* 6,19 latin/hebrew to CP850 */
    xlhas,			/* 6,20 latin/hebrew to CP852 */
    xlhas,			/* 6,21 latin/hebrew to Macintosh Latin */
    xlhas,			/* 6,22 latin/hebrew to DGI */
    xlhas,                      /* 6,23 latin/hebrew to HP */
    xlhas,                      /* 6,24 latin/hebrew to Latin/Cyrillic */
    xlhas,                      /* 6,25 latin/hebrew to CP866 */
    NULL,                       /* 6,26 latin/hebrew to Short KOI */
    xlhas,		       	/* 6,27 latin/hebrew to Old KOI-8 Cyrillic */
    NULL,			/* 6,28 latin/hebrew to JIS-7 */
    NULL,			/* 6,29 latin/hebrew to Shift-JIS */
    NULL,			/* 6,30 latin/hebrew to J-EUC */
    NULL,			/* 6,31 latin/hebrew to DEC Kanji */
    xlhh7,			/* 6,32 latin/hebrew to Hebrew-7 */
    NULL,			/* 6,33 latin/hebrew to Latin/Hebrew */
    xlh62,			/* 6,34 latin/hebrew to CP862 Hebrew */
    NULL,			/* 6,35 latin/hebrew to ELOT 927 Greek */
    xlhas,			/* 6,36 latin/hebrew to Latin/Greek */
    xlhas,			/* 6,37 latin/hebrew to CP869 */
    xlhas,			/* 6,38 latin/hebrew to Latin-9 */
    xlhas,			/* 6,39 latin/hebrew to CP858 */
    xlhas,			/* 6,40 latin/hebrew to CP855 */
    xlhas,			/* 6,41 latin/hebrew to CP1251 */
    xlhas,			/* 6,42 latin/hebrew to Bulgarian */
    xlhas,			/* 6,43 latin/hebrew to CP1250 */
    xlhas,			/* 6,44 latin/hebrew to Mazovia */
    NULL,			/* 6,45 latin/hebrew to UCS-2 */
    NULL,			/* 6,46 latin/hebrew to UTF-8 */
    NULL,			/* 6,47 latin/hebrew to KOI8R */
    NULL,			/* 6,48 latin/hebrew to KOI8U */
    xlhw1,			/* 6,49 latin/hebrew to CP1252 */
    xlgas,			/* 7,0 latin/greek to us ascii */
    xlgas,			/* 7,1 latin/greek to uk ascii */
    xlgas, 		        /* 7,2 latin/greek to dutch nrc */
    xlgas,			/* 7,3 latin/greek to finnish ascii */
    xlgas,			/* 7,4 latin/greek to french nrc */
    xlgas,			/* 7,5 latin/greek to fr-canadian nrc */
    xlgas,			/* 7,6 latin/greek to german nrc */
    xlgas,			/* 7,7 latin/greek to italian nrc */
    xlgas,			/* 7,8 latin/greek to hungarian nrc */
    xlgas,			/* 7,9 latin/greek to norge/danish nrc */
    xlgas,			/* 7,10 latin/greek to portuguese nrc */
    xlgas,			/* 7,11 latin/greek to spanish nrc */
    xlgas,			/* 7,12 latin/greek to swedish nrc */
    xlgas,			/* 7,13 latin/greek to swiss nrc */
    xlgas,			/* 7,14 latin/greek to latin-1 */
    xlgas,			/* 7,15 latin/greek to latin-2 */
    xlgas,			/* 7,16 latin/greek to DEC MCS */
    xlgas,			/* 7,17 latin/greek to NeXT */
    xlgas,			/* 7,18 latin/greek to CP437 */
    xlgas,			/* 7,19 latin/greek to CP850 */
    xlgas,			/* 7,20 latin/greek to CP852 */
    xlgas,			/* 7,21 latin/greek to Macintosh Latin */
    xlgas,			/* 7,22 latin/greek to DGI */
    xlgas,			/* 7,23 latin/greek to HP */
    xleft160,                   /* 7,24 latin/greek to Latin/Cyrillic */
    xleft128,                   /* 7,25 latin/greek to CP866 */
    xassk,                      /* 7,26 latin/greek to Short KOI */
    xleft160,		       	/* 7,27 latin/greek to Old KOI-8 Greek */
    NULL,			/* 7,28 latin/greek to JIS-7 */
    NULL,			/* 7,29 latin/greek to Shift-JIS */
    NULL,			/* 7,30 latin/greek to J-EUC */
    NULL,			/* 7,31 latin/greek to DEC Kanji */
    NULL,			/* 7,32 latin/greek to Hebrew-7 */
    xlgas,			/* 7,33 latin/greek to Latin/Hebrew */
    xlgas,			/* 7,34 latin/greek to CP862 Hebrew */
    xlgeg,			/* 7,35 latin/greek to ELOT 927 Greek */
    NULL,			/* 7,36 latin/greek to Latin/Greek */
    xlg69,			/* 7,37 latin/greek to CP869 */
    xlgas,			/* 7,38 latin/greek to Latin-9 */
    xlgas,			/* 7,39 latin/greek to CP858 */
    xleft128,			/* 7,40 latin/greek to CP855 */
    xleft128,			/* 7,41 latin/greek to CP1251 */
    xleft128,			/* 7,42 latin/greek to Bulgarian */
    xleft128,			/* 7,43 latin/greek to CP1250 */
    xleft128,			/* 7,44 latin/greek to Mazovia */
    NULL,			/* 7,45 latin/greek to UCS-2 */
    NULL,			/* 7,46 latin/greek to UTF-8 */
    NULL,			/* 7,47 latin/greek to KOI8R */
    NULL,			/* 7,48 latin/greek to KOI8U */
    xlgw1,			/* 7,49 latin/greek to CP1252 */
    zl9as,			/* 8,0 latin-9 to us ascii */
    xl1uk,			/* 8,1 latin-9 to uk ascii */
    xl1du,			/* 8,2 latin-9 to dutch nrc */
    xl1fi,			/* 8,3 latin-9 to finnish nrc */
    xl1fr,			/* 8,4 latin-9 to french nrc */
    xl1fc,			/* 8,5 latin-9 to fr-canadian nrc */
    xl1ge,			/* 8,6 latin-9 to german nrc */
    xl1it,			/* 8,7 latin-9 to italian nrc */
    xl1hu,			/* 8,8 latin-9 to hungarian nrc */
    xl1no,			/* 8,9 latin-9 to norge/danish nrc */
    xl1po,			/* 8,10 latin-9 to portuguese nrc */
    xl1sp,			/* 8,11 latin-9 to spanish nrc */
    xl1sw,			/* 8,12 latin-9 to swedish nrc */
    xl1ch,			/* 8,13 latin-9 to swiss nrc */
    NULL,			/* 8,14 latin-9 to latin-1 */
    xl1l2,			/* 8,15 latin-9 to latin-2 */
    xl9dm,			/* 8,16 latin-9 to DEC MCS */
    xl9ne,			/* 8,17 latin-9 to NeXT */
    xl143,			/* 8,18 latin-9 to CP437 */
    xl185,			/* 8,19 latin-9 to CP850 */
    xl152,			/* 8,20 latin-9 to CP852 */
    xl1aq,			/* 8,21 latin-9 to Macintosh Latin */
    xl1dg,			/* 8,22 latin-9 to DGI */
    xl1r8,			/* 8,23 latin-9 to HP Roman8 */
    zl1as,			/* 8,24 latin-9 to Latin/Cyrillic */
    zl1as,                      /* 8,25 latin-9 to CP866 */
    xl1sk,                      /* 8,26 latin-9 to Short KOI */
    zl1as,		       	/* 8,27 latin-9 to Old KOI-8 Cyrillic */
    NULL,			/* 8,28 latin-9 to JIS-7 */
    NULL,			/* 8,29 latin-9 to Shift-JIS */
    NULL,			/* 8,30 latin-9 to J-EUC */
    NULL,			/* 8,31 latin-9 to DEC Kanji */
    xl1h7,			/* 8,32 latin-9 to Hebrew-7 */
    xl1lh,			/* 8,33 latin-9 to Latin/Hebrew */
    xl162,			/* 8,34 latin-9 to CP862 Hebrew */
    xl1eg,			/* 8,35 latin-9 to ELOT 927 Greek */
    xl1lg,			/* 8,36 latin-9 to Latin/Greek */
    xl169,			/* 8,37 latin-9 to CP869 */
    NULL,			/* 8,38 latin-9 to Latin9 */
    xl958,			/* 8,39 latin-9 to CP858 */
    zl1as,			/* 8,40 latin-9 to CP855 */
    zl1as,			/* 8,41 latin-9 to CP1251 */
    xl1as,			/* 8,42 latin-9 to Bulgarian */
    xl91250,			/* 8,43 latin-9 to CP1250 */
    xl9mz,			/* 8,44 latin-9 to Mazovia */
    NULL,			/* 8,45 latin-9 to UCS-2 */
    NULL,			/* 8,46 latin-9 to UTF-8 */
    zl1as,			/* 8,47 latin-9 to KOI8-R */
    zl1as,			/* 8,48 latin-9 to KOI8-U */
    xl9w1,			/* 8,49 latin-9 to CP1252 */
    NULL,			/* 9,00 Unicode... */
    NULL,			/* 9,01 */
    NULL,			/* 9,02 */
    NULL,			/* 9,03 */
    NULL,			/* 9,04 */
    NULL,			/* 9,05 */
    NULL,			/* 9,06 */
    NULL,			/* 9,07 */
    NULL,			/* 9,08 */
    NULL,			/* 9,09 */
    NULL,			/* 9,10 */
    NULL,			/* 9,11 */
    NULL,			/* 9,12 */
    NULL,			/* 9,13 */
    NULL,			/* 9,14 */
    NULL,			/* 9,15 */
    NULL,			/* 9,16 */
    NULL,			/* 9,17 */
    NULL,			/* 9,18 */
    NULL,			/* 9,19 */
    NULL,			/* 9,20 */
    NULL,			/* 9,21 */
    NULL,			/* 9,22 */
    NULL,			/* 9,23 */
    NULL,			/* 9,24 */
    NULL,			/* 9,25 */
    NULL,			/* 9,26 */
    NULL,			/* 9,27 */
    NULL,			/* 9,28 */
    NULL,			/* 9,29 */
    NULL,			/* 9,30 */
    NULL,			/* 9,31 */
    NULL,			/* 9,32 */
    NULL,			/* 9,33 */
    NULL,			/* 9,34 */
    NULL,			/* 9,35 */
    NULL,			/* 9,36 */
    NULL,			/* 9,37 */
    NULL,			/* 9,38 */
    NULL,			/* 9,39 */
    NULL,			/* 9,40 */
    NULL,			/* 9,41 */
    NULL,			/* 9,42 */
    NULL,			/* 9,43 */
    NULL,			/* 9,44 */
    NULL,			/* 9,45 */
    NULL,			/* 9,46 */
    NULL,			/* 9,47 */
    NULL,			/* 9,48 */
    NULL,			/* 9,49 */
    NULL,			/* 10,00 */
    NULL,			/* 10,01 */
    NULL,			/* 10,02 */
    NULL,			/* 10,03 */
    NULL,			/* 10,04 */
    NULL,			/* 10,05 */
    NULL,			/* 10,06 */
    NULL,			/* 10,07 */
    NULL,			/* 10,08 */
    NULL,			/* 10,09 */
    NULL,			/* 10,10 */
    NULL,			/* 10,11 */
    NULL,			/* 10,12 */
    NULL,			/* 10,13 */
    NULL,			/* 10,14 */
    NULL,			/* 10,15 */
    NULL,			/* 10,16 */
    NULL,			/* 10,17 */
    NULL,			/* 10,18 */
    NULL,			/* 10,19 */
    NULL,			/* 10,20 */
    NULL,			/* 10,21 */
    NULL,			/* 10,22 */
    NULL,			/* 10,23 */
    NULL,			/* 10,24 */
    NULL,			/* 10,25 */
    NULL,			/* 10,26 */
    NULL,			/* 10,27 */
    NULL,			/* 10,28 */
    NULL,			/* 10,29 */
    NULL,			/* 10,30 */
    NULL,			/* 10,31 */
    NULL,			/* 10,32 */
    NULL,			/* 10,33 */
    NULL,			/* 10,34 */
    NULL,			/* 10,35 */
    NULL,			/* 10,36 */
    NULL,			/* 10,37 */
    NULL,			/* 10,38 */
    NULL,			/* 10,39 */
    NULL,			/* 10,40 */
    NULL,			/* 10,41 */
    NULL,			/* 10,42 */
    NULL,			/* 10,43 */
    NULL,			/* 10,44 */
    NULL,			/* 10,45 */
    NULL,			/* 10,46 */
    NULL,			/* 10,47 */
    NULL,			/* 10,48 */
    NULL			/* 10,49 */
};
int nxlr = (sizeof(xlr) / sizeof(CHAR *));

/*
  Translation function table for sending files.
  Array of pointers to functions for translating from the local file
  character set to the transfer character set.  Indexed in the same
  way as the xlr array above, but with the indices reversed.
*/
#ifdef CK_ANSIC
CHAR (*xls[MAXTCSETS+1][MAXFCSETS+1])(CHAR) =
#else
CHAR (*xls[MAXTCSETS+1][MAXFCSETS+1])() =
#endif /* CK_ANSIC */
{
    NULL,			/* 0,0 us ascii to transparent */
    NULL,			/* 0,1 uk ascii to transparent */
    NULL,			/* 0,2 dutch nrc to transparent */
    NULL,			/* 0,3 finnish nrc to transparent */
    NULL,			/* 0,4 french nrc to transparent */
    NULL,			/* 0,5 fr-canadian nrc to transparent */
    NULL,			/* 0,6 german nrc to transparent */
    NULL,			/* 0,7 hungarian nrc to transparent */
    NULL,			/* 0,8 italian nrc to transparent */
    NULL,			/* 0,9 norge/danish nrc to transparent */
    NULL,			/* 0,10 portuguese nrc to transparent */
    NULL,			/* 0,11 spanish nrc to transparent */
    NULL,			/* 0,12 swedish nrc to transparent */
    NULL,			/* 0,13 swiss nrc to transparent */
    NULL,			/* 0,14 latin-1 to transparent */
    NULL,			/* 0,15 latin-2 to transparent */
    NULL,			/* 0,16 DEC MCS to transparent */
    NULL,			/* 0,17 NeXT to transparent */
    NULL,			/* 0,18 CP437 to transparent */
    NULL,			/* 0,19 CP850 to transparent */
    NULL,			/* 0,20 CP852 to transparent */
    NULL,			/* 0,21 Macintosh Latin to transparent */
    NULL,			/* 0,22 DGI to transparent */
    NULL,			/* 0,23 HP to transparent */
    NULL,			/* 0,24 Latin/Cyrillic to transparent */
    NULL,                       /* 0,25 CP866 to transparent */
    NULL,                       /* 0,26 Short KOI to transparent */
    NULL,                       /* 0,27 Old KOI-8 to transparent */
    NULL,			/* 0,28 JIS-7 to transparent */
    NULL,			/* 0,29 Shift JIS to transparent */
    NULL,			/* 0,30 Japanese EUC to transparent */
    NULL,			/* 0,31 DEC Kanji to transparent */
    NULL,			/* 0,32 Hebrew-7 to transparent */
    NULL,			/* 0,33 Latin/Hebrew to transparent */
    NULL,			/* 0,34 CP862 Hebrew to transparent */
    NULL,			/* 0,35 ELOT 927 Greek to transparent */
    NULL,			/* 0,36 Latin/Greek to transparent */
    NULL,			/* 0,37 CP869 to transparent */
    NULL,			/* 0,38 Latin-9 to transparent */
    NULL,			/* 0,39 CP858 to transparent */
    NULL,			/* 0,40 CP855 to transparent */
    NULL,			/* 0,41 CP1251 to transparent */
    NULL,			/* 0,42 Bulgarian to transparent */
    NULL,			/* 0,43 CP1250 to transparent */
    NULL,			/* 0,44 Mazovia to transparent */
    NULL,			/* 0,45 UCS-2 to transparent */
    NULL,			/* 0,46 UTF-8 to transparent */
    NULL,			/* 0,47 KOI8R to transparent */
    NULL,			/* 0,48 KOI8U to transparent */
    NULL,			/* 0,49 CP1252 to transparent */
    NULL,			/* 1,0 us ascii to ascii */
    NULL,			/* 1,1 uk ascii to ascii */
    xduas,			/* 1,2 dutch nrc to ascii */
    xfias,			/* 1,3 finnish nrc to ascii */
    xfras,			/* 1,4 french nrc to ascii */
    xfcas,			/* 1,5 french canadian nrc to ascii */
    xgeas,			/* 1,6 german nrc to ascii */
    xhuas,			/* 1,7 hungarian nrc to ascii */
    xitas,			/* 1,8 italian nrc to ascii */
    xnoas,			/* 1,9 norwegian/danish nrc to ascii */
    xpoas,			/* 1,10 portuguese nrc to ascii */
    xspas,			/* 1,11 spanish nrc to ascii */
    xswas,			/* 1,12 swedish nrc to ascii */
    xchas,			/* 1,13 swiss nrc to ascii */
    xl1as,			/* 1,14 latin-1 to ascii */
    xl2as,			/* 1,15 latin-2 to ascii */
    xdmas,			/* 1,16 dec mcs to ascii */
    xneas,			/* 1,17 NeXT to ascii */
    x43as,			/* 1,18 CP437 to ascii */
    x85as,			/* 1,19 CP850 to ascii */
    x52as,			/* 1,20 CP850 to ascii */
    xaqas,			/* 1,21 Macintosh Latin to ascii */
    xdgas,			/* 1,22 DGI to ascii */
    xr8as,			/* 1,23 HP to ASCII */
    xlcas,			/* 1,24 Latin/Cyrillic to ASCII */
    xacas,                      /* 1,25 CP866 to ASCII */
    xskas,			/* 1,26 Short KOI to ASCII */
    xk8as,                      /* 1,27 Old KOI-8 Cyrillic to ASCII */
    NULL,			/* 1,28 */
    NULL,			/* 1,29 */
    NULL,			/* 1,30 */
    NULL,			/* 1,31 */
    xh7as,			/* 1,32 Hebrew-7 to ASCII */
    xlhas,			/* 1,33 Latin/Hebrew to ASCII */
    x62as,			/* 1,34 CP862 Hebrew to ASCII */
    xegas,			/* 1,35 ELOT 927 Greek to ASCII */
    xlgas,			/* 1,36 Latin/Greek to ASCII */
    x69as,			/* 1,37 CP869 to ASCII */
    xl9as,			/* 1,38 Latin-9 to ASCII */
    x58as,			/* 1,39 CP858 to ASCII */
    x55as,			/* 1,40 CP855 to ASCII */
    x1251as,			/* 1,41 CP1251 to ASCII */
    xleft128,			/* 1,42 Bulgarian to ASCII */
    x1250as,			/* 1,43 CP1250 to ASCII */
    xmzas,			/* 1,44 Mazovia to ASCII */
    NULL,			/* 1,45 UCS-2 to ASCII */
    NULL,			/* 1,46 UTF-8 to ASCII */
    xk8as,			/* 1,47 KOI8R to ASCII */
    xk8as,			/* 1,48 KOI8U to ASCII */
    xw1as,			/* 1,49 CP1252 to ASCII */
    NULL,			/* 2,0 us ascii to latin-1 */
    xukl1,			/* 2,1 uk ascii to latin-1 */
    xdul1,			/* 2,2 dutch nrc to latin-1 */
    xfil1,			/* 2,3 finnish nrc to latin-1 */
    xfrl1,			/* 2,4 french nrc to latin-1 */
    xfcl1,			/* 2,5 french canadian nrc to latin-1 */
    xgel1,			/* 2,6 german nrc to latin-1 */
    xhul1,			/* 2,7 hungarian nrc to latin-1 */
    xitl1,			/* 2,8 italian nrc to latin-1 */
    xnol1,			/* 2,9 norwegian/danish nrc to latin-1 */
    xpol1,			/* 2,10 portuguese nrc to latin-1 */
    xspl1,			/* 2,11 spanish nrc to latin-1 */
    xswl1,			/* 2,12 swedish nrc to latin-1 */
    xchl1,			/* 2,13 swiss nrc to latin-1 */
    NULL,			/* 2,14 latin-1 to latin-1 */
    xl2l1,			/* 2,15 latin-2 to latin-1 */
    xdml1,			/* 2,16 dec mcs to latin-1 */
    xnel1,                      /* 2,17 NeXT to Latin-1 */
    x43l1,                      /* 2,18 CP437 to Latin-1 */
    x85l1,                      /* 2,19 CP850 to Latin-1 */
    x52l1,                      /* 2,20 CP852 to Latin-1 */
    xaql1,                      /* 2,21 Macintosh Latin to Latin-1 */
    xdgl1,                      /* 2,22 DGI to Latin-1 */
    xr8l1,                      /* 2,23 HP to Latin-1 */
    xlcas,                      /* 2,24 Latin/Cyrillic to Latin-1 */
    xacas,                      /* 2,25 CP866 to Latin-1 */
    xskas,                      /* 2,26 Short KOI to Latin-1 */
    xk8as,                      /* 2,27 Old KOI-8 Cyrillic to Latin-1 */
    NULL,			/* 2,28 Kanji ... */
    NULL,			/* 2,29 */
    NULL,			/* 2,30 */
    NULL,			/* 2,31 */
    xh7as,			/* 2,32 Hebrew-7 to Latin-1 */
    xlhl1,			/* 2,33 Latin/Hebrew to Latin-1 */
    x62l1,			/* 2,34 CP862 Hebrew to Latin-1 */
    xegas,			/* 2,35 ELOT 927 Greek to Latin-1 */
    xlgl1,			/* 2,36 Latin/Greek to Latin-1 */
    NULL,			/* 2,37 CP869 to Latin-1 */
    NULL,			/* 2,38 Latin-9 to Latin-1 */
    x58l1,			/* 2,39 CP858 to Latin-1 */
    x55as,			/* 2,40 CP855 to Latin-1 */
    x1251as,			/* 2,41 CP1251 to Latin-1 */
    xleft128,			/* 2,42 Bulgarian to Latin-1 */
    x1250l1,			/* 2,43 CP1250 to Latin-1 */
    xmzl1,			/* 2,44 Mazovia to Latin-1 */
    NULL,			/* 2,45 UCS-2 to Latin-1 */
    NULL,			/* 2,46 UTF-8 to Latin-1 */
    xk8as,			/* 2,47 KOI8R to Latin-1 */
    xk8as,			/* 2,48 KOI8U to Latin-1 */
    xw1l1,			/* 2,49 CP1252 to Latin-1 */
    NULL,			/* 3,0 us ascii to latin-2 */
    NULL,			/* 3,1 uk ascii to latin-2 */
    xduas,			/* 3,2 dutch nrc to latin-2 */
    xfias,			/* 3,3 finnish nrc to latin-2 */
    xfras,			/* 3,4 french nrc to latin-2 */
    xfcas,			/* 3,5 french canadian nrc to latin-2 */
    xgel2,			/* 3,6 german nrc to latin-2 */
    xhul2,			/* 3,7 hungarian nrc to latin-2 */
    xitas,			/* 3,8 italian nrc to latin-2 */
    xnoas,			/* 3,9 norwegian/danish nrc to latin-2 */
    xpoas,			/* 3,10 portuguese nrc to latin-2 */
    xspas,			/* 3,11 spanish nrc to latin-2 */
    xswas,			/* 3,12 swedish nrc to latin-2 */
    xchas,			/* 3,13 swiss nrc to latin-2 */
    xl1l2,			/* 3,14 latin-1 to latin-2 */
    NULL,			/* 3,15 latin-2 to latin-2 */
    xl1l2,			/* 3,16 dec mcs to latin-2 */
    xnel2,                      /* 3,17 NeXT to Latin-2 */
    x43l2,                      /* 3,18 CP437 to Latin-2 */
    x85l2,                      /* 3,19 CP850 to Latin-2 */
    x52l2,                      /* 3,20 CP852 to Latin-2 */
    xaql2,                      /* 3,21 Macintosh Latin to Latin-2 */
    xdgl2,                      /* 3,22 DGI to Latin-2 */
    xr8l2,                      /* 3,23 HP to Latin-2 */
    xlcas,                      /* 3,24 Latin/Cyrillic to Latin-2 */
    xacas,                      /* 3,25 CP866 to Latin-2 */
    xskas,                      /* 3,26 Short KOI to Latin-2 */
    xk8as,                      /* 3,27 Old KOI-8 Cyrillic to Latin-2 */
    NULL,			/* 3,28 Kanji ... */
    NULL,			/* 3,29 */
    NULL,			/* 3,30 */
    NULL,			/* 3,31 */
    xh7as,			/* 3,32 Hebrew-7 to Latin-2 */
    xlhas,			/* 3,33 Latin/Hebrew to Latin-2 */
    x62as,			/* 3,34 CP862 Hebrew to Latin-2 */
    xegas,			/* 3,35 ELOT 927 Greek to Latin-2 */
    xl2lg,			/* 3,36 Latin/Greek to Latin-2 */
    xleft128,			/* 3,37 CP869 to Latin-2 */
    xl9l2,			/* 3,38 Latin-9 to Latin-2 */
    x58l2,			/* 3,39 CP858 to Latin-2 */
    x55as,			/* 3,40 CP855 to Latin-2 */
    x1251as,			/* 3,41 CP1251 to Latin-2 */
    xleft128,			/* 3,42 Bulgarian to Latin-2 */
    x1250l2,			/* 3,43 CP1250 to Latin-2 */
    xmzl2,			/* 3,44 Mazovia to Latin-2 */
    NULL,			/* 3,45 UCS-2 to Latin-2 */
    NULL,			/* 3,46 UTF-8 to Latin-2 */
    xk8as,			/* 3,47 KOI8R to Latin-2 */
    xk8as,			/* 3,48 KOI8U to Latin-2 */
    xw1l2,			/* 3,49 CP1252 to latin-2 */
    xaslc,			/* 4,0 us ascii to latin/cyrillic */
    xaslc,			/* 4,1 uk ascii to latin/cyrillic */
    xduas,			/* 4,2 dutch nrc to latin/cyrillic */
    xfias,			/* 4,3 finnish nrc to latin/cyrillic */
    xfras,			/* 4,4 french nrc to latin/cyrillic */
    xfcas,			/* 4,5 french canadian nrc to latin/cyrillic */
    xgeas,			/* 4,6 german nrc to latin/cyrillic */
    xhuas,			/* 4,7 hungarian nrc to latin/cyrillic */
    xitas,			/* 4,8 italian nrc to latin/cyrillic */
    xnoas,			/* 4,9 norge/danish nrc to latin/cyrillic */
    xpoas,			/* 4,10 portuguese nrc to latin/cyrillic */
    xspas,			/* 4,11 spanish nrc to latin/cyrillic */
    xswas,			/* 4,12 swedish nrc to latin/cyrillic */
    xchas,			/* 4,13 swiss nrc to latin/cyrillic */
    xl1as,			/* 4,14 latin-1 to latin/cyrillic */
    xl2as,			/* 4,15 latin-2 to latin/cyrillic */
    xdmas,			/* 4,16 dec mcs to latin/cyrillic */
    xneas,			/* 4,17 NeXT to latin/cyrillic */
    x43as,			/* 4,18 CP437 to latin/cyrillic */
    x85as,			/* 4,19 CP850 to latin/cyrillic */
    x52as,			/* 4,20 CP852 to latin/cyrillic */
    xaqas,			/* 4,21 Macintosh Latin to latin/cyrillic */
    xdgas,			/* 4,22 DGI to Latin/Cyrillic */
    xr8as,			/* 4,23 HP to Latin/Cyrillic */
    NULL,                       /* 4,24 Latin/Cyrillic to Latin/Cyrillic */
    xaclc,                      /* 4,25 CP866 to Latin/Cyrillic */
    xskcy,                      /* 4,26 Short KOI to Latin/Cyrillic */
    xk8lc,                      /* 4,27 Old KOI-8 Cyrillic to Latin/Cyrillic */
    NULL,			/* 4,28 Kanji... */
    NULL,			/* 4,29 */
    NULL,			/* 4,30 */
    NULL,			/* 4,31 */
    xh7as,			/* 4,32 Hebrew-7 to Latin/Cyrillic */
    xlhas,			/* 4,33 Latin/Hebrew to Latin/Cyrillic */
    x62as,			/* 4,34 CP862 Hebrew to Latin/Cyrillic */
    xegas,			/* 4,35 ELOT 927 Greek to Latin/Cyrillic */
    xleft160,			/* 4,36 Latin/Greek to Latin/Cyrillic */
    xleft128,			/* 4,37 CP869 to Latin/Cyrillic */
    xl1as,			/* 4,38 latin-9 to latin/cyrillic */
    xleft128,			/* 4,39 CP858 to Latin/Cyrillic */
    x55lc,			/* 4,40 CP855 to Latin/Cyrillic */
    x1251lc,			/* 4,41 CP1251 to Latin/Cyrillic */
    xbulc,			/* 4,42 Bulgarian to Latin/Cyrillic */
    x1250as,			/* 4,43 CP1250 to Latin/Cyrillic */
    xmzas,			/* 4,44 Mazovia to Latin/Cyrillic */
    NULL,			/* 4,45 UCS-2 to Latin/Cyrillic */
    NULL,			/* 4,46 UTF-8 to Latin/Cyrillic */
    xkrlc,			/* 4,47 KOI8R to Latin/Cyrillic */
    xkulc,			/* 4,48 KOI8U to Latin/Cyrillic */
    xw1lc,			/* 4,49 CP1252 to Latin/Cyrillic */
    NULL,			/* 5,00 */
    NULL,			/* 5,01 */
    NULL,			/* 5,02 */
    NULL,			/* 5,03 */
    NULL,			/* 5,04 */
    NULL,			/* 5,05 */
    NULL,			/* 5,06 */
    NULL,			/* 4.07 */
    NULL,			/* 5,08 */
    NULL,			/* 5,09 */
    NULL,			/* 5,10 */
    NULL,			/* 5,11 */
    NULL,			/* 5,12 */
    NULL,			/* 5,13 */
    NULL,			/* 5,14 */
    NULL,			/* 5,15 */
    NULL,			/* 5,16 */
    NULL,			/* 5,17 */
    NULL,			/* 5,18 */
    NULL,			/* 5,19 */
    NULL,			/* 5,20 */
    NULL,			/* 5,21 */
    NULL,			/* 5,22 */
    NULL,			/* 5,23 */
    NULL,			/* 5,24 */
    NULL,			/* 5,25 */
    NULL,			/* 5,26 */
    NULL,			/* 5,27 */
    NULL,			/* 5,28 */
    NULL,			/* 5,29 */
    NULL,			/* 5,30 */
    NULL,			/* 5,31 */
    NULL,			/* 5,32 */
    NULL,			/* 5,33 */
    NULL,			/* 5,34 */
    NULL,			/* 5,35 */
    NULL,			/* 5,36 */
    NULL,			/* 5,37 */
    NULL,			/* 5,38 */
    NULL,			/* 5,39 */
    NULL,			/* 5,40 */
    NULL,			/* 5,41 */
    NULL,			/* 5,42 */
    NULL,			/* 5,43 */
    NULL,			/* 5,44 */
    NULL,			/* 5,45 */
    NULL,			/* 5,46 */
    NULL,			/* 5,47 */
    NULL,			/* 5,48 */
    NULL,			/* 5,49 */
    NULL,			/* 6,0 us ascii to Latin/Hebrew */
    NULL,			/* 6,1 uk ascii to Latin/Hebrew */
    xduas,			/* 6,2 dutch nrc to Latin/Hebrew */
    xfias,			/* 6,3 finnish nrc to Latin/Hebrew */
    xfras,			/* 6,4 french nrc to Latin/Hebrew */
    xfcas,			/* 6,5 french canadian nrc to Latin/Hebrew */
    xgeas,			/* 6,6 german nrc to Latin/Hebrew */
    xhuas,			/* 6,7 hungarian nrc to Latin/Hebrew */
    xitas,			/* 6,8 italian nrc to Latin/Hebrew */
    xnoas,			/* 6,9 norge/danish nrc to Latin/Hebrew */
    xpoas,			/* 6,10 portuguese nrc to Latin/Hebrew */
    xspas,			/* 6,11 spanish nrc to Latin/Hebrew */
    xswas,			/* 6,12 swedish nrc to Latin/Hebrew */
    xchas,			/* 6,13 swiss nrc to Latin/Hebrew */
    xl1lh,			/* 6,14 latin-1 to Latin/Hebrew */
    xl2as,			/* 6,15 latin-2 to Latin/Hebrew */
    xdmas,			/* 6,16 dec mcs to Latin/Hebrew */
    xneas,			/* 6,17 NeXT to Latin/Hebrew */
    x43as,			/* 6,18 CP437 to Latin/Hebrew */
    x85as,			/* 6,19 CP850 to Latin/Hebrew */
    x52as,			/* 6,20 CP852 to Latin/Hebrew */
    xaqas,			/* 6,21 Macintosh Latin to Latin/Hebrew */
    xdgas,			/* 6,22 DGI to Latin/Hebrew */
    xr8as,			/* 6,23 HP to Latin/Hebrew */
    xlcas,                      /* 6,24 Latin/Cyrillic to Latin/Hebrew */
    xacas,                      /* 6,25 CP866 to Latin/Hebrew */
    xskas,                      /* 6,26 Short KOI to Latin/Hebrew */
    xk8as,                      /* 6,27 Old KOI-8 Cyrillic to Latin/Hebrew */
    NULL,			/* 6,28 Kanji... */
    NULL,			/* 6,29 */
    NULL,			/* 6,30 */
    NULL,			/* 6,31 */
    xh7lh,			/* 6,32 Hebrew-7 to Latin/Hebrew */
    NULL,			/* 6,33 Latin/Hebrew to Latin/Hebrew */
    x62lh,			/* 6,34 CP862 Hebrew to Latin/Hebrew */
    xegas,			/* 6,35 ELOT 927 Greek to Latin/Hebrew */
    xlgas,			/* 6,36 Latin/Greek to Latin/Hebrew */
    x69as,			/* 6,37 CP869 to Latin/Hebrew */
    xl1as,			/* 6,38 latin-9 to Latin/Hebrew */
    x58as,			/* 6,39 CP858 to Latin/Hebrew */
    x55as,			/* 6,40 CP855 to Latin/Hebrew */
    x1251as,			/* 6,41 CP1251 to Latin/Hebrew */
    xleft128,			/* 6,42 Bulgarian to Latin/Hebrew */
    x1250as,			/* 6,43 CP1250 to Latin/Hebrew */
    xmzas,			/* 6,44 Mazovia to Latin/Hebrew */
    NULL,			/* 6,45 UCS-2 to Latin/Hebrew */
    NULL,			/* 6,46 UTF-8 to Latin/Hebrew */
    NULL,			/* 6,47 KOI8R to Latin/Hebrew */
    NULL,			/* 6,48 KOI8U to Latin/Hebrew */
    xw1lh,			/* 6,49 CP1252 to Latin/Hebrew */
    NULL,			/* 7,0 us ascii to Latin/Greek */
    NULL,			/* 7,1 uk ascii to Latin/Greek */
    xduas,			/* 7,2 dutch nrc to Latin/Greek */
    xfias,			/* 7,3 finnish nrc to Latin/Greek */
    xfras,			/* 7,4 french nrc to Latin/Greek */
    xfcas,			/* 7,5 french canadian nrc to Latin/Greek */
    xgeas,			/* 7,6 german nrc to Latin/Greek */
    xhuas,			/* 7,7 hungarian nrc to Latin/Greek */
    xitas,			/* 7,8 italian nrc to Latin/Greek */
    xnoas,			/* 7,9 norge/danish nrc to Latin/Greek */
    xpoas,			/* 7,10 portuguese nrc to Latin/Greek */
    xspas,			/* 7,11 spanish nrc to Latin/Greek */
    xswas,			/* 7,12 swedish nrc to Latin/Greek */
    xchas,			/* 7,13 swiss nrc to Latin/Greek */
    xl1lg,			/* 7,14 latin-1 to Latin/Greek */
    xl2lg,			/* 7,15 latin-2 to Latin/Greek */
    xl1lg,			/* 7,16 dec mcs to Latin/Greek */
    xneas,			/* 7,17 NeXT to Latin/Greek */
    xleft128,			/* 7,18 CP437 to Latin/Greek */
    x85as,			/* 7,19 CP850 to Latin/Greek */
    x52as,			/* 7,20 CP852 to Latin/Greek */
    xaqas,			/* 7,21 Macintosh Latin to Latin/Greek */
    xdgas,			/* 7,22 DGI to Latin/Greek */
    xr8as,			/* 7,23 HP to Latin/Greek */
    xleft160,                   /* 7,24 Latin/Cyrillic to Latin/Greek */
    xleft128,                   /* 7,25 CP866 to Latin/Greek */
    xskas,                      /* 7,26 Short KOI to Latin/Greek */
    xk8as,                      /* 7,27 Old KOI-8 Cyrillic to Latin/Greek */
    NULL,			/* 7,28 Kanji... */
    NULL,			/* 7,29 */
    NULL,			/* 7,30 */
    NULL,			/* 7,31 */
    xh7as,			/* 7,32 Hebrew-7 to Latin/Greek */
    NULL,			/* 7,33 Latin/Hebrew to Latin/Greek */
    x62as,			/* 7,34 CP862 Hebrew to Latin/Greek */
    xeglg,			/* 7,35 ELOT 927 Greek to Latin/Greek */
    NULL,			/* 7,36 Latin/Greek to Latin/Greek */
    x69lg,			/* 7,37 CP869 to Latin/Greek */
    xl1as,			/* 7,38 latin-9 to Latin/Greek */
    xl1as,			/* 7,39 latin-9 to Latin/Hebrew*/
    xleft128,			/* 7,40 CP855 to Latin/Greek */
    xleft128,			/* 7,41 CP1251 to Latin/Greek */
    xleft128,			/* 7,42 Bulgarian to Latin/Greek */
    x1250as,			/* 7,43 CP1250 to Latin/Greek */
    xmzas,			/* 7,44 Mazovia to Latin/Greek */
    NULL,			/* 7,45 UCS-2 to Latin/Greek */
    NULL,			/* 7,46 UTF-8 to Latin/Greek */
    NULL,			/* 7,47 KOI8R to Latin/Greek */
    NULL,			/* 7,48 KOI8U to Latin/Greek */
    xw1lg,			/* 7,49 CP1252 to Latin/Greek */
    NULL,			/* 8,0 us ascii to latin-9 */
    xukl1,			/* 8,1 uk ascii to latin-9 */
    xdul1,			/* 8,2 dutch nrc to latin-9 */
    xfil1,			/* 8,3 finnish nrc to latin-9 */
    xfrl1,			/* 8,4 french nrc to latin-9 */
    xfcl1,			/* 8,5 french canadian nrc to latin-9 */
    xgel1,			/* 8,6 german nrc to latin-9 */
    xhul1,			/* 8,7 hungarian nrc to latin-9 */
    xitl1,			/* 8,8 italian nrc to latin-9 */
    xnol1,			/* 8,9 norwegian/danish nrc to latin-9 */
    xpol1,			/* 8,10 portuguese nrc to latin-9 */
    xspl1,			/* 8,11 spanish nrc to latin-9 */
    xswl1,			/* 8,12 swedish nrc to latin-9 */
    xchl1,			/* 8,13 swiss nrc to latin-9 */
    NULL,			/* 8,14 latin-1 to latin-9 */
    xl2l9,			/* 8,15 latin-2 to latin-9 */
    xdml9,			/* 8,16 dec mcs to latin-9 */
    xnel9,                      /* 8,17 NeXT To Latin-9 */
    x43l1,                      /* 8,18 CP437 To Latin-9 */
    x85l1,                      /* 8,19 CP850 To Latin-9 */
    x52l1,                      /* 8,20 CP852 To Latin-9 */
    xaql1,                      /* 8,21 Macintosh Latin To Latin-9 */
    xdgl1,                      /* 8,22 DGI To Latin-9 */
    xr8l1,                      /* 8,23 HP To Latin-9 */
    xlcas,                      /* 8,24 Latin/Cyrillic To Latin-9 */
    xacas,                      /* 8,25 CP866 To Latin-9 */
    xskas,                      /* 8,26 Short KOI To Latin-9 */
    xk8as,                      /* 8,27 Old KOI-8 Cyrillic To Latin-9 */
    NULL,			/* 8,28 Kanji ... */
    NULL,			/* 8,29 */
    NULL,			/* 8,30 */
    NULL,			/* 8,31 */
    xh7as,			/* 8,32 Hebrew-7 To Latin-9 */
    xlhl1,			/* 8,33 Latin/Hebrew To Latin-9 */
    x62l1,			/* 8,34 CP862 Hebrew To Latin-9 */
    xegas,			/* 8,35 ELOT 927 Greek To Latin-9 */
    xlgl1,			/* 8,36 Latin/Greek To Latin-9 */
    xl169,			/* 8,37 CP869 To Latin-9 */
    NULL,			/* 8,38 Latin-9 To Latin-9 */
    x58l9,			/* 8,39 cp858 To Latin-9 */
    x55as,			/* 8,40 cp855 To Latin-9 */
    x55as,			/* 8,41 cp1251 To Latin-9 */
    xleft128,			/* 8,42 Bulgarian To Latin-9 */
    x1250l9,			/* 8,43 CP1250 To Latin-9 */
    xmzl9,			/* 8,44 Mazovia To Latin-9 */
    NULL,			/* 8,45 UCS-2 to Latin-9 */
    NULL,			/* 8,46 UTF-8 to Latin-9 */
    NULL,			/* 8,47 KOI8R to Latin-9 */
    NULL,			/* 8,48 KOI8U to Latin-9 */
    xw1l9,			/* 8,49 CP1252 to Latin-9 */
    NULL,			/* 9,00 Unicode... */
    NULL,			/* 9,01 */
    NULL,			/* 9,02 */
    NULL,			/* 9,03 */
    NULL,			/* 9,04 */
    NULL,			/* 9,05 */
    NULL,			/* 9,06 */
    NULL,			/* 9,07 */
    NULL,			/* 9,08 */
    NULL,			/* 9,09 */
    NULL,			/* 9,10 */
    NULL,			/* 9,11 */
    NULL,			/* 9,12 */
    NULL,			/* 9,13 */
    NULL,			/* 9,14 */
    NULL,			/* 9,15 */
    NULL,			/* 9,16 */
    NULL,			/* 9,17 */
    NULL,			/* 9,18 */
    NULL,			/* 9,19 */
    NULL,			/* 9,20 */
    NULL,			/* 9,21 */
    NULL,			/* 9,22 */
    NULL,			/* 9,23 */
    NULL,			/* 9,24 */
    NULL,			/* 9,25 */
    NULL,			/* 9,26 */
    NULL,			/* 9,27 */
    NULL,			/* 9,28 */
    NULL,			/* 9,29 */
    NULL,			/* 9,30 */
    NULL,			/* 9,31 */
    NULL,			/* 9,32 */
    NULL,			/* 9,33 */
    NULL,			/* 9,34 */
    NULL,			/* 9,35 */
    NULL,			/* 9,36 */
    NULL,			/* 9,37 */
    NULL,			/* 9,38 */
    NULL,			/* 9,39 */
    NULL,			/* 9,40 */
    NULL,			/* 9,41 */
    NULL,			/* 9,42 */
    NULL,			/* 9,43 */
    NULL,			/* 9,44 */
    NULL,			/* 9,45 */
    NULL,			/* 9,46 */
    NULL,			/* 9,47 */
    NULL,			/* 9,48 */
    NULL,			/* 9,49 */
    NULL,			/* 10,00 */
    NULL,			/* 10,01 */
    NULL,			/* 10,02 */
    NULL,			/* 10,03 */
    NULL,			/* 10,04 */
    NULL,			/* 10,05 */
    NULL,			/* 10,06 */
    NULL,			/* 10,07 */
    NULL,			/* 10,08 */
    NULL,			/* 10,09 */
    NULL,			/* 10,10 */
    NULL,			/* 10,11 */
    NULL,			/* 10,12 */
    NULL,			/* 10,13 */
    NULL,			/* 10,14 */
    NULL,			/* 10,15 */
    NULL,			/* 10,16 */
    NULL,			/* 10,17 */
    NULL,			/* 10,18 */
    NULL,			/* 10,19 */
    NULL,			/* 10,20 */
    NULL,			/* 10,21 */
    NULL,			/* 10,22 */
    NULL,			/* 10,23 */
    NULL,			/* 10,24 */
    NULL,			/* 10,25 */
    NULL,			/* 10,26 */
    NULL,			/* 10,27 */
    NULL,			/* 10,28 */
    NULL,			/* 10,29 */
    NULL,			/* 10,30 */
    NULL,			/* 10,31 */
    NULL,			/* 10,32 */
    NULL,			/* 10,33 */
    NULL,			/* 10,34 */
    NULL,			/* 10,35 */
    NULL,			/* 10,36 */
    NULL,			/* 10,37 */
    NULL,			/* 10,38 */
    NULL,			/* 10,39 */
    NULL,			/* 10,40 */
    NULL,			/* 10,41 */
    NULL,			/* 10,42 */
    NULL,			/* 10,43 */
    NULL,			/* 10,44 */
    NULL,			/* 10,45 */
    NULL,			/* 10,46 */
    NULL,			/* 10,47 */
    NULL,			/* 10,48 */
    NULL			/* 10,49 */
};
int nxls = (sizeof(xls) / sizeof(CHAR *));

#ifndef NOLOCAL
/*
  The following routines are useful only for terminal character sets, and so
  ifdef'd out for NOLOCAL compilations.
*/

/*
  C S _ I S _ N R C

  Returns nonzero if argument indicates a 7-bit national character set,
  zero otherwise.
*/
int
cs_is_nrc(x) int x; {
#ifdef UNICODE
    if (x == TX_J201R || x == TX_DECSPEC || x == TX_DECTECH
        || txrinfo[x] == NULL)
      return(0);
    else
      return(txrinfo[x]->flags & X2U_STD && txrinfo[x]->size == 94);
#else /* UNICODE */
    if ((cs_size(x) == 94))
      return(1);
    else
      return(0);
#endif /* UNICODE */
}

/*
  C S _ I S _ S T D

  Returns nonzero if argument indicates an ISO 4873-standard-format
  character set, i.e. one in which the control region is NOT used for
  graphics; zero otherwise.
*/
int
cs_is_std(x) int x; {
#ifdef UNICODE
    if (!txrinfo[x])			/* Even more safety */
      return(0);
    else if (txrinfo[x]->size == 128)	/* Just for safety */
      return(0);
    else
      return(txrinfo[x]->flags & X2U_STD); /* Only this should be needed */
#else
    switch (x) {
      case FC_CP437:			/* Code pages use C1 graphics */
      case FC_CP850:
      case FC_CP852:
      case FC_CP862:
      case FC_CP866:
      case FC_CP869:
      case FC_CP858:
      case FC_APPQD:			/* So do Apple and NeXTSTEP */
      case FC_NEXT:
	return(0);
      default:				/* Others behave */
	return(1);
    }
#endif /* CKOUINI */
}

int
cs_size(x) int x; {
#ifdef UNICODE
    if (!txrinfo[x])
      return(128);
    return(txrinfo[x]->size);
#else
    switch(x) {
      case FC_USASCII:
      case FC_UKASCII:
      case FC_DUASCII:
      case FC_FIASCII:
      case FC_FRASCII:
      case FC_FCASCII:
      case FC_GEASCII:
      case FC_HUASCII:
      case FC_ITASCII:
      case FC_NOASCII:
      case FC_POASCII:
      case FC_SPASCII:
      case FC_SWASCII:
      case FC_CHASCII:
      case FC_KOI7:
      case FC_HE7:
      case FC_ELOT:
	return(94);

      case FC_1LATIN:
      case FC_2LATIN:
      case FC_DECMCS:
      case FC_DGMCS:
      case FC_HPR8:
      case FC_CYRILL:
      case FC_KOI8:
      case FC_HEBREW:
      case FC_GREEK:
      case FC_9LATIN:
	return(96);

      case FC_NEXT:
      case FC_CP437:
      case FC_CP850:
      case FC_CP852:
      case FC_CP855:
      case FC_CP862:
      case FC_CP866:
      case FC_CP1251:
      case FC_APPQD:
	return(128);
#ifdef KANJI
      case FC_JIS7:
	return(-94);
      case FC_SHJIS:
	return(-128);
      case FC_JEUC:
      case FC_JDEC:
	return(-96);
#endif /* KANJI */
      case FC_CP858:
      default:
	return(-1);
    }
#endif /* UNICODE */
}
#endif /* NOLOCAL */

/*
  S E T X L A T Y P E  --  Set Translation Type

  Sets global xlatype to indicate which kind of translation:

    XLA_NONE      No translation
    XLA_BYTE      Byte-for-Byte translation
    XLA_JAPAN     Japanese Kanji translation
    XLA_UNICODE   Unicode translations

  And sets up the appropriate translation function pointers as follows:

  For no translation:
    All function pointers are NULL.

  For Byte-for-Byte transation:
    rx  = TCS to FCS (these functions are in this module...)
    sx  = FCS to TCS

  For Unicode translations:
    xfu = FCS to UCS (these functions are in ckcuni.c...)
    xtu = TCS to UCS
    xuf = UCS to FCS
    xut = UCS to TCS
*/
VOID
setxlatype(tcs, fcs) int tcs, fcs; {
#ifdef UNICODE
    xfu = NULL;				/* Unicode <-> TCS/FCS functions */
    xtu = NULL;
    xuf = NULL;
    xut = NULL;
#endif /* UNICODE */
    rx = sx = NULL;
    debug(F101,"setxlatype fcs","",fcs);
    debug(F101,"setxlatype tcs","",tcs);

    if (tcs < 0 || tcs > MAXTCSETS) {
	debug(F101,"setxlatype bad tcs","",tcs);
	return;
    }
    if (fcs < 0 || fcs > MAXFCSETS) {
	debug(F101,"setxlatype bad fcs","",fcs);
	return;
    }
    if (tcs == TC_TRANSP || xfrxla == 0) { /* Transfer charset TRANSPARENT */
	debug(F101,"setxlatype transparent because TCS==Transparent","",tcs);
	xlatype = XLA_NONE;		/* Translation type is None */
#ifdef UNICODE
    /* If any of our charsets is Unicode we use Unicode functions */
    /* even if TCS and FCS are the same because of BOM and byte swapping */
    } else if (tcs == TC_UCS2 || tcs == TC_UTF8 ||
	       fcs == FC_UCS2 || fcs == FC_UTF8) {
	debug(F101,"setxlatype Unicode tcs","",tcs);
	debug(F101,"setxlatype Unicode fcs","",fcs);
	/* Unicode <-> TCS/FCS functions */
	xfu = xl_fcu[fcs];		/* FCS -> UCS */
	xtu = xl_tcu[tcs];		/* TCS -> UCS */
	xuf = xl_ufc[fcs];		/* UCS -> FCS */
	xut = xl_utc[tcs];		/* UCS -> TCS */
        xlatype = XLA_UNICODE;		/* Translation type is Unicode */
#ifdef COMMENT
	/* These make trouble in 64-bit land */
	debug(F001,"setxlatype Unicode xfu","",(unsigned)xfu);
	debug(F001,"setxlatype Unicode xuf","",(unsigned)xuf);
#endif /* COMMENT */
#endif /* UNICODE */
    } else if (cseqtab[tcs] == fcs) {	/* Or if TCS == FCS */
	debug(F101,"setxlatype transparent because TCS==FCS","",tcs);
	xlatype = XLA_NONE;		/* translation type is also None */
#ifdef KANJI
    /* Otherwise if any of them is Japanese, we use Kanji functions */
    } else if (tcs == TC_JEUC || fcsinfo[fcs].alphabet == AL_JAPAN) {
	debug(F101,"setxlatype Japanese tcs","",tcs);
	debug(F101,"setxlatype Japanese fcs","",fcs);
        xlatype = XLA_JAPAN;		/* Translation type is Japanese */
#endif /* KANJI */
    /* Otherwise we use byte functions */
    } else {				/* Otherwise... */
	rx = xlr[tcs][fcs];		/* Input translation function */
	sx = xls[tcs][fcs];		/* Output translation function */
	debug(F101,"setxlatype Byte tcs","",tcs);
	debug(F101,"setxlatype Byte fcs","",fcs);
        xlatype = XLA_BYTE;		/* Translation type is Byte */
    }
    debug(F101,"setxlatype xlatype","",xlatype);
}

/* Set up translation between two file character sets with UCS intermediate */

#ifdef UNICODE
VOID
initxlate(csin, csout) int csin, csout; {
    xfu = NULL;
    xtu = NULL;
    xuf = NULL;
    xut = NULL;

    debug(F101,"initxlate csin","",csin);
    debug(F101,"initxlate csout","",csout);

    if (csin < 0 || csin > MAXFCSETS) {
	debug(F101,"initxlate bad csin","",csin);
	return;
    }
    if (csout < 0 || csout > MAXFCSETS) {
	debug(F101,"initxlate bad csout","",csout);
	return;
    }
    if (csin == csout && csin != FC_UCS2) {
	xlatype = XLA_NONE;		/* Translation type is None */
	return;
    }
    xlatype = XLA_UNICODE;		/* Translation type is Unicode */
    xfu = xl_fcu[csin];			/* FCS -> UCS */
    xuf = xl_ufc[csout];		/* UCS -> FCS */
    xpnbyte(-1,0,0,NULL);		/* Reset UCS-2 */
#ifdef COMMENT
    debug(F001,"initxlate Unicode xfu","",(unsigned)xfu);
    debug(F001,"initxlate Unicode xuf","",(unsigned)xuf);
#endif /* COMMENT */
    debug(F101,"initxlate xlatype","",xlatype);
}
#endif /* UNICODE */

int csetsinited = 0;

VOID
initcsets() {				/* Routine to reset or initialize */
    int i;				/* character-set associations. */

#ifdef UNICODE
    if (ucsorder < 0)			/* For creating UCS-2 files. */
      ucsorder = byteorder;
    if (ucsorder < 0)
      ucsorder = 0;
    if (fileorder < 0)			/* For reading UCS-2 files. */
      fileorder = ucsorder;
#endif /* UNICODE */

    debug(F101,"initcsets nxls","",nxls);
    debug(F101,"initcsets nxlr","",nxlr);

    debug(F101,"initcsets TERM LOCAL CSET","",tcsl);
    debug(F101,"initcsets TERM REMOTE CSET","",tcsr);

    for (i = 0; i <= MAXFCSETS; i++)	/* First clear them all... */
      afcset[i] = -1;
    for (i = 0; i <= MAXTCSETS; i++)
      axcset[i] = -1;

    /* Now set specific defaults for incoming files */

    xlatype = XLA_NONE;

    axcset[TC_TRANSP]  = FC_TRANSP;
    axcset[TC_USASCII] = FC_USASCII;

#ifdef OS2
    switch (fcharset) {
      case FC_CP850:
      case FC_CP858:
      case FC_CP437:
      case FC_1LATIN:
	axcset[TC_1LATIN]  = fcharset;
	break;
      default:
	axcset[TC_1LATIN]  = FC_CP850;
    }
#else
#ifdef HPUX
    axcset[TC_1LATIN]  = FC_HPR8;
#else
#ifdef VMS
    axcset[TC_1LATIN]  = FC_DECMCS;
#else
#ifdef NEXT
    axcset[TC_1LATIN]  = FC_NEXT;
#else
#ifdef datageneral
    axcset[TC_1LATIN]  = FC_DGMCS;
#else
    /* Should we use code pages on some PC based UNIXes? */
    axcset[TC_1LATIN]  = FC_1LATIN;
#endif /* datageneral */
#endif /* NEXT */
#endif /* VMS */
#endif /* HPUX */
#endif /* OS2 */

#ifdef OS2
    axcset[TC_2LATIN]  = FC_CP852;
    axcset[TC_CYRILL]  = FC_CP866;
    axcset[TC_JEUC]    = FC_SHJIS;
    axcset[TC_HEBREW]  = FC_CP862;
    axcset[TC_GREEK]   = FC_CP869;
    axcset[TC_9LATIN]  = FC_CP858;
    axcset[TC_UCS2]    = FC_UCS2;
    axcset[TC_UTF8]    = FC_UCS2;
#else
    axcset[TC_2LATIN]  = FC_2LATIN;
    axcset[TC_CYRILL]  = FC_CYRILL;
    axcset[TC_JEUC]    = FC_JEUC;
    axcset[TC_HEBREW]  = FC_HEBREW;
    axcset[TC_GREEK]   = FC_GREEK;
    axcset[TC_9LATIN]  = FC_9LATIN;
    axcset[TC_UCS2]    = FC_UTF8;
    axcset[TC_UTF8]    = FC_UTF8;
#endif /* OS2 */

    /* And for outbound files */

    afcset[FC_USASCII] = TC_USASCII;
    afcset[FC_UKASCII] = TC_1LATIN;
    afcset[FC_DUASCII] = TC_1LATIN;
    afcset[FC_FIASCII] = TC_1LATIN;
    afcset[FC_FRASCII] = TC_1LATIN;
    afcset[FC_FCASCII] = TC_1LATIN;
    afcset[FC_GEASCII] = TC_1LATIN;
    afcset[FC_HUASCII] = TC_2LATIN;
    afcset[FC_ITASCII] = TC_1LATIN;
    afcset[FC_NOASCII] = TC_1LATIN;
    afcset[FC_POASCII] = TC_1LATIN;
    afcset[FC_SPASCII] = TC_1LATIN;
    afcset[FC_SWASCII] = TC_1LATIN;
    afcset[FC_CHASCII] = TC_1LATIN;
    afcset[FC_1LATIN]  = TC_1LATIN;
    afcset[FC_2LATIN]  = TC_2LATIN;
    afcset[FC_DECMCS]  = TC_1LATIN;
    afcset[FC_NEXT]    = TC_1LATIN;
    afcset[FC_CP437]   = TC_1LATIN;
    afcset[FC_CP850]   = TC_1LATIN;
    afcset[FC_CP852]   = TC_2LATIN;
    afcset[FC_APPQD]   = TC_1LATIN;
    afcset[FC_DGMCS]   = TC_1LATIN;
    afcset[FC_HPR8]    = TC_1LATIN;
    afcset[FC_CYRILL]  = TC_CYRILL;
    afcset[FC_CP866]   = TC_CYRILL;
    afcset[FC_KOI7]    = TC_CYRILL;
    afcset[FC_KOI8]    = TC_CYRILL;
    afcset[FC_JIS7]    = TC_JEUC;
    afcset[FC_SHJIS]   = TC_JEUC;
    afcset[FC_JEUC]    = TC_JEUC;
    afcset[FC_JDEC]    = TC_JEUC;
    afcset[FC_HE7]     = TC_HEBREW;
    afcset[FC_HEBREW]  = TC_HEBREW;
    afcset[FC_CP862]   = TC_HEBREW;
    afcset[FC_ELOT]    = TC_GREEK;
    afcset[FC_GREEK]   = TC_GREEK;
    afcset[FC_CP869]   = TC_GREEK;
    afcset[FC_9LATIN]  = TC_9LATIN;
    afcset[FC_CP923]   = TC_9LATIN;
    afcset[FC_CP858]   = TC_9LATIN;
    afcset[FC_CP855]   = TC_CYRILL;
    afcset[FC_CP1251]  = TC_CYRILL;
    afcset[FC_BULGAR]  = TC_CYRILL;
    afcset[FC_CP1250]  = TC_2LATIN;
    afcset[FC_MAZOVIA] = TC_2LATIN;
    afcset[FC_UCS2]    = TC_UTF8;
    afcset[FC_UTF8]    = TC_UTF8;

    afcset[FC_KOI8R]   = TC_CYRILL;
    afcset[FC_KOI8U]   = TC_CYRILL;
    afcset[FC_CP1252]  = TC_1LATIN;

    csetsinited++;
    return;
}
#endif /* NOCSETS */
