1*3943Sroot static char *sccsid = "@(#)tc.c 4.2 (Berkeley) 07/06/81"; 21121Sbill /* 31121Sbill * Simulate typesetter on 4014 41121Sbill */ 51121Sbill 61121Sbill #include <signal.h> 71121Sbill #include <stdio.h> 81121Sbill 9*3943Sroot #define oput(c) if (pgskip==0) putchar(c); else (c); 101121Sbill #define MAXY 3071 111121Sbill #define US 037 121121Sbill #define GS 035 131121Sbill #define ESC 033 141121Sbill #define FF 014 151121Sbill #define DBL 0200 161121Sbill 171121Sbill int pl = 11*144; 181121Sbill int mpy = 1; 191121Sbill int div = 1; 201121Sbill char *ap; 211121Sbill int ch; 221121Sbill int nonumb; 231121Sbill int psize = 10; 241121Sbill int dfact = 1; 251121Sbill int esc; 261121Sbill int escd; 271121Sbill int verd; 281121Sbill int esct; 291121Sbill int osize = 02; 301121Sbill int size = 02; 311121Sbill int rx; 321121Sbill int xx; 331121Sbill int yy = MAXY+62+48; 341121Sbill int leadtot = -31; 351121Sbill int ohy = -1; 361121Sbill int ohx = -1; 371121Sbill int oxb = -1; 381121Sbill int oly = -1; 391121Sbill int olx = -1; 401121Sbill int tflag; 411121Sbill int railmag; 421121Sbill int lead; 431121Sbill int skip; 441121Sbill int pgskip; 451121Sbill int ksize = ';'; 461121Sbill int mcase; 471121Sbill int stab[] = {010,0,01,07,02,03,04,05,0211,06,0212,0213,0214,0215,0216,0217}; 481121Sbill int rtab[] = {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 28, 36, 18}; 491121Sbill int ktab[] = {';',';',';',';',';',';',':',':','9','9','9','9','8','8','8','9'}; 501121Sbill int first = 1; 511121Sbill int alpha; 521121Sbill extern char *asctab[128]; 531121Sbill extern char *spectab[128]; 541121Sbill int erase = 1; 551121Sbill int (*sigint)(); 561121Sbill int (*sigquit)(); 571121Sbill 581121Sbill main(argc,argv) 591121Sbill int argc; 601121Sbill char **argv; 611121Sbill { 621121Sbill register i, j; 631121Sbill register char *k; 641121Sbill extern ex(); 651121Sbill 661121Sbill while((--argc > 0) && ((++argv)[0][0]=='-')){ 671121Sbill switch(argv[0][1]){ 681121Sbill case 'p': 691121Sbill ap = &argv[0][2]; 701121Sbill dfact = 72; 711121Sbill if(i = atoi())pl = i/3; 721121Sbill continue; 731121Sbill case 't': 741121Sbill tflag++; 751121Sbill continue; 761121Sbill case 's': 771121Sbill ap = &argv[0][2]; 781121Sbill dfact = 1; 791121Sbill pgskip = atoi(); 801121Sbill continue; 811121Sbill default: 821121Sbill dfact = 1; 831121Sbill ap = &argv[0][1]; 841121Sbill if(i = atoi())mpy = i; 851121Sbill if(i = atoi())div = i; 861121Sbill continue; 871121Sbill } 881121Sbill } 891121Sbill if(argc){ 901121Sbill if (freopen(argv[0], "r", stdin) == NULL) { 911121Sbill fprintf(stderr, "tc: cannot open %s\n", argv[0]); 921121Sbill exit(1); 931121Sbill } 941121Sbill } 951121Sbill sigint = signal(SIGINT, ex); 961121Sbill sigquit = signal(SIGQUIT, SIG_IGN); 971121Sbill while((i = getchar()) != EOF){ 981121Sbill if(!i)continue; 991121Sbill if(i & 0200){ 1001121Sbill esc += (~i) & 0177; 1011121Sbill continue; 1021121Sbill } 1031121Sbill if(esc){ 1041121Sbill if(escd)esc = -esc; 1051121Sbill esct += esc; 1061121Sbill xx += (esc*mpy + rx)/div; 1071121Sbill rx = (esc*mpy + rx)%div; 1081121Sbill sendpt(); 1091121Sbill esc = 0; 1101121Sbill } 1111121Sbill switch(i){ 1121121Sbill case 0100: /*init*/ 1131121Sbill escd = verd = mcase = railmag = xx = 0; 1141121Sbill yy = MAXY + 48; 1151121Sbill leadtot = -31; 1161121Sbill ohy = oxb = oly = ohx = olx = -1; 1171121Sbill oput(US); 1181121Sbill fflush(stdout); 1191121Sbill if(!first && !tflag)kwait(); 1201121Sbill if(first){ 1211121Sbill first = 0; 1221121Sbill yy += 62; 1231121Sbill } 1241121Sbill init(); 1251121Sbill continue; 1261121Sbill case 0101: /*lower rail*/ 1271121Sbill railmag &= ~01; 1281121Sbill continue; 1291121Sbill case 0102: /*upper rail*/ 1301121Sbill railmag |= 01; 1311121Sbill continue; 1321121Sbill case 0103: /*upper mag*/ 1331121Sbill railmag |= 02; 1341121Sbill continue; 1351121Sbill case 0104: /*lower mag*/ 1361121Sbill railmag &= ~02; 1371121Sbill continue; 1381121Sbill case 0105: /*lower case*/ 1391121Sbill mcase = 0; 1401121Sbill continue; 1411121Sbill case 0106: /*upper case*/ 1421121Sbill mcase = 0100; 1431121Sbill continue; 1441121Sbill case 0107: /*escape forward*/ 1451121Sbill escd = 0; 1461121Sbill continue; 1471121Sbill case 0110: /*escape backward*/ 1481121Sbill escd = 1; 1491121Sbill continue; 1501121Sbill case 0111: /*stop*/ 1511121Sbill continue; 1521121Sbill case 0112: /*lead forward*/ 1531121Sbill verd = 0; 1541121Sbill continue; 1551121Sbill case 0113: /*undefined*/ 1561121Sbill continue; 1571121Sbill case 0114: /*lead backward*/ 1581121Sbill verd = 1; 1591121Sbill continue; 1601121Sbill case 0115: /*undefined*/ 1611121Sbill case 0116: 1621121Sbill case 0117: 1631121Sbill continue; 1641121Sbill } 1651121Sbill if((i & 0340) == 0140){ /*leading*/ 1661121Sbill lead = (~i) & 037; 1671121Sbill if(verd)lead = -lead; 1681121Sbill if((leadtot += lead) > pl){ 1691121Sbill leadtot = lead; 1701121Sbill oput(US); 1711121Sbill fflush(stdout); 1721121Sbill if(!tflag)kwait(); 1731121Sbill yy = MAXY; 1741121Sbill if(pgskip)--pgskip; 1751121Sbill init(); 1761121Sbill continue; 1771121Sbill } 1781121Sbill if(skip)continue; 1791121Sbill if((yy -= (lead<<1)) < 0){ 1801121Sbill skip++; 1811121Sbill yy = 0; 1821121Sbill }else sendpt(); 1831121Sbill continue; 1841121Sbill } 1851121Sbill if((i & 0360) == 0120){ /*size change*/ 1861121Sbill i &= 017; 1871121Sbill for(j = 0; i != (stab[j] & 017); j++); 1881121Sbill osize = size; 1891121Sbill size = stab[j]; 1901121Sbill psize = rtab[j]; 1911121Sbill ksize = ktab[j]; 1921121Sbill oput(ESC); 1931121Sbill oput(ksize); 1941121Sbill i = 0; 1951121Sbill if(!(osize & DBL) && (size & DBL))i = -55; 1961121Sbill else if((osize & DBL) && !(size & DBL))i = 55; 1971121Sbill if(escd)i = -i; 1981121Sbill esc += i; 1991121Sbill continue; 2001121Sbill } 2011121Sbill if(i & 0300)continue; 2021121Sbill i = (i & 077) | mcase; 2031121Sbill if(railmag != 03)k = asctab[i]; 2041121Sbill else k = spectab[i]; 2051121Sbill if(alpha)sendpt(); 2061121Sbill if(*k!='\0'){ 2071121Sbill oput(US); 2081121Sbill while(*k & 0377)oput(*k++); 2091121Sbill alpha++; 2101121Sbill continue; 2111121Sbill }else{ 2121121Sbill if(railmag != 03){ 2131121Sbill switch(i){ 2141121Sbill case 0124: lig("fi"); break; 2151121Sbill case 0125: lig("fl"); break; 2161121Sbill case 0126: lig("ff"); break; 2171121Sbill case 0130: lig("ffl"); break; 2181121Sbill case 0131: lig("ffi"); break; 2191121Sbill default: continue; 2201121Sbill } 2211121Sbill } 2221121Sbill continue; 2231121Sbill } 2241121Sbill } 2251121Sbill ex(); 2261121Sbill } 2271121Sbill lig(x) 2281121Sbill char *x; 2291121Sbill { 2301121Sbill register i, j; 2311121Sbill register char *k; 2321121Sbill 2331121Sbill j = 0; 2341121Sbill k = x; 2351121Sbill oput(US); 2361121Sbill oput(*k++); 2371121Sbill i = psize * 8 * mpy / (div * 6); /* 8/36 em */ 2381121Sbill while(*k){ 2391121Sbill xx += i; 2401121Sbill j += i; 2411121Sbill sendpt(); 2421121Sbill oput(US); 2431121Sbill oput(*k++); 2441121Sbill } 2451121Sbill xx -= j; 2461121Sbill sendpt(); 2471121Sbill } 2481121Sbill init(){ 2491121Sbill 2501121Sbill fflush(stdout); 2511121Sbill if(erase){ 2521121Sbill oput(ESC); 2531121Sbill oput(FF); 2541121Sbill }else erase = 1; 2551121Sbill oput(ESC); 2561121Sbill oput(ksize); 2571121Sbill /*delay about a second*/ 2581121Sbill /* let the system do it... 2591121Sbill for(i = 960; i > 0; i--)oput(GS); 2601121Sbill */ 2611121Sbill skip = 0; 2621121Sbill sendpt(); 2631121Sbill } 2641121Sbill ex(){ 2651121Sbill yy = MAXY; 2661121Sbill xx = 0; 2671121Sbill sendpt(); 2681121Sbill oput(ESC); 2691121Sbill oput(';'); 2701121Sbill oput(US); 2711121Sbill fflush(stdout); 2721121Sbill exit(0); 2731121Sbill } 2741121Sbill kwait(){ 2751121Sbill char buf[128]; char *bptr; char c; 2761121Sbill if(pgskip) return; 2771121Sbill next: 2781121Sbill bptr=buf; 2791121Sbill while((c=readch())&&(c!='\n')) *bptr++=c; 2801121Sbill *bptr=0; 2811121Sbill if(bptr!=buf){ 2821121Sbill bptr = buf; 2831121Sbill if(*bptr == '!'){callunix(&buf[1]); fputs("!\n", stderr); goto next;} 2841121Sbill else switch(*bptr++){ 2851121Sbill case 'e': 2861121Sbill erase = 0; 2871121Sbill goto next; 2881121Sbill case 's': 2891121Sbill ap = &buf[1]; 2901121Sbill dfact = 1; 2911121Sbill pgskip = atoi() + 1; 2921121Sbill goto next; 2931121Sbill default: 2941121Sbill fputs("?\n", stderr); 2951121Sbill goto next; 2961121Sbill } 2971121Sbill } 2981121Sbill else if (c==0) ex(); 2991121Sbill else return; 3001121Sbill } 3011121Sbill callunix(line) 3021121Sbill char line[]; 3031121Sbill { 3041121Sbill int rc, status, unixpid; 3051121Sbill if( (unixpid=fork())==0 ) { 3061121Sbill signal(SIGINT,sigint); signal(SIGQUIT,sigquit); 3071121Sbill close(0); dup(2); 3081121Sbill execl("/bin/sh", "-sh", "-c", line, 0); 3091121Sbill exit(255); 3101121Sbill } 3111121Sbill else if(unixpid == -1) 3121121Sbill return; 3131121Sbill else{ signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); 3141121Sbill while( (rc = wait(&status)) != unixpid && rc != -1 ) ; 3151121Sbill signal(SIGINT,ex); signal(SIGQUIT,sigquit); 3161121Sbill } 3171121Sbill } 3181121Sbill readch(){ 3191121Sbill char c; 3201121Sbill if (read(2,&c,1)<1) c=0; 3211121Sbill return(c); 3221121Sbill } 3231121Sbill sendpt(){ 3241121Sbill int hy,xb,ly,hx,lx; 3251121Sbill 3261121Sbill oput(GS); 3271121Sbill hy = ((yy>>7) & 037); 3281121Sbill xb = ((xx & 03) + ((yy<<2) & 014) & 017); 3291121Sbill ly = ((yy>>2) & 037); 3301121Sbill hx = ((xx>>7) & 037); 3311121Sbill lx = ((xx>>2) & 037); 3321121Sbill if(hy != ohy)oput(hy | 040); 3331121Sbill if(xb != oxb)oput(xb | 0140); 3341121Sbill if((ly != oly) || (hx != ohx) || (xb != oxb)) 3351121Sbill oput(ly | 0140); 3361121Sbill if(hx != ohx)oput(hx | 040); 3371121Sbill oput(lx | 0100); 3381121Sbill ohy = hy; 3391121Sbill oxb = xb; 3401121Sbill oly = ly; 3411121Sbill ohx = hx; 3421121Sbill olx = lx; 3431121Sbill alpha = 0; 3441121Sbill return; 3451121Sbill } 3461121Sbill atoi() 3471121Sbill { 3481121Sbill register i, j, acc; 3491121Sbill int field, digits; 3501121Sbill long dd; 3511121Sbill long tscale(); 3521121Sbill 3531121Sbill field = digits = acc = 0; 3541121Sbill a1: 3551121Sbill while(((j = (i = getch()) - '0') >= 0) && (j <= 9)){ 3561121Sbill field++; 3571121Sbill digits++; 3581121Sbill acc = 10*acc + j; 3591121Sbill } 3601121Sbill if(i == '.'){ 3611121Sbill field++; 3621121Sbill digits = 0; 3631121Sbill goto a1; 3641121Sbill } 3651121Sbill if(!(ch = i))ch = 'x'; 3661121Sbill dd = tscale(acc); 3671121Sbill acc = dd; 3681121Sbill if((field != digits) && (digits > 0)){ 3691121Sbill j = 1; 3701121Sbill while(digits--)j *= 10; 3711121Sbill acc = dd/j; 3721121Sbill } 3731121Sbill nonumb = !field; 3741121Sbill ch = 0; 3751121Sbill return(acc); 3761121Sbill } 3771121Sbill long tscale(n) 3781121Sbill int n; 3791121Sbill { 3801121Sbill register i, j; 3811121Sbill 3821121Sbill switch(i = getch()){ 3831121Sbill case 'u': 3841121Sbill j = 1; 3851121Sbill break; 3861121Sbill case 'p': /*Points*/ 3871121Sbill j = 6; 3881121Sbill break; 3891121Sbill case 'i': /*Inches*/ 3901121Sbill j = 432; 3911121Sbill break; 3921121Sbill case 'c': /*Centimeters; should be 170.0787*/ 3931121Sbill j = 170; 3941121Sbill break; 3951121Sbill case 'P': /*Picas*/ 3961121Sbill j = 72; 3971121Sbill break; 3981121Sbill default: 3991121Sbill j = dfact; 4001121Sbill ch = i; 4011121Sbill } 4021121Sbill return((long)n*j); 4031121Sbill } 4041121Sbill getch(){ 4051121Sbill register i; 4061121Sbill 4071121Sbill if(ch){ 4081121Sbill i = ch; 4091121Sbill ch = 0; 4101121Sbill return(i); 4111121Sbill } 4121121Sbill return(*ap++); 4131121Sbill } 4141121Sbill 4151121Sbill char *asctab[128] = { 4161121Sbill "\0", /*blank*/ 4171121Sbill "h", /*h*/ 4181121Sbill "t", /*t*/ 4191121Sbill "n", /*n*/ 4201121Sbill "m", /*m*/ 4211121Sbill "l", /*l*/ 4221121Sbill "i", /*i*/ 4231121Sbill "z", /*z*/ 4241121Sbill "s", /*s*/ 4251121Sbill "d", /*d*/ 4261121Sbill "b", /*b*/ 4271121Sbill "x", /*x*/ 4281121Sbill "f", /*f*/ 4291121Sbill "j", /*j*/ 4301121Sbill "u", /*u*/ 4311121Sbill "k", /*k*/ 4321121Sbill "\0", /*blank*/ 4331121Sbill "p", /*p*/ 4341121Sbill "-", /*_ 3/4 em dash*/ 4351121Sbill ";", /*;*/ 4361121Sbill "\0", /*blank*/ 4371121Sbill "a", /*a*/ 4381121Sbill "_", /*rule*/ 4391121Sbill "c", /*c*/ 4401121Sbill "`", /*` open*/ 4411121Sbill "e", /*e*/ 4421121Sbill "\'", /*' close*/ 4431121Sbill "o", /*o*/ 4441121Sbill "\0", /*1/4*/ 4451121Sbill "r", /*r*/ 4461121Sbill "\0", /*1/2*/ 4471121Sbill "v", /*v*/ 4481121Sbill "-", /*- hyphen*/ 4491121Sbill "w", /*w*/ 4501121Sbill "q", /*q*/ 4511121Sbill "/", /*/*/ 4521121Sbill ".", /*.*/ 4531121Sbill "g", /*g*/ 4541121Sbill "\0", /*3/4*/ 4551121Sbill ",", /*,*/ 4561121Sbill "&", /*&*/ 4571121Sbill "y", /*y*/ 4581121Sbill "\0", /*blank*/ 4591121Sbill "%", /*%*/ 4601121Sbill "\0", /*blank*/ 4611121Sbill "Q", /*Q*/ 4621121Sbill "T", /*T*/ 4631121Sbill "O", /*O*/ 4641121Sbill "H", /*H*/ 4651121Sbill "N", /*N*/ 4661121Sbill "M", /*M*/ 4671121Sbill "L", /*L*/ 4681121Sbill "R", /*R*/ 4691121Sbill "G", /*G*/ 4701121Sbill "I", /*I*/ 4711121Sbill "P", /*P*/ 4721121Sbill "C", /*C*/ 4731121Sbill "V", /*V*/ 4741121Sbill "E", /*E*/ 4751121Sbill "Z", /*Z*/ 4761121Sbill "D", /*D*/ 4771121Sbill "B", /*B*/ 4781121Sbill "S", /*S*/ 4791121Sbill "Y", /*Y*/ 4801121Sbill "\0", /*blank*/ 4811121Sbill "F", /*F*/ 4821121Sbill "X", /*X*/ 4831121Sbill "A", /*A*/ 4841121Sbill "W", /*W*/ 4851121Sbill "J", /*J*/ 4861121Sbill "U", /*U*/ 4871121Sbill "K", /*K*/ 4881121Sbill "0", /*0*/ 4891121Sbill "1", /*1*/ 4901121Sbill "2", /*2*/ 4911121Sbill "3", /*3*/ 4921121Sbill "4", /*4*/ 4931121Sbill "5", /*5*/ 4941121Sbill "6", /*6*/ 4951121Sbill "7", /*7*/ 4961121Sbill "8", /*8*/ 4971121Sbill "9", /*9*/ 4981121Sbill "*", /***/ 4991121Sbill "-", /*minus*/ 5001121Sbill "", /*fi*/ 5011121Sbill "", /*fl*/ 5021121Sbill "", /*ff*/ 5031121Sbill "\033\016Z\bM\033\017", /*cent sign*/ 5041121Sbill "", /*ffl*/ 5051121Sbill "", /*ffi*/ 5061121Sbill "(", /*(*/ 5071121Sbill ")", /*)*/ 5081121Sbill "[", /*[*/ 5091121Sbill "]", /*]*/ 5101121Sbill "\033\016J\033\017", /*degree*/ 5111121Sbill "\033\016M\b_\033\017", /*dagger*/ 5121121Sbill "=", /*=*/ 5131121Sbill "\033\016O\b&\033\017", /*registered*/ 5141121Sbill ":", /*:*/ 5151121Sbill "+", /*+*/ 5161121Sbill "\0", /*blank*/ 5171121Sbill "!", /*!*/ 5181121Sbill "\033\016O\b~\033\017", /*bullet*/ 5191121Sbill "?", /*?*/ 5201121Sbill "\'", /*foot mark*/ 5211121Sbill "|", /*|*/ 5221121Sbill "\0", /*blank*/ 5231121Sbill "\033\016O\b#\033\017", /*copyright*/ 5241121Sbill "\033\016L\033\017", /*square*/ 5251121Sbill "$" }; /*$*/ 5261121Sbill 5271121Sbill char *spectab[128] = { 5281121Sbill "\0", /*blank*/ 5291121Sbill "\033\016(\bM\033\017", /*psi*/ 5301121Sbill "\033\016o\b_\033\017", /*theta*/ 5311121Sbill "v\b)", /*nu*/ 5321121Sbill "\033\016V\b,\033\017", /*mu*/ 5331121Sbill "\033\016)\b?\033\017", /*lambda*/ 5341121Sbill "\033\016I\033\017", /*iota*/ 5351121Sbill "S\b\033\016Z\033\017", /*zeta*/ 5361121Sbill "o\b\'", /*sigma*/ 5371121Sbill "o\b\033\0165\033\017", /*delta*/ 5381121Sbill "\033\016b\033\017", /*beta*/ 5391121Sbill "\033\016e\bc\033\017", /*xi*/ 5401121Sbill "j\b\033\016C\033\017", /*eta*/ 5411121Sbill "\033\016O\bM\033\017", /*phi*/ 5421121Sbill "\033\016(\033\017", /*upsilon*/ 5431121Sbill "\033\016k\033\017", /*kappa*/ 5441121Sbill "\0", /*blank*/ 5451121Sbill "T\b\033\016S\033\017", /*pi*/ 5461121Sbill "@", /*at-sign*/ 5471121Sbill "\033\016U\033\017", /*down arrow*/ 5481121Sbill "\0", /*blank*/ 5491121Sbill "\033\016A\033\017", /*alpha*/ 5501121Sbill "|", /*or*/ 5511121Sbill "l\b/", /*chi*/ 5521121Sbill "\"", /*"*/ 5531121Sbill "\033\016E\033\017", /*epsilon*/ 5541121Sbill "=", /*=*/ 5551121Sbill "\033\016O\033\017", /*omicron*/ 5561121Sbill "\033\016[\033\017", /*left arrow*/ 5571121Sbill "\033\016R\033\017", /*rho*/ 5581121Sbill "\033\016Y\033\017", /*up arrow*/ 5591121Sbill "\033\016N\033\017", /*tau*/ 5601121Sbill "_", /*underrule*/ 5611121Sbill "\\", /*\*/ 5621121Sbill "I\b\033\016(\033\017", /*Psi*/ 5631121Sbill "\033\016O\bJ\033\017", /*bell system sign*/ 5641121Sbill "\033\016W\bX\033\017", /*infinity*/ 5651121Sbill "`\b/", /*gamma*/ 5661121Sbill "\033\016X\bF\033\017", /*improper superset*/ 5671121Sbill "\033\016A\033\017", /*proportional to*/ 5681121Sbill "\033\016\\\b]\033\017", /*right hand*/ 5691121Sbill "\033\016W\033\017", /*omega*/ 5701121Sbill "\0", /*blank*/ 5711121Sbill "\033\016G\033\017", /*gradient*/ 5721121Sbill "\0", /*blank*/ 5731121Sbill "I\033\016\bO\033\017", /*Phi*/ 5741121Sbill "O\b=", /*Theta*/ 5751121Sbill "O\b_", /*Omega*/ 5761121Sbill "\033\016V\033\017", /*cup (union)*/ 5771121Sbill "\033\016@\033\017", /*root en*/ 5781121Sbill "s", /*terminal sigma*/ 5791121Sbill "\033\016)\bK\033\017", /*Lambda*/ 5801121Sbill "-", /*minus*/ 5811121Sbill "\033\016S\bK\033\017", /*Gamma*/ 5821121Sbill "\033\016i\033\017", /*integral sign*/ 5831121Sbill "\033\016t\b'\033\017", /*Pi*/ 5841121Sbill "\033\016Z\033\017", /*subset of*/ 5851121Sbill "\033\016X\033\017", /*superset of*/ 5861121Sbill "\033\016T\033\017", /*approximates*/ 5871121Sbill "o\b`", /*partial derivative*/ 5881121Sbill "\033\016H\033\017", /*Delta*/ 5891121Sbill "\033\016I\b'\033\017", /*square root*/ 5901121Sbill ">\b\033\016F\b@\033\017", /*Sigma*/ 5911121Sbill "\033\016T\bF\033\017", /*approx =*/ 5921121Sbill "\0", /*blank*/ 5931121Sbill ">", /*>*/ 5941121Sbill "\033\016_\bF\b@\033\017", /*Xi*/ 5951121Sbill "<", /*<*/ 5961121Sbill "/", /*slash (longer)*/ 5971121Sbill "\033\016C\033\017", /*cap (intersection)*/ 5981121Sbill "\033\016y\033\017", /*Upsilon*/ 5991121Sbill "\033\016|\033\017", /*not*/ 6001121Sbill "|", /*right ceiling (rt of ")*/ 6011121Sbill "|", /*left top (of big curly)*/ 6021121Sbill "|", /*bold vertical*/ 6031121Sbill "|", /*left center of big curly bracket*/ 6041121Sbill "|", /*left bottom*/ 6051121Sbill "|", /*right top*/ 6061121Sbill "|", /*right center of big curly bracket*/ 6071121Sbill "|", /*right bot*/ 6081121Sbill "|", /*right floor (rb of ")*/ 6091121Sbill "|", /*left floor (left bot of big sq bract)*/ 6101121Sbill "|", /*left ceiling (lt of ")*/ 6111121Sbill "\033\016=\033\017", /*multiply*/ 6121121Sbill "\033\016+\033\017", /*divide*/ 6131121Sbill "+\b_", /*plus-minus*/ 6141121Sbill "\033\016$\033\017", /*<=*/ 6151121Sbill "\033\016^\033\017", /*>=*/ 6161121Sbill "=\b_", /*identically equal*/ 6171121Sbill "\033\016*\033\017", /*not equal*/ 6181121Sbill "{", /*{*/ 6191121Sbill "}", /*}*/ 6201121Sbill "\'", /*' acute accent*/ 6211121Sbill "`", /*` grave accent*/ 6221121Sbill "^", /*^*/ 6231121Sbill "#", /*sharp*/ 6241121Sbill "\033\016|\b[\033\017", /*left hand*/ 6251121Sbill "\033\016c\b_\033\017", /*member of*/ 6261121Sbill "~", /*~*/ 6271121Sbill "\033\016O\b/\033\017", /*empty set*/ 6281121Sbill "\0", /*blank*/ 6291121Sbill "\033\016%\bM\033\017", /*dbl dagger*/ 6301121Sbill "|", /*box rule*/ 6311121Sbill "*", /*asterisk*/ 6321121Sbill "\033\016Z\bF\033\017", /*improper subset*/ 6331121Sbill "\033\016O\033\017", /*circle*/ 6341121Sbill "\0", /*blank*/ 6351121Sbill "+", /*eqn plus*/ 6361121Sbill "\033\016]\033\017", /*right arrow*/ 6371121Sbill "g\b\033\016C\033\017" }; /*section mark*/ 638