argv@island.uu.net (Dan Heller) (07/22/89)
Submitted-by: Mark Moraes <moraes@ai.toronto.edu> Posting-number: Volume 4, Issue 75 Archive-name: xpic/part10 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 10 (of 15)." # Contents: xpic/doc/marcel.ps xpic/obj_spline.c xpic/test/marcel.x # Wrapped by moraes@neat.ai on Thu Jul 13 22:36:10 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'xpic/doc/marcel.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xpic/doc/marcel.ps'\" else echo shar: Extracting \"'xpic/doc/marcel.ps'\" \(15723 characters\) sed "s/^X//" >'xpic/doc/marcel.ps' <<'END_OF_FILE' X%! X%%Creator: root@church.csri (Operator) X%%Title: marcel.x (xpic) X%%CreationDate: Tue Oct 4 04:23:42 1988 X%%Pages: 1 X%%BoundingBox: 0 0 504 319.05 X% (in inches) at 0 0, width 7, height 4.43125 X%%EndComments X% Prolog for xpic to PostScript converter X% Author: Mark Moraes X% $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp X% %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH X% %s F - change font to fontname X% %d S - change size (font size in points) X% (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) X% (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) X% (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) X% %d %d l - lineto X% %d %d m - moveto X% %d %d s - spline segment X% x - flush line, spline X% <wid> <ht> <x> <y> b - box X% <wid> <ht> <x> <y> e - ellipse X% %d ss - setscale X% %d W - change linewidth Xsave 50 dict begin /xpic exch def X/StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def X% Set defaults X/fontname /Times-Roman def X/ptsize 12 def X% halign has the values for MIDLINE, TOPLINE, BOTLINE X/halign 3 array def X/s {rcurveto} def X/x {stroke} def X/l {lineto} def X/m {moveto} def X/b { X /ury exch def /urx exch def /lly exch def /llx exch def X llx lly moveto urx lly lineto urx ury lineto X llx ury lineto llx lly lineto stroke X} def X/mtrx matrix def X/e { X /yc exch def /xc exch def /yrad exch def /xrad exch def X xc xrad add yc moveto X /savematrix mtrx currentmatrix def X xc yc translate X xrad yrad scale X 0 0 1 0 360 arc X savematrix setmatrix stroke X} def X% The next three take the text string, and moveto the right horiz. position X% leaving the string on the stack. X/lj {} def X/rj {dup stringwidth pop neg 0 rmoveto} def X/ce {dup stringwidth pop 2 div neg 0 rmoveto} def X% And this is invoked after one of the three above, and X% computes the vert. pos, and then displays the string. X/t {halign exch get 0 exch rmoveto show newpath} def X% Store an array of patterns in /styles - a pattern is an array consisting X% of an array and an offset. Corresp to xpic patterns X% solid, dotted, short-dashed, long-dashed, dot-dashed X/styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] X 5 array astore def X% change style to arg. X/D {stroke styles exch get aload pop setdash newpath} def X/W {stroke 0.5 mul setlinewidth newpath} def X% fontbox takes a fontname off the stack, and returns an array X% containing the values of the bottom line of the bounding box, the X% mid line of the bounding box, and the top line of the bounding box X% of that font, taken from the baseline, scaled to a font of size 1 X/fontbox { X findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop X /ytop exch def pop /ybot exch def pop X /ymid ytop ybot sub 2 div def X 0 ybot fm dtransform exch pop % botline X dup neg exch % midline - this works better than (ytop-ybot)/2! X 0 ytop fm dtransform exch pop exch %topline X % now in the order midline, topline, botline. X 3 array astore X} def X% select font X/F { X dup /fontname exch def fontbox X /thisfontbox exch def SF X} def X% set point size X/S {/ptsize exch def SF} def X% actually set font X/SF { X fontname findfont ptsize curscale div scalefont setfont X thisfontbox aload pop X 1 1 3 { X pop ptsize mul curscale div neg 3 1 roll X } for X halign astore pop X} def X% sets the scale to 72 / n, where n is on the stack, and stores the value X% in curscale for font scaling X/curscale 1 def X/ss {/curscale exch 72 exch div dup dup scale def} def X/land {90 rotate} def XStartXpic X%%EndProlog X0.5 0.5 scale X80 ss X1 W X0 D X488 104 m X440 104 l X0 D X449 101 m X440 104 l X449 108 l X0 D X440 104 m Xx X456 304 m X456 128 l X440 128 l X0 D X449 125 m X440 128 l X449 132 l X0 D X440 128 m Xx X316 368 m X316 384 l X0 D X313 376 m X316 384 l X320 376 l X0 D X316 384 m Xx X0.5 W X/Times-Roman F X10 S X408 336 m X(dPC \(h\)) ce 0 t X1 W X488 456 m X472 456 l X0 D X481 453 m X472 456 l X481 460 l X0 D X472 456 m Xx X0.5 W X8 S X396 392 m X(Drtx) rj 0 t X464 456 m X(PC\(h\)in) rj 0 t X464 392 m X(HW_gen) rj 0 t X316 360 m X(\(from EU\)) ce 0 t X304 392 m X(IBASE) lj 0 t X640 604 m X(PC_sel) lj 0 t X608 580 m X(\(from EU\) PC\(h\)in) rj 0 t X604 596 m X(\(from IFU\) PCout) rj 0 t X10 S X816 472 m X(+) ce 0 t X1 W X472 528 m X504 528 l X0 D X496 532 m X504 528 l X496 525 l X0 D X504 528 m Xx X808 488 824 456 b X632 576 m X784 576 l X784 544 l X0 D X788 553 m X784 544 l X781 553 l X0 D X784 544 m Xx X352 504 m X352 632 l X1096 632 l X0 D X1088 636 m X1096 632 l X1088 629 l X0 D X1096 632 m Xx X0.5 W X436 528 m X(PC Stack ptr) ce 0 t X788 512 m X(PC \(h\)) ce 0 t X912 464 m X(Control) ce 0 t X912 480 m X(Queue Shift) ce 0 t X996 416 m X(QL) ce 0 t X996 432 m X(QH) ce 0 t X1 W X984 424 m X1008 424 l Xx X1048 0 m X1048 424 l X0 D X1045 416 m X1048 424 l X1052 416 l X0 D X1048 424 m Xx X1048 424 m X1008 424 l X0 D X1017 421 m X1008 424 l X1017 428 l X0 D X1008 424 m Xx X1080 400 m X960 400 l X0 D X969 397 m X960 400 l X969 404 l X0 D X960 400 m Xx X1064 496 m X1064 0 l X0 D X1068 9 m X1064 0 l X1061 9 l X0 D X1064 0 m Xx X792 496 m X1064 496 l X0 D X1056 500 m X1064 496 l X1056 493 l X0 D X1064 496 m Xx X984 424 m X960 424 l X0 D X969 421 m X960 424 l X969 428 l X0 D X960 424 m Xx X984 432 m X960 432 l X0 D X969 429 m X960 432 l X969 436 l X0 D X960 432 m Xx X984 440 1008 408 b X0.5 W X16 S X360 408 m X(Controller) ce 0 t X360 432 m X(IFU) ce 0 t X12 S X72 472 m X(IRQ) rj 0 t X72 448 m X(IRQ_addr) rj 0 t X10 S X192 424 m X(TAG Mismatch) rj 0 t X192 408 m X(Read Exception) rj 0 t X192 392 m X(Write Exception) rj 0 t X1 W X256 472 m X0 D X248 476 m X256 472 l X248 469 l X0 D X256 472 m X80 472 l Xx X256 448 m X0 D X248 452 m X256 448 l X248 445 l X0 D X256 448 m X80 448 l Xx X256 392 m X0 D X248 396 m X256 392 l X248 389 l X0 D X256 392 m X200 392 l Xx X256 408 m X0 D X248 412 m X256 408 l X248 405 l X0 D X256 408 m X200 408 l Xx X256 424 m X0 D X248 428 m X256 424 l X248 421 l X0 D X256 424 m X200 424 l Xx X0.5 W X8 S X800 540 m X(F) rj 0 t X788 540 m X(T) rj 0 t X532 364 m X(T) rj 0 t X544 364 m X(F) rj 0 t X552 384 m X(18) lj 0 t X1 W X540 380 m X548 388 l Xx X544 392 m X544 368 l X0 D X548 377 m X544 368 l X541 377 l X0 D X544 368 m Xx X536 360 m X536 344 l X0 D X540 353 m X536 344 l X533 353 l X0 D X536 344 m Xx X528 360 m X544 360 l X552 368 l X520 368 l X528 360 l Xx X504 400 m X496 400 l X0 D X505 397 m X496 400 l X505 404 l X0 D X496 400 m Xx X0.5 W X10 S X536 336 m X(QA data) ce 0 t X1 W X488 336 m X488 576 l X624 576 l X0 D X616 580 m X624 576 l X616 573 l X0 D X624 576 m Xx X0.5 W X8 S X464 440 m X(length) rj 0 t X1 W X320 472 m X320 464 l X312 456 l X312 480 l X320 472 l Xx X300 464 m X312 464 l X0 D X304 468 m X312 464 l X304 461 l X0 D X312 464 m Xx X300 472 m X312 472 l X0 D X304 476 m X312 472 l X304 469 l X0 D X312 472 m Xx X384 468 m X400 468 l X0 D X392 472 m X400 468 l X392 465 l X0 D X400 468 m Xx X320 468 m X336 468 l X0 D X328 472 m X336 468 l X328 465 l X0 D X336 468 m Xx X296 504 m X296 608 l X628 608 l X628 596 l X0 D X632 605 m X628 596 l X625 605 l X0 D X628 596 m Xx X328 504 m X328 592 l X624 592 l X0 D X616 596 m X624 592 l X616 589 l X0 D X624 592 m Xx X368 504 m X368 544 l X752 544 l X756 540 l X780 540 l X0 D X772 544 m X780 540 l X772 537 l X0 D X780 540 m Xx X0.5 W X264 424 m X(TAG) lj 0 t X264 408 m X(reade) lj 0 t X264 392 m X(writee) lj 0 t X296 496 m X(PC_sel) ce 0 t X328 496 m X(PCout) ce 0 t X352 496 m X(RD) ce 0 t X368 496 m X(abs) ce 0 t X360 464 m X(pre-decode) ce 0 t X360 472 m X(uPLA) ce 0 t X392 496 m X(fetch) ce 0 t X424 496 m X(inc) ce 0 t X456 496 m X(dec) ce 0 t X464 480 m X(h0_ovr) rj 0 t X464 472 m X(offset) rj 0 t X1 W X472 440 m X848 440 l X848 464 l X864 464 l X0 D X856 468 m X864 464 l X856 461 l X0 D X864 464 m Xx X392 504 m X392 616 l X1080 616 l X0 D X1072 620 m X1080 616 l X1072 613 l X0 D X1080 616 m Xx X456 504 m X456 520 l X0 D X453 512 m X456 520 l X460 512 l X0 D X456 520 m Xx X424 504 m X424 520 l X0 D X421 512 m X424 520 l X428 512 l X0 D X424 520 m Xx X472 472 m X776 472 l X0 D X768 476 m X776 472 l X768 469 l X0 D X776 472 m Xx X472 480 m X736 480 l X736 528 l X820 528 l X820 520 l X0 D X824 529 m X820 520 l X817 529 l X0 D X820 520 m Xx X408 536 472 520 b X256 504 472 384 b X336 480 384 456 b X960 428 m X504 428 l Xx X888 424 m X888 392 l Xx X504 424 m X960 424 l Xx X504 432 960 392 b X1 D X504 408 m X960 408 l Xx X0 D X944 424 m X944 392 l Xx X624 552 m X632 560 l X632 592 l X624 600 l X624 552 l Xx X632 424 m X632 392 l Xx X504 536 680 496 b X816 520 m X816 504 l Xx X824 472 m X832 472 l X832 576 l X800 576 l X800 544 l X0 D X804 553 m X800 544 l X797 553 l X0 D X800 544 m Xx X760 520 824 504 b X792 504 m X792 480 l X808 480 l X0 D X800 484 m X808 480 l X800 477 l X0 D X808 480 m Xx X792 536 m X792 520 l X0 D X796 529 m X792 520 l X789 529 l X0 D X792 520 m Xx X784 536 m X800 536 l X808 544 l X776 544 l X784 536 l Xx X784 464 m X808 464 l X0 D X800 468 m X808 464 l X800 461 l X0 D X808 464 m Xx X776 448 m X784 456 l X784 472 l X776 480 l X776 448 l Xx X768 456 m X776 456 l X0 D X768 460 m X776 456 l X768 453 l X0 D X776 456 m Xx X0.5 W X12 S X764 456 m X('1') rj 0 t X1 W X864 488 960 456 b X824 424 m X824 392 l Xx X760 424 m X760 392 l Xx X696 424 m X696 392 l Xx X0.5 W X8 S X820 512 m X(h) ce 0 t X1 W X592 536 m X592 560 l X624 560 l X0 D X616 564 m X624 560 l X616 557 l X0 D X624 560 m Xx X1080 616 m X1080 0 l X0 D X1084 9 m X1080 0 l X1077 9 l X0 D X1080 0 m Xx X1096 632 m X1096 0 l X0 D X1100 9 m X1096 0 l X1093 9 l X0 D X1096 0 m Xx X672 572 m X680 580 l Xx X596 368 m X604 376 l Xx X0.5 W X608 372 m X(18) lj 0 t X672 588 m X(31) lj 0 t X752 552 m X(abs) rj 0 t X12 S X592 520 m X(PC pseudo-stack) ce 0 t X592 504 m X(\(circular buffer\)) ce 0 t X916 416 m X(data) ce 0 t X916 400 m X(addr \(h\)) ce 0 t X600 416 m X(QB) ce 0 t X664 416 m X(QC) ce 0 t X728 416 m X(QD) ce 0 t X792 416 m X(QE) ce 0 t X856 416 m X(QF) ce 0 t X10 S X600 336 m X(QB data) ce 0 t X1 W X568 344 m X568 328 l Xx X504 344 632 328 b X568 424 m X568 392 l Xx X600 392 m X600 344 l X0 D X604 353 m X600 344 l X597 353 l X0 D X600 344 m Xx X0.5 W X12 S X536 416 m X(QA) ce 0 t X1 W X496 400 m X496 360 l X0 D X500 369 m X496 360 l X493 369 l X0 D X496 360 m Xx X0.5 W X8 S X464 416 m X(HW_op) rj 0 t X1 W X472 416 m X480 416 l X480 384 l X528 384 l X528 368 l X0 D X532 377 m X528 368 l X525 377 l X0 D X528 368 m Xx X496 360 m X408 360 l X408 344 l X0 D X412 353 m X408 344 l X405 353 l X0 D X408 344 m Xx X376 344 440 328 b X408 328 m X408 320 l X456 320 l X456 304 l X0 D X460 313 m X456 304 l X453 313 l X0 D X456 304 m Xx X416 280 424 240 b X416 272 m X0 0 -2 0 -8 0 s X-5 0 -9 -2 -12 -6 s X-2 -4 -2 -8 0 -12 s X2 -4 9 -6 20 -6 s Xx X392 224 m X384 216 l X384 200 l X392 192 l X392 224 l Xx X416 248 m X424 248 l Xx X416 256 m X424 256 l Xx X416 264 m X424 264 l Xx X416 272 m X424 272 l Xx X424 240 m X424 216 l Xx X392 260 m X388 260 l X388 220 l X0 D X392 229 m X388 220 l X385 229 l X0 D X388 220 m Xx X504 216 m X392 216 l X0 D X401 213 m X392 216 l X401 220 l X0 D X392 216 m Xx X504 200 m X392 200 l X0 D X401 197 m X392 200 l X401 204 l X0 D X392 200 m Xx X208 120 m X240 120 l X232 112 l X216 112 l X208 120 l Xx X232 160 m X232 120 l X0 D X236 129 m X232 120 l X229 129 l X0 D X232 120 m Xx X160 136 m X160 128 l X216 128 l X216 120 l X0 D X220 129 m X216 120 l X213 129 l X0 D X216 120 m Xx X2 D X280 160 m X280 280 l Xx X0 D X112 144 200 136 b X144 280 328 160 b X424 116 m X236 116 l X0 D X245 113 m X236 116 l X245 120 l X0 D X236 116 m Xx X352 216 m X352 184 l X344 192 l X344 208 l X352 216 l Xx X384 208 m X352 208 l X0 D X361 205 m X352 208 l X361 212 l X0 D X352 208 m Xx X344 200 m X328 200 l X0 D X337 197 m X328 200 l X337 204 l X0 D X328 200 m Xx X388 260 m X0 0 -1 0 -4 0 s X-2 0 -4 -8 -4 -26 s X0 -17 -2 -26 -8 -26 s Xx X224 112 m X0 0 0 -2 0 -8 s X0 D X228 113 m X224 104 l X221 113 l X0 D X224 104 m Xx X264 96 328 80 b X64 88 240 56 b X320 96 m X320 80 l Xx X64 72 m X240 72 l Xx X160 72 m X160 56 l Xx X112 72 m X112 56 l Xx X224 104 m X152 104 l X152 88 l X0 D X156 97 m X152 88 l X149 97 l X0 D X152 88 m Xx X224 104 m X296 104 l X296 96 l X0 D X300 105 m X296 96 l X293 105 l X0 D X296 96 m Xx X324 80 m X324 72 l X348 72 l X348 188 l X0 D X345 180 m X348 188 l X352 180 l X0 D X348 188 m Xx X296 80 m X296 64 l X360 64 l X360 192 l X352 192 l X0 D X361 189 m X352 192 l X361 196 l X0 D X352 192 m Xx X976 112 m X976 72 l X0 D X980 81 m X976 72 l X973 81 l X0 D X976 72 m Xx X920 112 m X920 72 l X0 D X924 81 m X920 72 l X917 81 l X0 D X920 72 m Xx X348 72 m X432 72 l X432 96 l X0 D X429 88 m X432 96 l X436 88 l X0 D X432 96 m Xx X916 88 m X924 96 l Xx X836 88 m X844 96 l Xx X772 88 m X780 96 l Xx X692 88 m X700 96 l Xx X612 88 m X620 96 l Xx X572 88 m X580 96 l Xx X532 88 m X540 96 l Xx X720 72 m X720 56 l Xx X824 72 m X824 56 l Xx X600 72 m X600 56 l Xx X560 72 m X560 56 l Xx X960 72 992 56 b X904 72 936 56 b X680 72 864 56 b X520 72 640 56 b X536 112 m X536 72 l X0 D X540 81 m X536 72 l X533 81 l X0 D X536 72 m Xx X576 112 m X576 72 l X0 D X580 81 m X576 72 l X573 81 l X0 D X576 72 m Xx X616 112 m X616 72 l X0 D X620 81 m X616 72 l X613 81 l X0 D X616 72 m Xx X696 112 m X696 72 l X0 D X700 81 m X696 72 l X693 81 l X0 D X696 72 m Xx X776 112 m X776 72 l X0 D X780 81 m X776 72 l X773 81 l X0 D X776 72 m Xx X840 112 m X840 72 l X0 D X844 81 m X840 72 l X837 81 l X0 D X840 72 m Xx X972 88 m X980 96 l Xx X504 280 1000 112 b X488 40 m X488 336 l X0 D X485 328 m X488 336 l X492 328 l X0 D X488 336 m Xx X0.5 W X160 140 m X(NOP, length 0) ce 0 t X256 120 m X(stall!) lj 0 t X10 S X292 88 m X(nxt addr) ce 0 t X152 80 m X(uWord Control Fields) ce 0 t X136 64 m X(stage 2) ce 0 t X88 64 m X(stage 3) ce 0 t X200 64 m X(stage 1) ce 0 t X540 64 m X(Breg1) ce 0 t X580 64 m X(offset1) ce 0 t X620 64 m X(ctrl1) ce 0 t X700 64 m X(Breg2) ce 0 t X776 64 m X(offset2) ce 0 t X844 64 m X(ctrl2) ce 0 t X920 64 m X(sop) ce 0 t X1 W X424 136 440 96 b X0.5 W X8 S X976 64 m X(car/cdr) ce 0 t X10 S X432 116 m X(=) ce 0 t X12 S X512 200 m X(ExtraOp) lj 0 t X536 216 m X(OpCode) ce 0 t X20 S X760 188 m X(Operand Decode Logic) ce 0 t X22 S X760 228 m X(ODL) ce 0 t X10 S X544 92 m X(5) lj 0 t X584 92 m X(5) lj 0 t X704 92 m X(5) lj 0 t X784 92 m X(30) lj 0 t X928 92 m X(2) lj 0 t X984 92 m X(1) lj 0 t X14 S X232 252 m X(uROM) ce 0 t X12 S X216 216 m X(Instruction) ce 0 t X216 192 m X(Decode ROM) ce 0 t X304 216 m X(ODL) ce 0 t X304 192 m X(uCode) ce 0 t X10 S X232 164 m X(data) ce 0 t X488 28 m X(next_PC) ce 0 t X304 168 m X(rtx) ce 0 t X8 S X424 392 m X(stall!) rj 0 t X1 W X304 160 m X304 152 l X464 152 l X464 304 l X0 D X461 296 m X464 304 l X468 296 l X0 D X464 304 m Xx X464 304 m X464 376 l X384 376 l X384 384 l X0 D X381 376 m X384 384 l X388 376 l X0 D X384 384 m Xx X448 384 m X448 368 l X480 368 l X480 336 l X0 D X484 345 m X480 336 l X477 345 l X0 D X480 336 m Xx X416 384 m X0 D X413 376 m X416 384 l X420 376 l X0 D X416 384 m X416 352 l X472 352 l X472 336 l Xx X408 116 m X408 144 l X472 144 l X472 336 l X0 D X469 328 m X472 336 l X476 328 l X0 D X472 336 m Xx X480 336 m X480 48 l X424 48 l X424 40 l X0 D X428 49 m X424 40 l X421 49 l X0 D X424 40 m Xx X0.5 W X10 S X424 28 m X(length0) ce 0 t X1 W X976 56 m X976 40 l X0 D X980 49 m X976 40 l X973 49 l X0 D X976 40 m Xx X920 56 m X920 40 l X0 D X924 49 m X920 40 l X917 49 l X0 D X920 40 m Xx X840 56 m X840 40 l X0 D X844 49 m X840 40 l X837 49 l X0 D X840 40 m Xx X776 56 m X776 40 l X0 D X780 49 m X776 40 l X773 49 l X0 D X776 40 m Xx X696 56 m X696 40 l X0 D X700 49 m X696 40 l X693 49 l X0 D X696 40 m Xx X616 56 m X616 40 l X0 D X620 49 m X616 40 l X613 49 l X0 D X616 40 m Xx X576 56 m X576 40 l X0 D X580 49 m X576 40 l X573 49 l X0 D X576 40 m Xx X536 56 m X536 40 l X0 D X540 49 m X536 40 l X533 49 l X0 D X536 40 m Xx X136 56 m X136 40 l X0 D X140 49 m X136 40 l X133 49 l X0 D X136 40 m Xx X88 56 m X88 40 l X0 D X92 49 m X88 40 l X85 49 l X0 D X88 40 m Xx X0.5 W X200 32 m X(\(decoded\)) ce 0 t X1 W X200 56 m X200 40 l X0 D X204 49 m X200 40 l X197 49 l X0 D X200 40 m Xx X536 328 m X536 280 l X0 D X540 289 m X536 280 l X533 289 l X0 D X536 280 m Xx X600 328 m X600 280 l X0 D X604 289 m X600 280 l X597 289 l X0 D X600 280 m Xx X2 D X0 336 m X368 336 l Xx X640 336 m X1120 336 l Xx X248 64 m X288 64 l Xx X368 64 m X472 64 l Xx X496 64 m X512 64 l Xx X648 64 m X672 64 l Xx X872 64 m X896 64 l Xx X944 64 m X952 64 l Xx X1000 64 m X1120 64 l Xx X0 D X808 376 m X776 376 l X0 D X785 373 m X776 376 l X785 380 l X0 D X776 376 m Xx X776 360 m X808 360 l X0 D X800 364 m X808 360 l X800 357 l X0 D X808 360 m Xx X0.5 W X816 376 m X(shift) lj 0 t X768 360 m X(fill) rj 0 t X22 S X40 696 m X(SLIME PROCESSOR) lj 0 t X1 W X40 680 m X264 680 l Xx X0.5 W X20 S X40 584 m X(IFU) ce 0 t X40 544 m X(1 stage) ce 0 t X40 264 m X(IDU) ce 0 t X40 224 m X(1 stage) ce 0 t X1 W X8 600 72 568 b X0.5 W X600 696 m X(Stage Interconnect Diagram \(Part 1\)) ce 0 t X1 W X2 D X0 64 m X56 64 l Xx X0 D X8 280 72 248 b X%%Trailer Xshowpage X% Trailer for xpic to PostScript converter X% $Header: x2ps.tra,v 1.1 88/08/31 23:48:01 moraes Exp $ Xxpic end restore END_OF_FILE if test 15723 -ne `wc -c <'xpic/doc/marcel.ps'`; then echo shar: \"'xpic/doc/marcel.ps'\" unpacked with wrong size! fi # end of 'xpic/doc/marcel.ps' fi if test -f 'xpic/obj_spline.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xpic/obj_spline.c'\" else echo shar: Extracting \"'xpic/obj_spline.c'\" \(14826 characters\) sed "s/^X//" >'xpic/obj_spline.c' <<'END_OF_FILE' X/* $Header: obj_spline.c,v 1.5 89/04/21 03:31:22 xwindows Exp $ */ X/* This code is UNBELIEVABLY convoluted and UGLY. Works - just barely! */ X/* X * The spline routines - These require some really ugly hacks to get X * half-decent rubber-banding. And it still leaves some droppings on X * the screen. The basic idea is that the segments of the spline are X * invariant from midpoint of the defining segment to the midpoint of X * the next defining segment. So the non-invariant section is covered X * up by the defining segment during rubberbanding. When the spline is X * complete, the rubber banded segments are erased and the complete X * spline drawn. Yuck! There must be a better way to do this. X */ X#include <values.h> X X#include "xpic.h" X#include "windows.h" X#include "spline.h" X#include "gels.h" X#include "draw.h" X#include "assert.h" X Xstatic int xmin, xmax, ymin, ymax; /* Bounding box */ Xstatic XPoint *drawVerts; /* X * Points four points behind current X * point, used by the spline drawing routine X */ Xstatic PointList *ptList; X Xspline_event(evtype, mx, my) X{ X switch(evtype) { X case MOTION | START_MODE: X case RIGHT | START_MODE: X case MIDDLE | START_MODE: X case REDRAW | START_MODE: X break; X case MOTION | END_MODE: X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X verts[nVerts].x = verts[nVerts+1].x = mx; X verts[nVerts].y = verts[nVerts+1].y = my; X CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X break; X case LEFT | START_MODE: X drawingMode = END_MODE; X xmin = xmax = verts[0].x = verts[1].x = verts[2].x = X verts[3].x = mx; X ymin = ymax = verts[0].y = verts[1].y = verts[2].y = X verts[3].y = my; X drawVerts = verts; X nVerts = 2; X CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X break; X case LEFT | END_MODE: X /* X * must always have at least two extra vertices in the X * verts array for the current mouse coordinates X */ X if (nVerts + 3 >= maxVerts) { X maxVerts += INC_VERTS; X#ifdef DEBUG X (void) fprintf(stderr, "Reallocing verts to %d\n", maxVerts); X#endif X if ((verts = (XPoint *) realloc((char *) verts, X (unsigned) (maxVerts * sizeof(XPoint)))) == NULL) { X message("No more memory for vertices"); X break; X } X drawVerts = &verts[nVerts - 2]; X } X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X verts[nVerts].x = verts[nVerts+1].x = verts[nVerts+2].x = mx; X verts[nVerts].y = verts[nVerts+1].y = verts[nVerts+2].y = my; X /* X * Really ugly - we'd like leave the last rubber banded section X * around because the spline that we're showing at this point X * consists of lots of rubber-banded segments. But we can't X * leave the rubber banded section from the MOTION drawing, X * because the button may have been pressed at a different X * place, so we invert that, compute a fidged rubber segment X * for this point, draw it, and never invert it back. X * Eventually, the protruding lines from the end segments get X * erased by the defining polyline, (we hope) and the spline X * gets overwritten by the DRAW operation at the end. X * Horrible!! X */ X CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcNormal); X nVerts++; X xmin = MIN(xmin, mx); X xmax = MAX(xmax, mx); X ymin = MIN(ymin, my); X ymax = MAX(ymax, my); X drawVerts++; X CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X break; X case RIGHT | END_MODE: X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, verts[1].x, X verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X /* Use ERASE to clean out junk */ X setwidth(tmpGcErase, lineThickness); X SETDASHES(tmpGcErase, line_type); X drawlines(picDpy, picWin, tmpGcErase, verts, nVerts, CoordModeOrigin); X verts[nVerts].x = verts[nVerts-1].x; X verts[nVerts].y = verts[nVerts-1].y; X FlattenSpline(verts, nVerts, &flatVerts, &nFlat, &flatSize); X nVerts++; X drawlines(picDpy, picWin, gcNormal, flatVerts, nFlat, X CoordModePrevious); X if (((line_arrow & EN_ARROW) != 0) && (nVerts > 2)) X Arrow(picDpy, picWin, verts[nVerts - 3].x, verts[nVerts - 3].y, X verts[nVerts - 2].x, verts[nVerts - 2].y, gcInvert); X drawingMode = START_MODE; X if (nVerts <= 3) X break; X if ((ptList = NewPtList(verts, nVerts)) == NULL) X message("No more memory for line/spline"); X else { X AddLineGel(&(CurrentCell->gelList), SPLINE, ptList, X line_type | line_arrow, xmin, ymin, xmax, ymax, lineThickness); X FreeGel(CurrentCell->undoList); X CurrentCell->undoList = NULL; X CurrentCell->undo = 1; X CurrentCell->saved |= MODIFIED; X } X break; X case MIDDLE | END_MODE: X if ((line_arrow & ST_ARROW) != 0) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X /* X * We use background and GXcopy instead of inverting X * because some of the points on the path may have X * already been turned off by the previous drawlines. X */ X setwidth(tmpGcErase, lineThickness); X SETDASHES(tmpGcErase, line_type); X drawlines(picDpy, picWin, tmpGcErase, verts, nVerts, CoordModeOrigin); X verts[nVerts].x = verts[nVerts+1].x = mx; X verts[nVerts].y = verts[nVerts+1].y = mx; X nVerts += 2; X FlattenSpline(verts, nVerts-1, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, tmpGcErase, flatVerts, nFlat, X CoordModePrevious); X drawingMode = START_MODE; X break; X case REDRAW | END_MODE: X if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2)) X Arrow(picDpy, picWin, verts[2].x, verts[2].y, X verts[1].x, verts[1].y, gcInvert); X if ((line_arrow & EN_ARROW) != 0) X Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, X verts[nVerts].x, verts[nVerts].y, gcInvert); X /* !! Should call XDraw for the whole spline here - this is wrong */ X drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin); X drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, X CoordModePrevious); X break; X default: X#ifdef DEBUG X (void) sprintf(errstring, "Hey! Unknown SPLINE mode %d", drawingMode); X message(errstring); X#endif X break; X } X ASSERT(allock(), "spline_event"); X} X X Xspline_abort() X{ X spline_event((RIGHT | drawingMode), 0, 0); X} X X#define MAXSPLINEBUF 7 Xstatic XPoint vbuf[MAXSPLINEBUF]; X X/* X * Copies N vertices from v to vbuf, duplicates the ones at the X * beginning and end, and calls the spline routine to flatten them. This X * wouldn't be needed if the spline routine properly doubled up the X * endpoints, but alas, it doesn't. X */ X/* X * NOTE: The new spline routine doubles the endpoints, but expects the X * 0th and Nth locations in the verts array passed to it to be free X */ XCopyAndFlatten(v, n, flattened, nflat, flatSize) Xregister XPoint *v; XXPoint *flattened[]; Xint *nflat; Xint *flatSize; X{ X register int i; X register int j; X X ASSERT(n < MAXSPLINEBUF, "n too large"); X /* Copy the n points */ X for (i = 1, j = 0; j < n; i++, j++) { X vbuf[i].x = v[j].x; X vbuf[i].y = v[j].y; X } X FlattenSpline(vbuf, n+1, flattened, nflat, flatSize); X} X X Xspline_adj(evtype, gel, mx, my) Xint evtype; XGel *gel; Xint mx, my; X{ X static XPoint *v; X static XPoint *adjusted; X static int arrowstyle, start, end, npts; X static Gel *splinegel, *oldsplinegel; X /* X * Will not need to process MOTION|START_MODE, RIGHT|START_MODE, X * REDRAW|START_MODE - these are taken care of in X * the adj_element routine. X */ X switch(evtype) { X case MOTION | END_MODE: X DrawSplineSection(v, npts, tmpGcInvert, start, end); X adjusted->x = mx; X adjusted->y = my; X CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize); X DrawSplineSection(v, npts, tmpGcInvert, start, end); X break; X case LEFT | START_MODE: X splinegel = CopyGel(gel, 1); X oldsplinegel = gel; X gel = NULL; X GetClosestSplinePoint(splinegel, mx, my, &v, &npts, &adjusted, &start, &end); X /* Spline has been erased in element_adjust, so we redraw inverted */ X GelDraw(splinegel, INVERT); X setwidth(tmpGcNormal, splinegel->linewidth); X setwidth(tmpGcInvert, splinegel->linewidth); X SETDASHES(tmpGcNormal, getlinestyle(splinegel->attributes)) X SETDASHES(tmpGcInvert, getlinestyle(splinegel->attributes)) X if (!start) { X v--; X npts++; X } X if (!end) { X npts++; X } X CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize); X /* X * Now we redraw the section of the spline we're going to X * adjust + the end segments. This erases it! X */ X drawlines(picDpy, picWin, tmpGcInvert, flatVerts, nFlat, X CoordModePrevious); X /* Now we redraw the spline section so it shows - yuk. */ X DrawSplineSection(v, npts, tmpGcInvert, start, end); X drawingMode = END_MODE; X arrowstyle = getlinearrow(splinegel->attributes); X start = start && (arrowstyle & ST_ARROW); X end = end && (arrowstyle & EN_ARROW); X break; X case LEFT | END_MODE: X DrawSplineSection(v, npts, tmpGcInvert, start, end); X adjusted->x = mx; X adjusted->y = my; X /* X * We need to erase the end segments of the spline that X * protrude. The logic (or illogic, is sililar to the junk code X * in the LEFT | END_MODE case in the draw. Go read the comment X * there. It won't help much either. X */ X CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize); X drawlines(picDpy, picWin, tmpGcInvert, flatVerts, nFlat, X CoordModePrevious); X update_box(splinegel->b_box, mx, my); X GelDraw(splinegel, DRAW); X (void) PushGel(&(CurrentCell->gelList), splinegel); X splinegel = NULL; X FreeGel(CurrentCell->undoList); X CurrentCell->undoList = oldsplinegel; X CurrentCell->undo = 1; X CurrentCell->saved |= MODIFIED; X drawingMode = START_MODE; X break; X case RIGHT | END_MODE: X case MIDDLE | END_MODE: X DrawSplineSection(v, npts, tmpGcInvert, start, end); X GelDraw(oldsplinegel, DRAW); X (void) PushUnderUndo(&(CurrentCell->gelList), oldsplinegel, X CurrentCell->undo); X oldsplinegel = NULL; X FreeGel(splinegel); X splinegel = NULL; X if (evtype == (MIDDLE | END_MODE)) X ClearGelFlags(CurrentCell->gelList); X drawingMode = START_MODE; X break; X case MIDDLE | START_MODE: X ClearGelFlags(CurrentCell->gelList); X break; X case REDRAW | END_MODE: X DrawSplineSection(v, npts, tmpGcInvert, start, end); X break; X default: X#ifdef DEBUG X (void) sprintf(errstring, "Hey! Unknown mode %d in spline_adj", X evtype); X message(errstring); X#endif X break; X } X ASSERT(allock(), "spline_adj"); X} X X XDrawSplineSection(v, npts, gc, start, end) XXPoint *v; XGC gc; Xint start, end, npts; X{ X drawlines(picDpy, picWin, gc, flatVerts, nFlat, CoordModePrevious); X drawlines(picDpy, picWin, gc, v, npts, CoordModeOrigin); X X /* !! Fix! */ X if (start) X Arrow(picDpy, picWin, v[1].x, v[1].y, v[0].x, v[0].y, gc); X if (end) X Arrow(picDpy, picWin, v[0].x, v[0].y, v[1].x, v[1].y, gc); X} X X X/* X * Finds the closest point in the spline gel 'g' to mx, my and X * puts the points in 'v'. Caller must allocate space for v. 'adjusted' X * will point to the closest point in the gel pointlist, and start and X * end will be set depending on whether the point is the start or end X * point. 'npts' is the number of points in v, usually 3, but 2 if one X * of the points is an endpoint. X */ XGetClosestSplinePoint(g, mx, my, v, npts, adjusted, start, end) XGel *g; XXPoint **v; XXPoint **adjusted; Xint *start, *end, *npts; Xint mx, my; X{ X register int i; X int mindist = MAXINT; X int dist; X int closest; X int n = ((PointList *) g->data)->nVerts; X XPoint *vertices = ((PointList *) g->data)->v; X X *adjusted = vertices; X for (i = 1,vertices++; i < n-1; i++, vertices++) { X dist = (vertices->x - mx)*(vertices->x - mx) + X (vertices->y - my)*(vertices->y - my); X if (dist < mindist) { X closest = i; X *adjusted = vertices; X mindist = dist; X } X } X *npts = 3; X if (closest <= 1) { X *start = TRUE; X *v = *adjusted; X (*npts)--; X } else { X *start = FALSE; X *v = *adjusted - 1; X } X if (closest >= n - 2) { X *end = TRUE; X (*npts)--; X } else { X *end = FALSE; X } X ASSERT((*npts != 1), "One point spline"); X} X X/* X * Finds distance of point from a spline. This is the distance of the closest X * segment of the controlling line from the point. The distance of a segment X * from the point is the perpendicular distance of the point from the segment, X * if the perpendicular intersects the segment, else it is the distance of the X * closest endpoint. We just call line_distance().. X */ Xint Xspline_distance(gel, xp, yp) XGel *gel; Xint xp, yp; X{ X extern int line_distance(); X X return(line_distance(gel, xp, yp)); X} END_OF_FILE if test 14826 -ne `wc -c <'xpic/obj_spline.c'`; then echo shar: \"'xpic/obj_spline.c'\" unpacked with wrong size! fi # end of 'xpic/obj_spline.c' fi if test -f 'xpic/test/marcel.x' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xpic/test/marcel.x'\" else echo shar: Extracting \"'xpic/test/marcel.x'\" \(13421 characters\) sed "s/^X//" >'xpic/test/marcel.x' <<'END_OF_FILE' X56 67 1176 776 8 X1 438 496 672 544 672 20 1 X2 X 544 672 496 672 X1 439 496 472 512 648 20 1 X3 X 512 472 512 648 496 648 X1 440 372 392 372 408 20 1 X2 X 372 408 372 392 X6 441 447 434 481 447 0 0 X464 440 7 0 2 XdPC (h) X1 442 528 320 544 320 20 1 X2 X 544 320 528 320 X6 443 435 379 452 390 2000 0 X452 384 4 0 1 XDrtx X6 444 489 315 520 326 2000 0 X520 320 7 0 1 XPC(h)in X6 445 487 379 520 390 2000 0 X520 384 6 0 1 XHW_gen X6 446 353 411 392 422 0 0 X372 416 9 0 1 X(from EU) X6 447 360 379 386 390 1000 0 X360 384 5 0 1 XIBASE X6 448 696 167 720 178 1000 0 X696 172 6 0 1 XPC_sel X6 449 594 191 664 202 2000 0 X664 196 17 0 1 X(from EU) PC(h)in X6 450 595 175 660 186 2000 0 X660 180 16 0 1 X(from IFU) PCout X6 451 867 298 877 311 0 0 X872 304 1 0 2 X+ X1 452 528 248 560 248 20 1 X2 X 528 248 560 248 X3 453 864 288 880 320 0 1 X1 454 688 200 840 232 20 1 X3 X 688 200 840 200 840 232 X1 455 408 144 1152 272 20 1 X3 X 408 272 408 144 1152 144 X6 456 465 242 519 255 0 0 X492 248 12 0 2 XPC Stack ptr X6 457 830 258 858 271 0 0 X844 264 6 0 2 XPC (h) X6 458 950 306 987 319 0 0 X968 312 7 0 2 XControl X6 459 941 290 995 303 0 0 X968 296 11 0 2 XQueue Shift X6 460 1044 354 1060 367 0 0 X1052 360 2 0 2 XQL X6 461 1043 338 1061 351 0 0 X1052 344 2 0 2 XQH X1 462 1040 352 1064 352 0 1 X2 X 1040 352 1064 352 X1 463 1104 352 1104 776 20 1 X2 X 1104 776 1104 352 X1 464 1064 352 1104 352 20 1 X2 X 1104 352 1064 352 X1 465 1016 376 1136 376 20 1 X2 X 1136 376 1016 376 X1 466 1120 280 1120 776 20 1 X2 X 1120 280 1120 776 X1 467 848 280 1120 280 20 1 X2 X 848 280 1120 280 X1 468 1016 352 1040 352 20 1 X2 X 1040 352 1016 352 X1 469 1016 344 1040 344 20 1 X2 X 1040 344 1016 344 X3 470 1040 336 1064 368 0 1 X6 471 378 358 454 378 0 0 X416 368 10 0 5 XController X6 472 401 334 431 354 0 0 X416 344 3 0 5 XIFU X6 473 103 297 128 311 2000 0 X128 304 3 0 3 XIRQ X6 474 71 321 128 335 2000 0 X128 328 8 0 3 XIRQ_addr X6 475 177 346 248 359 2000 0 X248 352 12 0 2 XTAG Mismatch X6 476 176 362 248 375 2000 0 X248 368 14 0 2 XRead Exception X6 477 173 378 248 391 2000 0 X248 384 15 0 2 XWrite Exception X1 478 136 304 312 304 10 1 X2 X 312 304 136 304 X1 479 136 328 312 328 10 1 X2 X 312 328 136 328 X1 480 256 384 312 384 10 1 X2 X 312 384 256 384 X1 481 256 368 312 368 10 1 X2 X 312 368 256 368 X1 482 256 352 312 352 10 1 X2 X 312 352 256 352 X6 483 851 231 856 242 2000 0 X856 236 1 0 1 XF X6 484 838 231 844 242 2000 0 X844 236 1 0 1 XT X6 485 582 407 588 418 2000 0 X588 412 1 0 1 XT X6 486 595 407 600 418 2000 0 X600 412 1 0 1 XF X6 487 608 387 616 398 1000 0 X608 392 2 0 1 X18 X1 488 596 388 604 396 0 1 X2 X 596 396 604 388 X1 489 600 384 600 408 20 1 X2 X 600 384 600 408 X1 490 592 416 592 432 20 1 X2 X 592 416 592 432 X1 491 576 408 608 416 0 1 X5 X 584 416 600 416 608 408 576 408 X 584 416 X1 492 552 376 560 376 20 1 X2 X 560 376 552 376 X6 493 573 434 611 447 0 0 X592 440 7 0 2 XQA data X1 494 544 200 680 440 20 1 X3 X 544 440 544 200 680 200 X6 495 497 331 520 342 2000 0 X520 336 6 0 1 Xlength X1 496 368 296 376 320 0 1 X5 X 376 304 376 312 368 320 368 296 X 376 304 X1 497 356 312 368 312 20 1 X2 X 356 312 368 312 X1 498 356 304 368 304 20 1 X2 X 356 304 368 304 X1 499 440 308 456 308 20 1 X2 X 440 308 456 308 X1 500 376 308 392 308 20 1 X2 X 376 308 392 308 X1 501 352 168 684 272 20 1 X4 X 352 272 352 168 684 168 684 180 X1 502 384 184 680 272 20 1 X3 X 384 272 384 184 680 184 X1 503 424 232 836 272 20 1 X5 X 424 272 424 232 808 232 812 236 X 836 236 X6 504 320 347 340 358 1000 0 X320 352 3 0 1 XTAG X6 505 320 363 340 374 1000 0 X320 368 5 0 1 Xreade X6 506 320 379 342 390 1000 0 X320 384 6 0 1 Xwritee X6 507 340 275 364 286 0 0 X352 280 6 0 1 XPC_sel X6 508 372 275 396 286 0 0 X384 280 5 0 1 XPCout X6 509 401 275 415 286 0 0 X408 280 2 0 1 XRD X6 510 418 275 430 286 0 0 X424 280 3 0 1 Xabs X6 511 395 307 437 318 0 0 X416 312 10 0 1 Xpre-decode X6 512 405 299 428 310 0 0 X416 304 4 0 1 XuPLA X6 513 439 275 458 286 0 0 X448 280 5 0 1 Xfetch X6 514 475 275 486 286 0 0 X480 280 3 0 1 Xinc X6 515 506 275 519 286 0 0 X512 280 3 0 1 Xdec X6 516 495 291 520 302 2000 0 X520 296 6 0 1 Xh0_ovr X6 517 499 299 520 310 2000 0 X520 304 6 0 1 Xoffset X1 518 528 312 920 336 20 1 X4 X 528 336 904 336 904 312 920 312 X1 519 448 160 1136 272 20 1 X3 X 448 272 448 160 1136 160 X1 520 512 256 512 272 20 1 X2 X 512 272 512 256 X1 521 480 256 480 272 20 1 X2 X 480 272 480 256 X1 522 528 304 832 304 20 1 X2 X 528 304 832 304 X1 523 528 248 876 296 20 1 X5 X 528 296 792 296 792 248 876 248 X 876 256 X3 524 464 240 528 256 0 1 X3 525 312 272 528 392 0 1 X3 526 392 296 440 320 0 1 X1 527 560 348 1016 348 0 1 X2 X 1016 348 560 348 X1 528 944 352 944 384 0 1 X2 X 944 352 944 384 X1 529 560 352 1016 352 0 1 X2 X 560 352 1016 352 X3 530 560 344 1016 384 0 1 X1 531 560 368 1016 368 1 1 X2 X 560 368 1016 368 X1 532 1000 352 1000 384 0 1 X2 X 1000 352 1000 384 X1 533 680 176 688 224 0 1 X5 X 680 224 688 216 688 184 680 176 X 680 224 X1 534 688 352 688 384 0 1 X2 X 688 352 688 384 X3 535 560 240 736 280 0 1 X1 536 872 256 872 272 0 1 X2 X 872 256 872 272 X1 537 856 200 888 304 20 1 X5 X 880 304 888 304 888 200 856 200 X 856 232 X3 538 816 256 880 272 0 1 X1 539 848 272 864 296 20 1 X3 X 848 272 848 296 864 296 X1 540 848 240 848 256 20 1 X2 X 848 240 848 256 X1 541 832 232 864 240 0 1 X5 X 840 240 856 240 864 232 832 232 X 840 240 X1 542 840 312 864 312 20 1 X2 X 840 312 864 312 X1 543 832 296 840 328 0 1 X5 X 832 328 840 320 840 304 832 296 X 832 328 X1 544 824 320 832 320 20 1 X2 X 824 320 832 320 X6 545 805 313 820 327 2000 0 X820 320 3 0 3 X'1' X3 546 920 288 1016 320 0 1 X1 547 880 352 880 384 0 1 X2 X 880 352 880 384 X1 548 816 352 816 384 0 1 X2 X 816 352 816 384 X1 549 752 352 752 384 0 1 X2 X 752 352 752 384 X6 550 874 259 879 270 0 0 X876 264 1 0 1 Xh X1 551 648 216 680 240 20 1 X3 X 648 240 648 216 680 216 X1 552 1136 160 1136 776 20 1 X2 X 1136 160 1136 776 X1 553 1152 144 1152 776 20 1 X2 X 1152 144 1152 776 X1 554 728 196 736 204 0 1 X2 X 728 204 736 196 X1 555 652 400 660 408 0 1 X2 X 652 408 660 400 X6 556 664 399 672 410 1000 0 X664 404 2 0 1 X18 X6 557 728 183 736 194 1000 0 X728 188 2 0 1 X31 X6 558 796 219 808 230 2000 0 X808 224 3 0 1 Xabs X6 559 604 249 692 263 0 0 X648 256 16 0 3 XPC pseudo-stack X6 560 605 265 691 279 0 0 X648 272 17 0 3 X(circular buffer) X6 561 961 353 984 367 0 0 X972 360 4 0 3 Xdata X6 562 951 369 993 383 0 0 X972 376 8 0 3 Xaddr (h) X6 563 647 353 666 367 0 0 X656 360 2 0 3 XQB X6 564 711 353 730 367 0 0 X720 360 2 0 3 XQC X6 565 774 353 794 367 0 0 X784 360 2 0 3 XQD X6 566 839 353 858 367 0 0 X848 360 2 0 3 XQE X6 567 903 353 921 367 0 0 X912 360 2 0 3 XQF X6 568 638 434 674 447 0 0 X656 440 7 0 2 XQB data X1 569 624 432 624 448 0 1 X2 X 624 432 624 448 X3 570 560 432 688 448 0 1 X1 571 624 352 624 384 0 1 X2 X 624 352 624 384 X1 572 656 384 656 432 20 1 X2 X 656 384 656 432 X6 573 582 353 603 367 0 0 X592 360 2 0 3 XQA X1 574 552 376 552 416 20 1 X2 X 552 376 552 416 X6 575 490 355 520 366 2000 0 X520 360 5 0 1 XHW_op X1 576 528 360 584 408 20 1 X5 X 528 360 536 360 536 392 584 392 X 584 408 X1 577 464 416 552 432 20 1 X3 X 552 416 464 416 464 432 X3 578 432 432 496 448 0 1 X1 579 464 448 512 472 20 1 X4 X 464 448 464 456 512 456 512 472 X3 580 472 496 480 536 0 1 X2 581 448 504 472 528 0 1 X5 X 472 504 456 504 448 516 456 528 X 472 528 X1 582 440 552 448 584 0 1 X5 X 448 552 440 560 440 576 448 584 X 448 552 X1 583 472 528 480 528 0 1 X2 X 472 528 480 528 X1 584 472 520 480 520 0 1 X2 X 472 520 480 520 X1 585 472 512 480 512 0 1 X2 X 472 512 480 512 X1 586 472 504 480 504 0 1 X2 X 472 504 480 504 X1 587 480 536 480 560 0 1 X2 X 480 536 480 560 X1 588 444 516 448 556 20 1 X3 X 448 516 444 516 444 556 X1 589 448 560 560 560 20 1 X2 X 560 560 448 560 X1 590 448 576 560 576 20 1 X2 X 560 576 448 576 X1 591 264 656 296 664 0 1 X5 X 264 656 296 656 288 664 272 664 X 264 656 X1 592 288 616 288 656 20 1 X2 X 288 616 288 656 X1 593 216 640 272 656 20 1 X4 X 216 640 216 648 272 648 272 656 X1 594 336 496 336 616 2 1 X2 X 336 616 336 496 X3 595 168 632 256 640 0 1 X3 596 200 496 384 616 0 1 X1 597 292 660 480 660 20 1 X2 X 480 660 292 660 X1 598 400 560 408 592 0 1 X5 X 408 560 408 592 400 584 400 568 X 408 560 X1 599 408 568 440 568 20 1 X2 X 440 568 408 568 X1 600 384 576 400 576 20 1 X2 X 400 576 384 576 X2 601 428 516 444 568 0 1 X4 X 444 516 436 516 436 568 428 568 X2 602 280 664 280 672 20 1 X2 X 280 664 280 672 X3 603 320 680 384 696 0 1 X3 604 120 688 296 720 0 1 X1 605 376 680 376 696 0 1 X2 X 376 680 376 696 X1 606 120 704 296 704 0 1 X2 X 120 704 296 704 X1 607 216 704 216 720 0 1 X2 X 216 704 216 720 X1 608 168 704 168 720 0 1 X2 X 168 704 168 720 X1 609 208 672 280 688 20 1 X3 X 280 672 208 672 208 688 X1 610 280 672 352 680 20 1 X3 X 280 672 352 672 352 680 X1 611 380 588 404 704 20 1 X4 X 380 696 380 704 404 704 404 588 X1 612 352 584 416 712 20 1 X5 X 352 696 352 712 416 712 416 584 X 408 584 X1 613 1032 664 1032 704 20 1 X2 X 1032 664 1032 704 X1 614 976 664 976 704 20 1 X2 X 976 664 976 704 X1 615 404 680 488 704 20 1 X3 X 404 704 488 704 488 680 X1 616 972 680 980 688 0 1 X2 X 972 688 980 680 X1 617 892 680 900 688 0 1 X2 X 892 688 900 680 X1 618 828 680 836 688 0 1 X2 X 828 688 836 680 X1 619 748 680 756 688 0 1 X2 X 748 688 756 680 X1 620 668 680 676 688 0 1 X2 X 668 688 676 680 X1 621 628 680 636 688 0 1 X2 X 628 688 636 680 X1 622 588 680 596 688 0 1 X2 X 588 688 596 680 X1 623 776 704 776 720 0 1 X2 X 776 704 776 720 X1 624 880 704 880 720 0 1 X2 X 880 704 880 720 X1 625 656 704 656 720 0 1 X2 X 656 704 656 720 X1 626 616 704 616 720 0 1 X2 X 616 704 616 720 X3 627 1016 704 1048 720 0 1 X3 628 960 704 992 720 0 1 X3 629 736 704 920 720 0 1 X3 630 576 704 696 720 0 1 X1 631 592 664 592 704 20 1 X2 X 592 664 592 704 X1 632 632 664 632 704 20 1 X2 X 632 664 632 704 X1 633 672 664 672 704 20 1 X2 X 672 664 672 704 X1 634 752 664 752 704 20 1 X2 X 752 664 752 704 X1 635 832 664 832 704 20 1 X2 X 832 664 832 704 X1 636 896 664 896 704 20 1 X2 X 896 664 896 704 X1 637 1028 680 1036 688 0 1 X2 X 1028 688 1036 680 X3 638 560 496 1056 664 0 1 X1 639 544 440 544 736 20 1 X2 X 544 736 544 440 X6 640 192 631 241 642 0 0 X216 636 13 0 1 XNOP, length 0 X6 641 312 651 329 662 1000 0 X312 656 6 0 1 Xstall! X6 642 330 682 366 695 0 0 X348 688 8 0 2 Xnxt addr X6 643 160 690 257 703 0 0 X208 696 20 0 2 XuWord Control Fields X6 644 178 706 207 719 0 0 X192 712 7 0 2 Xstage 2 X6 645 130 706 159 719 0 0 X144 712 7 0 2 Xstage 3 X6 646 242 706 271 719 0 0 X256 712 7 0 2 Xstage 1 X6 647 583 706 610 719 0 0 X596 712 5 0 2 XBreg1 X6 648 620 706 653 719 0 0 X636 712 7 0 2 Xoffset1 X6 649 665 706 687 719 0 0 X676 712 5 0 2 Xctrl1 X6 650 743 706 770 719 0 0 X756 712 5 0 2 XBreg2 X6 651 816 706 849 719 0 0 X832 712 7 0 2 Xoffset2 X6 652 889 706 911 719 0 0 X900 712 5 0 2 Xctrl2 X6 653 968 706 984 719 0 0 X976 712 3 0 2 Xsop X3 654 480 640 496 680 0 1 X6 655 1020 707 1045 718 0 0 X1032 712 7 0 1 Xcar/cdr X6 656 483 654 493 667 0 0 X488 660 1 0 2 X= X6 657 568 569 615 583 1000 0 X568 576 7 0 3 XExtraOp X6 658 569 553 615 567 0 0 X592 560 6 0 3 XOpCode X6 659 713 576 919 601 0 0 X816 588 20 0 7 XOperand Decode Logic X6 660 790 535 843 562 0 0 X816 548 3 0 8 XODL X6 661 600 678 606 691 1000 0 X600 684 1 0 2 X5 X6 662 640 678 646 691 1000 0 X640 684 1 0 2 X5 X6 663 760 678 766 691 1000 0 X760 684 1 0 2 X5 X6 664 840 678 852 691 1000 0 X840 684 2 0 2 X30 X6 665 984 678 990 691 1000 0 X984 684 1 0 2 X2 X6 666 1040 678 1046 691 1000 0 X1040 684 1 0 2 X1 X6 667 265 516 311 533 0 0 X288 524 4 0 4 XuROM X6 668 242 553 303 567 0 0 X272 560 11 0 3 XInstruction X6 669 235 577 309 591 0 0 X272 584 10 0 3 XDecode ROM X6 670 346 553 375 567 0 0 X360 560 3 0 3 XODL X6 671 342 577 378 591 0 0 X360 584 5 0 3 XuCode X6 672 278 606 298 619 0 0 X288 612 4 0 2 Xdata X6 673 524 742 564 755 0 0 X544 748 7 0 2 Xnext_PC X6 674 354 602 367 615 0 0 X360 608 3 0 2 Xrtx X6 675 463 379 480 390 2000 0 X480 384 6 0 1 Xstall! X1 676 360 472 520 624 20 1 X4 X 360 616 360 624 520 624 520 472 X1 677 440 392 520 472 20 1 X4 X 520 472 520 400 440 400 440 392 X1 678 504 392 536 440 20 1 X4 X 504 392 504 408 536 408 536 440 X1 679 472 392 528 440 10 1 X4 X 472 392 472 424 528 424 528 440 X1 680 464 440 528 660 20 1 X4 X 464 660 464 632 528 632 528 440 X1 681 480 440 536 736 20 1 X4 X 536 440 536 728 480 728 480 736 X6 682 463 742 498 755 0 0 X480 748 7 0 2 Xlength0 X1 683 1032 720 1032 736 20 1 X2 X 1032 720 1032 736 X1 684 976 720 976 736 20 1 X2 X 976 720 976 736 X1 685 896 720 896 736 20 1 X2 X 896 720 896 736 X1 686 832 720 832 736 20 1 X2 X 832 720 832 736 X1 687 752 720 752 736 20 1 X2 X 752 720 752 736 X1 688 672 720 672 736 20 1 X2 X 672 720 672 736 X1 689 632 720 632 736 20 1 X2 X 632 720 632 736 X1 690 592 720 592 736 20 1 X2 X 592 720 592 736 X1 691 192 720 192 736 20 1 X2 X 192 720 192 736 X1 692 144 720 144 736 20 1 X2 X 144 720 144 736 X6 693 233 738 280 751 0 0 X256 744 9 0 2 X(decoded) X1 694 256 720 256 736 20 1 X2 X 256 720 256 736 X1 695 592 448 592 496 20 1 X2 X 592 448 592 496 X1 696 656 448 656 496 20 1 X2 X 656 448 656 496 X1 697 56 440 424 440 2 1 X2 X 56 440 424 440 X1 698 696 440 1176 440 2 1 X2 X 696 440 1176 440 X1 699 304 712 344 712 2 1 X2 X 304 712 344 712 X1 700 424 712 528 712 2 1 X2 X 424 712 528 712 X1 701 552 712 568 712 2 1 X2 X 552 712 568 712 X1 702 704 712 728 712 2 1 X2 X 704 712 728 712 X1 703 928 712 952 712 2 1 X2 X 928 712 952 712 X1 704 1000 712 1008 712 2 1 X2 X 1000 712 1008 712 X1 705 1056 712 1176 712 2 1 X2 X 1056 712 1176 712 X1 706 832 400 864 400 20 1 X2 X 864 400 832 400 X1 707 832 416 864 416 20 1 X2 X 832 416 864 416 X6 708 872 394 893 407 1000 0 X872 400 5 0 2 Xshift X6 709 811 410 824 423 2000 0 X824 416 4 0 2 Xfill X6 710 96 67 319 94 1000 0 X96 80 15 0 8 XSLIME PROCESSOR X1 711 96 96 320 96 0 1 X2 X 96 96 320 96 X6 712 77 180 116 205 0 0 X96 192 3 0 7 XIFU X6 713 67 220 125 245 0 0 X96 232 7 0 7 X1 stage X6 714 75 500 118 525 0 0 X96 512 3 0 7 XIDU X6 715 67 540 125 565 0 0 X96 552 7 0 7 X1 stage X3 716 64 176 128 208 0 1 X6 717 497 68 815 93 0 0 X656 80 35 0 7 XStage Interconnect Diagram (Part 1) X1 718 56 712 112 712 2 1 X2 X 56 712 112 712 X3 719 64 496 128 528 0 1 END_OF_FILE if test 13421 -ne `wc -c <'xpic/test/marcel.x'`; then echo shar: \"'xpic/test/marcel.x'\" unpacked with wrong size! fi # end of 'xpic/test/marcel.x' fi echo shar: End of archive 10 \(of 15\). cp /dev/null ark10isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 15 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0