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