/****************************************************************************/
/*              Beebem - (c) David Alan Gilbert 1994                        */
/*              ------------------------------------                        */
/* This program may be distributed freely within the following restrictions:*/
/*                                                                          */
/* 1) You may not charge for this program or for any part of it.            */
/* 2) This copyright message must be distributed with all copies.           */
/* 3) This program must be distributed complete with source code.  Binary   */
/*    only distribution is not permitted.                                   */
/* 4) The author offers no warrenties, or guarentees etc. - you use it at   */
/*    your own risk.  If it messes something up or destroys your computer   */
/*    thats YOUR problem.                                                   */
/* 5) You may use small sections of code from this program in your own      */
/*    applications - but you must acknowledge its use.  If you plan to use  */
/*    large sections then please ask the author.                            */
/*                                                                          */
/* If you do not agree with any of the above then please do not use this    */
/* program.                                                                 */
/* Please report any problems to the author at gilbertd@cs.man.ac.uk        */
/****************************************************************************/

/* My 2nd effort at a key table.  What this does is to cheat and effectivly ignore
what is written on the PC's key tops and do something more useful for the beeb! */
static struct BeebKeyTrans transTable[]={
  {XK_Escape,7,0,Same}, {XK_F1,7,1,Same}, {XK_F2,7,2,Same}, {XK_F3,7,3,Same}, {XK_F5,7,4,Same},
  {XK_F6,7,5,Same}, {XK_F8,7,6,Same}, {XK_F9,7,7,Same}, {XK_backslash,7,8,Same},
  {XK_Right,7,9,Same},

  {XK_q,1,0}, {XK_3,1,1,Same},
  {XK_4,1,2,Same}, {XK_5,1,3,Same}, {XK_F4,1,4,Same}, {XK_8,1,5}, {XK_F7,1,6,Same},
  {XK_minus, 1,7,Same}, {XK_equal,1,8,Same},/* 1,7 is minus and equals , 1,8 is tilda,circumflex */
  {XK_Left,1,9,Same},

  {XK_F10,2,0,Same}, {XK_w,2,1,Same}, {XK_e,2,2,Same},
  {XK_t,2,3,Same}, {XK_7,2,4,Same}, 
  {XK_9,2,6,Same}, {XK_i,2,5,Same},
  {XK_0,2,7,Same}, {XK_numbersign,2,8,Same},/* 2,8 is sterling and underscore */
  {XK_Down,2,9,Same},

  {XK_1,3,0,Same}, {XK_2,3,1,Same},
  {XK_d,3,2,Same}, {XK_r,3,3,Same},
  {XK_6,3,4,Same}, {XK_u,3,5,Same},
  {XK_o,3,6,Same}, {XK_p,3,7,Same},
  {XK_bracketleft,3,8,Same}, {XK_Up,3,9,Same},

  {XK_Caps_Lock,4,0,Same}, {XK_a,4,1,Same}, {XK_x,4,2,Same},
  {XK_f,4,3,Same},{XK_y,4,4,Same}, {XK_j,4,5,Same},
  {XK_k,4,6,Same},{XK_grave,4,7,Same}, {XK_apostrophe,4,8,Same}, /* 4,8 is : and * */
  {XK_Return,4,9,Same},{XK_Linefeed,4,9,Same},

  {XK_Shift_Lock,5,0,Same},{XK_Num_Lock,5,0,Same},{XK_s,5,1,Same},
  {XK_c,5,2,Same},{XK_g,5,3,Same},{XK_h,5,4,Same},
  {XK_n,5,5,Same},{XK_l,5,6,Same},{XK_semicolon,5,7,Same}, /* 5,7 is ; and plus */
  {XK_bracketright,5,8,Same},{XK_Delete,5,9,Same},{XK_BackSpace,5,9,Same},
  
  {XK_Tab,6,0,Same},{XK_z,6,1,Same},{XK_space,6,2,Same},{XK_v,6,3,Same},
  {XK_b,6,4,Same},{XK_m,6,5,Same},{XK_comma,6,6,Same},
  {XK_period,6,7,Same},{XK_slash,6,8,Same},
  {XK_End,6,9,Same}, /* That one is copy */

  {XK_Shift_L,0,0,Same}, {XK_Shift_R,0,0,Same}, {XK_Control_L,0,1,Same},{XK_Control_R,0,1,Same},

  {XK_Pause,-2,-2,Same}, {XK_Break,-2,-2,Same}, {XK_F12,-2,-2,Same},/* Hacks for break - the modmap on my PC doesn't seem to have Break in it*/
  {0,-1,-1,Same} /* Termination of list */
};
