1061 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			1061 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*  Grafx2 - The Ultimate 256-color bitmap paint program
 | 
						|
 | 
						|
    Copyright 2008 Adrien Destugues
 | 
						|
    Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
 | 
						|
 | 
						|
    Grafx2 is free software; you can redistribute it and/or
 | 
						|
    modify it under the terms of the GNU General Public License
 | 
						|
    as published by the Free Software Foundation; version 2
 | 
						|
    of the License.
 | 
						|
 | 
						|
    Grafx2 is distributed in the hope that it will be useful,
 | 
						|
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
    GNU General Public License for more details.
 | 
						|
 | 
						|
    You should have received a copy of the GNU General Public License
 | 
						|
    along with Grafx2; if not, see <http://www.gnu.org/licenses/> or
 | 
						|
    write to the Free Software Foundation, Inc.,
 | 
						|
    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 | 
						|
*/
 | 
						|
const char*
 | 
						|
  Table_Normal[256] =
 | 
						|
{
 | 
						|
    /*00*/ "???"
 | 
						|
    /*01*/,"Esc"
 | 
						|
    /*02*/,"1 !"
 | 
						|
    /*03*/,"2 @"
 | 
						|
    /*04*/,"3 #"
 | 
						|
    /*05*/,"4 $"
 | 
						|
    /*06*/,"5 %"
 | 
						|
    /*07*/,"6 ^"
 | 
						|
    /*08*/,"7 &"
 | 
						|
    /*09*/,"8 *"
 | 
						|
    /*0A*/,"9 ("
 | 
						|
    /*0B*/,"0 )"
 | 
						|
    /*0C*/,"- _"
 | 
						|
    /*0D*/,"= +"
 | 
						|
    /*0E*/,"BkSpc"
 | 
						|
    /*0F*/,"Tab"
 | 
						|
    /*10*/,"Q"
 | 
						|
    /*11*/,"W"
 | 
						|
    /*12*/,"E"
 | 
						|
    /*13*/,"R"
 | 
						|
    /*14*/,"T"
 | 
						|
    /*15*/,"Y"
 | 
						|
    /*16*/,"U"
 | 
						|
    /*17*/,"I"
 | 
						|
    /*18*/,"O"
 | 
						|
    /*19*/,"P"
 | 
						|
    /*1A*/,"[ /*"
 | 
						|
    /*1B*/,"] */"
 | 
						|
    /*1C*/,"Retrn"
 | 
						|
    /*1D*/,"???"
 | 
						|
    /*1E*/,"A"
 | 
						|
    /*1F*/,"S"
 | 
						|
    /*20*/,"D"
 | 
						|
    /*21*/,"F"
 | 
						|
    /*22*/,"G"
 | 
						|
    /*23*/,"H"
 | 
						|
    /*24*/,"J"
 | 
						|
    /*25*/,"K"
 | 
						|
    /*26*/,"L"
 | 
						|
    /*27*/,"; :"
 | 
						|
    /*28*/,"' "
 | 
						|
    /*29*/,"` ~"
 | 
						|
    /*2A*/,"???"
 | 
						|
    /*2B*/,"\\ "
 | 
						|
    /*2C*/,"Z"
 | 
						|
    /*2D*/,"X"
 | 
						|
    /*2E*/,"C"
 | 
						|
    /*2F*/,"V"
 | 
						|
    /*30*/,"B"
 | 
						|
    /*31*/,"N"
 | 
						|
    /*32*/,"M"
 | 
						|
    /*33*/,", <"
 | 
						|
    /*34*/,". >"
 | 
						|
    /*35*/,"/ ?"
 | 
						|
    /*36*/,"???"
 | 
						|
    /*37*/,"Grey*"
 | 
						|
    /*38*/,"???"
 | 
						|
    /*39*/,"Space"
 | 
						|
    /*3A*/,"???"
 | 
						|
    /*3B*/,"F1"
 | 
						|
    /*3C*/,"F2"
 | 
						|
    /*3D*/,"F3"
 | 
						|
    /*3E*/,"F4"
 | 
						|
    /*3F*/,"F5"
 | 
						|
    /*40*/,"F6"
 | 
						|
    /*41*/,"F7"
 | 
						|
    /*42*/,"F8"
 | 
						|
    /*43*/,"F9"
 | 
						|
    /*44*/,"F10"
 | 
						|
    /*45*/,"???"
 | 
						|
    /*46*/,"???"
 | 
						|
    /*47*/,"Home"
 | 
						|
    /*48*/,"Up"
 | 
						|
    /*49*/,"PgUp"
 | 
						|
    /*4A*/,"Grey-"
 | 
						|
    /*4B*/,"Left"
 | 
						|
    /*4C*/,"Kpad5"
 | 
						|
    /*4D*/,"Right"
 | 
						|
    /*4E*/,"Grey+"
 | 
						|
    /*4F*/,"End"
 | 
						|
    /*50*/,"Down"
 | 
						|
    /*51*/,"PgDn"
 | 
						|
    /*52*/,"Ins"
 | 
						|
    /*53*/,"Del"
 | 
						|
    /*54*/,"???"
 | 
						|
    /*55*/,"???"
 | 
						|
    /*56*/,"Lft|"
 | 
						|
    /*57*/,"???"
 | 
						|
    /*58*/,"???"
 | 
						|
    /*59*/,"???"
 | 
						|
    /*5A*/,"???"
 | 
						|
    /*5B*/,"???"
 | 
						|
    /*5C*/,"???"
 | 
						|
    /*5D*/,"???"
 | 
						|
    /*5E*/,"???"
 | 
						|
    /*5F*/,"???"
 | 
						|
    /*60*/,"???"
 | 
						|
    /*61*/,"???"
 | 
						|
    /*62*/,"???"
 | 
						|
    /*63*/,"???"
 | 
						|
    /*64*/,"???"
 | 
						|
    /*65*/,"???"
 | 
						|
    /*66*/,"???"
 | 
						|
    /*67*/,"???"
 | 
						|
    /*68*/,"???"
 | 
						|
    /*69*/,"???"
 | 
						|
    /*6A*/,"???"
 | 
						|
    /*6B*/,"???"
 | 
						|
    /*6C*/,"???"
 | 
						|
    /*6D*/,"???"
 | 
						|
    /*6E*/,"???"
 | 
						|
    /*6F*/,"???"
 | 
						|
    /*70*/,"???"
 | 
						|
    /*71*/,"???"
 | 
						|
    /*72*/,"???"
 | 
						|
    /*73*/,"???"
 | 
						|
    /*74*/,"???"
 | 
						|
    /*75*/,"???"
 | 
						|
    /*76*/,"???"
 | 
						|
    /*77*/,"???"
 | 
						|
    /*78*/,"???"
 | 
						|
    /*79*/,"???"
 | 
						|
    /*7A*/,"???"
 | 
						|
    /*7B*/,"???"
 | 
						|
    /*7C*/,"???"
 | 
						|
    /*7D*/,"???"
 | 
						|
    /*7E*/,"???"
 | 
						|
    /*7F*/,"???"
 | 
						|
    /*80*/,"???"
 | 
						|
    /*81*/,"???"
 | 
						|
    /*82*/,"???"
 | 
						|
    /*83*/,"???"
 | 
						|
    /*84*/,"???"
 | 
						|
    /*85*/,"F11"
 | 
						|
    /*86*/,"F12"
 | 
						|
    /*87*/,"???"
 | 
						|
    /*88*/,"???"
 | 
						|
    /*89*/,"???"
 | 
						|
    /*8A*/,"???"
 | 
						|
    /*8B*/,"???"
 | 
						|
    /*8C*/,"???"
 | 
						|
    /*8D*/,"???"
 | 
						|
    /*8E*/,"???"
 | 
						|
    /*8F*/,"???"
 | 
						|
    /*90*/,"???"
 | 
						|
    /*91*/,"???"
 | 
						|
    /*92*/,"???"
 | 
						|
    /*93*/,"???"
 | 
						|
    /*94*/,"???"
 | 
						|
    /*95*/,"???"
 | 
						|
    /*96*/,"???"
 | 
						|
    /*97*/,"???"
 | 
						|
    /*98*/,"???"
 | 
						|
    /*99*/,"???"
 | 
						|
    /*9A*/,"???"
 | 
						|
    /*9B*/,"???"
 | 
						|
    /*9C*/,"???"
 | 
						|
    /*9D*/,"???"
 | 
						|
    /*9E*/,"???"
 | 
						|
    /*9F*/,"???"
 | 
						|
    /*A0*/,"???"
 | 
						|
    /*A1*/,"???"
 | 
						|
    /*A2*/,"???"
 | 
						|
    /*A3*/,"???"
 | 
						|
    /*A4*/,"???"
 | 
						|
    /*A5*/,"???"
 | 
						|
    /*A6*/,"???"
 | 
						|
    /*A7*/,"???"
 | 
						|
    /*A8*/,"???"
 | 
						|
    /*A9*/,"???"
 | 
						|
    /*AA*/,"???"
 | 
						|
    /*AB*/,"???"
 | 
						|
    /*AC*/,"???"
 | 
						|
    /*AD*/,"???"
 | 
						|
    /*AE*/,"???"
 | 
						|
    /*AF*/,"???"
 | 
						|
    /*B0*/,"???"
 | 
						|
    /*B1*/,"???"
 | 
						|
    /*B2*/,"???"
 | 
						|
    /*B3*/,"???"
 | 
						|
    /*B4*/,"???"
 | 
						|
    /*B5*/,"???"
 | 
						|
    /*B6*/,"Win L"
 | 
						|
    /*B7*/,"Win R"
 | 
						|
    /*B8*/,"Win M"
 | 
						|
    /*B9*/,"???"
 | 
						|
    /*BA*/,"???"
 | 
						|
    /*BB*/,"???"
 | 
						|
    /*BC*/,"???"
 | 
						|
    /*BD*/,"???"
 | 
						|
    /*BE*/,"???"
 | 
						|
    /*BF*/,"???"
 | 
						|
    /*C0*/,"???"
 | 
						|
    /*C1*/,"???"
 | 
						|
    /*C2*/,"???"
 | 
						|
    /*C3*/,"???"
 | 
						|
    /*C4*/,"???"
 | 
						|
    /*C5*/,"???"
 | 
						|
    /*C6*/,"???"
 | 
						|
    /*C7*/,"???"
 | 
						|
    /*C8*/,"???"
 | 
						|
    /*C9*/,"???"
 | 
						|
    /*CA*/,"???"
 | 
						|
    /*CB*/,"???"
 | 
						|
    /*CC*/,"???"
 | 
						|
    /*CD*/,"???"
 | 
						|
    /*CE*/,"???"
 | 
						|
    /*CF*/,"???"
 | 
						|
    /*D0*/,"???"
 | 
						|
    /*D1*/,"???"
 | 
						|
    /*D2*/,"???"
 | 
						|
    /*D3*/,"???"
 | 
						|
    /*D4*/,"???"
 | 
						|
    /*D5*/,"???"
 | 
						|
    /*D6*/,"???"
 | 
						|
    /*D7*/,"???"
 | 
						|
    /*D8*/,"???"
 | 
						|
    /*D9*/,"???"
 | 
						|
    /*DA*/,"???"
 | 
						|
    /*DB*/,"???"
 | 
						|
    /*DC*/,"???"
 | 
						|
    /*DD*/,"???"
 | 
						|
    /*DE*/,"???"
 | 
						|
    /*DF*/,"???"
 | 
						|
    /*E0*/,"Enter"
 | 
						|
    /*E1*/,"???"
 | 
						|
    /*E2*/,"???"
 | 
						|
    /*E3*/,"???"
 | 
						|
    /*E4*/,"???"
 | 
						|
    /*E5*/,"???"
 | 
						|
    /*E6*/,"???"
 | 
						|
    /*E7*/,"???"
 | 
						|
    /*E8*/,"???"
 | 
						|
    /*E9*/,"???"
 | 
						|
    /*EA*/,"???"
 | 
						|
    /*EB*/,"???"
 | 
						|
    /*EC*/,"???"
 | 
						|
    /*ED*/,"???"
 | 
						|
    /*EE*/,"???"
 | 
						|
    /*EF*/,"???"
 | 
						|
    /*F0*/,"???"
 | 
						|
    /*F1*/,"???"
 | 
						|
    /*F2*/,"???"
 | 
						|
    /*F3*/,"???"
 | 
						|
    /*F4*/,"???"
 | 
						|
    /*F5*/,"???"
 | 
						|
    /*F6*/,"???"
 | 
						|
    /*F7*/,"???"
 | 
						|
    /*F8*/,"???"
 | 
						|
    /*F9*/,"???"
 | 
						|
    /*FA*/,"???"
 | 
						|
    /*FB*/,"???"
 | 
						|
    /*FC*/,"???"
 | 
						|
    /*FD*/,"???"
 | 
						|
    /*FE*/,"???"
 | 
						|
    /*FF*/,""
 | 
						|
};
 | 
						|
 | 
						|
