1: /************************************************************************* 2: * This is 'tabepson.c' for an Epson FX80. Default spacing is elite. * 3: * This represents a combination and very slight modification of two * 4: * nroff driving tables. Specifically : * 5: * * 6: * tablpr.c by UCB Computing Center (the approximation of greek) * 7: * * 8: * tabfx80p.c by Goeke@MIT-Multics.ARPA (Epson print mode switching) * 9: * replaces big curly bracket parts with the following: * 10: * * 11: * PRINT MODE: CHARACTER SEQUENCE * 12: * FX80 set Double Strike \(lt * 13: * FX80 cancels D.S. \(lb * 14: * FX80 set Condensed \(rt * 15: * FX80 cancels Condensed \(rb * 16: * FX80 set Pica size \(lk * 17: * FX80 set Elite size \(rk * 18: * FX80 set Proportional \(bv * 19: * FX80 set Expanded Mode \(lf * 20: * FX80 cancel Expanded Mode \(rf * 21: * FX80 underline on \(lc * 22: * FX80 underline off \(rc * 23: * * 24: * --> J. Michael Cherry, 1/18/85 molbio@ucblapis or * 25: * ucbvax!molbio!mike * 26: * * 27: *************************************************************************/ 28: 29: #define INCH 240 30: 31: struct { 32: int bset; /* terminal driver set */ 33: int breset; /* terminal driver reset */ 34: int Hor; /* horizontal resolution */ 35: int Vert; /* vetical resolution */ 36: int Newline; /* length on one line feed */ 37: int Char; /* character size increment */ 38: int Em; /* em size */ 39: int Halfline; /* length of half line feed */ 40: int Adj; /* white size increment */ 41: char *twinit; /* initialize string to printer */ 42: char *twrest; /* reset string to printer */ 43: char *twnl; /* newline string */ 44: char *hlr; /* half-line-feed-reverse */ 45: char *hlf; /* half-line-feed-forward */ 46: char *flr; /* full-line-feed-reverse */ 47: char *bdon; /* bold-on string */ 48: char *bdoff; /* bold-off string */ 49: char *ploton; /* plot on string */ 50: char *plotoff; /* plot off string */ 51: char *up; /* these strings move as */ 52: char *down; /* indicated in plot mode */ 53: char *right; /* in best available */ 54: char *left; /* resolution */ 55: char *codetab[256-32]; /* see the table */ 56: int zzz; 57: } t = { 58: /*bset*/ 0, 59: /*breset*/ 0, 60: /*Hor*/ INCH/120, /* must be consisten with plot increments */ 61: /*Vert*/ INCH/48, /* ditto */ 62: /*Newline*/ INCH/6, 63: /*Char*/ INCH/12, /* the character unit for the code table */ 64: /*Em*/ INCH/12, /* the nominal space size */ 65: /*Halfline*/ INCH/12, 66: /*Adj*/ INCH/12, /* the white caused by a single plot move */ 67: /*twinit*/ "\033M", /* invoke elite */ 68: /*twrest*/ "\033@", /* reset printer to deflauts */ 69: /*twnl*/ "\n", /* newline code */ 70: /*hlr*/ "\033j\022", 71: /*hlf*/ "\033J\022", /* forward feed */ 72: /*flr*/ "\033j\044", 73: /*bdon*/ "\033G", /* Alternate chars. '\fB' to invoke */ 74: /*bdoff*/ "\033H", /* Standard chars. '\fP' to invoke */ 75: /*ploton*/ "", 76: /*plotoff*/ "", 77: /*up*/ "", 78: /*down*/ "", 79: /*right*/ "", 80: /*left*/ "", 81: 82: "\001 ", /*space*/ 83: "\001!", /*!*/ 84: "\001\"", /*"*/ 85: "\001#", /*#*/ 86: "\001$", /*$*/ 87: "\001%", /*%*/ 88: "\001&", /*&*/ 89: "\001'", /*' close*/ 90: "\001(", /*(*/ 91: "\001)", /*)*/ 92: "\001*", /***/ 93: "\001+", /*+*/ 94: "\001,", /*,*/ 95: "\001-", /*- hyphen*/ 96: "\001.", /*.*/ 97: "\001/", /*/*/ 98: "\2010", /*0*/ 99: "\2011", /*1*/ 100: "\2012", /*2*/ 101: "\2013", /*3*/ 102: "\2014", /*4*/ 103: "\2015", /*5*/ 104: "\2016", /*6*/ 105: "\2017", /*7*/ 106: "\2018", /*8*/ 107: "\2019", /*9*/ 108: "\001:", /*:*/ 109: "\001;", /*;*/ 110: "\001<", /*<*/ 111: "\001=", /*=*/ 112: "\001>", /*>*/ 113: "\001?", /*?*/ 114: "\001@", /*@*/ 115: "\201A", /*A*/ 116: "\201B", /*B*/ 117: "\201C", /*C*/ 118: "\201D", /*D*/ 119: "\201E", /*E*/ 120: "\201F", /*F*/ 121: "\201G", /*G*/ 122: "\201H", /*H*/ 123: "\201I", /*I*/ 124: "\201J", /*J*/ 125: "\201K", /*K*/ 126: "\201L", /*L*/ 127: "\201M", /*M*/ 128: "\201N", /*N*/ 129: "\201O", /*O*/ 130: "\201P", /*P*/ 131: "\201Q", /*Q*/ 132: "\201R", /*R*/ 133: "\201S", /*S*/ 134: "\201T", /*T*/ 135: "\201U", /*U*/ 136: "\201V", /*V*/ 137: "\201W", /*W*/ 138: "\201X", /*X*/ 139: "\201Y", /*Y*/ 140: "\201Z", /*Z*/ 141: "\001[", /*[*/ 142: "\001\\", /*\*/ 143: "\001]", /*]*/ 144: "\001^", /*^*/ 145: "\001_", /*_ dash*/ 146: "\001`", /*` open*/ 147: "\201a", /*a*/ 148: "\201b", /*b*/ 149: "\201c", /*c*/ 150: "\201d", /*d*/ 151: "\201e", /*e*/ 152: "\201f", /*f*/ 153: "\201g", /*g*/ 154: "\201h", /*h*/ 155: "\201i", /*i*/ 156: "\201j", /*j*/ 157: "\201k", /*k*/ 158: "\201l", /*l*/ 159: "\201m", /*m*/ 160: "\201n", /*n*/ 161: "\201o", /*o*/ 162: "\201p", /*p*/ 163: "\201q", /*q*/ 164: "\201r", /*r*/ 165: "\201s", /*s*/ 166: "\201t", /*t*/ 167: "\201u", /*u*/ 168: "\201v", /*v*/ 169: "\201w", /*w*/ 170: "\201x", /*x*/ 171: "\201y", /*y*/ 172: "\201z", /*z*/ 173: "\001{", /*{*/ 174: "\001|", /*|*/ 175: "\001}", /*}*/ 176: "\001~", /*~*/ 177: "\001", /* narrow sp */ 178: "\001-", /*hyphen*/ 179: "\001\033j\003.\033J\003", /*bullet*/ 180: "\002\[]", /*square*/ 181: "\001-", /*3/4 em*/ 182: "\001_", /*rule*/ 183: "\0031/4", /*1/4*/ 184: "\0031/2", /*1/2*/ 185: "\0033/4", /*3/4*/ 186: "\001-", /*minus*/ 187: "\202fi", /*fi*/ 188: "\202fl", /*fl*/ 189: "\202ff", /*ff*/ 190: "\203ffi", /*ffi*/ 191: "\203ffl", /*ffl*/ 192: "\001\033j\013o\033J\013", /*degree*/ 193: "\001|\b\033j\002-\033J\002", /*dagger*/ 194: "\001 ", /* section*/ 195: "\001'", /*foot mark*/ 196: "\001'", /*acute accent*/ 197: "\001`", /*grave accent*/ 198: "\001_", /*underrule*/ 199: "\001/", /*slash (longer)*/ 200: "\001\0", /*half narrow space => 1/12 em */ 201: "\001 ", /*unpaddable space*/ 202: "\201o\b(", /*alpha*/ 203: "\2018\b|", /*beta*/ 204: "\201>\b/", /*gamma*/ 205: "\201d\b`", /*delta*/ 206: "\201C\b-", /*epsilon*/ 207: "\000\0", /*zeta*/ 208: "\201n", /*eta*/ 209: "\201o\b-", /*theta*/ 210: "\201i", /*iota*/ 211: "\201k", /*kappa*/ 212: "\201,\b\\", /*lambda*/ 213: "\201u", /*mu*/ 214: "\201v", /*nu*/ 215: "\000\0", /*xi*/ 216: "\201o", /*omicron*/ 217: "\202i\b~i\b~", /*pi*/ 218: "\201p", /*rho*/ 219: "\201o\b~", /*sigma*/ 220: "\201i\b~", /*tau*/ 221: "\201u", /*upsilon*/ 222: "\201o\b|", /*phi*/ 223: "\201x", /*chi*/ 224: "\201u\b|", /*psi*/ 225: "\201w", /*omega*/ 226: "\201I\b~", /*Gamma*/ 227: "\202/\b_\\\b_", /*Delta*/ 228: "\201O\b-", /*Theta*/ 229: "\202/\\", /*Lambda*/ 230: "\201=\b_", /*Xi*/ 231: "\202TT", /*Pi*/ 232: "\201>\b_\b~", /*Sigma*/ 233: "\000", /**/ 234: "\201Y", /*Upsilon*/ 235: "\201O\b|", /*Phi*/ 236: "\201U\b|", /*Psi*/ 237: "\201O\b_", /*Omega*/ 238: "\001v\b/", /*square root*/ 239: "\000\0", /*terminal sigma*/ 240: "\001~", /*root en*/ 241: "\001>\b_", /*>=*/ 242: "\001<\b_", /*<=*/ 243: "\001=\b_", /*identically equal*/ 244: "\001-", /*equation minus*/ 245: "\001~\b_", /*approx =*/ 246: "\001~", /*approximates*/ 247: "\001=\b/", /*not equal*/ 248: "\002->", /*right arrow*/ 249: "\002<-", /*left arrow*/ 250: "\001|\b^", /*up arrow*/ 251: "\001|\bv", /*down arrow*/ 252: "\001=", /*equation equal*/ 253: "\001x", /*multiply*/ 254: "\001:\b-", /*divide*/ 255: "\001+\b_", /*plus-minus*/ 256: "\002(\b~)\b~", /*cup (union)*/ 257: "\002(\b_)\b_", /*cap (intersection)*/ 258: "\002(=", /*subset of*/ 259: "\002=)", /*superset of*/ 260: "\002(=\b_", /*improper subset*/ 261: "\002=\b_)", /*improper superset*/ 262: "\002oo", /*infinity*/ 263: "\001o\b`", /*partial derivative*/ 264: "\002\\\b~/\b~", /*gradient*/ 265: "\000\0", /*not*/ 266: "\000\0", /*integral sign*/ 267: "\002oc", /*proportional to*/ 268: "\001O\b/", /*empty set*/ 269: "\001<\b-", /*member of*/ 270: "\001+", /*equation plus*/ 271: "\003(R)", /*registered*/ 272: "\003(C)", /*copyright*/ 273: "\001|", /*box rule */ 274: "\001c\b/", /*cent sign*/ 275: "\001|\b=", /*dbl dagger*/ 276: "\002=>", /*right hand*/ 277: "\002<=", /*left hand*/ 278: "\001*", /*math * */ 279: "\000\0", /*bell system sign*/ 280: "\001|", /*or (was star)*/ 281: "\001O", /*circle*/ 282: "\000\033G", /* FX80 set Double Strike */ /* \(lt */ 283: "\000\033H", /* FX80 cancels D.S. */ /* \(lb */ 284: };