131058Sminshall/*
2*33817Sbostic * Copyright (c) 1988 Regents of the University of California.
3*33817Sbostic * All rights reserved.
4*33817Sbostic *
5*33817Sbostic * Redistribution and use in source and binary forms are permitted
6*33817Sbostic * provided that this notice is preserved and that due credit is given
7*33817Sbostic * to the University of California at Berkeley. The name of the University
8*33817Sbostic * may not be used to endorse or promote products derived from this
9*33817Sbostic * software without specific prior written permission. This software
10*33817Sbostic * is provided ``as is'' without express or implied warranty.
11*33817Sbostic *
12*33817Sbostic *	@(#)termcodes.m4	1.2 (Berkeley) 03/28/88
1331058Sminshall */
1431058Sminshall
1531058Sminshall/* the following allows us to generate our TC values.  it is a bit painful. */
1631058Sminshall
1731058Sminshalldefine(TCvalue, 128)
1831058Sminshalldefine(TCbump, `define(`TCvalue', eval(TCvalue+1))')
1931058Sminshalldefine(TCdefine, ``#define'')
2031058Sminshalldefine(TC, `TCdefine define(`TCstring', TC_$1) TCstring TCvalue TCbump `
2131058Sminshall		'InitialAscii("$1", TCstring) InitialAids(ifelse($2,,0,0x$2))')
2231058Sminshalldefine(Is, `TCdefine TC_$1 TCvalue')
2331058Sminshall
2431058Sminshall#define IsTc(x) (((x)&0xff) >= TC_LOWEST)
2531058Sminshall
2631058Sminshall/* This lists the codes which are output from termin() */
2731058Sminshall
2831058Sminshalltypedef char TC_Aids_t;
2931058Sminshall
3031058Sminshalltypedef struct {
3131058Sminshall    char	*tc_name;		/* what the name is */
3231058Sminshall    char	tc_value;		/* what the value is */
3331058Sminshall} TC_Ascii_t;
3431058Sminshall
3531058Sminshalltypedef struct {
3631058Sminshall    char	*tc_name;		/* what the name is */
3731058Sminshall    char	tc_value;		/* what the value is */
3831058Sminshall    char	tc_aid;			/* what the AID is */
3931058Sminshall} TC_AsciiAids_t;
4031058Sminshall
4131058Sminshall#ifdef DEFINEAIDS
4231058Sminshall#define InitialAids(x)	x,
4331058Sminshall#else
4431058Sminshall#define InitialAids(x)
4531058Sminshall#endif /* DEFINEAIDS */
4631058Sminshall#ifdef LETS_SEE_ASCII
4731058Sminshall#define InitialAscii(x, y) x, y,
4831058Sminshall#else
4931058Sminshall#define InitialAscii(x, y)
5031058Sminshall#endif /* LETS_SEE_ASCII */
5131058Sminshall
5231058Sminshall#ifdef LETS_SEE_ASCII
5331058Sminshall#ifdef DEFINEAIDS
5431058Sminshallstatic TC_AsciiAids_t TC_AsciiAids[] = {
5531058Sminshall#else /* so, no aids */
5631058Sminshallstatic TC_Ascii_t TC_Ascii[] = {
5731058Sminshall#endif /* DEFINEAIDS */
5831058Sminshall#else
5931058Sminshall#ifdef DEFINEAIDS
6031058Sminshallstatic TC_Aids_t TC_Aids[] = {
6131058Sminshall#endif /* LETS_SEE_ASCII */
6231058Sminshall#endif
6331058Sminshall
6431058SminshallIs(LOWEST)
6531058Sminshall
6631058Sminshall/* the following are internal to the parser and generator */
6731058Sminshall/* (and, generally, should not be specified by the user...) */
6831058SminshallTC(CALL)			/* INT: call a state sequence */
6931058SminshallTC(RETURN)			/* INT: return from TC_CALL */
7031058SminshallTC(GOTO)			/* INT: goto next entry */
7131058SminshallTC(NULL)			/* Illegal sequence; bell */
7231058Sminshall
7331058Sminshall
7431058Sminshall
7531058SminshallIs(LOWEST_USER)			/* lowest code settable by user */
7631058Sminshall
7731058SminshallTC(VERTICAL_BAR)
7831058SminshallTC(CAPS_LOCK)
7931058SminshallTC(MAKE_SHIFT)
8031058SminshallTC(BREAK_SHIFT)
8131058SminshallTC(DVCNL)
8231058SminshallTC(MAKE_ALT)
8331058SminshallTC(BREAK_ALT)
8431058SminshallTC(SPACE)
8531058SminshallTC(LEFT2)
8631058SminshallTC(RIGHT2)
8731058SminshallTC(MONOCASE)
8831058SminshallTC(ATTN)			/* attention generator */
8931058SminshallTC(LPRT)			/* local print */
9031058SminshallTC(DP)				/* dup character */
9131058SminshallTC(FM)				/* field mark character */
9231058SminshallTC(CURSEL)			/* cursor select */
9331058SminshallTC(CENTSIGN)			/* EBCDIC cent sign */
9431058SminshallTC(RESHOW)			/* redisplay the screen */
9531058SminshallTC(EINP)			/* erase input */
9631058SminshallTC(EEOF)			/* erase end of field */
9731058SminshallTC(DELETE)			/* delete character */
9831058SminshallTC(INSRT)			/* toggle insert mode */
9931058SminshallTC(TAB)				/* field tab */
10031058SminshallTC(BTAB)			/* field back tab */
10131058SminshallTC(COLTAB)			/* column tab */
10231058SminshallTC(COLBAK)			/* column back tab */
10331058SminshallTC(INDENT)			/* indent one tab stop */
10431058SminshallTC(UNDENT)			/* undent one tab stop */
10531058SminshallTC(NL)				/* new line */
10631058SminshallTC(HOME)			/* home the cursor */
10731058SminshallTC(UP)				/* up cursor */
10831058SminshallTC(DOWN)			/* down cursor */
10931058SminshallTC(RIGHT)			/* right cursor */
11031058SminshallTC(LEFT)			/* left cursor */
11131058SminshallTC(SETTAB)			/* set a column tab */
11231058SminshallTC(DELTAB)			/* delete a column tab */
11331058SminshallTC(SETMRG)			/* set left margin */
11431058SminshallTC(SETHOM)			/* set home position */
11531058SminshallTC(CLRTAB)			/* clear all column tabs */
11631058SminshallTC(APLON)			/* apl on */
11731058SminshallTC(APLOFF)			/* apl off */
11831058SminshallTC(APLEND)			/* treat input as ascii */
11931058SminshallTC(PCON)			/* xon/xoff on */
12031058SminshallTC(PCOFF)			/* xon/xoff off */
12131058SminshallTC(DISC)			/* disconnect (suspend) */
12231058SminshallTC(INIT)			/* new terminal type */
12331058SminshallTC(ALTK)			/* alternate keyboard dvorak */
12431058SminshallTC(FLINP)			/* flush input */
12531058SminshallTC(ERASE)			/* erase last character */
12631058SminshallTC(WERASE)			/* erase last word */
12731058SminshallTC(FERASE)			/* erase field */
12831058SminshallTC(SYNCH)			/* user and us are in synch */
12931058SminshallTC(RESET)			/* reset key -unlock keyboard */
13031058SminshallTC(MASTER_RESET)		/* master reset key; flush, reset, repaint */
13131058SminshallTC(XOFF)			/* please hold output */
13231058SminshallTC(XON)				/* please give me output */
13331058SminshallTC(ESCAPE)			/* enter telnet command mode */
13431058SminshallTC(WORDTAB)			/* Go to first character of next word */
13531058SminshallTC(WORDBACKTAB)			/* Go to first character of last word */
13631058SminshallTC(WORDEND)			/* Go to last character of this/next word */
13731058SminshallTC(FIELDEND)			/* Go to last non-blank of this field */
13831058Sminshall
13931058Sminshall
14031058SminshallIs(LOWEST_AID)			/* lowest attn generator */
14131058Sminshall
14231058Sminshall/* the attention generating keys... */
14331058Sminshall
14431058SminshallTC(PA1, 6c)
14531058SminshallTC(PA2, 6e)
14631058SminshallTC(PA3, 6b)
14731058SminshallTC(CLEAR, 6d)
14831058SminshallTC(TREQ, f0)
14931058SminshallTC(ENTER, 7d)
15031058SminshallTC(SELPEN, 7e)	/* Really, only SELPEN with DESIGNATOR = space or null */
15131058SminshallTC(PFK1, f1)
15231058SminshallTC(PFK2, f2)
15331058SminshallTC(PFK3, f3)
15431058SminshallTC(PFK4, f4)
15531058SminshallTC(PFK5, f5)
15631058SminshallTC(PFK6, f6)
15731058SminshallTC(PFK7, f7)
15831058SminshallTC(PFK8, f8)
15931058SminshallTC(PFK9, f9)
16031058SminshallTC(PFK10, 7a)
16131058SminshallTC(PFK11, 7b)
16231058SminshallTC(PFK12, 7c)
16331058SminshallTC(PFK13, c1)
16431058SminshallTC(PFK14, c2)
16531058SminshallTC(PFK15, c3)
16631058SminshallTC(PFK16, c4)
16731058SminshallTC(PFK17, c5)
16831058SminshallTC(PFK18, c6)
16931058SminshallTC(PFK19, c7)
17031058SminshallTC(PFK20, c8)
17131058SminshallTC(PFK21, c9)
17231058SminshallTC(PFK22, 4a)
17331058SminshallTC(PFK23, 4b)
17431058SminshallTC(PFK24, 4c)
17531058SminshallTC(PFK25, d1)
17631058SminshallTC(PFK26, d2)
17731058SminshallTC(PFK27, d3)
17831058SminshallTC(PFK28, d4)
17931058SminshallTC(PFK29, d5)
18031058SminshallTC(PFK30, d6)
18131058SminshallTC(PFK31, d7)
18231058SminshallTC(PFK32, d8)
18331058SminshallTC(PFK33, d9)
18431058SminshallTC(PFK34, 5a)
18531058SminshallTC(PFK35, 5b)
18631058SminshallTC(PFK36, 5c)
18731058Sminshall
18831058SminshallIs(HIGHEST_AID)-1			/* highest AID value */
18931058Sminshall#define IsAid(x)	(((x) >= TC_LOWEST_AID) && ((x) <= TC_HIGHEST_AID))
19031058Sminshall
19131058SminshallIs(HIGHEST)-1			/* highest TC value */
19231058Sminshall
19331058Sminshall#ifdef LETS_SEE_ASCII
19431058Sminshall};
19531058Sminshall#else
19631058Sminshall#ifdef DEFINEAIDS
19731058Sminshall};
19831058Sminshall#endif
19931058Sminshall#endif
20031058Sminshall
20131058Sminshall#ifdef DEFINEAIDS
20231058Sminshall#ifdef LETS_SEE_ASCII
20331058Sminshall#define TCtoAid(x)	TC_AsciiAids[(x)-TC_LOWEST].tc_aid
20431058Sminshall#else
20531058Sminshall#define TCtoAid(x)	TC_Aids[x-TC_LOWEST]
20631058Sminshall#endif
20731058Sminshall#endif
208