const char* Table_Shift[256] =
 | 
						|
{
 | 
						|
    /*00*/ "???"
 | 
						|
    /*01*/,"Esc"
 | 
						|
    /*02*/,"1 !"
 | 
						|
    /*03*/,"2 @"
 | 
						|
    /*04*/,"3 #"
 | 
						|
    /*05*/,"4 $"
 | 
						|
    /*06*/,"5 %"
 | 
						|
    /*07*/,"6 ^"
 | 
						|
    /*08*/,"7 &"
 | 
						|
    /*09*/,"8 *"
 | 
						|
    /*0A*/,"9 ("
 | 
						|
    /*0B*/,"0 )"
 | 
						|
    /*0C*/,"- _"
 | 
						|
    /*0D*/,"= +"
 | 
						|
    /*0E*/,"BkSpc"
 | 
						|
    /*0F*/,"Tab"
 | 
						|
    /*10*/,"Q"
 | 
						|
    /*11*/,"W"
 | 
						|
    /*12*/,"E"
 | 
						|
    /*13*/,"R"
 | 
						|
    /*14*/,"T"
 | 
						|
    /*15*/,"Y"
 | 
						|
    /*16*/,"U"
 | 
						|
    /*17*/,"I"
 | 
						|
    /*18*/,"O"
 | 
						|
    /*19*/,"P"
 | 
						|
    /*1A*/,"[ /*"
 | 
						|
    /*1B*/,"] */"
 | 
						|
    /*1C*/,"Retrn"
 | 
						|
    /*1D*/,"???"
 | 
						|
    /*1E*/,"A"
 | 
						|
    /*1F*/,"S"
 | 
						|
    /*20*/,"D"
 | 
						|
    /*21*/,"F"
 | 
						|
    /*22*/,"G"
 | 
						|
    /*23*/,"H"
 | 
						|
    /*24*/,"J"
 | 
						|
    /*25*/,"K"
 | 
						|
    /*26*/,"L"
 | 
						|
    /*27*/,"; :"
 | 
						|
    /*28*/,"' "
 | 
						|
    /*29*/,"` ~"
 | 
						|
    /*2A*/,"???"
 | 
						|
    /*2B*/,"\\ "
 | 
						|
    /*2C*/,"Z"
 | 
						|
    /*2D*/,"X"
 | 
						|
    /*2E*/,"C"
 | 
						|
    /*2F*/,"V"
 | 
						|
    /*30*/,"B"
 | 
						|
    /*31*/,"N"
 | 
						|
    /*32*/,"M"
 | 
						|
    /*33*/,", <"
 | 
						|
    /*34*/,". >"
 | 
						|
    /*35*/,"/ ?"
 | 
						|
    /*36*/,"???"
 | 
						|
    /*37*/,"Grey*"
 | 
						|
    /*38*/,"???"
 | 
						|
    /*39*/,"Space"
 | 
						|
    /*3A*/,"???"
 | 
						|
    /*3B*/,"???"
 | 
						|
    /*3C*/,"???"
 | 
						|
    /*3D*/,"???"
 | 
						|
    /*3E*/,"???"
 | 
						|
    /*3F*/,"???"
 | 
						|
    /*40*/,"???"
 | 
						|
    /*41*/,"???"
 | 
						|
    /*42*/,"???"
 | 
						|
    /*43*/,"???"
 | 
						|
    /*44*/,"???"
 | 
						|
    /*45*/,"???"
 | 
						|
    /*46*/,"???"
 | 
						|
    /*47*/,"Home"
 | 
						|
    /*48*/,"Up"
 | 
						|
    /*49*/,"PgUp"
 | 
						|
    /*4A*/,"Grey-"
 | 
						|
    /*4B*/,"Left"
 | 
						|
    /*4C*/,"Kpad5"
 | 
						|
    /*4D*/,"Right"
 | 
						|
    /*4E*/,"Grey+"
 | 
						|
    /*4F*/,"End"
 | 
						|
    /*50*/,"Down"
 | 
						|
    /*51*/,"PgDn"
 | 
						|
    /*52*/,"Ins"
 | 
						|
    /*53*/,"Del"
 | 
						|
    /*54*/,"F1"
 | 
						|
    /*55*/,"F2"
 | 
						|
    /*56*/,"F3"
 | 
						|
    /*57*/,"F4"
 | 
						|
    /*58*/,"F5"
 | 
						|
    /*59*/,"F6"
 | 
						|
    /*5A*/,"F7"
 | 
						|
    /*5B*/,"F8"
 | 
						|
    /*5C*/,"F9"
 | 
						|
    /*5D*/,"F10"
 | 
						|
    /*5E*/,"???"
 | 
						|
    /*5F*/,"???"
 | 
						|
    /*60*/,"???"
 | 
						|
    /*61*/,"???"
 | 
						|
    /*62*/,"???"
 | 
						|
    /*63*/,"???"
 | 
						|
    /*64*/,"???"
 | 
						|
    /*65*/,"???"
 | 
						|
    /*66*/,"???"
 | 
						|
    /*67*/,"???"
 | 
						|
    /*68*/,"???"
 | 
						|
    /*69*/,"???"
 | 
						|
    /*6A*/,"???"
 | 
						|
    /*6B*/,"???"
 | 
						|
    /*6C*/,"???"
 | 
						|
    /*6D*/,"???"
 | 
						|
    /*6E*/,"???"
 | 
						|
    /*6F*/,"???"
 | 
						|
    /*70*/,"???"
 | 
						|
    /*71*/,"???"
 | 
						|
    /*72*/,"???"
 | 
						|
    /*73*/,"???"
 | 
						|
    /*74*/,"???"
 | 
						|
    /*75*/,"???"
 | 
						|
    /*76*/,"???"
 | 
						|
    /*77*/,"???"
 | 
						|
    /*78*/,"???"
 | 
						|
    /*79*/,"???"
 | 
						|
    /*7A*/,"???"
 | 
						|
    /*7B*/,"???"
 | 
						|
    /*7C*/,"???"
 | 
						|
    /*7D*/,"???"
 | 
						|
    /*7E*/,"???"
 | 
						|
    /*7F*/,"???"
 | 
						|
    /*80*/,"???"
 | 
						|
    /*81*/,"???"
 | 
						|
    /*82*/,"???"
 | 
						|
    /*83*/,"???"
 | 
						|
    /*84*/,"???"
 | 
						|
    /*85*/,"???"
 | 
						|
    /*86*/,"???"
 | 
						|
    /*87*/,"F11"
 | 
						|
    /*88*/,"F12"
 | 
						|
    /*89*/,"???"
 | 
						|
    /*8A*/,"???"
 | 
						|
    /*8B*/,"???"
 | 
						|
    /*8C*/,"???"
 | 
						|
    /*8D*/,"???"
 | 
						|
    /*8E*/,"???"
 | 
						|
    /*8F*/,"???"
 | 
						|
    /*90*/,"???"
 | 
						|
    /*91*/,"???"
 | 
						|
    /*92*/,"???"
 | 
						|
    /*93*/,"???"
 | 
						|
    /*94*/,"???"
 | 
						|
    /*95*/,"???"
 | 
						|
    /*96*/,"???"
 | 
						|
    /*97*/,"???"
 | 
						|
    /*98*/,"???"
 | 
						|
    /*99*/,"???"
 | 
						|
    /*9A*/,"???"
 | 
						|
    /*9B*/,"???"
 | 
						|
    /*9C*/,"???"
 | 
						|
    /*9D*/,"???"
 | 
						|
    /*9E*/,"???"
 | 
						|
    /*9F*/,"???"
 | 
						|
    /*A0*/,"???"
 | 
						|
    /*A1*/,"???"
 | 
						|
    /*A2*/,"???"
 | 
						|
    /*A3*/,"???"
 | 
						|
    /*A4*/,"???"
 | 
						|
    /*A5*/,"???"
 | 
						|
    /*A6*/,"???"
 | 
						|
    /*A7*/,"???"
 | 
						|
    /*A8*/,"???"
 | 
						|
    /*A9*/,"???"
 | 
						|
    /*AA*/,"???"
 | 
						|
    /*AB*/,"???"
 | 
						|
    /*AC*/,"???"
 | 
						|
    /*AD*/,"???"
 | 
						|
    /*AE*/,"???"
 | 
						|
    /*AF*/,"???"
 | 
						|
    /*B0*/,"???"
 | 
						|
    /*B1*/,"???"
 | 
						|
    /*B2*/,"???"
 | 
						|
    /*B3*/,"???"
 | 
						|
    /*B4*/,"???"
 | 
						|
    /*B5*/,"???"
 | 
						|
    /*B6*/,"???"
 | 
						|
    /*B7*/,"???"
 | 
						|
    /*B8*/,"???"
 | 
						|
    /*B9*/,"???"
 | 
						|
    /*BA*/,"???"
 | 
						|
    /*BB*/,"???"
 | 
						|
    /*BC*/,"???"
 | 
						|
    /*BD*/,"???"
 | 
						|
    /*BE*/,"???"
 | 
						|
    /*BF*/,"???"
 | 
						|
    /*C0*/,"???"
 | 
						|
    /*C1*/,"???"
 | 
						|
    /*C2*/,"Win L"
 | 
						|
    /*C3*/,"Win R"
 | 
						|
    /*C4*/,"Win M"
 | 
						|
    /*C5*/,"???"
 | 
						|
    /*C6*/,"???"
 | 
						|
    /*C7*/,"???"
 | 
						|
    /*C8*/,"???"
 | 
						|
    /*C9*/,"???"
 | 
						|
    /*CA*/,"???"
 | 
						|
    /*CB*/,"???"
 | 
						|
    /*CC*/,"???"
 | 
						|
    /*CD*/,"???"
 | 
						|
    /*CE*/,"???"
 | 
						|
    /*CF*/,"???"
 | 
						|
    /*D0*/,"???"
 | 
						|
    /*D1*/,"???"
 | 
						|
    /*D2*/,"???"
 | 
						|
    /*D3*/,"???"
 | 
						|
    /*D4*/,"???"
 | 
						|
    /*D5*/,"???"
 | 
						|
    /*D6*/,"???"
 | 
						|
    /*D7*/,"???"
 | 
						|
    /*D8*/,"???"
 | 
						|
    /*D9*/,"???"
 | 
						|
    /*DA*/,"???"
 | 
						|
    /*DB*/,"???"
 | 
						|
    /*DC*/,"???"
 | 
						|
    /*DD*/,"???"
 | 
						|
    /*DE*/,"???"
 | 
						|
    /*DF*/,"???"
 | 
						|
    /*E0*/,"Enter"
 | 
						|
    /*E1*/,"???"
 | 
						|
    /*E2*/,"???"
 | 
						|
    /*E3*/,"???"
 | 
						|
    /*E4*/,"???"
 | 
						|
    /*E5*/,"???"
 | 
						|
    /*E6*/,"???"
 | 
						|
    /*E7*/,"???"
 | 
						|
    /*E8*/,"???"
 | 
						|
    /*E9*/,"???"
 | 
						|
    /*EA*/,"???"
 | 
						|
    /*EB*/,"???"
 | 
						|
    /*EC*/,"???"
 | 
						|
    /*ED*/,"???"
 | 
						|
    /*EE*/,"???"
 | 
						|
    /*EF*/,"???"
 | 
						|
    /*F0*/,"???"
 | 
						|
    /*F1*/,"???"
 | 
						|
    /*F2*/,"???"
 | 
						|
    /*F3*/,"???"
 | 
						|
    /*F4*/,"???"
 | 
						|
    /*F5*/,"???"
 | 
						|
    /*F6*/,"???"
 | 
						|
    /*F7*/,"???"
 | 
						|
    /*F8*/,"???"
 | 
						|
    /*F9*/,"???"
 | 
						|
    /*FA*/,"???"
 | 
						|
    /*FB*/,"???"
 | 
						|
    /*FC*/,"???"
 | 
						|
    /*FD*/,"???"
 | 
						|
    /*FE*/,"???"
 | 
						|
    /*FF*/,"???"
 | 
						|
};
 | 
						|
 | 
						|
