
/* access values for 2 letter run-off type commands */
#define ad	val['A'-'@']['D'-'@']	/* adjust, or left margin	*/
#define ll	val['L'-'@']['L'-'@']	/* line length			*/
#define co	val['C'-'@']['O'-'@']	/* concatenation (Boolean)	*/
#define ju	val['J'-'@']['U'-'@']	/* justification (Boolean)	*/
#define fo	val['F'-'@']['O'-'@']	/* font number; 0 = native Eps.	*/
#define cs	val['C'-'@']['S'-'@']	/* character spacing		*/
#define cw	val['C'-'@']['W'-'@']	/* character width		*/
#define cheight	val['C'-'@']['H'-'@']	/* character height		*/
#define st	val['S'-'@']['T'-'@']	/* stretch			*/
#define sh	val['S'-'@']['H'-'@']	/* shrink			*/
#define sl	val['S'-'@']['L'-'@']	/* set leading			*/
#define pl	val['P'-'@']['L'-'@']	/* page length			*/
#define br	val['B'-'@']['R'-'@']	/* break			*/

#define tm	val['T'-'@']['M'-'@']	/* top margin			*/
#define bm	val['B'-'@']['M'-'@']	/* bottom margin		*/
#define hm	val['H'-'@']['M'-'@']	/* heading margin		*/
#define fm	val['F'-'@']['M'-'@']	/* footing margin		*/
#define in	val['I'-'@']['N'-'@']	/* indent			*/
#define ir	val['I'-'@']['R'-'@']	/* indent right			*/
#define ro	val['R'-'@']['O'-'@']	/* room				*/

#define nf	val['N'-'@']['F'-'@']	/* new fonts			*/
#define gu	val['G'-'@']['U'-'@']	/* gutter			*/
#define cc	val['C'-'@']['C'-'@']	/* current column		*/
#define nc	val['N'-'@']['C'-'@']	/* number columns		*/
#define pn	val['P'-'@']['N'-'@']	/* page number			*/



#define mx	val['M'-'@']['X'-'@']	/* MX flag			*/
#define rb	val['R'-'@']['B'-'@']	/* required blank		*/
#define ec	val['E'-'@']['C'-'@']	/* escape character		*/

/* synonyms of Epson commands	*/
#define el	val['E'-'@']['L'-'@']	/* elite			*/
#define cp	val['C'-'@']['P'-'@']	/* com-pressed			*/
#define em	val['E'-'@']['M'-'@']	/* emphasized			*/
#define ds	val['D'-'@']['S'-'@']	/* double strike		*/
#define ex	val['E'-'@']['X'-'@']	/* expanded			*/
#define pr	val['P'-'@']['R'-'@']	/* proportional			*/
#define it	val['I'-'@']['T'-'@']	/* italic			*/
#define sp	val['S'-'@']['P'-'@']	/* su-perscript			*/
#define sb	val['S'-'@']['B'-'@']	/* su-bscript 			*/
#define ul	val['U'-'@']['L'-'@']	/* under-line			*/

#define bo	val['B'-'@']['O'-'@']	/* bold				*/
#define be	val['B'-'@']['E'-'@']	/* bent				*/
#define fa	val['F'-'@']['A'-'@']	/* fast				*/
#define ta	val['T'-'@']['A'-'@']	/* tall				*/

#define	CMDCH	'\\'	/* command character (use 'li'?)*/
#define	DOTCH	'.'	/* at beginning of line, same
			   as CMDCH			*/
#define FF	0x0C
#define	SOFTSP	0xA0	/* WS fill sp char		*/
#define	SOFTCR	0x8D	/* WS intra paragraph newline	*/
#define SOFTHY	0x1E	/* WS inactive soft hyphen	*/
#define SOFTHYA	0x1F	/* WS acitve soft hyphen	*/

#define NUMFTS	7	/* maximum number of graphic fonts	*/
#define LENFTN  14	/* len of name is 8 plus 5 for prefixes and a nul */
#define MAXLINE	300
#define MAXSNEST 40

/* various measures in terms of dots	*/
#define PICA	24
#define POINT	3
#define INCH	240
#define	VINCH	216



/* masks for mode bits */
#define ELITE	 0x01
#define PRPTNL	 0x02
#define CMPRSSD  0x04
#define EMPHSZD  0x08
#define DBLSTRK  0x10
#define EXPNDD	 0x20
#define UNDRLN	 0x40
#define ITALIC	 0x80
/*	So that's b0-b7; b8,b9,b10 are used for the
	current graphics font, which is 'fo'-1.		*/
#define SUPSCRPT 0x0800
#define SUBSCRPT 0x1000
#define BENT	 0x2000
#define TALL	 0x4000
#define IGNORE	 0x8000
/*	All bits are committed				*/

/* define bits for type of command value				*/
#define	HZNUM	1	/* numerical value, horizontal measure		*/
#define	VTNUM	2	/* numerical value, vertical measure		*/
#define	EPSSYN	4	/* synonym of Epson command			*/
#define BRK	8	/* causes a break				*/
#define CHARG	16	/* arg is character				*/
#define FLAGCH	32	/* value is character flag			*/
#define MCRO	64	/* macro					*/
#define BRKAFT 128	/* causes a break before next input line	*/
#define ARGTRUE 33	/* assume arg=1, don't scan for number		*/

/* character flags							*/
#define CEFLAG	0x90
#define RAFLAG	0x91
#define SPFLAG	0x92
#define HSFLAG	0x93
#define PAFLAG	0x94
#define FRFLAG	0x95
#define BCKFLAG 0x96

/* following block matches format of data in ep.ini 			*/
/* initialization data	   size tot.size				*/
int	val[27][27];	/* 05B2	05B2	values of 'pl', etc.		*/
char	valtp[27][27];	/* 02D9 088B	type of value, e.g. numerical	*/
char	modelen[64];	/* 0040 08CB	width of Epson built-in char's	*/
char	pmlen[256];	/* 0100 09CB	width of Epson prop'l char's	*/
int	mode;		/* 0002 09CD	16 bits keep track of font, etc.*/
char	tabwid;		/* 0001 09CE	nominal char width for int'g tab*/
char	bending[7][24];	/* 00A8 0A76	bending				*/
char	editname[10];	/* 000A 0A80	name of editor called by eperror*/
	/* total = 10 pp. or 21 records */


#define BSTKSIZE 60
#define MAXCOL	 10

