home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / jove414s.zip / keys.c < prev    next >
C/C++ Source or Header  |  1991-07-09  |  45KB  |  1,072 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
  3.  * is provided to you without charge, and with no warranty.  You may give  *
  4.  * away copies of JOVE, including sources, provided that this notice is    *
  5.  * included in all the files.                                              *
  6.  ***************************************************************************/
  7.  
  8. /* Warning:  You probably shouldn't put ifdefs anywhere *inside* the keymaps
  9.    definitions.     It'll screw up the stuff in comments (at least), and maybe
  10.    a few other things.    Yes, it *WILL* screw up the comments ... but it's
  11.    not clear that you care ... */
  12.  
  13. #include "jove.h"
  14.  
  15. data_obj *MainKeys[NCHARS] = {
  16.     (data_obj *) &commands[182],    /* C-@ */
  17.     (data_obj *) &commands[16],    /* C-A */
  18.     (data_obj *) &commands[7],    /* C-B */
  19.     (data_obj *) 0,                 /* C-C */
  20.     (data_obj *) &commands[44],    /* C-D */
  21.     (data_obj *) &commands[69],    /* C-E */
  22.     (data_obj *) &commands[85],    /* C-F */
  23.     (data_obj *) 0,                 /* C-G */
  24.     (data_obj *) &commands[46],    /* C-H */
  25.     (data_obj *) &commands[97],    /* C-I */
  26.     (data_obj *) &commands[122],    /* C-J */
  27.     (data_obj *) &commands[110],    /* C-K */
  28.     (data_obj *) &commands[152],    /* C-L */
  29.     (data_obj *) &commands[120],    /* C-M */
  30.     (data_obj *) &commands[124],    /* C-N */
  31.     (data_obj *) &commands[121],    /* C-O */
  32.     (data_obj *) &commands[136],    /* C-P */
  33.     (data_obj *) &commands[149],    /* C-Q */
  34.     (data_obj *) &commands[167],    /* C-R */
  35.     (data_obj *) &commands[165],    /* C-S */
  36.     (data_obj *) &commands[198],    /* C-T */
  37.     (data_obj *) &commands[92],    /* C-U */
  38.     (data_obj *) &commands[125],    /* C-V */
  39.     (data_obj *) &commands[106],    /* C-W */
  40.     (data_obj *) 0,                 /* C-X */
  41.     (data_obj *) &commands[211],    /* C-Y */
  42.     (data_obj *) &commands[164],    /* C-Z */
  43.     (data_obj *) 0,                 /* ESC */
  44.     (data_obj *) &commands[165],    /* C-\ */
  45. #ifndef MSDOS
  46.     (data_obj *) 0,                 /* C-] */
  47. #else /* MSDOS */
  48.     (data_obj *) &commands[83],    /* C-] */
  49. #endif /* MSDOS */
  50.     (data_obj *) &commands[149],    /* C-^ */
  51.     (data_obj *) 0,                 /* C-_ */
  52.     (data_obj *) &commands[180],    /*   */
  53.     (data_obj *) &commands[180],    /* ! */
  54.     (data_obj *) &commands[180],    /* " */
  55.     (data_obj *) &commands[180],    /* # */
  56.     (data_obj *) &commands[180],    /* $ */
  57.     (data_obj *) &commands[180],    /* % */
  58.     (data_obj *) &commands[180],    /* & */
  59.     (data_obj *) &commands[180],    /* ' */
  60.     (data_obj *) &commands[180],    /* ( */
  61.     (data_obj *) &commands[130],    /* ) */
  62.     (data_obj *) &commands[180],    /* * */
  63.     (data_obj *) &commands[180],    /* + */
  64.     (data_obj *) &commands[180],    /* , */
  65.     (data_obj *) &commands[180],    /* - */
  66.     (data_obj *) &commands[180],    /* . */
  67.     (data_obj *) &commands[180],    /* / */
  68.     (data_obj *) &commands[180],    /* 0 */
  69.     (data_obj *) &commands[180],    /* 1 */
  70.     (data_obj *) &commands[180],    /* 2 */
  71.     (data_obj *) &commands[180],    /* 3 */
  72.     (data_obj *) &commands[180],    /* 4 */
  73.     (data_obj *) &commands[180],    /* 5 */
  74.     (data_obj *) &commands[180],    /* 6 */
  75.     (data_obj *) &commands[180],    /* 7 */
  76.     (data_obj *) &commands[180],    /* 8 */
  77.     (data_obj *) &commands[180],    /* 9 */
  78.     (data_obj *) &commands[180],    /* : */
  79.     (data_obj *) &commands[180],    /* ; */
  80.     (data_obj *) &commands[180],    /* < */
  81.     (data_obj *) &commands[180],    /* = */
  82.     (data_obj *) &commands[180],    /* > */
  83.     (data_obj *) &commands[180],    /* ? */
  84.     (data_obj *) &commands[180],    /* @ */
  85.     (data_obj *) &commands[180],    /* A */
  86.     (data_obj *) &commands[180],    /* B */
  87.     (data_obj *) &commands[180],    /* C */
  88.     (data_obj *) &commands[180],    /* D */
  89.     (data_obj *) &commands[180],    /* E */
  90.     (data_obj *) &commands[180],    /* F */
  91.     (data_obj *) &commands[180],    /* G */
  92.     (data_obj *) &commands[180],    /* H */
  93.     (data_obj *) &commands[180],    /* I */
  94.     (data_obj *) &commands[180],    /* J */
  95.     (data_obj *) &commands[180],    /* K */
  96.     (data_obj *) &commands[180],    /* L */
  97.     (data_obj *) &commands[180],    /* M */
  98.     (data_obj *) &commands[180],    /* N */
  99.     (data_obj *) &commands[180],    /* O */
  100.     (data_obj *) &commands[180],    /* P */
  101.     (data_obj *) &commands[180],    /* Q */
  102.     (data_obj *) &commands[180],    /* R */
  103.     (data_obj *) &commands[180],    /* S */
  104.     (data_obj *) &commands[180],    /* T */
  105.     (data_obj *) &commands[180],    /* U */
  106.     (data_obj *) &commands[180],    /* V */
  107.     (data_obj *) &commands[180],    /* W */
  108.     (data_obj *) &commands[180],    /* X */
  109.     (data_obj *) &commands[180],    /* Y */
  110.     (data_obj *) &commands[180],    /* Z */
  111.     (data_obj *) &commands[180],    /* [ */
  112.     (data_obj *) &commands[180],    /* \ */
  113.     (data_obj *) &commands[130],    /* ] */
  114.     (data_obj *) &commands[180],    /* ^ */
  115.     (data_obj *) &commands[180],    /* _ */
  116.     (data_obj *) &commands[180],    /* ` */
  117.     (data_obj *) &commands[180],    /* a */
  118.     (data_obj *) &commands[180],    /* b */
  119.     (data_obj *) &commands[180],    /* c */
  120.     (data_obj *) &commands[180],    /* d */
  121.     (data_obj *) &commands[180],    /* e */
  122.     (data_obj *) &commands[180],    /* f */
  123.     (data_obj *) &commands[180],    /* g */
  124.     (data_obj *) &commands[180],    /* h */
  125.     (data_obj *) &commands[180],    /* i */
  126.     (data_obj *) &commands[180],    /* j */
  127.     (data_obj *) &commands[180],    /* k */
  128.     (data_obj *) &commands[180],    /* l */
  129.     (data_obj *) &commands[180],    /* m */
  130.     (data_obj *) &commands[180],    /* n */
  131.     (data_obj *) &commands[180],    /* o */
  132.     (data_obj *) &commands[180],    /* p */
  133.     (data_obj *) &commands[180],    /* q */
  134.     (data_obj *) &commands[180],    /* r */
  135.     (data_obj *) &commands[180],    /* s */
  136.     (data_obj *) &commands[180],    /* t */
  137.     (data_obj *) &commands[180],    /* u */
  138.     (data_obj *) &commands[180],    /* v */
  139.     (data_obj *) &commands[180],    /* w */
  140.     (data_obj *) &commands[180],    /* x */
  141.     (data_obj *) &commands[180],    /* y */
  142.     (data_obj *) &commands[180],    /* z */
  143.     (data_obj *) &commands[180],    /* { */
  144.     (data_obj *) &commands[180],    /* | */
  145.     (data_obj *) &commands[130],    /* } */
  146.     (data_obj *) &commands[180],    /* ~ */
  147. #ifdef ASCII
  148.     (data_obj *) &commands[46],    /* ^? */
  149. #else
  150.     (data_obj *) &commands[46],    /* ^? */
  151.     (data_obj *) &commands[180],    /* M-C-@ */
  152.     (data_obj *) &commands[180],    /* M-C-A */
  153.     (data_obj *) &commands[180],    /* M-C-B */
  154.     (data_obj *) &commands[180],    /* M-C-C */
  155.     (data_obj *) &commands[180],    /* M-C-D */
  156.     (data_obj *) &commands[180],    /* M-C-E */
  157.     (data_obj *) &commands[180],    /* M-C-F */
  158.     (data_obj *) &commands[180],    /* M-C-G */
  159.     (data_obj *) &commands[180],    /* M-C-H */
  160.     (data_obj *) &commands[180],    /* M-C-I */
  161.     (data_obj *) &commands[180],    /* M-C-J */
  162.     (data_obj *) &commands[180],    /* M-C-K */
  163.     (data_obj *) &commands[180],    /* M-C-L */
  164.     (data_obj *) &commands[180],    /* M-C-M */
  165.     (data_obj *) &commands[180],    /* M-C-N */
  166.     (data_obj *) &commands[180],    /* M-C-O */
  167.     (data_obj *) &commands[180],    /* M-C-P */
  168.     (data_obj *) &commands[180],    /* M-C-Q */
  169.     (data_obj *) &commands[180],    /* M-C-R */
  170.     (data_obj *) &commands[180],    /* M-C-S */
  171.     (data_obj *) &commands[180],    /* M-C-T */
  172.     (data_obj *) &commands[180],    /* M-C-U */
  173.     (data_obj *) &commands[180],    /* M-C-V */
  174.     (data_obj *) &commands[180],    /* M-C-W */
  175.     (data_obj *) &commands[180],    /* M-C-X */
  176.     (data_obj *) &commands[180],    /* M-C-Y */
  177.     (data_obj *) &commands[180],    /* M-C-Z */
  178.     (data_obj *) &commands[180],    /* M-ESC */
  179.     (data_obj *) &commands[180],    /* M-C-\ */
  180.     (data_obj *) &commands[180],    /* M-C-] */
  181.     (data_obj *) &commands[180],    /* M-C-^ */
  182.     (data_obj *) &commands[180],    /* M-C-_ */
  183.     (data_obj *) &commands[180],    /* M-  */
  184.     (data_obj *) &commands[180],    /* M-! */
  185.     (data_obj *) &commands[180],    /* M-" */
  186.     (data_obj *) &commands[180],    /* M-# */
  187.     (data_obj *) &commands[180],    /* M-$ */
  188.     (data_obj *) &commands[180],    /* M-% */
  189.     (data_obj *) &commands[180],    /* M-& */
  190.     (data_obj *) &commands[180],    /* M-' */
  191.     (data_obj *) &commands[180],    /* M-( */
  192.     (data_obj *) &commands[180],    /* M-) */
  193.     (data_obj *) &commands[180],    /* M-* */
  194.     (data_obj *) &commands[180],    /* M-+ */
  195.     (data_obj *) &commands[180],    /* M-, */
  196.     (data_obj *) &commands[180],    /* M-- */
  197.     (data_obj *) &commands[180],    /* M-. */
  198.     (data_obj *) &commands[180],    /* M-/ */
  199.     (data_obj *) &commands[180],    /* M-0 */
  200.     (data_obj *) &commands[180],    /* M-1 */
  201.     (data_obj *) &commands[180],    /* M-2 */
  202.     (data_obj *) &commands[180],    /* M-3 */
  203.     (data_obj *) &commands[180],    /* M-4 */
  204.     (data_obj *) &commands[180],    /* M-5 */
  205.     (data_obj *) &commands[180],    /* M-6 */
  206.     (data_obj *) &commands[180],    /* M-7 */
  207.     (data_obj *) &commands[180],    /* M-8 */
  208.     (data_obj *) &commands[180],    /* M-9 */
  209.     (data_obj *) &commands[180],    /* M-: */
  210.     (data_obj *) &commands[180],    /* M-; */
  211.     (data_obj *) &commands[180],    /* M-< */
  212.     (data_obj *) &commands[180],    /* M-= */
  213.     (data_obj *) &commands[180],    /* M-> */
  214.     (data_obj *) &commands[180],    /* M-? */
  215.     (data_obj *) &commands[180],    /* M-@ */
  216.     (data_obj *) &commands[180],    /* M-A */
  217.     (data_obj *) &commands[180],    /* M-B */
  218.     (data_obj *) &commands[180],    /* M-C */
  219.     (data_obj *) &commands[180],    /* M-D */
  220.     (data_obj *) &commands[180],    /* M-E */
  221.     (data_obj *) &commands[180],    /* M-F */
  222.     (data_obj *) &commands[180],    /* M-G */
  223.     (data_obj *) &commands[180],    /* M-H */
  224.     (data_obj *) &commands[180],    /* M-I */
  225.     (data_obj *) &commands[180],    /* M-J */
  226.     (data_obj *) &commands[180],    /* M-K */
  227.     (data_obj *) &commands[180],    /* M-L */
  228.     (data_obj *) &commands[180],    /* M-M */
  229.     (data_obj *) &commands[180],    /* M-N */
  230.     (data_obj *) &commands[180],    /* M-O */
  231.     (data_obj *) &commands[180],    /* M-P */
  232.     (data_obj *) &commands[180],    /* M-Q */
  233.     (data_obj *) &commands[180],    /* M-R */
  234.     (data_obj *) &commands[180],    /* M-S */
  235.     (data_obj *) &commands[180],    /* M-T */
  236.     (data_obj *) &commands[180],    /* M-U */
  237.     (data_obj *) &commands[180],    /* M-V */
  238.     (data_obj *) &commands[180],    /* M-W */
  239.     (data_obj *) &commands[180],    /* M-X */
  240.     (data_obj *) &commands[180],    /* M-Y */
  241.     (data_obj *) &commands[180],    /* M-Z */
  242.     (data_obj *) &commands[180],    /* M-[ */
  243.     (data_obj *) &commands[180],    /* M-\ */
  244.     (data_obj *) &commands[180],    /* M-] */
  245.     (data_obj *) &commands[180],    /* M-^ */
  246.     (data_obj *) &commands[180],    /* M-_ */
  247.     (data_obj *) &commands[180],    /* M-` */
  248.     (data_obj *) &commands[180],    /* M-a */
  249.     (data_obj *) &commands[180],    /* M-b */
  250.     (data_obj *) &commands[180],    /* M-c */
  251.     (data_obj *) &commands[180],    /* M-d */
  252.     (data_obj *) &commands[180],    /* M-e */
  253.     (data_obj *) &commands[180],    /* M-f */
  254.     (data_obj *) &commands[180],    /* M-g */
  255.     (data_obj *) &commands[180],    /* M-h */
  256.     (data_obj *) &commands[180],    /* M-i */
  257.     (data_obj *) &commands[180],    /* M-j */
  258.     (data_obj *) &commands[180],    /* M-k */
  259.     (data_obj *) &commands[180],    /* M-l */
  260.     (data_obj *) &commands[180],    /* M-m */
  261.     (data_obj *) &commands[180],    /* M-n */
  262.     (data_obj *) &commands[180],    /* M-o */
  263.     (data_obj *) &commands[180],    /* M-p */
  264.     (data_obj *) &commands[180],    /* M-q */
  265.     (data_obj *) &commands[180],    /* M-r */
  266.     (data_obj *) &commands[180],    /* M-s */
  267.     (data_obj *) &commands[180],    /* M-t */
  268.     (data_obj *) &commands[180],    /* M-u */
  269.     (data_obj *) &commands[180],    /* M-v */
  270.     (data_obj *) &commands[180],    /* M-w */
  271.     (data_obj *) &commands[180],    /* M-x */
  272.     (data_obj *) &commands[180],    /* M-y */
  273.     (data_obj *) &commands[180],    /* M-z */
  274.     (data_obj *) &commands[180],    /* M-{ */
  275.     (data_obj *) &commands[180],    /* M-| */
  276.     (data_obj *) &commands[180],    /* M-} */
  277.     (data_obj *) &commands[180],    /* M-~ */
  278. #ifdef IBMPC
  279.     (data_obj *) 0,                 /* M-^? */
  280. #else
  281.     (data_obj *) &commands[180],    /* M-^? */
  282. #endif    /* IBMPC */
  283. #endif /* ASCII */
  284. };
  285.  
  286. data_obj *EscKeys[NCHARS] = {
  287.     (data_obj *) &commands[182],    /* C-@ */
  288.     (data_obj *) 0,                 /* C-A */
  289.     (data_obj *) &commands[10],    /* C-B */
  290.     (data_obj *) 0,                 /* C-C */
  291.     (data_obj *) &commands[65],    /* C-D */
  292.     (data_obj *) 0,                 /* C-E */
  293.     (data_obj *) &commands[88],    /* C-F */
  294.     (data_obj *) 0,                 /* C-G */
  295.     (data_obj *) &commands[104],    /* C-H */
  296.     (data_obj *) 0,                 /* C-I */
  297.     (data_obj *) 0,                 /* C-J */
  298.     (data_obj *) &commands[107],    /* C-K */
  299.     (data_obj *) &commands[32],    /* C-L */
  300.     (data_obj *) 0,                 /* C-M */
  301.     (data_obj *) &commands[86],    /* C-N */
  302.     (data_obj *) 0,                 /* C-O */
  303.     (data_obj *) &commands[8],    /* C-P */
  304.     (data_obj *) 0,                 /* C-Q */
  305.     (data_obj *) 0,                 /* C-R */
  306.     (data_obj *) 0,                 /* C-S */
  307.     (data_obj *) 0,                 /* C-T */
  308.     (data_obj *) &commands[12],    /* C-U */
  309.     (data_obj *) &commands[129],    /* C-V */
  310.     (data_obj *) 0,                 /* C-W */
  311.     (data_obj *) 0,                 /* C-X */
  312.     (data_obj *) 0,                 /* C-Y */
  313.     (data_obj *) 0,                 /* C-Z */
  314.     (data_obj *) 0,                 /* ESC */
  315.     (data_obj *) 0,                 /* C-\ */
  316.     (data_obj *) 0,                 /* C-] */
  317.     (data_obj *) 0,                 /* C-^ */
  318.     (data_obj *) 0,                 /* C-_ */
  319.     (data_obj *) &commands[182],    /*   */
  320.     (data_obj *) 0,                 /* ! */
  321.     (data_obj *) 0,                 /* " */
  322.     (data_obj *) 0,                 /* # */
  323.     (data_obj *) 0,                 /* $ */
  324.     (data_obj *) 0,                 /* % */
  325.     (data_obj *) 0,                 /* & */
  326.     (data_obj *) &commands[149],    /* ' */
  327.     (data_obj *) 0,                 /* ( */
  328.     (data_obj *) 0,                 /* ) */
  329.     (data_obj *) 0,                 /* * */
  330.     (data_obj *) 0,                 /* + */
  331.     (data_obj *) &commands[17],    /* , */
  332.     (data_obj *) &commands[53],    /* - */
  333.     (data_obj *) &commands[70],    /* . */
  334.     (data_obj *) 0,                 /* / */
  335.     (data_obj *) &commands[53],    /* 0 */
  336.     (data_obj *) &commands[53],    /* 1 */
  337.     (data_obj *) &commands[53],    /* 2 */
  338.     (data_obj *) &commands[53],    /* 3 */
  339.     (data_obj *) &commands[53],    /* 4 */
  340.     (data_obj *) &commands[53],    /* 5 */
  341.     (data_obj *) &commands[53],    /* 6 */
  342.     (data_obj *) &commands[53],    /* 7 */
  343.     (data_obj *) &commands[53],    /* 8 */
  344.     (data_obj *) &commands[53],    /* 9 */
  345.     (data_obj *) 0,                 /* : */
  346.     (data_obj *) 0,                 /* ; */
  347.     (data_obj *) &commands[15],    /* < */
  348.     (data_obj *) 0,                 /* = */
  349.     (data_obj *) &commands[68],    /* > */
  350.     (data_obj *) &commands[50],    /* ? */
  351.     (data_obj *) 0,                 /* @ */
  352.     (data_obj *) &commands[11],    /* A */
  353.     (data_obj *) &commands[13],    /* B */
  354.     (data_obj *) &commands[27],    /* C */
  355.     (data_obj *) &commands[103],    /* D */
  356.     (data_obj *) &commands[89],    /* E */
  357.     (data_obj *) &commands[90],    /* F */
  358.     (data_obj *) &commands[94],    /* G */
  359.     (data_obj *) 0,                 /* H */
  360.     (data_obj *) &commands[118],    /* I */
  361.     (data_obj *) &commands[78],    /* J */
  362.     (data_obj *) &commands[111],    /* K */
  363.     (data_obj *) &commands[28],    /* L */
  364.     (data_obj *) &commands[84],    /* M */
  365.     (data_obj *) 0,                 /* N */
  366.     (data_obj *) 0,                 /* O */
  367.     (data_obj *) 0,                 /* P */
  368.     (data_obj *) &commands[147],    /* Q */
  369.     (data_obj *) &commands[156],    /* R */
  370.     (data_obj *) 0,                 /* S */
  371.     (data_obj *) 0,                 /* T */
  372.     (data_obj *) &commands[29],    /* U */
  373.     (data_obj *) &commands[137],    /* V */
  374.     (data_obj *) &commands[34],    /* W */
  375.     (data_obj *) &commands[73],    /* X */
  376.     (data_obj *) &commands[212],    /* Y */
  377.     (data_obj *) &commands[159],    /* Z */
  378.     (data_obj *) &commands[9],    /* [ */
  379.     (data_obj *) &commands[47],    /* \ */
  380.     (data_obj *) &commands[87],    /* ] */
  381.     (data_obj *) 0,                 /* ^ */
  382.     (data_obj *) 0,                 /* _ */
  383.     (data_obj *) 0,                 /* ` */
  384.     (data_obj *) &commands[11],    /* a */
  385.     (data_obj *) &commands[13],    /* b */
  386.     (data_obj *) &commands[27],    /* c */
  387.     (data_obj *) &commands[103],    /* d */
  388.     (data_obj *) &commands[89],    /* e */
  389.     (data_obj *) &commands[90],    /* f */
  390.     (data_obj *) &commands[94],    /* g */
  391.     (data_obj *) 0,                 /* h */
  392.     (data_obj *) &commands[118],    /* i */
  393.     (data_obj *) &commands[78],    /* j */
  394.     (data_obj *) &commands[111],    /* k */
  395.     (data_obj *) &commands[28],    /* l */
  396.     (data_obj *) &commands[84],    /* m */
  397.     (data_obj *) 0,                 /* n */
  398.     (data_obj *) 0,                 /* o */
  399.     (data_obj *) 0,                 /* p */
  400.     (data_obj *) &commands[147],    /* q */
  401.     (data_obj *) &commands[156],    /* r */
  402.     (data_obj *) 0,                 /* s */
  403.     (data_obj *) 0,                 /* t */
  404.     (data_obj *) &commands[29],    /* u */
  405.     (data_obj *) &commands[137],    /* v */
  406.     (data_obj *) &commands[34],    /* w */
  407.     (data_obj *) &commands[73],    /* x */
  408.     (data_obj *) &commands[212],    /* y */
  409.     (data_obj *) &commands[159],    /* z */
  410.     (data_obj *) 0,                 /* { */
  411.     (data_obj *) 0,                 /* | */
  412.     (data_obj *) 0,                 /* } */
  413.     (data_obj *) &commands[116],    /* ~ */
  414. #ifdef ASCII
  415.     (data_obj *) &commands[104],    /* ^? */
  416. #else /* IBMPC or MAC */
  417.     (data_obj *) &commands[104],    /* ^? */
  418.     (data_obj *) 0,                 /* M-C-@ */
  419.     (data_obj *) 0,                 /* M-C-A */
  420.     (data_obj *) 0,                 /* M-C-B */
  421.     (data_obj *) 0,                 /* M-C-C */
  422.     (data_obj *) 0,                 /* M-C-D */
  423.     (data_obj *) 0,                 /* M-C-E */
  424.     (data_obj *) 0,                 /* M-C-F */
  425.     (data_obj *) 0,                 /* M-C-G */
  426.     (data_obj *) 0,                 /* M-C-H */
  427.     (data_obj *) 0,                 /* M-C-I */
  428.     (data_obj *) 0,                 /* M-C-J */
  429.     (data_obj *) 0,                 /* M-C-K */
  430.     (data_obj *) 0,                 /* M-C-L */
  431.     (data_obj *) 0,                 /* M-C-M */
  432.     (data_obj *) 0,                 /* M-C-N */
  433.     (data_obj *) 0,                 /* M-C-O */
  434.     (data_obj *) 0,                 /* M-C-P */
  435.     (data_obj *) 0,                 /* M-C-Q */
  436.     (data_obj *) 0,                 /* M-C-R */
  437.     (data_obj *) 0,                 /* M-C-S */
  438.     (data_obj *) 0,                 /* M-C-T */
  439.     (data_obj *) 0,                 /* M-C-U */
  440.     (data_obj *) 0,                 /* M-C-V */
  441.     (data_obj *) 0,                 /* M-C-W */
  442.     (data_obj *) 0,                 /* M-C-X */
  443.     (data_obj *) 0,                 /* M-C-Y */
  444.     (data_obj *) 0,                 /* M-C-Z */
  445.     (data_obj *) 0,                 /* M-ESC */
  446.     (data_obj *) 0,                 /* M-C-\ */
  447.     (data_obj *) 0,                 /* M-C-] */
  448.     (data_obj *) 0,                 /* M-C-^ */
  449.     (data_obj *) 0,                 /* M-C-_ */
  450.     (data_obj *) 0,                 /* M-  */
  451.     (data_obj *) 0,                 /* M-! */
  452.     (data_obj *) 0,                 /* M-" */
  453.     (data_obj *) 0,                 /* M-# */
  454.     (data_obj *) 0,                 /* M-$ */
  455.     (data_obj *) 0,                 /* M-% */
  456.     (data_obj *) 0,                 /* M-& */
  457.     (data_obj *) 0,                 /* M-' */
  458.     (data_obj *) 0,                 /* M-( */
  459.     (data_obj *) 0,                 /* M-) */
  460.     (data_obj *) 0,                 /* M-* */
  461.     (data_obj *) 0,                 /* M-+ */
  462.     (data_obj *) 0,                 /* M-, */
  463.     (data_obj *) 0,                 /* M-- */
  464.     (data_obj *) 0,                 /* M-. */
  465.     (data_obj *) 0,                 /* M-/ */
  466.     (data_obj *) 0,                 /* M-0 */
  467.     (data_obj *) 0,                 /* M-1 */
  468.     (data_obj *) 0,                 /* M-2 */
  469.     (data_obj *) 0,                 /* M-3 */
  470.     (data_obj *) 0,                 /* M-4 */
  471.     (data_obj *) 0,                 /* M-5 */
  472.     (data_obj *) 0,                 /* M-6 */
  473.     (data_obj *) 0,                 /* M-7 */
  474.     (data_obj *) 0,                 /* M-8 */
  475.     (data_obj *) 0,                 /* M-9 */
  476.     (data_obj *) 0,                 /* M-: */
  477.     (data_obj *) 0,                 /* M-; */
  478.     (data_obj *) 0,                 /* M-< */
  479.     (data_obj *) 0,                 /* M-= */
  480.     (data_obj *) 0,                 /* M-> */
  481.     (data_obj *) 0,                 /* M-? */
  482.     (data_obj *) 0,                 /* M-@ */
  483.     (data_obj *) 0,                 /* M-A */
  484.     (data_obj *) 0,                 /* M-B */
  485.     (data_obj *) 0,                 /* M-C */
  486.     (data_obj *) 0,                 /* M-D */
  487.     (data_obj *) 0,                 /* M-E */
  488.     (data_obj *) 0,                 /* M-F */
  489.     (data_obj *) 0,                 /* M-G */
  490.     (data_obj *) 0,                 /* M-H */
  491.     (data_obj *) 0,                 /* M-I */
  492.     (data_obj *) 0,                 /* M-J */
  493.     (data_obj *) 0,                 /* M-K */
  494.     (data_obj *) 0,                 /* M-L */
  495.     (data_obj *) 0,                 /* M-M */
  496.     (data_obj *) 0,                 /* M-N */
  497.     (data_obj *) 0,                 /* M-O */
  498.     (data_obj *) 0,                 /* M-P */
  499.     (data_obj *) 0,                 /* M-Q */
  500.     (data_obj *) 0,                 /* M-R */
  501.     (data_obj *) 0,                 /* M-S */
  502.     (data_obj *) 0,                 /* M-T */
  503.     (data_obj *) 0,                 /* M-U */
  504.     (data_obj *) 0,                 /* M-V */
  505.     (data_obj *) 0,                 /* M-W */
  506.     (data_obj *) 0,                 /* M-X */
  507.     (data_obj *) 0,                 /* M-Y */
  508.     (data_obj *) 0,                 /* M-Z */
  509.     (data_obj *) 0,                 /* M-[ */
  510.     (data_obj *) 0,                 /* M-\ */
  511.     (data_obj *) 0,                 /* M-] */
  512.     (data_obj *) 0,                 /* M-^ */
  513.     (data_obj *) 0,                 /* M-_ */
  514.     (data_obj *) 0,                 /* M-` */
  515.     (data_obj *) 0,                 /* M-a */
  516.     (data_obj *) 0,                 /* M-b */
  517.     (data_obj *) 0,                 /* M-c */
  518.     (data_obj *) 0,                 /* M-d */
  519.     (data_obj *) 0,                 /* M-e */
  520.     (data_obj *) 0,                 /* M-f */
  521.     (data_obj *) 0,                 /* M-g */
  522.     (data_obj *) 0,                 /* M-h */
  523.     (data_obj *) 0,                 /* M-i */
  524.     (data_obj *) 0,                 /* M-j */
  525.     (data_obj *) 0,                 /* M-k */
  526.     (data_obj *) 0,                 /* M-l */
  527.     (data_obj *) 0,                 /* M-m */
  528.     (data_obj *) 0,                 /* M-n */
  529.     (data_obj *) 0,                 /* M-o */
  530.     (data_obj *) 0,                 /* M-p */
  531.     (data_obj *) 0,                 /* M-q */
  532.     (data_obj *) 0,                 /* M-r */
  533.     (data_obj *) 0,                 /* M-s */
  534.     (data_obj *) 0,                 /* M-t */
  535.     (data_obj *) 0,                 /* M-u */
  536.     (data_obj *) 0,                 /* M-v */
  537.     (data_obj *) 0,                 /* M-w */
  538.     (data_obj *) 0,                 /* M-x */
  539.     (data_obj *) 0,                 /* M-y */
  540.     (data_obj *) 0,                 /* M-z */
  541.     (data_obj *) 0,                 /* M-{ */
  542.     (data_obj *) 0,                 /* M-| */
  543.     (data_obj *) 0,                 /* M-} */
  544.     (data_obj *) 0,                 /* M-~ */
  545.     (data_obj *) 0,                 /* M-^? */
  546. #endif /* ASCII */
  547. };
  548.  
  549. data_obj    *CtlxKeys[NCHARS] = {
  550.     (data_obj *) 0,                 /* C-@ */
  551.     (data_obj *) 0,                 /* C-A */
  552.     (data_obj *) &commands[114],    /* C-B */
  553.     (data_obj *) &commands[76],    /* C-C */
  554.     (data_obj *) 0,                 /* C-D */
  555.     (data_obj *) &commands[33],    /* C-E */
  556.     (data_obj *) &commands[81],    /* C-F */
  557.     (data_obj *) 0,                 /* C-G */
  558.     (data_obj *) &commands[109],    /* C-H */
  559.     (data_obj *) &commands[100],    /* C-I */
  560.     (data_obj *) 0,                 /* C-J */
  561.     (data_obj *) 0,                 /* C-K */
  562.     (data_obj *) 0,                 /* C-L */
  563.     (data_obj *) &commands[209],    /* C-M */
  564.     (data_obj *) &commands[123],    /* C-N */
  565.     (data_obj *) &commands[41],    /* C-O */
  566.     (data_obj *) &commands[135],    /* C-P */
  567.     (data_obj *) 0,                 /* C-Q */
  568.     (data_obj *) &commands[203],    /* C-R */
  569.     (data_obj *) &commands[158],    /* C-S */
  570.     (data_obj *) &commands[199],    /* C-T */
  571.     (data_obj *) 0,                 /* C-U */
  572.     (data_obj *) &commands[81],    /* C-V */
  573.     (data_obj *) &commands[207],    /* C-W */
  574.     (data_obj *) &commands[72],    /* C-X */
  575.     (data_obj *) 0,                 /* C-Y */
  576.     (data_obj *) 0,                 /* C-Z */
  577.     (data_obj *) 0,                 /* ESC */
  578.     (data_obj *) &commands[158],    /* C-\ */
  579.     (data_obj *) 0,                 /* C-] */
  580.     (data_obj *) 0,                 /* C-^ */
  581.     (data_obj *) 0,                 /* C-_ */
  582.     (data_obj *) 0,                 /*   */
  583.     (data_obj *) &commands[144],    /* ! */
  584.     (data_obj *) 0,                 /* " */
  585.     (data_obj *) 0,                 /* # */
  586.     (data_obj *) 0,                 /* $ */
  587.     (data_obj *) 0,                 /* % */
  588.     (data_obj *) 0,                 /* & */
  589.     (data_obj *) 0,                 /* ' */
  590.     (data_obj *) &commands[14],    /* ( */
  591.     (data_obj *) &commands[67],    /* ) */
  592.     (data_obj *) 0,                 /* * */
  593.     (data_obj *) 0,                 /* + */
  594.     (data_obj *) 0,                 /* , */
  595.     (data_obj *) 0,                 /* - */
  596.     (data_obj *) 0,                 /* . */
  597.     (data_obj *) 0,                 /* / */
  598.     (data_obj *) 0,                 /* 0 */
  599.     (data_obj *) &commands[45],    /* 1 */
  600.     (data_obj *) &commands[193],    /* 2 */
  601.     (data_obj *) 0,                 /* 3 */
  602.     (data_obj *) &commands[204],    /* 4 */
  603.     (data_obj *) 0,                 /* 5 */
  604.     (data_obj *) 0,                 /* 6 */
  605.     (data_obj *) 0,                 /* 7 */
  606.     (data_obj *) 0,                 /* 8 */
  607.     (data_obj *) 0,                 /* 9 */
  608.     (data_obj *) 0,                 /* : */
  609.     (data_obj *) 0,                 /* ; */
  610.     (data_obj *) 0,                 /* < */
  611.     (data_obj *) &commands[22],    /* = */
  612.     (data_obj *) 0,                 /* > */
  613.     (data_obj *) &commands[51],    /* ? */
  614.     (data_obj *) 0,                 /* @ */
  615.     (data_obj *) 0,                 /* A */
  616.     (data_obj *) &commands[169],    /* B */
  617.     (data_obj *) 0,                 /* C */
  618.     (data_obj *) &commands[48],    /* D */
  619.     (data_obj *) &commands[74],    /* E */
  620.     (data_obj *) 0,                 /* F */
  621.     (data_obj *) 0,                 /* G */
  622.     (data_obj *) 0,                 /* H */
  623.     (data_obj *) 0,                 /* I */
  624.     (data_obj *) 0,                 /* J */
  625.     (data_obj *) &commands[42],    /* K */
  626.     (data_obj *) 0,                 /* L */
  627.     (data_obj *) 0,                 /* M */
  628.     (data_obj *) &commands[126],    /* N */
  629.     (data_obj *) &commands[138],    /* O */
  630.     (data_obj *) &commands[138],    /* P */
  631.     (data_obj *) 0,                 /* Q */
  632.     (data_obj *) 0,                 /* R */
  633.     (data_obj *) &commands[144],    /* S */
  634.     (data_obj *) &commands[82],    /* T */
  635.     (data_obj *) 0,                 /* U */
  636.     (data_obj *) 0,                 /* V */
  637.     (data_obj *) 0,                 /* W */
  638.     (data_obj *) 0,                 /* X */
  639.     (data_obj *) 0,                 /* Y */
  640.     (data_obj *) 0,                 /* Z */
  641.     (data_obj *) 0,                 /* [ */
  642.     (data_obj *) 0,                 /* \ */
  643.     (data_obj *) 0,                 /* ] */
  644.     (data_obj *) &commands[96],    /* ^ */
  645.     (data_obj *) 0,                 /* _ */
  646.     (data_obj *) 0,                 /* ` */
  647.     (data_obj *) 0,                 /* a */
  648.     (data_obj *) &commands[169],    /* b */
  649.     (data_obj *) 0,                 /* c */
  650.     (data_obj *) &commands[48],    /* d */
  651.     (data_obj *) &commands[74],    /* e */
  652.     (data_obj *) 0,                 /* f */
  653.     (data_obj *) 0,                 /* g */
  654.     (data_obj *) 0,                 /* h */
  655.     (data_obj *) 0,                 /* i */
  656.     (data_obj *) 0,                 /* j */
  657.     (data_obj *) &commands[42],    /* k */
  658.     (data_obj *) 0,                 /* l */
  659.     (data_obj *) 0,                 /* m */
  660.     (data_obj *) &commands[126],    /* n */
  661.     (data_obj *) &commands[138],    /* o */
  662.     (data_obj *) &commands[138],    /* p */
  663.     (data_obj *) 0,                 /* q */
  664.     (data_obj *) 0,                 /* r */
  665.     (data_obj *) &commands[144],    /* s */
  666.     (data_obj *) &commands[82],    /* t */
  667.     (data_obj *) 0,                 /* u */
  668.     (data_obj *) 0,                 /* v */
  669.     (data_obj *) 0,                 /* w */
  670.     (data_obj *) 0,                 /* x */
  671.     (data_obj *) 0,                 /* y */
  672.     (data_obj *) 0,                 /* z */
  673.     (data_obj *) 0,                 /* { */
  674.     (data_obj *) &commands[186],    /* | */
  675.     (data_obj *) 0,                 /* } */
  676.     (data_obj *) 0,                 /* ~ */
  677. #ifdef ASCII
  678.     (data_obj *) &commands[109],    /* ^? */
  679. #else /* IBMPC or MAC */
  680.     (data_obj *) &commands[109],    /* ^? */
  681.     (data_obj *) 0,                 /* M-C-@ */
  682.     (data_obj *) 0,                 /* M-C-A */
  683.     (data_obj *) 0,                 /* M-C-B */
  684.     (data_obj *) 0,                 /* M-C-C */
  685.     (data_obj *) 0,                 /* M-C-D */
  686.     (data_obj *) 0,                 /* M-C-E */
  687.     (data_obj *) 0,                 /* M-C-F */
  688.     (data_obj *) 0,                 /* M-C-G */
  689.     (data_obj *) 0,                 /* M-C-H */
  690.     (data_obj *) 0,                 /* M-C-I */
  691.     (data_obj *) 0,                 /* M-C-J */
  692.     (data_obj *) 0,                 /* M-C-K */
  693.     (data_obj *) 0,                 /* M-C-L */
  694.     (data_obj *) 0,                 /* M-C-M */
  695.     (data_obj *) 0,                 /* M-C-N */
  696.     (data_obj *) 0,                 /* M-C-O */
  697.     (data_obj *) 0,                 /* M-C-P */
  698.     (data_obj *) 0,                 /* M-C-Q */
  699.     (data_obj *) 0,                 /* M-C-R */
  700.     (data_obj *) 0,                 /* M-C-S */
  701.     (data_obj *) 0,                 /* M-C-T */
  702.     (data_obj *) 0,                 /* M-C-U */
  703.     (data_obj *) 0,                 /* M-C-V */
  704.     (data_obj *) 0,                 /* M-C-W */
  705.     (data_obj *) 0,                 /* M-C-X */
  706.     (data_obj *) 0,                 /* M-C-Y */
  707.     (data_obj *) 0,                 /* M-C-Z */
  708.     (data_obj *) 0,                 /* M-ESC */
  709.     (data_obj *) 0,                 /* M-C-\ */
  710.     (data_obj *) 0,                 /* M-C-] */
  711.     (data_obj *) 0,                 /* M-C-^ */
  712.     (data_obj *) 0,                 /* M-C-_ */
  713.     (data_obj *) 0,                 /* M-  */
  714.     (data_obj *) 0,                 /* M-! */
  715.     (data_obj *) 0,                 /* M-" */
  716.     (data_obj *) 0,                 /* M-# */
  717.     (data_obj *) 0,                 /* M-$ */
  718.     (data_obj *) 0,                 /* M-% */
  719.     (data_obj *) 0,                 /* M-& */
  720.     (data_obj *) 0,                 /* M-' */
  721.     (data_obj *) 0,                 /* M-( */
  722.     (data_obj *) 0,                 /* M-) */
  723.     (data_obj *) 0,                 /* M-* */
  724.     (data_obj *) 0,                 /* M-+ */
  725.     (data_obj *) 0,                 /* M-, */
  726.     (data_obj *) 0,                 /* M-- */
  727.     (data_obj *) 0,                 /* M-. */
  728.     (data_obj *) 0,                 /* M-/ */
  729.     (data_obj *) 0,                 /* M-0 */
  730.     (data_obj *) 0,                 /* M-1 */
  731.     (data_obj *) 0,                 /* M-2 */
  732.     (data_obj *) 0,                 /* M-3 */
  733.     (data_obj *) 0,                 /* M-4 */
  734.     (data_obj *) 0,                 /* M-5 */
  735.     (data_obj *) 0,                 /* M-6 */
  736.     (data_obj *) 0,                 /* M-7 */
  737.     (data_obj *) 0,                 /* M-8 */
  738.     (data_obj *) 0,                 /* M-9 */
  739.     (data_obj *) 0,                 /* M-: */
  740.     (data_obj *) 0,                 /* M-; */
  741.     (data_obj *) 0,                 /* M-< */
  742.     (data_obj *) 0,                 /* M-= */
  743.     (data_obj *) 0,                 /* M-> */
  744.     (data_obj *) 0,                 /* M-? */
  745.     (data_obj *) 0,                 /* M-@ */
  746.     (data_obj *) 0,                 /* M-A */
  747.     (data_obj *) 0,                 /* M-B */
  748.     (data_obj *) 0,                 /* M-C */
  749.     (data_obj *) 0,                 /* M-D */
  750.     (data_obj *) 0,                 /* M-E */
  751.     (data_obj *) 0,                 /* M-F */
  752.     (data_obj *) 0,                 /* M-G */
  753.     (data_obj *) 0,                 /* M-H */
  754.     (data_obj *) 0,                 /* M-I */
  755.     (data_obj *) 0,                 /* M-J */
  756.     (data_obj *) 0,                 /* M-K */
  757.     (data_obj *) 0,                 /* M-L */
  758.     (data_obj *) 0,                 /* M-M */
  759.     (data_obj *) 0,                 /* M-N */
  760.     (data_obj *) 0,                 /* M-O */
  761.     (data_obj *) 0,                 /* M-P */
  762.     (data_obj *) 0,                 /* M-Q */
  763.     (data_obj *) 0,                 /* M-R */
  764.     (data_obj *) 0,                 /* M-S */
  765.     (data_obj *) 0,                 /* M-T */
  766.     (data_obj *) 0,                 /* M-U */
  767.     (data_obj *) 0,                 /* M-V */
  768.     (data_obj *) 0,                 /* M-W */
  769.     (data_obj *) 0,                 /* M-X */
  770.     (data_obj *) 0,                 /* M-Y */
  771.     (data_obj *) 0,                 /* M-Z */
  772.     (data_obj *) 0,                 /* M-[ */
  773.     (data_obj *) 0,                 /* M-\ */
  774.     (data_obj *) 0,                 /* M-] */
  775.     (data_obj *) 0,                 /* M-^ */
  776.     (data_obj *) 0,                 /* M-_ */
  777.     (data_obj *) 0,                 /* M-` */
  778.     (data_obj *) 0,                 /* M-a */
  779.     (data_obj *) 0,                 /* M-b */
  780.     (data_obj *) 0,                 /* M-c */
  781.     (data_obj *) 0,                 /* M-d */
  782.     (data_obj *) 0,                 /* M-e */
  783.     (data_obj *) 0,                 /* M-f */
  784.     (data_obj *) 0,                 /* M-g */
  785.     (data_obj *) 0,                 /* M-h */
  786.     (data_obj *) 0,                 /* M-i */
  787.     (data_obj *) 0,                 /* M-j */
  788.     (data_obj *) 0,                 /* M-k */
  789.     (data_obj *) 0,                 /* M-l */
  790.     (data_obj *) 0,                 /* M-m */
  791.     (data_obj *) 0,                 /* M-n */
  792.     (data_obj *) 0,                 /* M-o */
  793.     (data_obj *) 0,                 /* M-p */
  794.     (data_obj *) 0,                 /* M-q */
  795.     (data_obj *) 0,                 /* M-r */
  796.     (data_obj *) 0,                 /* M-s */
  797.     (data_obj *) 0,                 /* M-t */
  798.     (data_obj *) 0,                 /* M-u */
  799.     (data_obj *) 0,                 /* M-v */
  800.     (data_obj *) 0,                 /* M-w */
  801.     (data_obj *) 0,                 /* M-x */
  802.     (data_obj *) 0,                 /* M-y */
  803.     (data_obj *) 0,                 /* M-z */
  804.     (data_obj *) 0,                 /* M-{ */
  805.     (data_obj *) 0,                 /* M-| */
  806.     (data_obj *) 0,                 /* M-} */
  807.     (data_obj *) 0,                 /* M-~ */
  808.     (data_obj *) 0,                 /* M-^? */
  809. #endif /* ASCII */
  810. };
  811.  
  812. #ifdef IBMPC
  813. data_obj    *MiscKeys[NCHARS] = {
  814.     (data_obj *) 0,                 /* C-@ */
  815.     (data_obj *) 0,                 /* C-A */
  816.     (data_obj *) 0,                 /* C-B */
  817.     (data_obj *) &commands[182],    /* C-C */
  818.     (data_obj *) 0,                 /* C-D */
  819.     (data_obj *) 0,                 /* C-E */
  820.     (data_obj *) 0,                 /* C-F */
  821.     (data_obj *) 0,                 /* C-G */
  822.     (data_obj *) 0,                 /* C-H */
  823.     (data_obj *) 0,                 /* C-I */
  824.     (data_obj *) 0,                 /* C-J */
  825.     (data_obj *) 0,                 /* C-K */
  826.     (data_obj *) 0,                 /* C-L */
  827.     (data_obj *) 0,                 /* C-M */
  828.     (data_obj *) 0,                 /* C-N */
  829.     (data_obj *) 0,                 /* C-O */
  830.     (data_obj *) &commands[147],    /* C-P */
  831.     (data_obj *) &commands[34],    /* C-Q */
  832.     (data_obj *) &commands[89],    /* C-R */
  833.     (data_obj *) &commands[156],    /* C-S */
  834.     (data_obj *) 0,                 /* C-T */
  835.     (data_obj *) &commands[212],    /* C-U */
  836.     (data_obj *) &commands[29],    /* C-V */
  837.     (data_obj *) &commands[118],    /* C-W */
  838.     (data_obj *) 0,                 /* C-X */
  839.     (data_obj *) 0,                 /* C-Y */
  840.     (data_obj *) 0,                 /* C-Z */
  841.     (data_obj *) 0,                 /* ESC */
  842.     (data_obj *) 0,                 /* C-\ */
  843.     (data_obj *) 0,                 /* C-] */
  844.     (data_obj *) &commands[11],    /* C-^ */
  845.     (data_obj *) 0,                 /* C-_ */
  846.     (data_obj *) &commands[103],    /*   */
  847.     (data_obj *) &commands[90],    /* ! */
  848.     (data_obj *) &commands[94],    /* " */
  849.     (data_obj *) 0,                 /* # */
  850.     (data_obj *) &commands[78],    /* $ */
  851.     (data_obj *) &commands[111],    /* % */
  852.     (data_obj *) &commands[28],    /* & */
  853.     (data_obj *) 0,                 /* ' */
  854.     (data_obj *) 0,                 /* ( */
  855.     (data_obj *) 0,                 /* ) */
  856.     (data_obj *) 0,                 /* * */
  857.     (data_obj *) 0,                 /* + */
  858.     (data_obj *) &commands[159],    /* , */
  859.     (data_obj *) &commands[73],    /* - */
  860.     (data_obj *) &commands[27],    /* . */
  861.     (data_obj *) &commands[137],    /* / */
  862.     (data_obj *) &commands[13],    /* 0 */
  863.     (data_obj *) 0,                 /* 1 */
  864.     (data_obj *) &commands[84],    /* 2 */
  865.     (data_obj *) 0,                 /* 3 */
  866.     (data_obj *) 0,                 /* 4 */
  867.     (data_obj *) 0,                 /* 5 */
  868.     (data_obj *) 0,                 /* 6 */
  869.     (data_obj *) 0,                 /* 7 */
  870.     (data_obj *) 0,                 /* 8 */
  871.     (data_obj *) 0,                 /* 9 */
  872.     (data_obj *) 0,                 /* : */
  873.     (data_obj *) 0,                 /* ; */
  874.     (data_obj *) 0,                 /* < */
  875.     (data_obj *) 0,                 /* = */
  876.     (data_obj *) 0,                 /* > */
  877.     (data_obj *) 0,                 /* ? */
  878.     (data_obj *) 0,                 /* @ */
  879.     (data_obj *) 0,                 /* A */
  880.     (data_obj *) 0,                 /* B */
  881.     (data_obj *) 0,                 /* C */
  882.     (data_obj *) 0,                 /* D */
  883.     (data_obj *) 0,                 /* E */
  884.     (data_obj *) 0,                 /* F */
  885.     (data_obj *) &commands[16],    /* G */
  886.     (data_obj *) &commands[136],    /* H */
  887.     (data_obj *) &commands[137],    /* I */
  888.     (data_obj *) 0,                 /* J */
  889.     (data_obj *) &commands[7],    /* K */
  890.     (data_obj *) 0,                 /* L */
  891.     (data_obj *) &commands[85],    /* M */
  892.     (data_obj *) 0,                 /* N */
  893.     (data_obj *) &commands[69],    /* O */
  894.     (data_obj *) &commands[124],    /* P */
  895.     (data_obj *) &commands[125],    /* Q */
  896.     (data_obj *) &commands[128],    /* R */
  897.     (data_obj *) &commands[44],    /* S */
  898.     (data_obj *) 0,                 /* T */
  899.     (data_obj *) 0,                 /* U */
  900.     (data_obj *) 0,                 /* V */
  901.     (data_obj *) 0,                 /* W */
  902.     (data_obj *) 0,                 /* X */
  903.     (data_obj *) 0,                 /* Y */
  904.     (data_obj *) 0,                 /* Z */
  905.     (data_obj *) 0,                 /* [ */
  906.     (data_obj *) 0,                 /* \ */
  907.     (data_obj *) 0,                 /* ] */
  908.     (data_obj *) 0,                 /* ^ */
  909.     (data_obj *) 0,                 /* _ */
  910.     (data_obj *) 0,                 /* ` */
  911.     (data_obj *) 0,                 /* a */
  912.     (data_obj *) 0,                 /* b */
  913.     (data_obj *) 0,                 /* c */
  914.     (data_obj *) 0,                 /* d */
  915.     (data_obj *) 0,                 /* e */
  916.     (data_obj *) 0,                 /* f */
  917.     (data_obj *) 0,                 /* g */
  918.     (data_obj *) 0,                 /* h */
  919.     (data_obj *) 0,                 /* i */
  920.     (data_obj *) 0,                 /* j */
  921.     (data_obj *) 0,                 /* k */
  922.     (data_obj *) 0,                 /* l */
  923.     (data_obj *) 0,                 /* m */
  924.     (data_obj *) 0,                 /* n */
  925.     (data_obj *) 0,                 /* o */
  926.     (data_obj *) 0,                 /* p */
  927.     (data_obj *) 0,                 /* q */
  928.     (data_obj *) 0,                 /* r */
  929.     (data_obj *) &commands[13],    /* s */
  930.     (data_obj *) &commands[90],    /* t */
  931.     (data_obj *) &commands[68],    /* u */
  932.     (data_obj *) &commands[126],    /* v */
  933.     (data_obj *) &commands[15],    /* w */
  934.     (data_obj *) &commands[170],    /* x */
  935.     (data_obj *) &commands[171],    /* y */
  936.     (data_obj *) &commands[172],    /* z */
  937.     (data_obj *) &commands[173],    /* { */
  938.     (data_obj *) &commands[174],    /* | */
  939.     (data_obj *) &commands[175],    /* } */
  940.     (data_obj *) &commands[176],    /* ~ */
  941.     (data_obj *) &commands[177],    /* ^? */
  942.     (data_obj *) &commands[178],    /* M-C-@ */
  943.     (data_obj *) &commands[179],    /* M-C-A */
  944.     (data_obj *) 0,                 /* M-C-B */
  945.     (data_obj *) 0,                 /* M-C-C */
  946.     (data_obj *) &commands[138],    /* M-C-D */
  947.     (data_obj *) 0,                 /* M-C-E */
  948.     (data_obj *) 0,                 /* M-C-F */
  949.     (data_obj *) 0,                 /* M-C-G */
  950.     (data_obj *) 0,                 /* M-C-H */
  951.     (data_obj *) 0,                 /* M-C-I */
  952.     (data_obj *) 0,                 /* M-C-J */
  953.     (data_obj *) 0,                 /* M-C-K */
  954.     (data_obj *) 0,                 /* M-C-L */
  955.     (data_obj *) 0,                 /* M-C-M */
  956.     (data_obj *) 0,                 /* M-C-N */
  957.     (data_obj *) 0,                 /* M-C-O */
  958.     (data_obj *) 0,                 /* M-C-P */
  959.     (data_obj *) 0,                 /* M-C-Q */
  960.     (data_obj *) 0,                 /* M-C-R */
  961.     (data_obj *) 0,                 /* M-C-S */
  962.     (data_obj *) 0,                 /* M-C-T */
  963.     (data_obj *) 0,                 /* M-C-U */
  964.     (data_obj *) 0,                 /* M-C-V */
  965.     (data_obj *) 0,                 /* M-C-W */
  966.     (data_obj *) 0,                 /* M-C-X */
  967.     (data_obj *) 0,                 /* M-C-Y */
  968.     (data_obj *) 0,                 /* M-C-Z */
  969.     (data_obj *) 0,                 /* M-ESC */
  970.     (data_obj *) 0,                 /* M-C-\ */
  971.     (data_obj *) 0,                 /* M-C-] */
  972.     (data_obj *) 0,                 /* M-C-^ */
  973.     (data_obj *) 0,                 /* M-C-_ */
  974.     (data_obj *) 0,                 /* M-  */
  975.     (data_obj *) 0,                 /* M-! */
  976.     (data_obj *) 0,                 /* M-" */
  977.     (data_obj *) 0,                 /* M-# */
  978.     (data_obj *) 0,                 /* M-$ */
  979.     (data_obj *) 0,                 /* M-% */
  980.     (data_obj *) 0,                 /* M-& */
  981.     (data_obj *) 0,                 /* M-' */
  982.     (data_obj *) 0,                 /* M-( */
  983.     (data_obj *) 0,                 /* M-) */
  984.     (data_obj *) 0,                 /* M-* */
  985.     (data_obj *) 0,                 /* M-+ */
  986.     (data_obj *) 0,                 /* M-, */
  987.     (data_obj *) 0,                 /* M-- */
  988.     (data_obj *) 0,                 /* M-. */
  989.     (data_obj *) 0,                 /* M-/ */
  990.     (data_obj *) 0,                 /* M-0 */
  991.     (data_obj *) 0,                 /* M-1 */
  992.     (data_obj *) 0,                 /* M-2 */
  993.     (data_obj *) 0,                 /* M-3 */
  994.     (data_obj *) 0,                 /* M-4 */
  995.     (data_obj *) 0,                 /* M-5 */
  996.     (data_obj *) 0,                 /* M-6 */
  997.     (data_obj *) 0,                 /* M-7 */
  998.     (data_obj *) 0,                 /* M-8 */
  999.     (data_obj *) 0,                 /* M-9 */
  1000.     (data_obj *) 0,                 /* M-: */
  1001.     (data_obj *) 0,                 /* M-; */
  1002.     (data_obj *) 0,                 /* M-< */
  1003.     (data_obj *) 0,                 /* M-= */
  1004.     (data_obj *) 0,                 /* M-> */
  1005.     (data_obj *) 0,                 /* M-? */
  1006.     (data_obj *) 0,                 /* M-@ */
  1007.     (data_obj *) 0,                 /* M-A */
  1008.     (data_obj *) 0,                 /* M-B */
  1009.     (data_obj *) 0,                 /* M-C */
  1010.     (data_obj *) 0,                 /* M-D */
  1011.     (data_obj *) 0,                 /* M-E */
  1012.     (data_obj *) 0,                 /* M-F */
  1013.     (data_obj *) 0,                 /* M-G */
  1014.     (data_obj *) 0,                 /* M-H */
  1015.     (data_obj *) 0,                 /* M-I */
  1016.     (data_obj *) 0,                 /* M-J */
  1017.     (data_obj *) 0,                 /* M-K */
  1018.     (data_obj *) 0,                 /* M-L */
  1019.     (data_obj *) 0,                 /* M-M */
  1020.     (data_obj *) 0,                 /* M-N */
  1021.     (data_obj *) 0,                 /* M-O */
  1022.     (data_obj *) 0,                 /* M-P */
  1023.     (data_obj *) 0,                 /* M-Q */
  1024.     (data_obj *) 0,                 /* M-R */
  1025.     (data_obj *) 0,                 /* M-S */
  1026.     (data_obj *) 0,                 /* M-T */
  1027.     (data_obj *) 0,                 /* M-U */
  1028.     (data_obj *) 0,                 /* M-V */
  1029.     (data_obj *) 0,                 /* M-W */
  1030.     (data_obj *) 0,                 /* M-X */
  1031.     (data_obj *) 0,                 /* M-Y */
  1032.     (data_obj *) 0,                 /* M-Z */
  1033.     (data_obj *) 0,                 /* M-[ */
  1034.     (data_obj *) 0,                 /* M-\ */
  1035.     (data_obj *) 0,                 /* M-] */
  1036.     (data_obj *) 0,                 /* M-^ */
  1037.     (data_obj *) 0,                 /* M-_ */
  1038.     (data_obj *) 0,                 /* M-` */
  1039.     (data_obj *) 0,                 /* M-a */
  1040.     (data_obj *) 0,                 /* M-b */
  1041.     (data_obj *) 0,                 /* M-c */
  1042.     (data_obj *) 0,                 /* M-d */
  1043.     (data_obj *) 0,                 /* M-e */
  1044.     (data_obj *) 0,                 /* M-f */
  1045.     (data_obj *) 0,                 /* M-g */
  1046.     (data_obj *) 0,                 /* M-h */
  1047.     (data_obj *) 0,                 /* M-i */
  1048.     (data_obj *) 0,                 /* M-j */
  1049.     (data_obj *) 0,                 /* M-k */
  1050.     (data_obj *) 0,                 /* M-l */
  1051.     (data_obj *) 0,                 /* M-m */
  1052.     (data_obj *) 0,                 /* M-n */
  1053.     (data_obj *) 0,                 /* M-o */
  1054.     (data_obj *) 0,                 /* M-p */
  1055.     (data_obj *) 0,                 /* M-q */
  1056.     (data_obj *) 0,                 /* M-r */
  1057.     (data_obj *) 0,                 /* M-s */
  1058.     (data_obj *) 0,                 /* M-t */
  1059.     (data_obj *) 0,                 /* M-u */
  1060.     (data_obj *) 0,                 /* M-v */
  1061.     (data_obj *) 0,                 /* M-w */
  1062.     (data_obj *) 0,                 /* M-x */
  1063.     (data_obj *) 0,                 /* M-y */
  1064.     (data_obj *) 0,                 /* M-z */
  1065.     (data_obj *) 0,                 /* M-{ */
  1066.     (data_obj *) 0,                 /* M-| */
  1067.     (data_obj *) 0,                 /* M-} */
  1068.     (data_obj *) 0,                 /* M-~ */
  1069.     (data_obj *) 0,                 /* M-^? */
  1070. };
  1071. #endif /* IBMPC */
  1072.