xref: /original-bsd/old/roff/nroff_term/tabepson.c (revision 241757c4)
1 /*************************************************************************
2  * This is 'tabepson.c' for an Epson FX80. Default spacing is elite.	 *
3  * This represents a combination and very slight modification of two	 *
4  *  nroff driving tables. Specifically :				 *
5  *									 *
6  *     tablpr.c  by UCB Computing Center (the approximation of greek)    *
7  *									 *
8  *     tabfx80p.c by Goeke@MIT-Multics.ARPA (Epson print mode switching) *
9  *	replaces big curly bracket parts with the following:		 *
10  *									 *
11  *		PRINT MODE:		  CHARACTER SEQUENCE		 *
12  *		FX80 set Double Strike 	 	\(lt			 *
13  *		FX80 cancels D.S.  	 	\(lb			 *
14  *		FX80 set Condensed 	 	\(rt			 *
15  *		FX80 cancels Condensed 	 	\(rb			 *
16  *		FX80 set Pica size 	 	\(lk			 *
17  *		FX80 set Elite size	 	\(rk			 *
18  *		FX80 set Proportional 	 	\(bv 			 *
19  *		FX80 set Expanded Mode 	 	\(lf 			 *
20  *		FX80 cancel Expanded Mode	\(rf 			 *
21  *		FX80 underline on 	 	\(lc 			 *
22  *		FX80 underline off 	 	\(rc 			 *
23  *									 *
24  *  --> J. Michael Cherry, 1/18/85  molbio@ucblapis or			 *
25  *				    ucbvax!molbio!mike			 *
26  *									 *
27  *************************************************************************/
28 
29 #define INCH 240
30 
31 struct {
32           int bset;               /* terminal driver set          */
33           int breset;             /* terminal driver reset        */
34           int Hor;                /* horizontal resolution        */
35           int Vert;               /* vetical resolution           */
36           int Newline;            /* length on one line feed      */
37           int Char;               /* character size increment     */
38           int Em;                 /* em size                      */
39           int Halfline;           /* length of half line feed     */
40           int Adj;                /* white size increment         */
41           char *twinit;           /* initialize string to printer */
42           char *twrest;           /* reset string to printer      */
43           char *twnl;             /* newline string               */
44           char *hlr;              /* half-line-feed-reverse       */
45           char *hlf;              /* half-line-feed-forward       */
46           char *flr;              /* full-line-feed-reverse       */
47           char *bdon;             /* bold-on string               */
48           char *bdoff;            /* bold-off string              */
49           char *ploton;           /* plot on string               */
50           char *plotoff;          /* plot off string              */
51           char *up;               /* these strings move as        */
52           char *down;             /*     indicated in plot mode   */
53           char *right;            /*     in best available        */
54           char *left;             /*     resolution               */
55           char *codetab[256-32];  /* see the table                */
56           int zzz;
57           } t = {
58 /*bset*/	0,
59 /*breset*/	0,
60 /*Hor*/		INCH/120,	/* must be consisten with plot increments */
61 /*Vert*/	INCH/48,	/* ditto */
62 /*Newline*/	INCH/6,
63 /*Char*/	INCH/12,	/* the character unit for the code table */
64 /*Em*/		INCH/12,	/* the nominal space size */
65 /*Halfline*/	INCH/12,
66 /*Adj*/		INCH/12,	/* the white caused by a single plot move */
67 /*twinit*/	"\033M",	/* invoke elite */
68 /*twrest*/	"\033@",	/* reset printer to deflauts */
69 /*twnl*/	"\n",		/* newline code        */
70 /*hlr*/		"\033j\022",
71 /*hlf*/		"\033J\022",	/* forward feed */
72 /*flr*/		"\033j\044",
73 /*bdon*/	"\033G",	/* Alternate chars.  '\fB' to invoke */
74 /*bdoff*/	"\033H",	/* Standard chars. '\fP' to invoke */
75 /*ploton*/	"",
76 /*plotoff*/	"",
77 /*up*/		"",
78 /*down*/	"",
79 /*right*/	"",
80 /*left*/	"",
81 
82 "\001 ",	/*space*/
83 "\001!",	/*!*/
84 "\001\"",	/*"*/
85 "\001#",	/*#*/
86 "\001$",	/*$*/
87 "\001%",	/*%*/
88 "\001&",	/*&*/
89 "\001'",	/*' close*/
90 "\001(",	/*(*/
91 "\001)",	/*)*/
92 "\001*",	/***/
93 "\001+",	/*+*/
94 "\001,",	/*,*/
95 "\001-",	/*- hyphen*/
96 "\001.",	/*.*/
97 "\001/",	/*/*/
98 "\2010",	/*0*/
99 "\2011",	/*1*/
100 "\2012",	/*2*/
101 "\2013",	/*3*/
102 "\2014",	/*4*/
103 "\2015",	/*5*/
104 "\2016",	/*6*/
105 "\2017",	/*7*/
106 "\2018",	/*8*/
107 "\2019",	/*9*/
108 "\001:",	/*:*/
109 "\001;",	/*;*/
110 "\001<",	/*<*/
111 "\001=",	/*=*/
112 "\001>",	/*>*/
113 "\001?",	/*?*/
114 "\001@",	/*@*/
115 "\201A",	/*A*/
116 "\201B",	/*B*/
117 "\201C",	/*C*/
118 "\201D",	/*D*/
119 "\201E",	/*E*/
120 "\201F",	/*F*/
121 "\201G",	/*G*/
122 "\201H",	/*H*/
123 "\201I",	/*I*/
124 "\201J",	/*J*/
125 "\201K",	/*K*/
126 "\201L",	/*L*/
127 "\201M",	/*M*/
128 "\201N",	/*N*/
129 "\201O",	/*O*/
130 "\201P",	/*P*/
131 "\201Q",	/*Q*/
132 "\201R",	/*R*/
133 "\201S",	/*S*/
134 "\201T",	/*T*/
135 "\201U",	/*U*/
136 "\201V",	/*V*/
137 "\201W",	/*W*/
138 "\201X",	/*X*/
139 "\201Y",	/*Y*/
140 "\201Z",	/*Z*/
141 "\001[",	/*[*/
142 "\001\\",	/*\*/
143 "\001]",	/*]*/
144 "\001^",	/*^*/
145 "\001_",	/*_ dash*/
146 "\001`",	/*` open*/
147 "\201a",	/*a*/
148 "\201b",	/*b*/
149 "\201c",	/*c*/
150 "\201d",	/*d*/
151 "\201e",	/*e*/
152 "\201f",	/*f*/
153 "\201g",	/*g*/
154 "\201h",	/*h*/
155 "\201i",	/*i*/
156 "\201j",	/*j*/
157 "\201k",	/*k*/
158 "\201l",	/*l*/
159 "\201m",	/*m*/
160 "\201n",	/*n*/
161 "\201o",	/*o*/
162 "\201p",	/*p*/
163 "\201q",	/*q*/
164 "\201r",	/*r*/
165 "\201s",	/*s*/
166 "\201t",	/*t*/
167 "\201u",	/*u*/
168 "\201v",	/*v*/
169 "\201w",	/*w*/
170 "\201x",	/*x*/
171 "\201y",	/*y*/
172 "\201z",	/*z*/
173 "\001{",	/*{*/
174 "\001|",	/*|*/
175 "\001}",	/*}*/
176 "\001~",	/*~*/
177 "\001",		/* narrow sp */
178 "\001-",	/*hyphen*/
179 "\001\033j\003.\033J\003",	/*bullet*/
180 "\002\[]",	/*square*/
181 "\001-",	/*3/4 em*/
182 "\001_",	/*rule*/
183 "\0031/4",	/*1/4*/
184 "\0031/2",	/*1/2*/
185 "\0033/4",	/*3/4*/
186 "\001-",	/*minus*/
187 "\202fi",	/*fi*/
188 "\202fl",	/*fl*/
189 "\202ff",	/*ff*/
190 "\203ffi",	/*ffi*/
191 "\203ffl",	/*ffl*/
192 "\001\033j\013o\033J\013",	/*degree*/
193 "\001|\b\033j\002-\033J\002",	/*dagger*/
194 "\001 ",	/* section*/
195 "\001'",	/*foot mark*/
196 "\001'",	/*acute accent*/
197 "\001`",	/*grave accent*/
198 "\001_",	/*underrule*/
199 "\001/",	/*slash (longer)*/
200 "\001\0",	/*half narrow space => 1/12 em */
201 "\001 ",	/*unpaddable space*/
202 "\201o\b(", 	/*alpha*/
203 "\2018\b|", 	/*beta*/
204 "\201>\b/", 	/*gamma*/
205 "\201d\b`", 	/*delta*/
206 "\201C\b-", 	/*epsilon*/
207 "\000\0", 	/*zeta*/
208 "\201n",	/*eta*/
209 "\201o\b-", 	/*theta*/
210 "\201i",	/*iota*/
211 "\201k",	/*kappa*/
212 "\201,\b\\", 	/*lambda*/
213 "\201u",	/*mu*/
214 "\201v",	/*nu*/
215 "\000\0", 	/*xi*/
216 "\201o",	/*omicron*/
217 "\202i\b~i\b~",	/*pi*/
218 "\201p",	/*rho*/
219 "\201o\b~", 	/*sigma*/
220 "\201i\b~", 	/*tau*/
221 "\201u",	/*upsilon*/
222 "\201o\b|", 	/*phi*/
223 "\201x",	/*chi*/
224 "\201u\b|", 	/*psi*/
225 "\201w", 	/*omega*/
226 "\201I\b~", 	/*Gamma*/
227 "\202/\b_\\\b_", /*Delta*/
228 "\201O\b-",	/*Theta*/
229 "\202/\\",	/*Lambda*/
230 "\201=\b_",	/*Xi*/
231 "\202TT",	/*Pi*/
232 "\201>\b_\b~", 	/*Sigma*/
233 "\000",		/**/
234 "\201Y",	/*Upsilon*/
235 "\201O\b|",	/*Phi*/
236 "\201U\b|",	/*Psi*/
237 "\201O\b_",	/*Omega*/
238 "\001v\b/",	/*square root*/
239 "\000\0",	/*terminal sigma*/
240 "\001~",	/*root en*/
241 "\001>\b_",	/*>=*/
242 "\001<\b_",	/*<=*/
243 "\001=\b_",	/*identically equal*/
244 "\001-",	/*equation minus*/
245 "\001~\b_",	/*approx =*/
246 "\001~",	/*approximates*/
247 "\001=\b/",	/*not equal*/
248 "\002->",	/*right arrow*/
249 "\002<-",	/*left arrow*/
250 "\001|\b^",	/*up arrow*/
251 "\001|\bv",	/*down arrow*/
252 "\001=",	/*equation equal*/
253 "\001x",	/*multiply*/
254 "\001:\b-",	/*divide*/
255 "\001+\b_",	/*plus-minus*/
256 "\002(\b~)\b~",	/*cup (union)*/
257 "\002(\b_)\b_",	/*cap (intersection)*/
258 "\002(=",	/*subset of*/
259 "\002=)",	/*superset of*/
260 "\002(=\b_",	/*improper subset*/
261 "\002=\b_)",	/*improper superset*/
262 "\002oo",	/*infinity*/
263 "\001o\b`",	/*partial derivative*/
264 "\002\\\b~/\b~", /*gradient*/
265 "\000\0",	/*not*/
266 "\000\0",	/*integral sign*/
267 "\002oc",	/*proportional to*/
268 "\001O\b/",	/*empty set*/
269 "\001<\b-",	/*member of*/
270 "\001+",	/*equation plus*/
271 "\003(R)",	/*registered*/
272 "\003(C)",	/*copyright*/
273 "\001|",	/*box rule */
274 "\001c\b/",	/*cent sign*/
275 "\001|\b=",	/*dbl dagger*/
276 "\002=>",	/*right hand*/
277 "\002<=",	/*left hand*/
278 "\001*",	/*math * */
279 "\000\0",	/*bell system sign*/
280 "\001|",	/*or (was star)*/
281 "\001O",	/*circle*/
282 "\000\033G",	/* FX80 set Double Strike */	/* \(lt */
283 "\000\033H",	/* FX80 cancels D.S.  */	/* \(lb */
284 };
285