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