Annotation of researchv10no/cmd/view2d/half_pan.c, revision 1.1.1.1

1.1       root        1: /*  program to be run on panther to drive Mergenthaler 202 */
                      2: /*  half [LL [NL]] < ifile  */
                      3: /*  extracted from /n/panther/usr/guest/ken/tfb.c on 2 Jul 85 */
                      4: #include <stdio.h>
                      5: 
                      6: int LL = 300;
                      7: int NL = 300;
                      8: unsigned char *buff;
                      9: 
                     10: main(argc, argv)
                     11:        char **argv;
                     12: {
                     13:        char *malloc();
                     14:        
                     15:        if (argc > 1)
                     16:        {       sscanf(argv[1], "%d", &LL); NL=LL;
                     17:                if (argc > 2)
                     18:                        sscanf(argv[2], "%d", &NL);     
                     19:        }
                     20:        fprintf(stderr, "ll %d, nl %d\n", LL, NL);
                     21: 
                     22:        buff = (unsigned char *) malloc(LL*NL);
                     23: 
                     24:        Read(0, buff, LL*NL);
                     25:        typit();
                     26:        exit(0);
                     27: }
                     28: 
                     29: #define        putint(x)       fputc((x)>>8, f), fputc(x, f)
                     30: typit()
                     31: {
                     32:        register j, h, oh, c, d;
                     33:        register unsigned char *p;
                     34:        FILE *f;
                     35:        int D, IH, i, P, F, J;
                     36: 
                     37:        f = fopen("/dev/202", "w");
                     38:        if(!f) {
                     39:                fprintf(stderr, "cannot open: /dev/202\n");
                     40:                exit(1);
                     41:        }
                     42: 
                     43:        fprintf(stderr,"starting to typeset...");
                     44:        IH = 685;
                     45:        P = 32;
                     46:        D = (P*12)/16;
                     47:        F = 87;
                     48:        J = 0;
                     49: 
                     50:        fputc(255, f); fputc('s', f); putint(P);
                     51:        fputc(255, f); fputc('f', f); putint(F);
                     52:        p = buff;
                     53:        for(i=0; i<NL; i++) {
                     54:                d = (i*100)/NL;
                     55:                fputc(255, f); fputc('p', f); putint(d);
                     56:                fputc(255, f); fputc('n', f);
                     57:                J -= D;
                     58:                while(J <= -54) {
                     59:                        fputc(255, f); fputc('v', f); putint(16);
                     60:                        J += 54;
                     61:                }
                     62:                fputc(255, f); fputc('j', f); putint(J/2);
                     63:                h = IH;
                     64:                oh = h;
                     65:                fputc(255, f); fputc('H', f); putint(h);
                     66:                for(j=0; j<LL; j++) {
                     67:                        c = *p++ & 0377;
                     68:                        c = (c+6) >> 2;
                     69:                        h += D;
                     70:                        if(c >= 64)
                     71:                                continue;
                     72:                        d = h-oh;
                     73:                        if(d >= 256) {
                     74:                                fputc(255, f); fputc('H', f); putint(h);
                     75:                        } else {
                     76:                                fputc(254, f);
                     77:                                fputc(d, f);
                     78:                        }
                     79:                        oh = h;
                     80:                        fputc(c, f);
                     81:                }
                     82:        }
                     83: 
                     84:        /* advance the paper a bit at the end */
                     85:        for(i=0;i<10;i++){ fputc(255, f); fputc('v', f); putint(16); }
                     86: 
                     87:        fputc(255, f); fputc('x', f); fputc('s', f); fputc('\n', f);
                     88:        fclose(f);
                     89:        fputc('\n',stderr);
                     90: }
                     91: 
                     92: 
                     93: Read(f, a, n)
                     94:        char *a;
                     95: {
                     96:        int nr, total=0;
                     97:        while(total<n){
                     98:                nr = read(f, a+total, n-total);
                     99:                if(nr<0) error("read error");
                    100:                if(nr==0) error("premature EOF");
                    101:                total += nr;
                    102:        }
                    103: }
                    104: 
                    105: error(s)
                    106:   char *s;
                    107: {
                    108:   fputs(s,stderr);
                    109:   putc('\n',stderr);
                    110:   exit(1);
                    111: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.