|
|
1.1 ! root 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 [email protected] (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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.