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"