130021Sminshall /* 230076Sminshall * The following are the various functions which the keyboard can ask 330076Sminshall * the controller to perform. 430076Sminshall * 530076Sminshall * Note that this file (the following entries) are scanned by mkhit.c, 630076Sminshall * and that the format must remain more-or-less consistent 730076Sminshall * [ \t]*TOKEN 830076Sminshall */ 930076Sminshall 1030076Sminshall enum ctlrfcn { 1130076Sminshall 1230076Sminshall undefined = 0, /* Not yet touched */ 1330076Sminshall 1430076Sminshall FCN_NULL, /* Illegal sequence */ 1530076Sminshall 1630076Sminshall FCN_RESET, /* unlock keyboard */ 17*30665Sminshall FCN_MAKE_SHIFT_LOCK, 18*30665Sminshall FCN_BREAK_SHIFT_LOCK, 1930076Sminshall 2030076Sminshall FCN_MAKE_SHIFT, /* shift key pressed DOWN */ 2130076Sminshall FCN_BREAK_SHIFT, /* shift key released */ 2230076Sminshall 2330076Sminshall FCN_MAKE_ALT, /* alt key pressed DOWN */ 2430076Sminshall FCN_BREAK_ALT, /* alt key released */ 2530076Sminshall 2630076Sminshall FCN_MAKE_CTRL, 2730076Sminshall 2830076Sminshall FCN_MONOCASE, /* DISPLAY in upper case */ 2930076Sminshall FCN_DVCNL, 3030076Sminshall 3130076Sminshall FCN_CHARACTER, /* Not one of the following, but ... */ 3230076Sminshall FCN_VERTICAL_BAR, /* EBCDIC solid vertical bar */ 3330076Sminshall FCN_CENTSIGN, /* EBCDIC cent sign */ 3430076Sminshall FCN_SPACE, /* EBCDIC space */ 3530076Sminshall FCN_DP, /* EBCDIC dup character */ 3630076Sminshall FCN_FM, /* EBCDIC field mark */ 3730076Sminshall 3830076Sminshall FCN_AID, /* Some AID key */ 3930076Sminshall FCN_ATTN, 4030076Sminshall FCN_CURSEL, /* Cursor select function (and aid) */ 4130076Sminshall FCN_TEST, /* Test function */ 4230076Sminshall 4330076Sminshall FCN_EINP, /* erase input (dangerous) */ 4430076Sminshall FCN_EEOF, 4530076Sminshall FCN_DELETE, 4630076Sminshall FCN_INSRT, 4730076Sminshall FCN_TAB, 4830076Sminshall FCN_BTAB, 4930076Sminshall FCN_NL, 5030076Sminshall FCN_HOME, 5130076Sminshall FCN_UP, 5230076Sminshall FCN_DOWN, 5330076Sminshall FCN_RIGHT, 5430076Sminshall FCN_LEFT, 5530076Sminshall FCN_LEFT2, 5630076Sminshall FCN_RIGHT2, 5730076Sminshall 5830076Sminshall #if !defined(PURE3274) 5930076Sminshall /* 6030076Sminshall * Local editing functions 6130076Sminshall */ 6230076Sminshall FCN_SETTAB, /* set a column tab */ 6330076Sminshall FCN_DELTAB, 6430076Sminshall FCN_COLTAB, 6530076Sminshall FCN_COLBAK, 6630076Sminshall FCN_INDENT, /* more margin over one col tab */ 6730076Sminshall FCN_UNDENT, 6830076Sminshall FCN_SETMRG, 6930076Sminshall FCN_SETHOM, 7030076Sminshall FCN_CLRTAB, 7130076Sminshall FCN_ERASE, /* erase last character */ 7230076Sminshall FCN_WERASE, 7330076Sminshall FCN_FERASE, 7430076Sminshall FCN_WORDTAB, /* tab to start of next word */ 7530076Sminshall FCN_WORDBACKTAB, 7630076Sminshall FCN_WORDEND, /* find next end of word */ 7730076Sminshall FCN_FIELDEND, /* find next end of field */ 7830076Sminshall 7930076Sminshall /* 8030076Sminshall * APL functions 8130076Sminshall */ 8230076Sminshall FCN_APLON, /* start using apl character set */ 8330076Sminshall FCN_APLOFF, 8430076Sminshall FCN_APLEND, 8530076Sminshall 8630076Sminshall FCN_PCON, 8730076Sminshall FCN_PCOFF, 8830076Sminshall FCN_INIT, /* re-init screen */ 8930076Sminshall FCN_SYNCH, /* synch up after line/control error */ 9030076Sminshall FCN_FLINP, /* flush input buffer */ 9130076Sminshall FCN_RESHOW, /* redraw screen */ 9230076Sminshall FCN_MASTER_RESET, /* FLINP, RESET, RESHOW, + more */ 9330076Sminshall 9430076Sminshall FCN_DISC, /* suspend application */ 9530076Sminshall FCN_ESCAPE, /* enter command mode */ 9630076Sminshall 9730076Sminshall FCN_ALTK, /* Dvorak keyboard */ 9830076Sminshall 9930076Sminshall FCN_XOFF, /* suspend output to screen */ 10030076Sminshall FCN_XON, /* resume output to screen */ 10130076Sminshall 10230076Sminshall FCN_LPRT /* print screen on printer */ 10330076Sminshall #endif /* !defined(PURE3274) */ 10430076Sminshall }; 10530076Sminshall /* 10630021Sminshall * The following is the structure which defines what a 3270 keystroke 10730021Sminshall * can do. 10830021Sminshall */ 10930021Sminshall 11030021Sminshall struct hits { 11130021Sminshall unsigned char keynumber; 11230021Sminshall struct hit { 11330076Sminshall enum ctlrfcn ctlrfcn; 11430076Sminshall unsigned char code; /* AID value or 3270 display code */ 11530021Sminshall } hit[4]; /* plain, shifted, alted, shiftalted */ 11630021Sminshall }; 11730021Sminshall 11830021Sminshall extern struct hits hits[]; 119