const char* Table_Ctrl[256] =
 | 
						|
{
 | 
						|
    /*00*/ "???"
 | 
						|
    /*01*/,"Esc"
 | 
						|
    /*02*/,"???"
 | 
						|
    /*03*/,"2 @"
 | 
						|
    /*04*/,"???"
 | 
						|
    /*05*/,"???"
 | 
						|
    /*06*/,"???"
 | 
						|
    /*07*/,"6 ^"
 | 
						|
    /*08*/,"???"
 | 
						|
    /*09*/,"8 *"
 | 
						|
    /*0A*/,"???"
 | 
						|
    /*0B*/,"???"
 | 
						|
    /*0C*/,"- _"
 | 
						|
    /*0D*/,"= +"
 | 
						|
    /*0E*/,"BkSpc"
 | 
						|
    /*0F*/,"???"
 | 
						|
    /*10*/,"Q"
 | 
						|
    /*11*/,"W"
 | 
						|
    /*12*/,"E"
 | 
						|
    /*13*/,"R"
 | 
						|
    /*14*/,"T"
 | 
						|
    /*15*/,"Y"
 | 
						|
    /*16*/,"U"
 | 
						|
    /*17*/,"I"
 | 
						|
    /*18*/,"O"
 | 
						|
    /*19*/,"P"
 | 
						|
    /*1A*/,"[ /*"
 | 
						|
    /*1B*/,"] */"
 | 
						|
    /*1C*/,"Retrn"
 | 
						|
    /*1D*/,"???"
 | 
						|
    /*1E*/,"A"
 | 
						|
    /*1F*/,"S"
 | 
						|
    /*20*/,"D"
 | 
						|
    /*21*/,"F"
 | 
						|
    /*22*/,"G"
 | 
						|
    /*23*/,"H"
 | 
						|
    /*24*/,"J"
 | 
						|
    /*25*/,"K"
 | 
						|
    /*26*/,"L"
 | 
						|
    /*27*/,"; :"
 | 
						|
    /*28*/,"???"
 | 
						|
    /*29*/,"???"
 | 
						|
    /*2A*/,"???"
 | 
						|
    /*2B*/,"\\"
 | 
						|
    /*2C*/,"Z"
 | 
						|
    /*2D*/,"X"
 | 
						|
    /*2E*/,"C"
 | 
						|
    /*2F*/,"V"
 | 
						|
    /*30*/,"B"
 | 
						|
    /*31*/,"N"
 | 
						|
    /*32*/,"M"
 | 
						|
    /*33*/,"???"
 | 
						|
    /*34*/,"???"
 | 
						|
    /*35*/,"???"
 | 
						|
    /*36*/,"???"
 | 
						|
    /*37*/,"???"
 | 
						|
    /*38*/,"???"
 | 
						|
    /*39*/,"Space"
 | 
						|
    /*3A*/,"???"
 | 
						|
    /*3B*/,"???"
 | 
						|
    /*3C*/,"???"
 | 
						|
    /*3D*/,"???"
 | 
						|
    /*3E*/,"???"
 | 
						|
    /*3F*/,"???"
 | 
						|
    /*40*/,"???"
 | 
						|
    /*41*/,"???"
 | 
						|
    /*42*/,"???"
 | 
						|
    /*43*/,"???"
 | 
						|
    /*44*/,"???"
 | 
						|
    /*45*/,"???"
 | 
						|
    /*46*/,"???"
 | 
						|
    /*47*/,"???"
 | 
						|
    /*48*/,"???"
 | 
						|
    /*49*/,"???"
 | 
						|
    /*4A*/,"???"
 | 
						|
    /*4B*/,"???"
 | 
						|
    /*4C*/,"???"
 | 
						|
    /*4D*/,"???"
 | 
						|
    /*4E*/,"???"
 | 
						|
    /*4F*/,"???"
 | 
						|
    /*50*/,"???"
 | 
						|
    /*51*/,"???"
 | 
						|
    /*52*/,"???"
 | 
						|
    /*53*/,"???"
 | 
						|
    /*54*/,"???"
 | 
						|
    /*55*/,"???"
 | 
						|
    /*56*/,"???"
 | 
						|
    /*57*/,"???"
 | 
						|
    /*58*/,"???"
 | 
						|
    /*59*/,"???"
 | 
						|
    /*5A*/,"???"
 | 
						|
    /*5B*/,"???"
 | 
						|
    /*5C*/,"???"
 | 
						|
    /*5D*/,"???"
 | 
						|
    /*5E*/,"F1"
 | 
						|
    /*5F*/,"F2"
 | 
						|
    /*60*/,"F3"
 | 
						|
    /*61*/,"F4"
 | 
						|
    /*62*/,"F5"
 | 
						|
    /*63*/,"F6"
 | 
						|
    /*64*/,"F7"
 | 
						|
    /*65*/,"F8"
 | 
						|
    /*66*/,"F9"
 | 
						|
    /*67*/,"F10"
 | 
						|
    /*68*/,"???"
 | 
						|
    /*69*/,"???"
 | 
						|
    /*6A*/,"???"
 | 
						|
    /*6B*/,"???"
 | 
						|
    /*6C*/,"???"
 | 
						|
    /*6D*/,"???"
 | 
						|
    /*6E*/,"???"
 | 
						|
    /*6F*/,"???"
 | 
						|
    /*70*/,"???"
 | 
						|
    /*71*/,"???"
 | 
						|
    /*72*/,"???"
 | 
						|
    /*73*/,"Left"
 | 
						|
    /*74*/,"Right"
 | 
						|
    /*75*/,"End"
 | 
						|
    /*76*/,"PgDn"
 | 
						|
    /*77*/,"Home"
 | 
						|
    /*78*/,"???"
 | 
						|
    /*79*/,"???"
 | 
						|
    /*7A*/,"???"
 | 
						|
    /*7B*/,"???"
 | 
						|
    /*7C*/,"???"
 | 
						|
    /*7D*/,"???"
 | 
						|
    /*7E*/,"???"
 | 
						|
    /*7F*/,"???"
 | 
						|
    /*80*/,"???"
 | 
						|
    /*81*/,"???"
 | 
						|
    /*82*/,"???"
 | 
						|
    /*83*/,"???"
 | 
						|
    /*84*/,"PgUp"
 | 
						|
    /*85*/,"???"
 | 
						|
    /*86*/,"???"
 | 
						|
    /*87*/,"???"
 | 
						|
    /*88*/,"???"
 | 
						|
    /*89*/,"F11"
 | 
						|
    /*8A*/,"F12"
 | 
						|
    /*8B*/,"???"
 | 
						|
    /*8C*/,"???"
 | 
						|
    /*8D*/,"Up"
 | 
						|
    /*8E*/,"Grey-"
 | 
						|
    /*8F*/,"Keyp5"
 | 
						|
    /*90*/,"Grey+"
 | 
						|
    /*91*/,"Down"
 | 
						|
    /*92*/,"Ins"
 | 
						|
    /*93*/,"Del"
 | 
						|
    /*94*/,"Tab"
 | 
						|
    /*95*/,"Grey/"
 | 
						|
    /*96*/,"Grey*"
 | 
						|
    /*97*/,"???"
 | 
						|
    /*98*/,"???"
 | 
						|
    /*99*/,"???"
 | 
						|
    /*9A*/,"???"
 | 
						|
    /*9B*/,"???"
 | 
						|
    /*9C*/,"???"
 | 
						|
    /*9D*/,"???"
 | 
						|
    /*9E*/,"???"
 | 
						|
    /*9F*/,"???"
 | 
						|
    /*A0*/,"???"
 | 
						|
    /*A1*/,"???"
 | 
						|
    /*A2*/,"???"
 | 
						|
    /*A3*/,"???"
 | 
						|
    /*A4*/,"???"
 | 
						|
    /*A5*/,"???"
 | 
						|
    /*A6*/,"???"
 | 
						|
    /*A7*/,"???"
 | 
						|
    /*A8*/,"???"
 | 
						|
    /*A9*/,"???"
 | 
						|
    /*AA*/,"???"
 | 
						|
    /*AB*/,"???"
 | 
						|
    /*AC*/,"???"
 | 
						|
    /*AD*/,"???"
 | 
						|
    /*AE*/,"???"
 | 
						|
    /*AF*/,"???"
 | 
						|
    /*B0*/,"???"
 | 
						|
    /*B1*/,"???"
 | 
						|
    /*B2*/,"???"
 | 
						|
    /*B3*/,"???"
 | 
						|
    /*B4*/,"???"
 | 
						|
    /*B5*/,"???"
 | 
						|
    /*B6*/,"???"
 | 
						|
    /*B7*/,"???"
 | 
						|
    /*B8*/,"???"
 | 
						|
    /*B9*/,"???"
 | 
						|
    /*BA*/,"???"
 | 
						|
    /*BB*/,"???"
 | 
						|
    /*BC*/,"???"
 | 
						|
    /*BD*/,"???"
 | 
						|
    /*BE*/,"???"
 | 
						|
    /*BF*/,"???"
 | 
						|
    /*C0*/,"???"
 | 
						|
    /*C1*/,"???"
 | 
						|
    /*C2*/,"???"
 | 
						|
    /*C3*/,"???"
 | 
						|
    /*C4*/,"???"
 | 
						|
    /*C5*/,"???"
 | 
						|
    /*C6*/,"???"
 | 
						|
    /*C7*/,"???"
 | 
						|
    /*C8*/,"???"
 | 
						|
    /*C9*/,"???"
 | 
						|
    /*CA*/,"???"
 | 
						|
    /*CB*/,"???"
 | 
						|
    /*CC*/,"???"
 | 
						|
    /*CD*/,"???"
 | 
						|
    /*CE*/,"Win L"
 | 
						|
    /*CF*/,"Win R"
 | 
						|
    /*D0*/,"Win M"
 | 
						|
    /*D1*/,"???"
 | 
						|
    /*D2*/,"???"
 | 
						|
    /*D3*/,"???"
 | 
						|
    /*D4*/,"???"
 | 
						|
    /*D5*/,"???"
 | 
						|
    /*D6*/,"???"
 | 
						|
    /*D7*/,"???"
 | 
						|
    /*D8*/,"???"
 | 
						|
    /*D9*/,"???"
 | 
						|
    /*DA*/,"???"
 | 
						|
    /*DB*/,"???"
 | 
						|
    /*DC*/,"???"
 | 
						|
    /*DD*/,"???"
 | 
						|
    /*DE*/,"???"
 | 
						|
    /*DF*/,"???"
 | 
						|
    /*E0*/,"Enter"
 | 
						|
    /*E1*/,"???"
 | 
						|
    /*E2*/,"???"
 | 
						|
    /*E3*/,"???"
 | 
						|
    /*E4*/,"???"
 | 
						|
    /*E5*/,"???"
 | 
						|
    /*E6*/,"???"
 | 
						|
    /*E7*/,"???"
 | 
						|
    /*E8*/,"???"
 | 
						|
    /*E9*/,"???"
 | 
						|
    /*EA*/,"???"
 | 
						|
    /*EB*/,"???"
 | 
						|
    /*EC*/,"???"
 | 
						|
    /*ED*/,"???"
 | 
						|
    /*EE*/,"???"
 | 
						|
    /*EF*/,"???"
 | 
						|
    /*F0*/,"???"
 | 
						|
    /*F1*/,"???"
 | 
						|
    /*F2*/,"???"
 | 
						|
    /*F3*/,"???"
 | 
						|
    /*F4*/,"???"
 | 
						|
    /*F5*/,"???"
 | 
						|
    /*F6*/,"???"
 | 
						|
    /*F7*/,"???"
 | 
						|
    /*F8*/,"???"
 | 
						|
    /*F9*/,"???"
 | 
						|
    /*FA*/,"???"
 | 
						|
    /*FB*/,"???"
 | 
						|
    /*FC*/,"???"
 | 
						|
    /*FD*/,"???"
 | 
						|
    /*FE*/,"???"
 | 
						|
    /*FF*/,"???"
 | 
						|
};
 | 
						|
 | 
						|
