xref: /original-bsd/old/roff/nroff_term/tabitoh.c (revision c43e4352)
1 /*	tabitoh.c	4.1	83/08/05	*/
2 #define INCH 240
3 /*
4  * C:Itoh Prowriter (dot matrix) 10 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, EscN sets 10-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, EscN, 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 struct {
36 	int bset;
37 	int breset;
38 	int Hor;
39 	int Vert;
40 	int Newline;
41 	int Char;
42 	int Em;
43 	int Halfline;
44 	int Adj;
45 	char *twinit;
46 	char *twrest;
47 	char *twnl;
48 	char *hlr;
49 	char *hlf;
50 	char *flr;
51 	char *bdon;
52 	char *bdoff;
53 	char *ploton;
54 	char *plotoff;
55 	char *up;
56 	char *down;
57 	char *right;
58 	char *left;
59 	char *codetab[256-32];
60 	int zzz;
61 	} t = {
62 /*bset*/	0,
63 /*breset*/	0177420,
64 /*Hor*/		INCH/20,
65 /*Vert*/	INCH/48,
66 /*Newline*/	INCH/6,
67 /*Char*/	INCH/10,
68 /*Em*/		INCH/10,
69 /*Halfline*/	INCH/12,
70 /*Adj*/		INCH/10,
71 /*twinit*/	"\033`\015\033N",
72 /*twrest*/	"\033Y\033\042\033$\033]\033f\033T24\033<\033N\015\033a\n",
73 /*twnl*/	"\015\n",
74 /*hlr*/		"\033[\033T12\033r\n\033T24\033]\033f",
75 /*hlf*/		"\033[\033T12\n\033T24\033]",
76 /*flr*/         "\033[\033r\n\033f\033]",
77 /*bdon*/	"\033!",
78 /*bdoff*/	"\033\042",
79 /*ploton*/	"\033>\033T03",
80 /*plotoff*/	"\033<\033T24",
81 /*up*/		"\033[\033r\n\033f\033]",
82 /*down*/	"\033[\n\033]",
83 /*right*/	"\033P \033N",
84 /*left*/	"\b\033Q \033N",
85 /*codetab*/
86 #include "code.itoh"
87