1*31058Sminshall/* 2*31058Sminshall * @(#)termcodes.m4 3.1 10/29/86 3*31058Sminshall */ 4*31058Sminshall 5*31058Sminshall/* the following allows us to generate our TC values. it is a bit painful. */ 6*31058Sminshall 7*31058Sminshalldefine(TCvalue, 128) 8*31058Sminshalldefine(TCbump, `define(`TCvalue', eval(TCvalue+1))') 9*31058Sminshalldefine(TCdefine, ``#define'') 10*31058Sminshalldefine(TC, `TCdefine define(`TCstring', TC_$1) TCstring TCvalue TCbump ` 11*31058Sminshall 'InitialAscii("$1", TCstring) InitialAids(ifelse($2,,0,0x$2))') 12*31058Sminshalldefine(Is, `TCdefine TC_$1 TCvalue') 13*31058Sminshall 14*31058Sminshall#define IsTc(x) (((x)&0xff) >= TC_LOWEST) 15*31058Sminshall 16*31058Sminshall/* This lists the codes which are output from termin() */ 17*31058Sminshall 18*31058Sminshalltypedef char TC_Aids_t; 19*31058Sminshall 20*31058Sminshalltypedef struct { 21*31058Sminshall char *tc_name; /* what the name is */ 22*31058Sminshall char tc_value; /* what the value is */ 23*31058Sminshall} TC_Ascii_t; 24*31058Sminshall 25*31058Sminshalltypedef struct { 26*31058Sminshall char *tc_name; /* what the name is */ 27*31058Sminshall char tc_value; /* what the value is */ 28*31058Sminshall char tc_aid; /* what the AID is */ 29*31058Sminshall} TC_AsciiAids_t; 30*31058Sminshall 31*31058Sminshall#ifdef DEFINEAIDS 32*31058Sminshall#define InitialAids(x) x, 33*31058Sminshall#else 34*31058Sminshall#define InitialAids(x) 35*31058Sminshall#endif /* DEFINEAIDS */ 36*31058Sminshall#ifdef LETS_SEE_ASCII 37*31058Sminshall#define InitialAscii(x, y) x, y, 38*31058Sminshall#else 39*31058Sminshall#define InitialAscii(x, y) 40*31058Sminshall#endif /* LETS_SEE_ASCII */ 41*31058Sminshall 42*31058Sminshall#ifdef LETS_SEE_ASCII 43*31058Sminshall#ifdef DEFINEAIDS 44*31058Sminshallstatic TC_AsciiAids_t TC_AsciiAids[] = { 45*31058Sminshall#else /* so, no aids */ 46*31058Sminshallstatic TC_Ascii_t TC_Ascii[] = { 47*31058Sminshall#endif /* DEFINEAIDS */ 48*31058Sminshall#else 49*31058Sminshall#ifdef DEFINEAIDS 50*31058Sminshallstatic TC_Aids_t TC_Aids[] = { 51*31058Sminshall#endif /* LETS_SEE_ASCII */ 52*31058Sminshall#endif 53*31058Sminshall 54*31058SminshallIs(LOWEST) 55*31058Sminshall 56*31058Sminshall/* the following are internal to the parser and generator */ 57*31058Sminshall/* (and, generally, should not be specified by the user...) */ 58*31058SminshallTC(CALL) /* INT: call a state sequence */ 59*31058SminshallTC(RETURN) /* INT: return from TC_CALL */ 60*31058SminshallTC(GOTO) /* INT: goto next entry */ 61*31058SminshallTC(NULL) /* Illegal sequence; bell */ 62*31058Sminshall 63*31058Sminshall 64*31058Sminshall 65*31058SminshallIs(LOWEST_USER) /* lowest code settable by user */ 66*31058Sminshall 67*31058SminshallTC(VERTICAL_BAR) 68*31058SminshallTC(CAPS_LOCK) 69*31058SminshallTC(MAKE_SHIFT) 70*31058SminshallTC(BREAK_SHIFT) 71*31058SminshallTC(DVCNL) 72*31058SminshallTC(MAKE_ALT) 73*31058SminshallTC(BREAK_ALT) 74*31058SminshallTC(SPACE) 75*31058SminshallTC(LEFT2) 76*31058SminshallTC(RIGHT2) 77*31058SminshallTC(MONOCASE) 78*31058SminshallTC(ATTN) /* attention generator */ 79*31058SminshallTC(LPRT) /* local print */ 80*31058SminshallTC(DP) /* dup character */ 81*31058SminshallTC(FM) /* field mark character */ 82*31058SminshallTC(CURSEL) /* cursor select */ 83*31058SminshallTC(CENTSIGN) /* EBCDIC cent sign */ 84*31058SminshallTC(RESHOW) /* redisplay the screen */ 85*31058SminshallTC(EINP) /* erase input */ 86*31058SminshallTC(EEOF) /* erase end of field */ 87*31058SminshallTC(DELETE) /* delete character */ 88*31058SminshallTC(INSRT) /* toggle insert mode */ 89*31058SminshallTC(TAB) /* field tab */ 90*31058SminshallTC(BTAB) /* field back tab */ 91*31058SminshallTC(COLTAB) /* column tab */ 92*31058SminshallTC(COLBAK) /* column back tab */ 93*31058SminshallTC(INDENT) /* indent one tab stop */ 94*31058SminshallTC(UNDENT) /* undent one tab stop */ 95*31058SminshallTC(NL) /* new line */ 96*31058SminshallTC(HOME) /* home the cursor */ 97*31058SminshallTC(UP) /* up cursor */ 98*31058SminshallTC(DOWN) /* down cursor */ 99*31058SminshallTC(RIGHT) /* right cursor */ 100*31058SminshallTC(LEFT) /* left cursor */ 101*31058SminshallTC(SETTAB) /* set a column tab */ 102*31058SminshallTC(DELTAB) /* delete a column tab */ 103*31058SminshallTC(SETMRG) /* set left margin */ 104*31058SminshallTC(SETHOM) /* set home position */ 105*31058SminshallTC(CLRTAB) /* clear all column tabs */ 106*31058SminshallTC(APLON) /* apl on */ 107*31058SminshallTC(APLOFF) /* apl off */ 108*31058SminshallTC(APLEND) /* treat input as ascii */ 109*31058SminshallTC(PCON) /* xon/xoff on */ 110*31058SminshallTC(PCOFF) /* xon/xoff off */ 111*31058SminshallTC(DISC) /* disconnect (suspend) */ 112*31058SminshallTC(INIT) /* new terminal type */ 113*31058SminshallTC(ALTK) /* alternate keyboard dvorak */ 114*31058SminshallTC(FLINP) /* flush input */ 115*31058SminshallTC(ERASE) /* erase last character */ 116*31058SminshallTC(WERASE) /* erase last word */ 117*31058SminshallTC(FERASE) /* erase field */ 118*31058SminshallTC(SYNCH) /* user and us are in synch */ 119*31058SminshallTC(RESET) /* reset key -unlock keyboard */ 120*31058SminshallTC(MASTER_RESET) /* master reset key; flush, reset, repaint */ 121*31058SminshallTC(XOFF) /* please hold output */ 122*31058SminshallTC(XON) /* please give me output */ 123*31058SminshallTC(ESCAPE) /* enter telnet command mode */ 124*31058SminshallTC(WORDTAB) /* Go to first character of next word */ 125*31058SminshallTC(WORDBACKTAB) /* Go to first character of last word */ 126*31058SminshallTC(WORDEND) /* Go to last character of this/next word */ 127*31058SminshallTC(FIELDEND) /* Go to last non-blank of this field */ 128*31058Sminshall 129*31058Sminshall 130*31058SminshallIs(LOWEST_AID) /* lowest attn generator */ 131*31058Sminshall 132*31058Sminshall/* the attention generating keys... */ 133*31058Sminshall 134*31058SminshallTC(PA1, 6c) 135*31058SminshallTC(PA2, 6e) 136*31058SminshallTC(PA3, 6b) 137*31058SminshallTC(CLEAR, 6d) 138*31058SminshallTC(TREQ, f0) 139*31058SminshallTC(ENTER, 7d) 140*31058SminshallTC(SELPEN, 7e) /* Really, only SELPEN with DESIGNATOR = space or null */ 141*31058SminshallTC(PFK1, f1) 142*31058SminshallTC(PFK2, f2) 143*31058SminshallTC(PFK3, f3) 144*31058SminshallTC(PFK4, f4) 145*31058SminshallTC(PFK5, f5) 146*31058SminshallTC(PFK6, f6) 147*31058SminshallTC(PFK7, f7) 148*31058SminshallTC(PFK8, f8) 149*31058SminshallTC(PFK9, f9) 150*31058SminshallTC(PFK10, 7a) 151*31058SminshallTC(PFK11, 7b) 152*31058SminshallTC(PFK12, 7c) 153*31058SminshallTC(PFK13, c1) 154*31058SminshallTC(PFK14, c2) 155*31058SminshallTC(PFK15, c3) 156*31058SminshallTC(PFK16, c4) 157*31058SminshallTC(PFK17, c5) 158*31058SminshallTC(PFK18, c6) 159*31058SminshallTC(PFK19, c7) 160*31058SminshallTC(PFK20, c8) 161*31058SminshallTC(PFK21, c9) 162*31058SminshallTC(PFK22, 4a) 163*31058SminshallTC(PFK23, 4b) 164*31058SminshallTC(PFK24, 4c) 165*31058SminshallTC(PFK25, d1) 166*31058SminshallTC(PFK26, d2) 167*31058SminshallTC(PFK27, d3) 168*31058SminshallTC(PFK28, d4) 169*31058SminshallTC(PFK29, d5) 170*31058SminshallTC(PFK30, d6) 171*31058SminshallTC(PFK31, d7) 172*31058SminshallTC(PFK32, d8) 173*31058SminshallTC(PFK33, d9) 174*31058SminshallTC(PFK34, 5a) 175*31058SminshallTC(PFK35, 5b) 176*31058SminshallTC(PFK36, 5c) 177*31058Sminshall 178*31058SminshallIs(HIGHEST_AID)-1 /* highest AID value */ 179*31058Sminshall#define IsAid(x) (((x) >= TC_LOWEST_AID) && ((x) <= TC_HIGHEST_AID)) 180*31058Sminshall 181*31058SminshallIs(HIGHEST)-1 /* highest TC value */ 182*31058Sminshall 183*31058Sminshall#ifdef LETS_SEE_ASCII 184*31058Sminshall}; 185*31058Sminshall#else 186*31058Sminshall#ifdef DEFINEAIDS 187*31058Sminshall}; 188*31058Sminshall#endif 189*31058Sminshall#endif 190*31058Sminshall 191*31058Sminshall#ifdef DEFINEAIDS 192*31058Sminshall#ifdef LETS_SEE_ASCII 193*31058Sminshall#define TCtoAid(x) TC_AsciiAids[(x)-TC_LOWEST].tc_aid 194*31058Sminshall#else 195*31058Sminshall#define TCtoAid(x) TC_Aids[x-TC_LOWEST] 196*31058Sminshall#endif 197*31058Sminshall#endif 198