xref: /csrg-svn/old/roff/nroff_term/tabepson.c (revision 48306)
1*48306Sbostic /*-
2*48306Sbostic  * %sccs.include.proprietary.c%
3*48306Sbostic  *
4*48306Sbostic  *	@(#)tabepson.c	1.4 (Berkeley) 04/18/91
5*48306Sbostic  */
6*48306Sbostic 
720979Smiriam /*************************************************************************
820979Smiriam  * This is 'tabepson.c' for an Epson FX80. Default spacing is elite.	 *
920979Smiriam  * This represents a combination and very slight modification of two	 *
1020979Smiriam  *  nroff driving tables. Specifically :				 *
1120979Smiriam  *									 *
1220979Smiriam  *     tablpr.c  by UCB Computing Center (the approximation of greek)    *
1320979Smiriam  *									 *
1420979Smiriam  *     tabfx80p.c by Goeke@MIT-Multics.ARPA (Epson print mode switching) *
1520979Smiriam  *	replaces big curly bracket parts with the following:		 *
1620979Smiriam  *									 *
1720979Smiriam  *		PRINT MODE:		  CHARACTER SEQUENCE		 *
1820979Smiriam  *		FX80 set Double Strike 	 	\(lt			 *
1920979Smiriam  *		FX80 cancels D.S.  	 	\(lb			 *
2020979Smiriam  *		FX80 set Condensed 	 	\(rt			 *
2120979Smiriam  *		FX80 cancels Condensed 	 	\(rb			 *
2220979Smiriam  *		FX80 set Pica size 	 	\(lk			 *
2320979Smiriam  *		FX80 set Elite size	 	\(rk			 *
2420979Smiriam  *		FX80 set Proportional 	 	\(bv 			 *
2520979Smiriam  *		FX80 set Expanded Mode 	 	\(lf 			 *
2620979Smiriam  *		FX80 cancel Expanded Mode	\(rf 			 *
2720979Smiriam  *		FX80 underline on 	 	\(lc 			 *
2820979Smiriam  *		FX80 underline off 	 	\(rc 			 *
2920979Smiriam  *									 *
3020979Smiriam  *  --> J. Michael Cherry, 1/18/85  molbio@ucblapis or			 *
3120979Smiriam  *				    ucbvax!molbio!mike			 *
3220979Smiriam  *									 *
3320979Smiriam  *************************************************************************/
3420979Smiriam 
3520979Smiriam #define INCH 240
3620979Smiriam 
3720979Smiriam struct {
3820979Smiriam           int bset;               /* terminal driver set          */
3920979Smiriam           int breset;             /* terminal driver reset        */
4020979Smiriam           int Hor;                /* horizontal resolution        */
4120979Smiriam           int Vert;               /* vetical resolution           */
4220979Smiriam           int Newline;            /* length on one line feed      */
4320979Smiriam           int Char;               /* character size increment     */
4420979Smiriam           int Em;                 /* em size                      */
4520979Smiriam           int Halfline;           /* length of half line feed     */
4620979Smiriam           int Adj;                /* white size increment         */
4720979Smiriam           char *twinit;           /* initialize string to printer */
4820979Smiriam           char *twrest;           /* reset string to printer      */
4920979Smiriam           char *twnl;             /* newline string               */
5020979Smiriam           char *hlr;              /* half-line-feed-reverse       */
5120979Smiriam           char *hlf;              /* half-line-feed-forward       */
5220979Smiriam           char *flr;              /* full-line-feed-reverse       */
5320979Smiriam           char *bdon;             /* bold-on string               */
5420979Smiriam           char *bdoff;            /* bold-off string              */
5520979Smiriam           char *ploton;           /* plot on string               */
5620979Smiriam           char *plotoff;          /* plot off string              */
5720979Smiriam           char *up;               /* these strings move as        */
5820979Smiriam           char *down;             /*     indicated in plot mode   */
5920979Smiriam           char *right;            /*     in best available        */
6020979Smiriam           char *left;             /*     resolution               */
6120979Smiriam           char *codetab[256-32];  /* see the table                */
6220979Smiriam           int zzz;
6320979Smiriam           } t = {
6420979Smiriam /*bset*/	0,
6520979Smiriam /*breset*/	0,
6620979Smiriam /*Hor*/		INCH/120,	/* must be consisten with plot increments */
6720979Smiriam /*Vert*/	INCH/48,	/* ditto */
6820979Smiriam /*Newline*/	INCH/6,
6920979Smiriam /*Char*/	INCH/12,	/* the character unit for the code table */
7020979Smiriam /*Em*/		INCH/12,	/* the nominal space size */
7120979Smiriam /*Halfline*/	INCH/12,
7220979Smiriam /*Adj*/		INCH/12,	/* the white caused by a single plot move */
7320979Smiriam /*twinit*/	"\033M",	/* invoke elite */
7420979Smiriam /*twrest*/	"\033@",	/* reset printer to deflauts */
7520979Smiriam /*twnl*/	"\n",		/* newline code        */
7620979Smiriam /*hlr*/		"\033j\022",
7720979Smiriam /*hlf*/		"\033J\022",	/* forward feed */
7820979Smiriam /*flr*/		"\033j\044",
7920979Smiriam /*bdon*/	"\033G",	/* Alternate chars.  '\fB' to invoke */
8020979Smiriam /*bdoff*/	"\033H",	/* Standard chars. '\fP' to invoke */
8120979Smiriam /*ploton*/	"",
8220979Smiriam /*plotoff*/	"",
8320979Smiriam /*up*/		"",
8420979Smiriam /*down*/	"",
8520979Smiriam /*right*/	"",
8620979Smiriam /*left*/	"",
8720979Smiriam 
8820979Smiriam "\001 ",	/*space*/
8920979Smiriam "\001!",	/*!*/
9020979Smiriam "\001\"",	/*"*/
9120979Smiriam "\001#",	/*#*/
9220979Smiriam "\001$",	/*$*/
9320979Smiriam "\001%",	/*%*/
9420979Smiriam "\001&",	/*&*/
9520979Smiriam "\001'",	/*' close*/
9620979Smiriam "\001(",	/*(*/
9720979Smiriam "\001)",	/*)*/
9820979Smiriam "\001*",	/***/
9920979Smiriam "\001+",	/*+*/
10020979Smiriam "\001,",	/*,*/
10120979Smiriam "\001-",	/*- hyphen*/
10220979Smiriam "\001.",	/*.*/
10320979Smiriam "\001/",	/*/*/
10420979Smiriam "\2010",	/*0*/
10520979Smiriam "\2011",	/*1*/
10620979Smiriam "\2012",	/*2*/
10720979Smiriam "\2013",	/*3*/
10820979Smiriam "\2014",	/*4*/
10920979Smiriam "\2015",	/*5*/
11020979Smiriam "\2016",	/*6*/
11120979Smiriam "\2017",	/*7*/
11220979Smiriam "\2018",	/*8*/
11320979Smiriam "\2019",	/*9*/
11420979Smiriam "\001:",	/*:*/
11520979Smiriam "\001;",	/*;*/
11620979Smiriam "\001<",	/*<*/
11720979Smiriam "\001=",	/*=*/
11820979Smiriam "\001>",	/*>*/
11920979Smiriam "\001?",	/*?*/
12020979Smiriam "\001@",	/*@*/
12120979Smiriam "\201A",	/*A*/
12220979Smiriam "\201B",	/*B*/
12320979Smiriam "\201C",	/*C*/
12420979Smiriam "\201D",	/*D*/
12520979Smiriam "\201E",	/*E*/
12620979Smiriam "\201F",	/*F*/
12720979Smiriam "\201G",	/*G*/
12820979Smiriam "\201H",	/*H*/
12920979Smiriam "\201I",	/*I*/
13020979Smiriam "\201J",	/*J*/
13120979Smiriam "\201K",	/*K*/
13220979Smiriam "\201L",	/*L*/
13320979Smiriam "\201M",	/*M*/
13420979Smiriam "\201N",	/*N*/
13520979Smiriam "\201O",	/*O*/
13620979Smiriam "\201P",	/*P*/
13720979Smiriam "\201Q",	/*Q*/
13820979Smiriam "\201R",	/*R*/
13920979Smiriam "\201S",	/*S*/
14020979Smiriam "\201T",	/*T*/
14120979Smiriam "\201U",	/*U*/
14220979Smiriam "\201V",	/*V*/
14320979Smiriam "\201W",	/*W*/
14420979Smiriam "\201X",	/*X*/
14520979Smiriam "\201Y",	/*Y*/
14620979Smiriam "\201Z",	/*Z*/
14720979Smiriam "\001[",	/*[*/
14820979Smiriam "\001\\",	/*\*/
14920979Smiriam "\001]",	/*]*/
15020979Smiriam "\001^",	/*^*/
15120979Smiriam "\001_",	/*_ dash*/
15220979Smiriam "\001`",	/*` open*/
15320979Smiriam "\201a",	/*a*/
15420979Smiriam "\201b",	/*b*/
15520979Smiriam "\201c",	/*c*/
15620979Smiriam "\201d",	/*d*/
15720979Smiriam "\201e",	/*e*/
15820979Smiriam "\201f",	/*f*/
15920979Smiriam "\201g",	/*g*/
16020979Smiriam "\201h",	/*h*/
16120979Smiriam "\201i",	/*i*/
16220979Smiriam "\201j",	/*j*/
16320979Smiriam "\201k",	/*k*/
16420979Smiriam "\201l",	/*l*/
16520979Smiriam "\201m",	/*m*/
16620979Smiriam "\201n",	/*n*/
16720979Smiriam "\201o",	/*o*/
16820979Smiriam "\201p",	/*p*/
16920979Smiriam "\201q",	/*q*/
17020979Smiriam "\201r",	/*r*/
17120979Smiriam "\201s",	/*s*/
17220979Smiriam "\201t",	/*t*/
17320979Smiriam "\201u",	/*u*/
17420979Smiriam "\201v",	/*v*/
17520979Smiriam "\201w",	/*w*/
17620979Smiriam "\201x",	/*x*/
17720979Smiriam "\201y",	/*y*/
17820979Smiriam "\201z",	/*z*/
17920979Smiriam "\001{",	/*{*/
18020979Smiriam "\001|",	/*|*/
18120979Smiriam "\001}",	/*}*/
18220979Smiriam "\001~",	/*~*/
18320979Smiriam "\001",		/* narrow sp */
18420979Smiriam "\001-",	/*hyphen*/
18520979Smiriam "\001\033j\003.\033J\003",	/*bullet*/
18635268Sbostic "\002[]",	/*square*/
18720979Smiriam "\001-",	/*3/4 em*/
18820979Smiriam "\001_",	/*rule*/
18920979Smiriam "\0031/4",	/*1/4*/
19020979Smiriam "\0031/2",	/*1/2*/
19120979Smiriam "\0033/4",	/*3/4*/
19220979Smiriam "\001-",	/*minus*/
19320979Smiriam "\202fi",	/*fi*/
19420979Smiriam "\202fl",	/*fl*/
19520979Smiriam "\202ff",	/*ff*/
19620979Smiriam "\203ffi",	/*ffi*/
19720979Smiriam "\203ffl",	/*ffl*/
19820979Smiriam "\001\033j\013o\033J\013",	/*degree*/
19920979Smiriam "\001|\b\033j\002-\033J\002",	/*dagger*/
20020979Smiriam "\001 ",	/* section*/
20120979Smiriam "\001'",	/*foot mark*/
20220979Smiriam "\001'",	/*acute accent*/
20320979Smiriam "\001`",	/*grave accent*/
20420979Smiriam "\001_",	/*underrule*/
20520979Smiriam "\001/",	/*slash (longer)*/
20620979Smiriam "\001\0",	/*half narrow space => 1/12 em */
20720979Smiriam "\001 ",	/*unpaddable space*/
20820979Smiriam "\201o\b(", 	/*alpha*/
20920979Smiriam "\2018\b|", 	/*beta*/
21020979Smiriam "\201>\b/", 	/*gamma*/
21120979Smiriam "\201d\b`", 	/*delta*/
21220979Smiriam "\201C\b-", 	/*epsilon*/
21320979Smiriam "\000\0", 	/*zeta*/
21420979Smiriam "\201n",	/*eta*/
21520979Smiriam "\201o\b-", 	/*theta*/
21620979Smiriam "\201i",	/*iota*/
21720979Smiriam "\201k",	/*kappa*/
21820979Smiriam "\201,\b\\", 	/*lambda*/
21920979Smiriam "\201u",	/*mu*/
22020979Smiriam "\201v",	/*nu*/
22120979Smiriam "\000\0", 	/*xi*/
22220979Smiriam "\201o",	/*omicron*/
22320979Smiriam "\202i\b~i\b~",	/*pi*/
22420979Smiriam "\201p",	/*rho*/
22520979Smiriam "\201o\b~", 	/*sigma*/
22620979Smiriam "\201i\b~", 	/*tau*/
22720979Smiriam "\201u",	/*upsilon*/
22820979Smiriam "\201o\b|", 	/*phi*/
22920979Smiriam "\201x",	/*chi*/
23020979Smiriam "\201u\b|", 	/*psi*/
23120979Smiriam "\201w", 	/*omega*/
23220979Smiriam "\201I\b~", 	/*Gamma*/
23320979Smiriam "\202/\b_\\\b_", /*Delta*/
23420979Smiriam "\201O\b-",	/*Theta*/
23520979Smiriam "\202/\\",	/*Lambda*/
23620979Smiriam "\201=\b_",	/*Xi*/
23720979Smiriam "\202TT",	/*Pi*/
23820979Smiriam "\201>\b_\b~", 	/*Sigma*/
23920979Smiriam "\000",		/**/
24020979Smiriam "\201Y",	/*Upsilon*/
24120979Smiriam "\201O\b|",	/*Phi*/
24220979Smiriam "\201U\b|",	/*Psi*/
24320979Smiriam "\201O\b_",	/*Omega*/
24420979Smiriam "\001v\b/",	/*square root*/
24520979Smiriam "\000\0",	/*terminal sigma*/
24620979Smiriam "\001~",	/*root en*/
24720979Smiriam "\001>\b_",	/*>=*/
24820979Smiriam "\001<\b_",	/*<=*/
24920979Smiriam "\001=\b_",	/*identically equal*/
25020979Smiriam "\001-",	/*equation minus*/
25120979Smiriam "\001~\b_",	/*approx =*/
25220979Smiriam "\001~",	/*approximates*/
25320979Smiriam "\001=\b/",	/*not equal*/
25420979Smiriam "\002->",	/*right arrow*/
25520979Smiriam "\002<-",	/*left arrow*/
25620979Smiriam "\001|\b^",	/*up arrow*/
25720979Smiriam "\001|\bv",	/*down arrow*/
25820979Smiriam "\001=",	/*equation equal*/
25920979Smiriam "\001x",	/*multiply*/
26020979Smiriam "\001:\b-",	/*divide*/
26120979Smiriam "\001+\b_",	/*plus-minus*/
26220979Smiriam "\002(\b~)\b~",	/*cup (union)*/
26320979Smiriam "\002(\b_)\b_",	/*cap (intersection)*/
26420979Smiriam "\002(=",	/*subset of*/
26520979Smiriam "\002=)",	/*superset of*/
26620979Smiriam "\002(=\b_",	/*improper subset*/
26720979Smiriam "\002=\b_)",	/*improper superset*/
26820979Smiriam "\002oo",	/*infinity*/
26920979Smiriam "\001o\b`",	/*partial derivative*/
27020979Smiriam "\002\\\b~/\b~", /*gradient*/
27120979Smiriam "\000\0",	/*not*/
27220979Smiriam "\000\0",	/*integral sign*/
27320979Smiriam "\002oc",	/*proportional to*/
27420979Smiriam "\001O\b/",	/*empty set*/
27520979Smiriam "\001<\b-",	/*member of*/
27620979Smiriam "\001+",	/*equation plus*/
27720979Smiriam "\003(R)",	/*registered*/
27820979Smiriam "\003(C)",	/*copyright*/
27920979Smiriam "\001|",	/*box rule */
28020979Smiriam "\001c\b/",	/*cent sign*/
28120979Smiriam "\001|\b=",	/*dbl dagger*/
28220979Smiriam "\002=>",	/*right hand*/
28320979Smiriam "\002<=",	/*left hand*/
28420979Smiriam "\001*",	/*math * */
28520979Smiriam "\000\0",	/*bell system sign*/
28620979Smiriam "\001|",	/*or (was star)*/
28720979Smiriam "\001O",	/*circle*/
28820979Smiriam "\000\033G",	/* FX80 set Double Strike */	/* \(lt */
28920979Smiriam "\000\033H",	/* FX80 cancels D.S.  */	/* \(lb */
29020980Smiriam };
291