1 /*	tabitoh12.c	4.1	83/08/05	*/
2 #define INCH 240
3 /*
4  * C:Itoh Prowriter (dot matrix) 12 pitch
5  * nroff driving table
6  * by G. Rochlin, 15feb83
7  * Because the c:itoh will backspace only in incremental mode,
8  * need to write a program to place commands Esc[ and Esc] around ^H.
9  * If you want true underline mode instead of _^Hx_^Hy, etc.,
10  * have the script first replace _^Hx with EscXxEscY, etc.
11  * Further refinements are possible to clean up files and
12  * minimize throughput (e.g., delete all EscYEscX pairs).
13  * In the terminal initialization (twinit) and exit (twrest)
14  * strings, EscE sets 12-pitch. Twrest clears by commanding
15  * Esc Y, Esc", and Esc$ to clear ul, bold, and "greek",
16  * Esc] to restore logic-seek print, Escf and EscT24 to restore
17  * forward linefeed at 6 lines/inch, Esc< for bidirectional
18  * print, EscE, and ^M (\015) to clear the print buffer.
19  * Since the itoh has no keyboard, you have to run it through
20  * a video terminal or micro printer port.
21  * The first twinit code (Esc`) and the last twrest code
22  * (Esca) set the (proper) "transparent" or "buffered" print
23  * mode for tvi950 and tvi925 and Freedom 100. This mode
24  * is necessary on intelligent terminals to keep all the Esc
25  * codes in the driver tables from scrambling the terminal's
26  * brains.  (If you have a dumb terminal, almost any print
27  * mode should be safe. Smart terminals without buffered print,
28  * such as the tvi920, present problems.)
29  * If you have a different terminal,
30  * the shell script should also replace these codes with those
31  * appropriate for your machine.  If you are using an sed
32  * stream for the script, make sure to use single quotes to
33  * isolate the ` from the shell.
34  */
35 #define INCH 240
36 struct {
37 	int bset;
38 	int breset;
39 	int Hor;
40 	int Vert;
41 	int Newline;
42 	int Char;
43 	int Em;
44 	int Halfline;
45 	int Adj;
46 	char *twinit;
47 	char *twrest;
48 	char *twnl;
49 	char *hlr;
50 	char *hlf;
51 	char *flr;
52 	char *bdon;
53 	char *bdoff;
54 	char *ploton;
55 	char *plotoff;
56 	char *up;
57 	char *down;
58 	char *right;
59 	char *left;
60 	char *codetab[256-32];
61 	int zzz;
62 	} t = {
63 /*bset*/	0,
64 /*breset*/	0177420,
65 /*Hor*/		INCH/24,
66 /*Vert*/	INCH/48,
67 /*Newline*/	INCH/6,
68 /*Char*/	INCH/12,
69 /*Em*/		INCH/12,
70 /*Halfline*/	INCH/12,
71 /*Adj*/		INCH/12,
72 /*twinit*/	"\033`\015\033E",
73 /*twrest*/	"\033Y\033\042\033$\033]\033f\033T24\033<\033E\015\033a\n",
74 /*twnl*/	"\015\n",
75 /*hlr*/		"\033[\033T12\033r\n\033T24\033]\033f",
76 /*hlf*/		"\033[\033T12\n\033T24\033]",
77 /*flr*/         "\033[\033r\n\033f\033]",
78 /*bdon*/	"\033!",
79 /*bdoff*/	"\033\042",
80 /*ploton*/	"\033>\033T03",
81 /*plotoff*/	"\033<\033T24",
82 /*up*/		"\033[\033r\n\033f\033]",
83 /*down*/	"\033[\n\033]",
84 /*right*/	"\033P \033E",
85 /*left*/	"\b\033P \033E",
86 /*codetab*/
87 #include "code.itoh"
88