Commit | Line | Data |
---|---|---|
058e8d4b SL |
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" |