!<arch> arc.c 355357973 304 1 100666 25 ` arc(xi,yi,x0,y0,x1,y1){} box.c 355357930 304 1 100666 114 ` box(x0, y0, x1, y1) { move(x0, y0); cont(x0, y1); cont(x1, y1); cont(x1, y0); cont(x0, y0); move(x1, y1); } circle.c 355357996 304 1 100666 16 ` circle(x,y,r){} close.c 355385404 304 1 100666 64 ` extern jerq; closepl(){ move(0,0); write(jerq, "\033A", 4); } dot.c 355358375 304 1 100666 27 ` dot(xi, yi, dx, n, pat){} driver.c 355357320 304 1 100664 2098 ` #include <stdio.h> float deltx; float delty; char obuf[BUFSIZ]; main(argc,argv) char **argv; { int std=1; FILE *fin; setbuf(stdout, obuf); while(argc-- > 1) { if(*argv[1] == '-') switch(argv[1][1]) { case 'l': deltx = atoi(&argv[1][2]) - 1; break; case 'w': delty = atoi(&argv[1][2]) - 1; break; } else { std = 0; if ((fin = fopen(argv[1], "r")) == NULL) { fprintf(stderr, "can't open %s\n", argv[1]); exit(1); } fplt(fin); } argv++; } if (std) fplt( stdin ); exit(0); } fplt(fin) FILE *fin; { int c; char s[256]; int xi,yi,x0,y0,x1,y1,r,dx,n,i; int pat[256]; openpl(); while((c=getc(fin)) != EOF){ switch(c){ case 'm': xi = getsi(fin); yi = getsi(fin); move(xi,yi); break; case 'l': x0 = getsi(fin); y0 = getsi(fin); x1 = getsi(fin); y1 = getsi(fin); line(x0,y0,x1,y1); break; case 't': gets(s,fin); label(s); break; case 'e': erase(); break; case 'p': xi = getsi(fin); yi = getsi(fin); point(xi,yi); break; case 'n': xi = getsi(fin); yi = getsi(fin); cont(xi,yi); break; case 's': x0 = getsi(fin); y0 = getsi(fin); x1 = getsi(fin); y1 = getsi(fin); space(x0,y0,x1,y1); break; case 'a': xi = getsi(fin); yi = getsi(fin); x0 = getsi(fin); y0 = getsi(fin); x1 = getsi(fin); y1 = getsi(fin); arc(xi,yi,x0,y0,x1,y1); break; case 'c': xi = getsi(fin); yi = getsi(fin); r = getsi(fin); circle(xi,yi,r); break; case 'f': gets(s,fin); linemod(s); break; case 'd': xi = getsi(fin); yi = getsi(fin); dx = getsi(fin); n = getsi(fin); for(i=0; i<n; i++)pat[i] = getsi(fin); dot(xi,yi,dx,n,pat); break; } } closepl(); } getsi(fin) FILE *fin; { /* get an integer stored in 2 ascii bytes. */ short a, b; if((b = getc(fin)) == EOF) return(EOF); if((a = getc(fin)) == EOF) return(EOF); a = a<<8; return(a|b); } gets(s,fin) char *s; FILE *fin; { for( ; *s = getc(fin); s++) if(*s == '\n') break; *s = '\0'; return; } erase.c 355358436 304 1 100666 49 ` extern jerq; erase(){ write(jerq, "\014", 1); } frame.c 355358452 304 1 100666 13 ` frame(n) { } junk 355385254 304 1 100666 9937 ` scale 0 0 4096 4096 x 200 37 y 200 49 x 4000 749 y 200 49 x 4000 749 y 4000 999 x 200 37 y 4000 999 x 200 37 y 200 49 x 1467 274 y 200 49 x 1467 274 y 4000 999 x 2733 511 y 200 49 x 2733 511 y 4000 999 x 200 37 y 1467 366 x 4000 749 y 1467 366 x 200 37 y 2733 682 x 4000 749 y 2733 682 x 200 37 y 140 34 x 200 37 y 3772 942 x 200 37 y 301 75 x 200 37 y 251 62 x 200 37 y 251 62 x 200 37 y 352 87 x 200 37 y 377 94 x 200 37 y 225 56 x 200 37 y 301 75 x 200 37 y 301 75 x 200 37 y 479 119 x 200 37 y 276 68 x 200 37 y 301 75 x 200 37 y 453 113 x 200 37 y 453 113 x 200 37 y 403 100 x 200 37 y 251 62 x 200 37 y 251 62 x 200 37 y 428 106 x 206 38 y 732 182 x 206 38 y 580 144 x 206 38 y 327 81 x 206 38 y 352 87 x 206 38 y 327 81 x 213 39 y 656 163 x 213 39 y 732 182 x 219 41 y 783 195 x 219 41 y 555 138 x 219 41 y 504 125 x 225 42 y 327 81 x 225 42 y 529 132 x 225 42 y 352 87 x 225 42 y 251 62 x 232 43 y 859 214 x 232 43 y 428 106 x 238 44 y 605 151 x 238 44 y 453 113 x 244 45 y 935 233 x 251 47 y 428 106 x 251 47 y 225 56 x 251 47 y 251 62 x 251 47 y 428 106 x 251 47 y 352 87 x 251 47 y 327 81 x 257 48 y 428 106 x 257 48 y 327 81 x 257 48 y 403 100 x 263 49 y 377 94 x 263 49 y 327 81 x 270 50 y 1036 258 x 276 51 y 504 125 x 276 51 y 352 87 x 282 52 y 352 87 x 282 52 y 403 100 x 282 52 y 403 100 x 289 54 y 377 94 x 289 54 y 453 113 x 295 55 y 377 94 x 295 55 y 504 125 x 301 56 y 453 113 x 308 57 y 504 125 x 308 57 y 276 68 x 308 57 y 276 68 x 314 58 y 453 113 x 320 59 y 707 176 x 333 62 y 1087 271 x 339 63 y 403 100 x 346 64 y 681 170 x 352 65 y 707 176 x 358 67 y 403 100 x 358 67 y 428 106 x 365 68 y 352 87 x 365 68 y 276 68 x 365 68 y 352 87 x 371 69 y 479 119 x 371 69 y 301 75 x 377 70 y 301 75 x 377 70 y 352 87 x 384 71 y 428 106 x 384 71 y 403 100 x 390 73 y 428 106 x 415 77 y 1340 334 x 415 77 y 403 100 x 422 79 y 377 94 x 422 79 y 301 75 x 428 80 y 327 81 x 428 80 y 276 68 x 434 81 y 428 106 x 434 81 y 453 113 x 441 82 y 428 106 x 447 83 y 529 132 x 453 84 y 352 87 x 453 84 y 276 68 x 460 86 y 453 113 x 466 87 y 403 100 x 466 87 y 276 68 x 472 88 y 428 106 x 485 90 y 884 220 x 491 91 y 327 81 x 498 93 y 453 113 x 498 93 y 377 94 x 510 95 y 504 125 x 510 95 y 377 94 x 517 96 y 428 106 x 523 97 y 479 119 x 529 99 y 453 113 x 536 100 y 453 113 x 542 101 y 403 100 x 548 102 y 479 119 x 555 103 y 377 94 x 561 105 y 377 94 x 561 105 y 251 62 x 567 106 y 352 87 x 586 109 y 935 233 x 593 111 y 403 100 x 599 112 y 580 144 x 612 114 y 453 113 x 612 114 y 352 87 x 618 115 y 428 106 x 624 116 y 352 87 x 624 116 y 225 56 x 624 116 y 276 68 x 631 118 y 352 87 x 637 119 y 301 75 x 637 119 y 276 68 x 643 120 y 479 119 x 650 121 y 428 106 x 656 122 y 301 75 x 656 122 y 276 68 x 681 127 y 985 246 x 681 127 y 276 68 x 688 128 y 301 75 x 688 128 y 276 68 x 700 131 y 529 132 x 707 132 y 377 94 x 707 132 y 301 75 x 713 133 y 301 75 x 719 134 y 301 75 x 719 134 y 327 81 x 726 135 y 403 100 x 732 137 y 327 81 x 738 138 y 352 87 x 745 139 y 352 87 x 745 139 y 251 62 x 751 140 y 428 106 x 783 146 y 1061 264 x 789 147 y 403 100 x 795 148 y 352 87 x 795 148 y 276 68 x 802 150 y 327 81 x 808 151 y 276 68 x 808 151 y 327 81 x 814 152 y 301 75 x 814 152 y 225 56 x 821 153 y 352 87 x 827 154 y 377 94 x 827 154 y 276 68 x 833 155 y 327 81 x 833 155 y 251 62 x 846 158 y 377 94 x 852 159 y 479 119 x 878 164 y 783 195 x 878 164 y 301 75 x 884 165 y 276 68 x 890 166 y 352 87 x 897 167 y 428 106 x 903 169 y 276 68 x 909 170 y 403 100 x 916 171 y 301 75 x 928 173 y 479 119 x 935 175 y 428 106 x 941 176 y 276 68 x 947 177 y 377 94 x 954 178 y 352 87 x 960 179 y 327 81 x 966 180 y 352 87 x 985 184 y 757 189 x 998 186 y 428 106 x 1004 188 y 301 75 x 1017 190 y 479 119 x 1017 190 y 327 81 x 1023 191 y 327 81 x 1036 193 y 453 113 x 1049 196 y 403 100 x 1055 197 y 377 94 x 1061 198 y 301 75 x 1068 199 y 377 94 x 1068 199 y 276 68 x 1074 201 y 327 81 x 1087 203 y 377 94 x 1093 204 y 428 106 x 1099 205 y 276 68 x 1125 210 y 757 189 x 1131 211 y 276 68 x 1131 211 y 301 75 x 1137 212 y 327 81 x 1150 215 y 377 94 x 1156 216 y 352 87 x 1163 217 y 327 81 x 1163 217 y 276 68 x 1163 217 y 225 56 x 1169 218 y 327 81 x 1182 221 y 428 106 x 1188 222 y 301 75 x 1194 223 y 352 87 x 1213 227 y 529 132 x 1220 228 y 327 81 x 1226 229 y 377 94 x 1245 233 y 504 125 x 1251 234 y 403 100 x 1264 236 y 377 94 x 1264 236 y 276 68 x 1270 237 y 276 68 x 1277 239 y 377 94 x 1289 241 y 428 106 x 1302 243 y 428 106 x 1308 244 y 327 81 x 1321 247 y 428 106 x 1327 248 y 327 81 x 1334 249 y 301 75 x 1346 252 y 453 113 x 1353 253 y 276 68 x 1353 253 y 225 56 x 1384 259 y 757 189 x 1391 260 y 276 68 x 1397 261 y 327 81 x 1410 264 y 403 100 x 1410 264 y 251 62 x 1416 265 y 301 75 x 1422 266 y 301 75 x 1422 266 y 225 56 x 1422 266 y 251 62 x 1441 269 y 479 119 x 1448 271 y 276 68 x 1454 272 y 377 94 x 1467 274 y 352 87 x 1479 276 y 453 113 x 1486 278 y 276 68 x 1492 279 y 301 75 x 1517 284 y 681 170 x 1524 285 y 327 81 x 1536 287 y 428 106 x 1543 288 y 225 56 x 1543 288 y 276 68 x 1555 291 y 352 87 x 1562 292 y 377 94 x 1568 293 y 276 68 x 1574 294 y 301 75 x 1581 296 y 276 68 x 1581 296 y 251 62 x 1587 297 y 276 68 x 1600 299 y 377 94 x 1606 300 y 301 75 x 1612 301 y 377 94 x 1625 304 y 327 81 x 1669 312 y 935 233 x 1676 313 y 301 75 x 1682 314 y 301 75 x 1688 316 y 352 87 x 1695 317 y 251 62 x 1701 318 y 301 75 x 1714 320 y 377 94 x 1720 322 y 327 81 x 1733 324 y 377 94 x 1739 325 y 276 68 x 1739 325 y 276 68 x 1745 326 y 276 68 x 1752 328 y 251 62 x 1758 329 y 276 68 x 1771 331 y 428 106 x 1783 333 y 352 87 x 1796 336 y 479 119 x 1815 339 y 403 100 x 1821 340 y 327 81 x 1828 342 y 327 81 x 1834 343 y 301 75 x 1847 345 y 352 87 x 1853 346 y 301 75 x 1878 351 y 580 144 x 1885 352 y 276 68 x 1885 352 y 251 62 x 1891 354 y 276 68 x 1897 355 y 225 56 x 1897 355 y 276 68 x 1910 357 y 352 87 x 1916 358 y 327 81 x 1929 361 y 301 75 x 1967 368 y 757 189 x 1967 368 y 251 62 x 1980 370 y 327 81 x 1986 371 y 352 87 x 1999 374 y 352 87 x 2011 376 y 377 94 x 2024 379 y 327 81 x 2024 379 y 276 68 x 2037 381 y 327 81 x 2043 382 y 276 68 x 2049 383 y 276 68 x 2056 384 y 276 68 x 2056 384 y 251 62 x 2056 384 y 225 56 x 2068 387 y 301 75 x 2087 390 y 479 119 x 2119 396 y 605 151 x 2132 399 y 377 94 x 2144 401 y 403 100 x 2163 405 y 428 106 x 2170 406 y 327 81 x 2182 408 y 352 87 x 2195 411 y 352 87 x 2208 413 y 377 94 x 2220 415 y 352 87 x 2227 417 y 301 75 x 2239 419 y 352 87 x 2246 420 y 327 81 x 2252 421 y 276 68 x 2265 424 y 301 75 x 2277 426 y 377 94 x 2290 428 y 352 87 x 2309 432 y 453 113 x 2315 433 y 327 81 x 2322 434 y 251 62 x 2328 435 y 276 68 x 2334 437 y 251 62 x 2341 438 y 327 81 x 2353 440 y 377 94 x 2366 443 y 301 75 x 2372 444 y 301 75 x 2385 446 y 327 81 x 2398 449 y 428 106 x 2417 452 y 403 100 x 2417 452 y 225 56 x 2423 453 y 276 68 x 2429 454 y 251 62 x 2436 456 y 301 75 x 2455 459 y 377 94 x 2455 459 y 251 62 x 2461 460 y 251 62 x 2467 461 y 301 75 x 2474 463 y 251 62 x 2480 464 y 276 68 x 2493 466 y 327 81 x 2499 467 y 327 81 x 2505 469 y 251 62 x 2518 471 y 352 87 x 2531 473 y 327 81 x 2537 475 y 276 68 x 2543 476 y 327 81 x 2550 477 y 225 56 x 2550 477 y 251 62 x 2575 482 y 479 119 x 2588 484 y 301 75 x 2588 484 y 251 62 x 2594 485 y 276 68 x 2600 486 y 276 68 x 2607 488 y 276 68 x 2619 490 y 327 81 x 2638 493 y 403 100 x 2645 495 y 301 75 x 2657 497 y 301 75 x 2664 498 y 276 68 x 2676 501 y 352 87 x 2683 502 y 276 68 x 2695 504 y 327 81 x 2702 505 y 251 62 x 2702 505 y 251 62 x 2733 511 y 529 132 x 2746 514 y 352 87 x 2746 514 y 225 56 x 2759 516 y 276 68 x 2765 517 y 276 68 x 2771 518 y 276 68 x 2771 518 y 225 56 x 2790 522 y 403 100 x 2803 524 y 352 87 x 2809 526 y 276 68 x 2828 529 y 352 87 x 2828 529 y 251 62 x 2835 530 y 276 68 x 2847 533 y 276 68 x 2854 534 y 327 81 x 2866 536 y 327 81 x 2885 540 y 377 94 x 2885 540 y 225 56 x 2892 541 y 251 62 x 2911 545 y 428 106 x 2923 547 y 276 68 x 2936 549 y 377 94 x 2942 550 y 276 68 x 2955 553 y 327 81 x 2974 556 y 403 100 x 2980 558 y 251 62 x 2999 561 y 377 94 x 3012 564 y 327 81 x 3018 565 y 251 62 x 3025 566 y 301 75 x 3031 567 y 251 62 x 3050 571 y 428 106 x 3063 573 y 301 75 x 3088 578 y 428 106 x 3094 579 y 327 81 x 3101 580 y 225 56 x 3107 581 y 251 62 x 3107 581 y 251 62 x 3120 584 y 301 75 x 3126 585 y 276 68 x 3132 586 y 225 56 x 3132 586 y 225 56 x 3145 588 y 327 81 x 3151 590 y 251 62 x 3158 591 y 276 68 x 3164 592 y 276 68 x 3183 596 y 377 94 x 3189 597 y 276 68 x 3202 599 y 301 75 x 3202 599 y 225 56 x 3221 603 y 352 87 x 3234 605 y 327 81 x 3234 605 y 225 56 x 3240 606 y 225 56 x 3246 607 y 301 75 x 3253 609 y 251 62 x 3259 610 y 225 56 x 3272 612 y 352 87 x 3278 613 y 276 68 x 3310 619 y 453 113 x 3316 620 y 301 75 x 3348 626 y 479 119 x 3354 628 y 251 62 x 3354 628 y 225 56 x 3360 629 y 225 56 x 3367 630 y 276 68 x 3379 632 y 352 87 x 3386 634 y 225 56 x 3405 637 y 377 94 x 3411 638 y 276 68 x 3417 639 y 251 62 x 3424 641 y 251 62 x 3430 642 y 251 62 x 3443 644 y 327 81 x 3455 646 y 301 75 x 3487 652 y 504 125 x 3506 656 y 377 94 x 3525 660 y 352 87 x 3538 662 y 327 81 x 3544 663 y 276 68 x 3563 667 y 377 94 x 3569 668 y 225 56 x 3576 669 y 276 68 x 3595 673 y 377 94 x 3601 674 y 225 56 x 3607 675 y 251 62 x 3614 676 y 301 75 x 3620 677 y 225 56 x 3626 678 y 276 68 x 3645 682 y 352 87 x 3652 683 y 276 68 x 3677 688 y 428 106 x 3683 689 y 251 62 x 3696 692 y 276 68 x 3696 692 y 225 56 x 3709 694 y 301 75 x 3709 694 y 225 56 x 3715 695 y 225 56 x 3734 699 y 352 87 x 3734 699 y 251 62 x 3747 701 y 301 75 x 3759 703 y 276 68 x 3766 705 y 276 68 x 3772 706 y 225 56 x 3778 707 y 276 68 x 3797 711 y 377 94 x 3804 712 y 251 62 x 3816 714 y 276 68 x 3823 715 y 251 62 x 3835 718 y 352 87 x 3848 720 y 276 68 x 3854 721 y 276 68 x 3861 722 y 225 56 x 3873 725 y 301 75 x 3886 727 y 327 81 x 3886 727 y 225 56 x 3899 730 y 276 68 x 3905 731 y 251 62 x 3911 732 y 251 62 x 3924 734 y 301 75 x 3943 738 y 377 94 x 3962 741 y 352 87 x 3981 745 y 377 94 x 1 0 y 1 0 x 0 0 y 0 0 label.c 355382255 304 1 100666 89 ` extern jerq; label(s) char *s; { int i; for(i=0; s[i++]; ) ; write(jerq, s, i); } line.c 355359595 304 1 100666 195 ` extern jerq; line(x0,y0,x1,y1){ char buf[10]; move(x0, y0); cont(x1, y1); } cont(x, y){ char buf[10]; buf[0]='\033'; buf[1]='n'; xsc(x, &buf[2]); ysc(y, &buf[4]); write(jerq, buf, 6); } linmod.c 355357930 304 1 100666 24 ` linemod(s) char *s; { } move.c 355359484 304 1 100666 132 ` extern jerq; move(xi,yi){ char buf[10]; buf[0]='\033'; buf[1]='o'; xsc(xi, &buf[2]); ysc(yi, &buf[4]); write(jerq, buf, 6); } open.c 355383641 304 1 100666 159 ` float boty = 0.; float botx = 0.; float oboty = 0.; float obotx = 0.; float scalex = 0.25; float scaley = 0.25; int jerq = -1; openpl() { jerq=1; return; } point.c 355358844 304 1 100666 36 ` point(xi,yi){ line(xi,yi,xi,yi); } space.c 355385304 304 1 100666 259 ` extern float obotx; extern float oboty; extern float boty; extern float botx; extern float scalex; extern float scaley; float deltx = 767.; float delty = 1023.; space(x0,y0,x1,y1){ obotx = x0; oboty = y0; scalex = deltx/(x1-x0); scaley = delty/(y1-y0); } subr.c 355385301 304 1 100666 352 ` extern float obotx; extern float oboty; extern float boty; extern float botx; extern float scalex; extern float scaley; xsc(xi, s) register char *s; { int xa; xa = (xi-obotx)*scalex+botx; s[0]=(xa&077)+32; s[1]=((xa>>6)&077)+32; } ysc(yi, s) register char *s; { int ya; ya = (yi-oboty)*scaley+boty; s[0]=(ya&077)+32; s[1]=((ya>>6)&077)+32; }