1*1121Sbill static char *sccsid = "@(#)tc.c 4.1 (Berkeley) 10/01/80"; 2*1121Sbill /* 3*1121Sbill * Simulate typesetter on 4014 4*1121Sbill */ 5*1121Sbill 6*1121Sbill #include <signal.h> 7*1121Sbill #include <stdio.h> 8*1121Sbill 9*1121Sbill #define oput(c) if (pgskip==0) putchar(c); else; 10*1121Sbill #define MAXY 3071 11*1121Sbill #define US 037 12*1121Sbill #define GS 035 13*1121Sbill #define ESC 033 14*1121Sbill #define FF 014 15*1121Sbill #define DBL 0200 16*1121Sbill 17*1121Sbill int pl = 11*144; 18*1121Sbill int mpy = 1; 19*1121Sbill int div = 1; 20*1121Sbill char *ap; 21*1121Sbill int ch; 22*1121Sbill int nonumb; 23*1121Sbill int psize = 10; 24*1121Sbill int dfact = 1; 25*1121Sbill int esc; 26*1121Sbill int escd; 27*1121Sbill int verd; 28*1121Sbill int esct; 29*1121Sbill int osize = 02; 30*1121Sbill int size = 02; 31*1121Sbill int rx; 32*1121Sbill int xx; 33*1121Sbill int yy = MAXY+62+48; 34*1121Sbill int leadtot = -31; 35*1121Sbill int ohy = -1; 36*1121Sbill int ohx = -1; 37*1121Sbill int oxb = -1; 38*1121Sbill int oly = -1; 39*1121Sbill int olx = -1; 40*1121Sbill int tflag; 41*1121Sbill int railmag; 42*1121Sbill int lead; 43*1121Sbill int skip; 44*1121Sbill int pgskip; 45*1121Sbill int ksize = ';'; 46*1121Sbill int mcase; 47*1121Sbill int stab[] = {010,0,01,07,02,03,04,05,0211,06,0212,0213,0214,0215,0216,0217}; 48*1121Sbill int rtab[] = {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 28, 36, 18}; 49*1121Sbill int ktab[] = {';',';',';',';',';',';',':',':','9','9','9','9','8','8','8','9'}; 50*1121Sbill int first = 1; 51*1121Sbill int alpha; 52*1121Sbill extern char *asctab[128]; 53*1121Sbill extern char *spectab[128]; 54*1121Sbill int erase = 1; 55*1121Sbill int (*sigint)(); 56*1121Sbill int (*sigquit)(); 57*1121Sbill 58*1121Sbill main(argc,argv) 59*1121Sbill int argc; 60*1121Sbill char **argv; 61*1121Sbill { 62*1121Sbill register i, j; 63*1121Sbill register char *k; 64*1121Sbill extern ex(); 65*1121Sbill 66*1121Sbill while((--argc > 0) && ((++argv)[0][0]=='-')){ 67*1121Sbill switch(argv[0][1]){ 68*1121Sbill case 'p': 69*1121Sbill ap = &argv[0][2]; 70*1121Sbill dfact = 72; 71*1121Sbill if(i = atoi())pl = i/3; 72*1121Sbill continue; 73*1121Sbill case 't': 74*1121Sbill tflag++; 75*1121Sbill continue; 76*1121Sbill case 's': 77*1121Sbill ap = &argv[0][2]; 78*1121Sbill dfact = 1; 79*1121Sbill pgskip = atoi(); 80*1121Sbill continue; 81*1121Sbill default: 82*1121Sbill dfact = 1; 83*1121Sbill ap = &argv[0][1]; 84*1121Sbill if(i = atoi())mpy = i; 85*1121Sbill if(i = atoi())div = i; 86*1121Sbill continue; 87*1121Sbill } 88*1121Sbill } 89*1121Sbill if(argc){ 90*1121Sbill if (freopen(argv[0], "r", stdin) == NULL) { 91*1121Sbill fprintf(stderr, "tc: cannot open %s\n", argv[0]); 92*1121Sbill exit(1); 93*1121Sbill } 94*1121Sbill } 95*1121Sbill sigint = signal(SIGINT, ex); 96*1121Sbill sigquit = signal(SIGQUIT, SIG_IGN); 97*1121Sbill while((i = getchar()) != EOF){ 98*1121Sbill if(!i)continue; 99*1121Sbill if(i & 0200){ 100*1121Sbill esc += (~i) & 0177; 101*1121Sbill continue; 102*1121Sbill } 103*1121Sbill if(esc){ 104*1121Sbill if(escd)esc = -esc; 105*1121Sbill esct += esc; 106*1121Sbill xx += (esc*mpy + rx)/div; 107*1121Sbill rx = (esc*mpy + rx)%div; 108*1121Sbill sendpt(); 109*1121Sbill esc = 0; 110*1121Sbill } 111*1121Sbill switch(i){ 112*1121Sbill case 0100: /*init*/ 113*1121Sbill escd = verd = mcase = railmag = xx = 0; 114*1121Sbill yy = MAXY + 48; 115*1121Sbill leadtot = -31; 116*1121Sbill ohy = oxb = oly = ohx = olx = -1; 117*1121Sbill oput(US); 118*1121Sbill fflush(stdout); 119*1121Sbill if(!first && !tflag)kwait(); 120*1121Sbill if(first){ 121*1121Sbill first = 0; 122*1121Sbill yy += 62; 123*1121Sbill } 124*1121Sbill init(); 125*1121Sbill continue; 126*1121Sbill case 0101: /*lower rail*/ 127*1121Sbill railmag &= ~01; 128*1121Sbill continue; 129*1121Sbill case 0102: /*upper rail*/ 130*1121Sbill railmag |= 01; 131*1121Sbill continue; 132*1121Sbill case 0103: /*upper mag*/ 133*1121Sbill railmag |= 02; 134*1121Sbill continue; 135*1121Sbill case 0104: /*lower mag*/ 136*1121Sbill railmag &= ~02; 137*1121Sbill continue; 138*1121Sbill case 0105: /*lower case*/ 139*1121Sbill mcase = 0; 140*1121Sbill continue; 141*1121Sbill case 0106: /*upper case*/ 142*1121Sbill mcase = 0100; 143*1121Sbill continue; 144*1121Sbill case 0107: /*escape forward*/ 145*1121Sbill escd = 0; 146*1121Sbill continue; 147*1121Sbill case 0110: /*escape backward*/ 148*1121Sbill escd = 1; 149*1121Sbill continue; 150*1121Sbill case 0111: /*stop*/ 151*1121Sbill continue; 152*1121Sbill case 0112: /*lead forward*/ 153*1121Sbill verd = 0; 154*1121Sbill continue; 155*1121Sbill case 0113: /*undefined*/ 156*1121Sbill continue; 157*1121Sbill case 0114: /*lead backward*/ 158*1121Sbill verd = 1; 159*1121Sbill continue; 160*1121Sbill case 0115: /*undefined*/ 161*1121Sbill case 0116: 162*1121Sbill case 0117: 163*1121Sbill continue; 164*1121Sbill } 165*1121Sbill if((i & 0340) == 0140){ /*leading*/ 166*1121Sbill lead = (~i) & 037; 167*1121Sbill if(verd)lead = -lead; 168*1121Sbill if((leadtot += lead) > pl){ 169*1121Sbill leadtot = lead; 170*1121Sbill oput(US); 171*1121Sbill fflush(stdout); 172*1121Sbill if(!tflag)kwait(); 173*1121Sbill yy = MAXY; 174*1121Sbill if(pgskip)--pgskip; 175*1121Sbill init(); 176*1121Sbill continue; 177*1121Sbill } 178*1121Sbill if(skip)continue; 179*1121Sbill if((yy -= (lead<<1)) < 0){ 180*1121Sbill skip++; 181*1121Sbill yy = 0; 182*1121Sbill }else sendpt(); 183*1121Sbill continue; 184*1121Sbill } 185*1121Sbill if((i & 0360) == 0120){ /*size change*/ 186*1121Sbill i &= 017; 187*1121Sbill for(j = 0; i != (stab[j] & 017); j++); 188*1121Sbill osize = size; 189*1121Sbill size = stab[j]; 190*1121Sbill psize = rtab[j]; 191*1121Sbill ksize = ktab[j]; 192*1121Sbill oput(ESC); 193*1121Sbill oput(ksize); 194*1121Sbill i = 0; 195*1121Sbill if(!(osize & DBL) && (size & DBL))i = -55; 196*1121Sbill else if((osize & DBL) && !(size & DBL))i = 55; 197*1121Sbill if(escd)i = -i; 198*1121Sbill esc += i; 199*1121Sbill continue; 200*1121Sbill } 201*1121Sbill if(i & 0300)continue; 202*1121Sbill i = (i & 077) | mcase; 203*1121Sbill if(railmag != 03)k = asctab[i]; 204*1121Sbill else k = spectab[i]; 205*1121Sbill if(alpha)sendpt(); 206*1121Sbill if(*k!='\0'){ 207*1121Sbill oput(US); 208*1121Sbill while(*k & 0377)oput(*k++); 209*1121Sbill alpha++; 210*1121Sbill continue; 211*1121Sbill }else{ 212*1121Sbill if(railmag != 03){ 213*1121Sbill switch(i){ 214*1121Sbill case 0124: lig("fi"); break; 215*1121Sbill case 0125: lig("fl"); break; 216*1121Sbill case 0126: lig("ff"); break; 217*1121Sbill case 0130: lig("ffl"); break; 218*1121Sbill case 0131: lig("ffi"); break; 219*1121Sbill default: continue; 220*1121Sbill } 221*1121Sbill } 222*1121Sbill continue; 223*1121Sbill } 224*1121Sbill } 225*1121Sbill ex(); 226*1121Sbill } 227*1121Sbill lig(x) 228*1121Sbill char *x; 229*1121Sbill { 230*1121Sbill register i, j; 231*1121Sbill register char *k; 232*1121Sbill 233*1121Sbill j = 0; 234*1121Sbill k = x; 235*1121Sbill oput(US); 236*1121Sbill oput(*k++); 237*1121Sbill i = psize * 8 * mpy / (div * 6); /* 8/36 em */ 238*1121Sbill while(*k){ 239*1121Sbill xx += i; 240*1121Sbill j += i; 241*1121Sbill sendpt(); 242*1121Sbill oput(US); 243*1121Sbill oput(*k++); 244*1121Sbill } 245*1121Sbill xx -= j; 246*1121Sbill sendpt(); 247*1121Sbill } 248*1121Sbill init(){ 249*1121Sbill 250*1121Sbill fflush(stdout); 251*1121Sbill if(erase){ 252*1121Sbill oput(ESC); 253*1121Sbill oput(FF); 254*1121Sbill }else erase = 1; 255*1121Sbill oput(ESC); 256*1121Sbill oput(ksize); 257*1121Sbill /*delay about a second*/ 258*1121Sbill /* let the system do it... 259*1121Sbill for(i = 960; i > 0; i--)oput(GS); 260*1121Sbill */ 261*1121Sbill skip = 0; 262*1121Sbill sendpt(); 263*1121Sbill } 264*1121Sbill ex(){ 265*1121Sbill yy = MAXY; 266*1121Sbill xx = 0; 267*1121Sbill sendpt(); 268*1121Sbill oput(ESC); 269*1121Sbill oput(';'); 270*1121Sbill oput(US); 271*1121Sbill fflush(stdout); 272*1121Sbill exit(0); 273*1121Sbill } 274*1121Sbill kwait(){ 275*1121Sbill char buf[128]; char *bptr; char c; 276*1121Sbill if(pgskip) return; 277*1121Sbill next: 278*1121Sbill bptr=buf; 279*1121Sbill while((c=readch())&&(c!='\n')) *bptr++=c; 280*1121Sbill *bptr=0; 281*1121Sbill if(bptr!=buf){ 282*1121Sbill bptr = buf; 283*1121Sbill if(*bptr == '!'){callunix(&buf[1]); fputs("!\n", stderr); goto next;} 284*1121Sbill else switch(*bptr++){ 285*1121Sbill case 'e': 286*1121Sbill erase = 0; 287*1121Sbill goto next; 288*1121Sbill case 's': 289*1121Sbill ap = &buf[1]; 290*1121Sbill dfact = 1; 291*1121Sbill pgskip = atoi() + 1; 292*1121Sbill goto next; 293*1121Sbill default: 294*1121Sbill fputs("?\n", stderr); 295*1121Sbill goto next; 296*1121Sbill } 297*1121Sbill } 298*1121Sbill else if (c==0) ex(); 299*1121Sbill else return; 300*1121Sbill } 301*1121Sbill callunix(line) 302*1121Sbill char line[]; 303*1121Sbill { 304*1121Sbill int rc, status, unixpid; 305*1121Sbill if( (unixpid=fork())==0 ) { 306*1121Sbill signal(SIGINT,sigint); signal(SIGQUIT,sigquit); 307*1121Sbill close(0); dup(2); 308*1121Sbill execl("/bin/sh", "-sh", "-c", line, 0); 309*1121Sbill exit(255); 310*1121Sbill } 311*1121Sbill else if(unixpid == -1) 312*1121Sbill return; 313*1121Sbill else{ signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); 314*1121Sbill while( (rc = wait(&status)) != unixpid && rc != -1 ) ; 315*1121Sbill signal(SIGINT,ex); signal(SIGQUIT,sigquit); 316*1121Sbill } 317*1121Sbill } 318*1121Sbill readch(){ 319*1121Sbill char c; 320*1121Sbill if (read(2,&c,1)<1) c=0; 321*1121Sbill return(c); 322*1121Sbill } 323*1121Sbill sendpt(){ 324*1121Sbill int hy,xb,ly,hx,lx; 325*1121Sbill 326*1121Sbill oput(GS); 327*1121Sbill hy = ((yy>>7) & 037); 328*1121Sbill xb = ((xx & 03) + ((yy<<2) & 014) & 017); 329*1121Sbill ly = ((yy>>2) & 037); 330*1121Sbill hx = ((xx>>7) & 037); 331*1121Sbill lx = ((xx>>2) & 037); 332*1121Sbill if(hy != ohy)oput(hy | 040); 333*1121Sbill if(xb != oxb)oput(xb | 0140); 334*1121Sbill if((ly != oly) || (hx != ohx) || (xb != oxb)) 335*1121Sbill oput(ly | 0140); 336*1121Sbill if(hx != ohx)oput(hx | 040); 337*1121Sbill oput(lx | 0100); 338*1121Sbill ohy = hy; 339*1121Sbill oxb = xb; 340*1121Sbill oly = ly; 341*1121Sbill ohx = hx; 342*1121Sbill olx = lx; 343*1121Sbill alpha = 0; 344*1121Sbill return; 345*1121Sbill } 346*1121Sbill atoi() 347*1121Sbill { 348*1121Sbill register i, j, acc; 349*1121Sbill int field, digits; 350*1121Sbill long dd; 351*1121Sbill long tscale(); 352*1121Sbill 353*1121Sbill field = digits = acc = 0; 354*1121Sbill a1: 355*1121Sbill while(((j = (i = getch()) - '0') >= 0) && (j <= 9)){ 356*1121Sbill field++; 357*1121Sbill digits++; 358*1121Sbill acc = 10*acc + j; 359*1121Sbill } 360*1121Sbill if(i == '.'){ 361*1121Sbill field++; 362*1121Sbill digits = 0; 363*1121Sbill goto a1; 364*1121Sbill } 365*1121Sbill if(!(ch = i))ch = 'x'; 366*1121Sbill dd = tscale(acc); 367*1121Sbill acc = dd; 368*1121Sbill if((field != digits) && (digits > 0)){ 369*1121Sbill j = 1; 370*1121Sbill while(digits--)j *= 10; 371*1121Sbill acc = dd/j; 372*1121Sbill } 373*1121Sbill nonumb = !field; 374*1121Sbill ch = 0; 375*1121Sbill return(acc); 376*1121Sbill } 377*1121Sbill long tscale(n) 378*1121Sbill int n; 379*1121Sbill { 380*1121Sbill register i, j; 381*1121Sbill 382*1121Sbill switch(i = getch()){ 383*1121Sbill case 'u': 384*1121Sbill j = 1; 385*1121Sbill break; 386*1121Sbill case 'p': /*Points*/ 387*1121Sbill j = 6; 388*1121Sbill break; 389*1121Sbill case 'i': /*Inches*/ 390*1121Sbill j = 432; 391*1121Sbill break; 392*1121Sbill case 'c': /*Centimeters; should be 170.0787*/ 393*1121Sbill j = 170; 394*1121Sbill break; 395*1121Sbill case 'P': /*Picas*/ 396*1121Sbill j = 72; 397*1121Sbill break; 398*1121Sbill default: 399*1121Sbill j = dfact; 400*1121Sbill ch = i; 401*1121Sbill } 402*1121Sbill return((long)n*j); 403*1121Sbill } 404*1121Sbill getch(){ 405*1121Sbill register i; 406*1121Sbill 407*1121Sbill if(ch){ 408*1121Sbill i = ch; 409*1121Sbill ch = 0; 410*1121Sbill return(i); 411*1121Sbill } 412*1121Sbill return(*ap++); 413*1121Sbill } 414*1121Sbill 415*1121Sbill char *asctab[128] = { 416*1121Sbill "\0", /*blank*/ 417*1121Sbill "h", /*h*/ 418*1121Sbill "t", /*t*/ 419*1121Sbill "n", /*n*/ 420*1121Sbill "m", /*m*/ 421*1121Sbill "l", /*l*/ 422*1121Sbill "i", /*i*/ 423*1121Sbill "z", /*z*/ 424*1121Sbill "s", /*s*/ 425*1121Sbill "d", /*d*/ 426*1121Sbill "b", /*b*/ 427*1121Sbill "x", /*x*/ 428*1121Sbill "f", /*f*/ 429*1121Sbill "j", /*j*/ 430*1121Sbill "u", /*u*/ 431*1121Sbill "k", /*k*/ 432*1121Sbill "\0", /*blank*/ 433*1121Sbill "p", /*p*/ 434*1121Sbill "-", /*_ 3/4 em dash*/ 435*1121Sbill ";", /*;*/ 436*1121Sbill "\0", /*blank*/ 437*1121Sbill "a", /*a*/ 438*1121Sbill "_", /*rule*/ 439*1121Sbill "c", /*c*/ 440*1121Sbill "`", /*` open*/ 441*1121Sbill "e", /*e*/ 442*1121Sbill "\'", /*' close*/ 443*1121Sbill "o", /*o*/ 444*1121Sbill "\0", /*1/4*/ 445*1121Sbill "r", /*r*/ 446*1121Sbill "\0", /*1/2*/ 447*1121Sbill "v", /*v*/ 448*1121Sbill "-", /*- hyphen*/ 449*1121Sbill "w", /*w*/ 450*1121Sbill "q", /*q*/ 451*1121Sbill "/", /*/*/ 452*1121Sbill ".", /*.*/ 453*1121Sbill "g", /*g*/ 454*1121Sbill "\0", /*3/4*/ 455*1121Sbill ",", /*,*/ 456*1121Sbill "&", /*&*/ 457*1121Sbill "y", /*y*/ 458*1121Sbill "\0", /*blank*/ 459*1121Sbill "%", /*%*/ 460*1121Sbill "\0", /*blank*/ 461*1121Sbill "Q", /*Q*/ 462*1121Sbill "T", /*T*/ 463*1121Sbill "O", /*O*/ 464*1121Sbill "H", /*H*/ 465*1121Sbill "N", /*N*/ 466*1121Sbill "M", /*M*/ 467*1121Sbill "L", /*L*/ 468*1121Sbill "R", /*R*/ 469*1121Sbill "G", /*G*/ 470*1121Sbill "I", /*I*/ 471*1121Sbill "P", /*P*/ 472*1121Sbill "C", /*C*/ 473*1121Sbill "V", /*V*/ 474*1121Sbill "E", /*E*/ 475*1121Sbill "Z", /*Z*/ 476*1121Sbill "D", /*D*/ 477*1121Sbill "B", /*B*/ 478*1121Sbill "S", /*S*/ 479*1121Sbill "Y", /*Y*/ 480*1121Sbill "\0", /*blank*/ 481*1121Sbill "F", /*F*/ 482*1121Sbill "X", /*X*/ 483*1121Sbill "A", /*A*/ 484*1121Sbill "W", /*W*/ 485*1121Sbill "J", /*J*/ 486*1121Sbill "U", /*U*/ 487*1121Sbill "K", /*K*/ 488*1121Sbill "0", /*0*/ 489*1121Sbill "1", /*1*/ 490*1121Sbill "2", /*2*/ 491*1121Sbill "3", /*3*/ 492*1121Sbill "4", /*4*/ 493*1121Sbill "5", /*5*/ 494*1121Sbill "6", /*6*/ 495*1121Sbill "7", /*7*/ 496*1121Sbill "8", /*8*/ 497*1121Sbill "9", /*9*/ 498*1121Sbill "*", /***/ 499*1121Sbill "-", /*minus*/ 500*1121Sbill "", /*fi*/ 501*1121Sbill "", /*fl*/ 502*1121Sbill "", /*ff*/ 503*1121Sbill "\033\016Z\bM\033\017", /*cent sign*/ 504*1121Sbill "", /*ffl*/ 505*1121Sbill "", /*ffi*/ 506*1121Sbill "(", /*(*/ 507*1121Sbill ")", /*)*/ 508*1121Sbill "[", /*[*/ 509*1121Sbill "]", /*]*/ 510*1121Sbill "\033\016J\033\017", /*degree*/ 511*1121Sbill "\033\016M\b_\033\017", /*dagger*/ 512*1121Sbill "=", /*=*/ 513*1121Sbill "\033\016O\b&\033\017", /*registered*/ 514*1121Sbill ":", /*:*/ 515*1121Sbill "+", /*+*/ 516*1121Sbill "\0", /*blank*/ 517*1121Sbill "!", /*!*/ 518*1121Sbill "\033\016O\b~\033\017", /*bullet*/ 519*1121Sbill "?", /*?*/ 520*1121Sbill "\'", /*foot mark*/ 521*1121Sbill "|", /*|*/ 522*1121Sbill "\0", /*blank*/ 523*1121Sbill "\033\016O\b#\033\017", /*copyright*/ 524*1121Sbill "\033\016L\033\017", /*square*/ 525*1121Sbill "$" }; /*$*/ 526*1121Sbill 527*1121Sbill char *spectab[128] = { 528*1121Sbill "\0", /*blank*/ 529*1121Sbill "\033\016(\bM\033\017", /*psi*/ 530*1121Sbill "\033\016o\b_\033\017", /*theta*/ 531*1121Sbill "v\b)", /*nu*/ 532*1121Sbill "\033\016V\b,\033\017", /*mu*/ 533*1121Sbill "\033\016)\b?\033\017", /*lambda*/ 534*1121Sbill "\033\016I\033\017", /*iota*/ 535*1121Sbill "S\b\033\016Z\033\017", /*zeta*/ 536*1121Sbill "o\b\'", /*sigma*/ 537*1121Sbill "o\b\033\0165\033\017", /*delta*/ 538*1121Sbill "\033\016b\033\017", /*beta*/ 539*1121Sbill "\033\016e\bc\033\017", /*xi*/ 540*1121Sbill "j\b\033\016C\033\017", /*eta*/ 541*1121Sbill "\033\016O\bM\033\017", /*phi*/ 542*1121Sbill "\033\016(\033\017", /*upsilon*/ 543*1121Sbill "\033\016k\033\017", /*kappa*/ 544*1121Sbill "\0", /*blank*/ 545*1121Sbill "T\b\033\016S\033\017", /*pi*/ 546*1121Sbill "@", /*at-sign*/ 547*1121Sbill "\033\016U\033\017", /*down arrow*/ 548*1121Sbill "\0", /*blank*/ 549*1121Sbill "\033\016A\033\017", /*alpha*/ 550*1121Sbill "|", /*or*/ 551*1121Sbill "l\b/", /*chi*/ 552*1121Sbill "\"", /*"*/ 553*1121Sbill "\033\016E\033\017", /*epsilon*/ 554*1121Sbill "=", /*=*/ 555*1121Sbill "\033\016O\033\017", /*omicron*/ 556*1121Sbill "\033\016[\033\017", /*left arrow*/ 557*1121Sbill "\033\016R\033\017", /*rho*/ 558*1121Sbill "\033\016Y\033\017", /*up arrow*/ 559*1121Sbill "\033\016N\033\017", /*tau*/ 560*1121Sbill "_", /*underrule*/ 561*1121Sbill "\\", /*\*/ 562*1121Sbill "I\b\033\016(\033\017", /*Psi*/ 563*1121Sbill "\033\016O\bJ\033\017", /*bell system sign*/ 564*1121Sbill "\033\016W\bX\033\017", /*infinity*/ 565*1121Sbill "`\b/", /*gamma*/ 566*1121Sbill "\033\016X\bF\033\017", /*improper superset*/ 567*1121Sbill "\033\016A\033\017", /*proportional to*/ 568*1121Sbill "\033\016\\\b]\033\017", /*right hand*/ 569*1121Sbill "\033\016W\033\017", /*omega*/ 570*1121Sbill "\0", /*blank*/ 571*1121Sbill "\033\016G\033\017", /*gradient*/ 572*1121Sbill "\0", /*blank*/ 573*1121Sbill "I\033\016\bO\033\017", /*Phi*/ 574*1121Sbill "O\b=", /*Theta*/ 575*1121Sbill "O\b_", /*Omega*/ 576*1121Sbill "\033\016V\033\017", /*cup (union)*/ 577*1121Sbill "\033\016@\033\017", /*root en*/ 578*1121Sbill "s", /*terminal sigma*/ 579*1121Sbill "\033\016)\bK\033\017", /*Lambda*/ 580*1121Sbill "-", /*minus*/ 581*1121Sbill "\033\016S\bK\033\017", /*Gamma*/ 582*1121Sbill "\033\016i\033\017", /*integral sign*/ 583*1121Sbill "\033\016t\b'\033\017", /*Pi*/ 584*1121Sbill "\033\016Z\033\017", /*subset of*/ 585*1121Sbill "\033\016X\033\017", /*superset of*/ 586*1121Sbill "\033\016T\033\017", /*approximates*/ 587*1121Sbill "o\b`", /*partial derivative*/ 588*1121Sbill "\033\016H\033\017", /*Delta*/ 589*1121Sbill "\033\016I\b'\033\017", /*square root*/ 590*1121Sbill ">\b\033\016F\b@\033\017", /*Sigma*/ 591*1121Sbill "\033\016T\bF\033\017", /*approx =*/ 592*1121Sbill "\0", /*blank*/ 593*1121Sbill ">", /*>*/ 594*1121Sbill "\033\016_\bF\b@\033\017", /*Xi*/ 595*1121Sbill "<", /*<*/ 596*1121Sbill "/", /*slash (longer)*/ 597*1121Sbill "\033\016C\033\017", /*cap (intersection)*/ 598*1121Sbill "\033\016y\033\017", /*Upsilon*/ 599*1121Sbill "\033\016|\033\017", /*not*/ 600*1121Sbill "|", /*right ceiling (rt of ")*/ 601*1121Sbill "|", /*left top (of big curly)*/ 602*1121Sbill "|", /*bold vertical*/ 603*1121Sbill "|", /*left center of big curly bracket*/ 604*1121Sbill "|", /*left bottom*/ 605*1121Sbill "|", /*right top*/ 606*1121Sbill "|", /*right center of big curly bracket*/ 607*1121Sbill "|", /*right bot*/ 608*1121Sbill "|", /*right floor (rb of ")*/ 609*1121Sbill "|", /*left floor (left bot of big sq bract)*/ 610*1121Sbill "|", /*left ceiling (lt of ")*/ 611*1121Sbill "\033\016=\033\017", /*multiply*/ 612*1121Sbill "\033\016+\033\017", /*divide*/ 613*1121Sbill "+\b_", /*plus-minus*/ 614*1121Sbill "\033\016$\033\017", /*<=*/ 615*1121Sbill "\033\016^\033\017", /*>=*/ 616*1121Sbill "=\b_", /*identically equal*/ 617*1121Sbill "\033\016*\033\017", /*not equal*/ 618*1121Sbill "{", /*{*/ 619*1121Sbill "}", /*}*/ 620*1121Sbill "\'", /*' acute accent*/ 621*1121Sbill "`", /*` grave accent*/ 622*1121Sbill "^", /*^*/ 623*1121Sbill "#", /*sharp*/ 624*1121Sbill "\033\016|\b[\033\017", /*left hand*/ 625*1121Sbill "\033\016c\b_\033\017", /*member of*/ 626*1121Sbill "~", /*~*/ 627*1121Sbill "\033\016O\b/\033\017", /*empty set*/ 628*1121Sbill "\0", /*blank*/ 629*1121Sbill "\033\016%\bM\033\017", /*dbl dagger*/ 630*1121Sbill "|", /*box rule*/ 631*1121Sbill "*", /*asterisk*/ 632*1121Sbill "\033\016Z\bF\033\017", /*improper subset*/ 633*1121Sbill "\033\016O\033\017", /*circle*/ 634*1121Sbill "\0", /*blank*/ 635*1121Sbill "+", /*eqn plus*/ 636*1121Sbill "\033\016]\033\017", /*right arrow*/ 637*1121Sbill "g\b\033\016C\033\017" }; /*section mark*/ 638