const char* Table_Alt[256] =
 | 
						|
{
 | 
						|
    /*00*/ "???"
 | 
						|
    /*01*/,"Esc"
 | 
						|
    /*02*/,"???"
 | 
						|
    /*03*/,"???"
 | 
						|
    /*04*/,"???"
 | 
						|
    /*05*/,"???"
 | 
						|
    /*06*/,"???"
 | 
						|
    /*07*/,"???"
 | 
						|
    /*08*/,"???"
 | 
						|
    /*09*/,"???"
 | 
						|
    /*0A*/,"???"
 | 
						|
    /*0B*/,"???"
 | 
						|
    /*0C*/,"???"
 | 
						|
    /*0D*/,"???"
 | 
						|
    /*0E*/,"BkSpc"
 | 
						|
    /*0F*/,"???"
 | 
						|
    /*10*/,"Q"
 | 
						|
    /*11*/,"W"
 | 
						|
    /*12*/,"E"
 | 
						|
    /*13*/,"R"
 | 
						|
    /*14*/,"T"
 | 
						|
    /*15*/,"Y"
 | 
						|
    /*16*/,"U"
 | 
						|
    /*17*/,"I"
 | 
						|
    /*18*/,"O"
 | 
						|
    /*19*/,"P"
 | 
						|
    /*1A*/,"[ /*"
 | 
						|
    /*1B*/,"] */"
 | 
						|
    /*1C*/,"Retrn"
 | 
						|
    /*1D*/,"???"
 | 
						|
    /*1E*/,"A"
 | 
						|
    /*1F*/,"S"
 | 
						|
    /*20*/,"D"
 | 
						|
    /*21*/,"F"
 | 
						|
    /*22*/,"G"
 | 
						|
    /*23*/,"H"
 | 
						|
    /*24*/,"J"
 | 
						|
    /*25*/,"K"
 | 
						|
    /*26*/,"L"
 | 
						|
    /*27*/,"; :"
 | 
						|
    /*28*/,"' "
 | 
						|
    /*29*/,"` ~"
 | 
						|
    /*2A*/,"???"
 | 
						|
    /*2B*/,"\\"
 | 
						|
    /*2C*/,"Z"
 | 
						|
    /*2D*/,"X"
 | 
						|
    /*2E*/,"C"
 | 
						|
    /*2F*/,"V"
 | 
						|
    /*30*/,"B"
 | 
						|
    /*31*/,"N"
 | 
						|
    /*32*/,"M"
 | 
						|
    /*33*/,", <"
 | 
						|
    /*34*/,". >"
 | 
						|
    /*35*/,"/ ?"
 | 
						|
    /*36*/,"???"
 | 
						|
    /*37*/,"Grey*"
 | 
						|
    /*38*/,"???"
 | 
						|
    /*39*/,"Space"
 | 
						|
    /*3A*/,"???"
 | 
						|
    /*3B*/,"???"
 | 
						|
    /*3C*/,"???"
 | 
						|
    /*3D*/,"???"
 | 
						|
    /*3E*/,"???"
 | 
						|
    /*3F*/,"???"
 | 
						|
    /*40*/,"???"
 | 
						|
    /*41*/,"???"
 | 
						|
    /*42*/,"???"
 | 
						|
    /*43*/,"???"
 | 
						|
    /*44*/,"???"
 | 
						|
    /*45*/,"???"
 | 
						|
    /*46*/,"???"
 | 
						|
    /*47*/,"???"
 | 
						|
    /*48*/,"???"
 | 
						|
    /*49*/,"???"
 | 
						|
    /*4A*/,"Grey-"
 | 
						|
    /*4B*/,"???"
 | 
						|
    /*4C*/,"???"
 | 
						|
    /*4D*/,"???"
 | 
						|
    /*4E*/,"Grey+"
 | 
						|
    /*4F*/,"???"
 | 
						|
    /*50*/,"???"
 | 
						|
    /*51*/,"???"
 | 
						|
    /*52*/,"???"
 | 
						|
    /*53*/,"???"
 | 
						|
    /*54*/,"???"
 | 
						|
    /*55*/,"???"
 | 
						|
    /*56*/,"???"
 | 
						|
    /*57*/,"???"
 | 
						|
    /*58*/,"???"
 | 
						|
    /*59*/,"???"
 | 
						|
    /*5A*/,"???"
 | 
						|
    /*5B*/,"???"
 | 
						|
    /*5C*/,"???"
 | 
						|
    /*5D*/,"???"
 | 
						|
    /*5E*/,"???"
 | 
						|
    /*5F*/,"???"
 | 
						|
    /*60*/,"???"
 | 
						|
    /*61*/,"???"
 | 
						|
    /*62*/,"???"
 | 
						|
    /*63*/,"???"
 | 
						|
    /*64*/,"???"
 | 
						|
    /*65*/,"???"
 | 
						|
    /*66*/,"???"
 | 
						|
    /*67*/,"???"
 | 
						|
    /*68*/,"F1"
 | 
						|
    /*69*/,"F2"
 | 
						|
    /*6A*/,"F3"
 | 
						|
    /*6B*/,"F4"
 | 
						|
    /*6C*/,"F5"
 | 
						|
    /*6D*/,"F6"
 | 
						|
    /*6E*/,"F7"
 | 
						|
    /*6F*/,"F8"
 | 
						|
    /*70*/,"F9"
 | 
						|
    /*71*/,"F10"
 | 
						|
    /*72*/,"???"
 | 
						|
    /*73*/,"???"
 | 
						|
    /*74*/,"???"
 | 
						|
    /*75*/,"???"
 | 
						|
    /*76*/,"???"
 | 
						|
    /*77*/,"???"
 | 
						|
    /*78*/,"1 !"
 | 
						|
    /*79*/,"2 @"
 | 
						|
    /*7A*/,"3 #"
 | 
						|
    /*7B*/,"4 $"
 | 
						|
    /*7C*/,"5 %"
 | 
						|
    /*7D*/,"6 ^"
 | 
						|
    /*7E*/,"7 &"
 | 
						|
    /*7F*/,"8 *"
 | 
						|
    /*80*/,"9 ("
 | 
						|
    /*81*/,"0 )"
 | 
						|
    /*82*/,"- _"
 | 
						|
    /*83*/,"= +"
 | 
						|
    /*84*/,"???"
 | 
						|
    /*85*/,"???"
 | 
						|
    /*86*/,"???"
 | 
						|
    /*87*/,"???"
 | 
						|
    /*88*/,"???"
 | 
						|
    /*89*/,"???"
 | 
						|
    /*8A*/,"???"
 | 
						|
    /*8B*/,"F11"
 | 
						|
    /*8C*/,"F12"
 | 
						|
    /*8D*/,"???"
 | 
						|
    /*8E*/,"???"
 | 
						|
    /*8F*/,"???"
 | 
						|
    /*90*/,"???"
 | 
						|
    /*91*/,"???"
 | 
						|
    /*92*/,"???"
 | 
						|
    /*93*/,"???"
 | 
						|
    /*94*/,"???"
 | 
						|
    /*95*/,"???"
 | 
						|
    /*96*/,"???"
 | 
						|
    /*97*/,"Home"
 | 
						|
    /*98*/,"Up"
 | 
						|
    /*99*/,"PgUp"
 | 
						|
    /*9A*/,"???"
 | 
						|
    /*9B*/,"Left"
 | 
						|
    /*9C*/,"???"
 | 
						|
    /*9D*/,"Right"
 | 
						|
    /*9E*/,"???"
 | 
						|
    /*9F*/,"End"
 | 
						|
    /*A0*/,"Down"
 | 
						|
    /*A1*/,"PgDn"
 | 
						|
    /*A2*/,"Ins"
 | 
						|
    /*A3*/,"Del"
 | 
						|
    /*A4*/,"Grey/"
 | 
						|
    /*A5*/,"Tab"
 | 
						|
    /*A6*/,"Enter"
 | 
						|
    /*A7*/,"???"
 | 
						|
    /*A8*/,"???"
 | 
						|
    /*A9*/,"???"
 | 
						|
    /*AA*/,"???"
 | 
						|
    /*AB*/,"???"
 | 
						|
    /*AC*/,"???"
 | 
						|
    /*AD*/,"???"
 | 
						|
    /*AE*/,"???"
 | 
						|
    /*AF*/,"???"
 | 
						|
    /*B0*/,"???"
 | 
						|
    /*B1*/,"???"
 | 
						|
    /*B2*/,"???"
 | 
						|
    /*B3*/,"???"
 | 
						|
    /*B4*/,"???"
 | 
						|
    /*B5*/,"???"
 | 
						|
    /*B6*/,"???"
 | 
						|
    /*B7*/,"???"
 | 
						|
    /*B8*/,"???"
 | 
						|
    /*B9*/,"???"
 | 
						|
    /*BA*/,"???"
 | 
						|
    /*BB*/,"???"
 | 
						|
    /*BC*/,"???"
 | 
						|
    /*BD*/,"???"
 | 
						|
    /*BE*/,"???"
 | 
						|
    /*BF*/,"???"
 | 
						|
    /*C0*/,"???"
 | 
						|
    /*C1*/,"???"
 | 
						|
    /*C2*/,"???"
 | 
						|
    /*C3*/,"???"
 | 
						|
    /*C4*/,"???"
 | 
						|
    /*C5*/,"???"
 | 
						|
    /*C6*/,"???"
 | 
						|
    /*C7*/,"???"
 | 
						|
    /*C8*/,"???"
 | 
						|
    /*C9*/,"???"
 | 
						|
    /*CA*/,"???"
 | 
						|
    /*CB*/,"???"
 | 
						|
    /*CC*/,"???"
 | 
						|
    /*CD*/,"???"
 | 
						|
    /*CE*/,"???"
 | 
						|
    /*CF*/,"???"
 | 
						|
    /*D0*/,"???"
 | 
						|
    /*D1*/,"???"
 | 
						|
    /*D2*/,"???"
 | 
						|
    /*D3*/,"???"
 | 
						|
    /*D4*/,"???"
 | 
						|
    /*D5*/,"???"
 | 
						|
    /*D6*/,"???"
 | 
						|
    /*D7*/,"???"
 | 
						|
    /*D8*/,"???"
 | 
						|
    /*D9*/,"???"
 | 
						|
    /*DA*/,"Win L"
 | 
						|
    /*DB*/,"Win R"
 | 
						|
    /*DC*/,"Win M"
 | 
						|
    /*DD*/,"???"
 | 
						|
    /*DE*/,"???"
 | 
						|
    /*DF*/,"???"
 | 
						|
    /*E0*/,"???"
 | 
						|
    /*E1*/,"???"
 | 
						|
    /*E2*/,"???"
 | 
						|
    /*E3*/,"???"
 | 
						|
    /*E4*/,"???"
 | 
						|
    /*E5*/,"???"
 | 
						|
    /*E6*/,"???"
 | 
						|
    /*E7*/,"???"
 | 
						|
    /*E8*/,"???"
 | 
						|
    /*E9*/,"???"
 | 
						|
    /*EA*/,"???"
 | 
						|
    /*EB*/,"???"
 | 
						|
    /*EC*/,"???"
 | 
						|
    /*ED*/,"???"
 | 
						|
    /*EE*/,"???"
 | 
						|
    /*EF*/,"???"
 | 
						|
    /*F0*/,"???"
 | 
						|
    /*F1*/,"???"
 | 
						|
    /*F2*/,"???"
 | 
						|
    /*F3*/,"???"
 | 
						|
    /*F4*/,"???"
 | 
						|
    /*F5*/,"???"
 | 
						|
    /*F6*/,"???"
 | 
						|
    /*F7*/,"???"
 | 
						|
    /*F8*/,"???"
 | 
						|
    /*F9*/,"???"
 | 
						|
    /*FA*/,"???"
 | 
						|
    /*FB*/,"???"
 | 
						|
    /*FC*/,"???"
 | 
						|
    /*FD*/,"???"
 | 
						|
    /*FE*/,"???"
 | 
						|
    /*FF*/,"???"
 | 
						|
};
 |