home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume4 / xpic / part10 < prev    next >
Encoding:
Internet Message Format  |  1989-07-21  |  48.3 KB

  1. Path: uunet!island!argv
  2. From: argv@island.uu.net (Dan Heller)
  3. Newsgroups: comp.sources.x
  4. Subject: v04i075: xpic -- pic previewer for X11, Part10/15
  5. Message-ID: <923@island.uu.net>
  6. Date: 22 Jul 89 07:41:19 GMT
  7. Organization: Island Graphics, Marin County, California
  8. Lines: 2845
  9. Approved: island!argv@sun.com
  10.  
  11. Submitted-by: Mark Moraes <moraes@ai.toronto.edu>
  12. Posting-number: Volume 4, Issue 75
  13. Archive-name: xpic/part10
  14.  
  15.  
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 10 (of 15)."
  24. # Contents:  xpic/doc/marcel.ps xpic/obj_spline.c xpic/test/marcel.x
  25. # Wrapped by moraes@neat.ai on Thu Jul 13 22:36:10 1989
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'xpic/doc/marcel.ps' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'xpic/doc/marcel.ps'\"
  29. else
  30. echo shar: Extracting \"'xpic/doc/marcel.ps'\" \(15723 characters\)
  31. sed "s/^X//" >'xpic/doc/marcel.ps' <<'END_OF_FILE'
  32. X%!
  33. X%%Creator: root@church.csri (Operator)
  34. X%%Title: marcel.x (xpic)
  35. X%%CreationDate: Tue Oct  4 04:23:42 1988
  36. X%%Pages: 1
  37. X%%BoundingBox: 0 0 504 319.05
  38. X%    (in inches) at 0 0, width 7, height 4.43125
  39. X%%EndComments
  40. X% Prolog for xpic to PostScript converter
  41. X% Author: Mark Moraes
  42. X% $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp 
  43. X%    %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH
  44. X%    %s F - change font to fontname
  45. X%    %d S - change size (font size in points)
  46. X%    (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE)
  47. X%    (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE)
  48. X%    (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE)
  49. X%    %d %d l - lineto
  50. X%    %d %d m - moveto
  51. X%    %d %d s - spline segment
  52. X%    x - flush line, spline
  53. X%    <wid> <ht> <x> <y> b - box
  54. X%    <wid> <ht> <x> <y> e - ellipse
  55. X%    %d ss - setscale
  56. X%    %d W - change linewidth
  57. Xsave 50 dict begin /xpic exch def
  58. X/StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def
  59. X% Set defaults
  60. X/fontname /Times-Roman def
  61. X/ptsize 12 def
  62. X% halign has the values for MIDLINE, TOPLINE, BOTLINE
  63. X/halign 3 array def
  64. X/s {rcurveto} def
  65. X/x {stroke} def
  66. X/l {lineto} def
  67. X/m {moveto} def
  68. X/b {
  69. X    /ury exch def /urx exch def /lly exch def /llx exch def 
  70. X    llx lly moveto urx lly lineto urx ury lineto 
  71. X    llx ury lineto llx lly lineto stroke
  72. X} def
  73. X/mtrx matrix def
  74. X/e {
  75. X    /yc exch def /xc exch def /yrad exch def /xrad exch def
  76. X    xc xrad add yc moveto
  77. X    /savematrix mtrx currentmatrix def
  78. X    xc yc translate
  79. X    xrad yrad scale
  80. X    0 0 1 0 360 arc
  81. X    savematrix setmatrix stroke
  82. X} def
  83. X% The next three take the text string, and moveto the right horiz. position
  84. X% leaving the string on the stack.
  85. X/lj {} def
  86. X/rj {dup stringwidth pop neg 0 rmoveto} def
  87. X/ce {dup stringwidth pop 2 div neg 0 rmoveto} def
  88. X% And this is invoked after one of the three above, and 
  89. X% computes the vert. pos, and then displays the string.
  90. X/t {halign exch get 0 exch rmoveto show newpath} def
  91. X% Store an array of patterns in /styles - a pattern is an array consisting 
  92. X% of an array and an offset. Corresp to xpic patterns
  93. X% solid, dotted, short-dashed, long-dashed, dot-dashed
  94. X/styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ]
  95. X    5 array astore def
  96. X% change style to arg.
  97. X/D {stroke styles exch get aload pop setdash newpath} def
  98. X/W {stroke 0.5 mul setlinewidth newpath} def
  99. X% fontbox takes a fontname off the stack, and returns an array
  100. X% containing the values of the bottom line of the bounding box, the
  101. X% mid line of the bounding box, and the top line of the bounding box
  102. X% of that font, taken from the baseline, scaled to a font of size 1
  103. X/fontbox {
  104. X    findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop
  105. X    /ytop exch def pop /ybot exch def pop
  106. X    /ymid ytop ybot sub 2 div def
  107. X    0 ybot fm dtransform exch pop % botline
  108. X    dup neg exch % midline - this works better than (ytop-ybot)/2!
  109. X    0 ytop fm dtransform exch pop exch %topline
  110. X    % now in the order midline, topline, botline.
  111. X    3 array astore
  112. X} def
  113. X% select font
  114. X/F {
  115. X    dup /fontname exch def fontbox
  116. X    /thisfontbox exch def SF 
  117. X} def
  118. X% set point size
  119. X/S {/ptsize exch def SF} def
  120. X% actually set font
  121. X/SF {
  122. X    fontname findfont ptsize curscale div scalefont setfont
  123. X    thisfontbox aload pop
  124. X    1 1 3 {
  125. X        pop ptsize mul curscale div neg 3 1 roll
  126. X    } for
  127. X    halign astore pop
  128. X} def
  129. X% sets the scale to 72 / n, where n is on the stack, and stores the value
  130. X% in curscale for font scaling
  131. X/curscale 1 def
  132. X/ss {/curscale exch 72 exch div dup dup scale def} def
  133. X/land {90 rotate} def
  134. XStartXpic
  135. X%%EndProlog
  136. X0.5 0.5 scale
  137. X80 ss
  138. X1 W
  139. X0 D
  140. X488 104 m
  141. X440 104 l
  142. X0 D
  143. X449 101 m
  144. X440 104 l
  145. X449 108 l
  146. X0 D
  147. X440 104 m
  148. Xx
  149. X456 304 m
  150. X456 128 l
  151. X440 128 l
  152. X0 D
  153. X449 125 m
  154. X440 128 l
  155. X449 132 l
  156. X0 D
  157. X440 128 m
  158. Xx
  159. X316 368 m
  160. X316 384 l
  161. X0 D
  162. X313 376 m
  163. X316 384 l
  164. X320 376 l
  165. X0 D
  166. X316 384 m
  167. Xx
  168. X0.5 W
  169. X/Times-Roman F
  170. X10 S
  171. X408 336 m
  172. X(dPC \(h\)) ce 0 t
  173. X1 W
  174. X488 456 m
  175. X472 456 l
  176. X0 D
  177. X481 453 m
  178. X472 456 l
  179. X481 460 l
  180. X0 D
  181. X472 456 m
  182. Xx
  183. X0.5 W
  184. X8 S
  185. X396 392 m
  186. X(Drtx) rj 0 t
  187. X464 456 m
  188. X(PC\(h\)in) rj 0 t
  189. X464 392 m
  190. X(HW_gen) rj 0 t
  191. X316 360 m
  192. X(\(from EU\)) ce 0 t
  193. X304 392 m
  194. X(IBASE) lj 0 t
  195. X640 604 m
  196. X(PC_sel) lj 0 t
  197. X608 580 m
  198. X(\(from EU\) PC\(h\)in) rj 0 t
  199. X604 596 m
  200. X(\(from IFU\) PCout) rj 0 t
  201. X10 S
  202. X816 472 m
  203. X(+) ce 0 t
  204. X1 W
  205. X472 528 m
  206. X504 528 l
  207. X0 D
  208. X496 532 m
  209. X504 528 l
  210. X496 525 l
  211. X0 D
  212. X504 528 m
  213. Xx
  214. X808 488 824 456 b
  215. X632 576 m
  216. X784 576 l
  217. X784 544 l
  218. X0 D
  219. X788 553 m
  220. X784 544 l
  221. X781 553 l
  222. X0 D
  223. X784 544 m
  224. Xx
  225. X352 504 m
  226. X352 632 l
  227. X1096 632 l
  228. X0 D
  229. X1088 636 m
  230. X1096 632 l
  231. X1088 629 l
  232. X0 D
  233. X1096 632 m
  234. Xx
  235. X0.5 W
  236. X436 528 m
  237. X(PC Stack ptr) ce 0 t
  238. X788 512 m
  239. X(PC \(h\)) ce 0 t
  240. X912 464 m
  241. X(Control) ce 0 t
  242. X912 480 m
  243. X(Queue Shift) ce 0 t
  244. X996 416 m
  245. X(QL) ce 0 t
  246. X996 432 m
  247. X(QH) ce 0 t
  248. X1 W
  249. X984 424 m
  250. X1008 424 l
  251. Xx
  252. X1048 0 m
  253. X1048 424 l
  254. X0 D
  255. X1045 416 m
  256. X1048 424 l
  257. X1052 416 l
  258. X0 D
  259. X1048 424 m
  260. Xx
  261. X1048 424 m
  262. X1008 424 l
  263. X0 D
  264. X1017 421 m
  265. X1008 424 l
  266. X1017 428 l
  267. X0 D
  268. X1008 424 m
  269. Xx
  270. X1080 400 m
  271. X960 400 l
  272. X0 D
  273. X969 397 m
  274. X960 400 l
  275. X969 404 l
  276. X0 D
  277. X960 400 m
  278. Xx
  279. X1064 496 m
  280. X1064 0 l
  281. X0 D
  282. X1068 9 m
  283. X1064 0 l
  284. X1061 9 l
  285. X0 D
  286. X1064 0 m
  287. Xx
  288. X792 496 m
  289. X1064 496 l
  290. X0 D
  291. X1056 500 m
  292. X1064 496 l
  293. X1056 493 l
  294. X0 D
  295. X1064 496 m
  296. Xx
  297. X984 424 m
  298. X960 424 l
  299. X0 D
  300. X969 421 m
  301. X960 424 l
  302. X969 428 l
  303. X0 D
  304. X960 424 m
  305. Xx
  306. X984 432 m
  307. X960 432 l
  308. X0 D
  309. X969 429 m
  310. X960 432 l
  311. X969 436 l
  312. X0 D
  313. X960 432 m
  314. Xx
  315. X984 440 1008 408 b
  316. X0.5 W
  317. X16 S
  318. X360 408 m
  319. X(Controller) ce 0 t
  320. X360 432 m
  321. X(IFU) ce 0 t
  322. X12 S
  323. X72 472 m
  324. X(IRQ) rj 0 t
  325. X72 448 m
  326. X(IRQ_addr) rj 0 t
  327. X10 S
  328. X192 424 m
  329. X(TAG Mismatch) rj 0 t
  330. X192 408 m
  331. X(Read Exception) rj 0 t
  332. X192 392 m
  333. X(Write Exception) rj 0 t
  334. X1 W
  335. X256 472 m
  336. X0 D
  337. X248 476 m
  338. X256 472 l
  339. X248 469 l
  340. X0 D
  341. X256 472 m
  342. X80 472 l
  343. Xx
  344. X256 448 m
  345. X0 D
  346. X248 452 m
  347. X256 448 l
  348. X248 445 l
  349. X0 D
  350. X256 448 m
  351. X80 448 l
  352. Xx
  353. X256 392 m
  354. X0 D
  355. X248 396 m
  356. X256 392 l
  357. X248 389 l
  358. X0 D
  359. X256 392 m
  360. X200 392 l
  361. Xx
  362. X256 408 m
  363. X0 D
  364. X248 412 m
  365. X256 408 l
  366. X248 405 l
  367. X0 D
  368. X256 408 m
  369. X200 408 l
  370. Xx
  371. X256 424 m
  372. X0 D
  373. X248 428 m
  374. X256 424 l
  375. X248 421 l
  376. X0 D
  377. X256 424 m
  378. X200 424 l
  379. Xx
  380. X0.5 W
  381. X8 S
  382. X800 540 m
  383. X(F) rj 0 t
  384. X788 540 m
  385. X(T) rj 0 t
  386. X532 364 m
  387. X(T) rj 0 t
  388. X544 364 m
  389. X(F) rj 0 t
  390. X552 384 m
  391. X(18) lj 0 t
  392. X1 W
  393. X540 380 m
  394. X548 388 l
  395. Xx
  396. X544 392 m
  397. X544 368 l
  398. X0 D
  399. X548 377 m
  400. X544 368 l
  401. X541 377 l
  402. X0 D
  403. X544 368 m
  404. Xx
  405. X536 360 m
  406. X536 344 l
  407. X0 D
  408. X540 353 m
  409. X536 344 l
  410. X533 353 l
  411. X0 D
  412. X536 344 m
  413. Xx
  414. X528 360 m
  415. X544 360 l
  416. X552 368 l
  417. X520 368 l
  418. X528 360 l
  419. Xx
  420. X504 400 m
  421. X496 400 l
  422. X0 D
  423. X505 397 m
  424. X496 400 l
  425. X505 404 l
  426. X0 D
  427. X496 400 m
  428. Xx
  429. X0.5 W
  430. X10 S
  431. X536 336 m
  432. X(QA data) ce 0 t
  433. X1 W
  434. X488 336 m
  435. X488 576 l
  436. X624 576 l
  437. X0 D
  438. X616 580 m
  439. X624 576 l
  440. X616 573 l
  441. X0 D
  442. X624 576 m
  443. Xx
  444. X0.5 W
  445. X8 S
  446. X464 440 m
  447. X(length) rj 0 t
  448. X1 W
  449. X320 472 m
  450. X320 464 l
  451. X312 456 l
  452. X312 480 l
  453. X320 472 l
  454. Xx
  455. X300 464 m
  456. X312 464 l
  457. X0 D
  458. X304 468 m
  459. X312 464 l
  460. X304 461 l
  461. X0 D
  462. X312 464 m
  463. Xx
  464. X300 472 m
  465. X312 472 l
  466. X0 D
  467. X304 476 m
  468. X312 472 l
  469. X304 469 l
  470. X0 D
  471. X312 472 m
  472. Xx
  473. X384 468 m
  474. X400 468 l
  475. X0 D
  476. X392 472 m
  477. X400 468 l
  478. X392 465 l
  479. X0 D
  480. X400 468 m
  481. Xx
  482. X320 468 m
  483. X336 468 l
  484. X0 D
  485. X328 472 m
  486. X336 468 l
  487. X328 465 l
  488. X0 D
  489. X336 468 m
  490. Xx
  491. X296 504 m
  492. X296 608 l
  493. X628 608 l
  494. X628 596 l
  495. X0 D
  496. X632 605 m
  497. X628 596 l
  498. X625 605 l
  499. X0 D
  500. X628 596 m
  501. Xx
  502. X328 504 m
  503. X328 592 l
  504. X624 592 l
  505. X0 D
  506. X616 596 m
  507. X624 592 l
  508. X616 589 l
  509. X0 D
  510. X624 592 m
  511. Xx
  512. X368 504 m
  513. X368 544 l
  514. X752 544 l
  515. X756 540 l
  516. X780 540 l
  517. X0 D
  518. X772 544 m
  519. X780 540 l
  520. X772 537 l
  521. X0 D
  522. X780 540 m
  523. Xx
  524. X0.5 W
  525. X264 424 m
  526. X(TAG) lj 0 t
  527. X264 408 m
  528. X(reade) lj 0 t
  529. X264 392 m
  530. X(writee) lj 0 t
  531. X296 496 m
  532. X(PC_sel) ce 0 t
  533. X328 496 m
  534. X(PCout) ce 0 t
  535. X352 496 m
  536. X(RD) ce 0 t
  537. X368 496 m
  538. X(abs) ce 0 t
  539. X360 464 m
  540. X(pre-decode) ce 0 t
  541. X360 472 m
  542. X(uPLA) ce 0 t
  543. X392 496 m
  544. X(fetch) ce 0 t
  545. X424 496 m
  546. X(inc) ce 0 t
  547. X456 496 m
  548. X(dec) ce 0 t
  549. X464 480 m
  550. X(h0_ovr) rj 0 t
  551. X464 472 m
  552. X(offset) rj 0 t
  553. X1 W
  554. X472 440 m
  555. X848 440 l
  556. X848 464 l
  557. X864 464 l
  558. X0 D
  559. X856 468 m
  560. X864 464 l
  561. X856 461 l
  562. X0 D
  563. X864 464 m
  564. Xx
  565. X392 504 m
  566. X392 616 l
  567. X1080 616 l
  568. X0 D
  569. X1072 620 m
  570. X1080 616 l
  571. X1072 613 l
  572. X0 D
  573. X1080 616 m
  574. Xx
  575. X456 504 m
  576. X456 520 l
  577. X0 D
  578. X453 512 m
  579. X456 520 l
  580. X460 512 l
  581. X0 D
  582. X456 520 m
  583. Xx
  584. X424 504 m
  585. X424 520 l
  586. X0 D
  587. X421 512 m
  588. X424 520 l
  589. X428 512 l
  590. X0 D
  591. X424 520 m
  592. Xx
  593. X472 472 m
  594. X776 472 l
  595. X0 D
  596. X768 476 m
  597. X776 472 l
  598. X768 469 l
  599. X0 D
  600. X776 472 m
  601. Xx
  602. X472 480 m
  603. X736 480 l
  604. X736 528 l
  605. X820 528 l
  606. X820 520 l
  607. X0 D
  608. X824 529 m
  609. X820 520 l
  610. X817 529 l
  611. X0 D
  612. X820 520 m
  613. Xx
  614. X408 536 472 520 b
  615. X256 504 472 384 b
  616. X336 480 384 456 b
  617. X960 428 m
  618. X504 428 l
  619. Xx
  620. X888 424 m
  621. X888 392 l
  622. Xx
  623. X504 424 m
  624. X960 424 l
  625. Xx
  626. X504 432 960 392 b
  627. X1 D
  628. X504 408 m
  629. X960 408 l
  630. Xx
  631. X0 D
  632. X944 424 m
  633. X944 392 l
  634. Xx
  635. X624 552 m
  636. X632 560 l
  637. X632 592 l
  638. X624 600 l
  639. X624 552 l
  640. Xx
  641. X632 424 m
  642. X632 392 l
  643. Xx
  644. X504 536 680 496 b
  645. X816 520 m
  646. X816 504 l
  647. Xx
  648. X824 472 m
  649. X832 472 l
  650. X832 576 l
  651. X800 576 l
  652. X800 544 l
  653. X0 D
  654. X804 553 m
  655. X800 544 l
  656. X797 553 l
  657. X0 D
  658. X800 544 m
  659. Xx
  660. X760 520 824 504 b
  661. X792 504 m
  662. X792 480 l
  663. X808 480 l
  664. X0 D
  665. X800 484 m
  666. X808 480 l
  667. X800 477 l
  668. X0 D
  669. X808 480 m
  670. Xx
  671. X792 536 m
  672. X792 520 l
  673. X0 D
  674. X796 529 m
  675. X792 520 l
  676. X789 529 l
  677. X0 D
  678. X792 520 m
  679. Xx
  680. X784 536 m
  681. X800 536 l
  682. X808 544 l
  683. X776 544 l
  684. X784 536 l
  685. Xx
  686. X784 464 m
  687. X808 464 l
  688. X0 D
  689. X800 468 m
  690. X808 464 l
  691. X800 461 l
  692. X0 D
  693. X808 464 m
  694. Xx
  695. X776 448 m
  696. X784 456 l
  697. X784 472 l
  698. X776 480 l
  699. X776 448 l
  700. Xx
  701. X768 456 m
  702. X776 456 l
  703. X0 D
  704. X768 460 m
  705. X776 456 l
  706. X768 453 l
  707. X0 D
  708. X776 456 m
  709. Xx
  710. X0.5 W
  711. X12 S
  712. X764 456 m
  713. X('1') rj 0 t
  714. X1 W
  715. X864 488 960 456 b
  716. X824 424 m
  717. X824 392 l
  718. Xx
  719. X760 424 m
  720. X760 392 l
  721. Xx
  722. X696 424 m
  723. X696 392 l
  724. Xx
  725. X0.5 W
  726. X8 S
  727. X820 512 m
  728. X(h) ce 0 t
  729. X1 W
  730. X592 536 m
  731. X592 560 l
  732. X624 560 l
  733. X0 D
  734. X616 564 m
  735. X624 560 l
  736. X616 557 l
  737. X0 D
  738. X624 560 m
  739. Xx
  740. X1080 616 m
  741. X1080 0 l
  742. X0 D
  743. X1084 9 m
  744. X1080 0 l
  745. X1077 9 l
  746. X0 D
  747. X1080 0 m
  748. Xx
  749. X1096 632 m
  750. X1096 0 l
  751. X0 D
  752. X1100 9 m
  753. X1096 0 l
  754. X1093 9 l
  755. X0 D
  756. X1096 0 m
  757. Xx
  758. X672 572 m
  759. X680 580 l
  760. Xx
  761. X596 368 m
  762. X604 376 l
  763. Xx
  764. X0.5 W
  765. X608 372 m
  766. X(18) lj 0 t
  767. X672 588 m
  768. X(31) lj 0 t
  769. X752 552 m
  770. X(abs) rj 0 t
  771. X12 S
  772. X592 520 m
  773. X(PC  pseudo-stack) ce 0 t
  774. X592 504 m
  775. X(\(circular buffer\)) ce 0 t
  776. X916 416 m
  777. X(data) ce 0 t
  778. X916 400 m
  779. X(addr \(h\)) ce 0 t
  780. X600 416 m
  781. X(QB) ce 0 t
  782. X664 416 m
  783. X(QC) ce 0 t
  784. X728 416 m
  785. X(QD) ce 0 t
  786. X792 416 m
  787. X(QE) ce 0 t
  788. X856 416 m
  789. X(QF) ce 0 t
  790. X10 S
  791. X600 336 m
  792. X(QB data) ce 0 t
  793. X1 W
  794. X568 344 m
  795. X568 328 l
  796. Xx
  797. X504 344 632 328 b
  798. X568 424 m
  799. X568 392 l
  800. Xx
  801. X600 392 m
  802. X600 344 l
  803. X0 D
  804. X604 353 m
  805. X600 344 l
  806. X597 353 l
  807. X0 D
  808. X600 344 m
  809. Xx
  810. X0.5 W
  811. X12 S
  812. X536 416 m
  813. X(QA) ce 0 t
  814. X1 W
  815. X496 400 m
  816. X496 360 l
  817. X0 D
  818. X500 369 m
  819. X496 360 l
  820. X493 369 l
  821. X0 D
  822. X496 360 m
  823. Xx
  824. X0.5 W
  825. X8 S
  826. X464 416 m
  827. X(HW_op) rj 0 t
  828. X1 W
  829. X472 416 m
  830. X480 416 l
  831. X480 384 l
  832. X528 384 l
  833. X528 368 l
  834. X0 D
  835. X532 377 m
  836. X528 368 l
  837. X525 377 l
  838. X0 D
  839. X528 368 m
  840. Xx
  841. X496 360 m
  842. X408 360 l
  843. X408 344 l
  844. X0 D
  845. X412 353 m
  846. X408 344 l
  847. X405 353 l
  848. X0 D
  849. X408 344 m
  850. Xx
  851. X376 344 440 328 b
  852. X408 328 m
  853. X408 320 l
  854. X456 320 l
  855. X456 304 l
  856. X0 D
  857. X460 313 m
  858. X456 304 l
  859. X453 313 l
  860. X0 D
  861. X456 304 m
  862. Xx
  863. X416 280 424 240 b
  864. X416 272 m
  865. X0 0 -2 0 -8 0 s
  866. X-5 0 -9 -2 -12 -6 s
  867. X-2 -4 -2 -8 0 -12 s
  868. X2 -4 9 -6 20 -6 s
  869. Xx
  870. X392 224 m
  871. X384 216 l
  872. X384 200 l
  873. X392 192 l
  874. X392 224 l
  875. Xx
  876. X416 248 m
  877. X424 248 l
  878. Xx
  879. X416 256 m
  880. X424 256 l
  881. Xx
  882. X416 264 m
  883. X424 264 l
  884. Xx
  885. X416 272 m
  886. X424 272 l
  887. Xx
  888. X424 240 m
  889. X424 216 l
  890. Xx
  891. X392 260 m
  892. X388 260 l
  893. X388 220 l
  894. X0 D
  895. X392 229 m
  896. X388 220 l
  897. X385 229 l
  898. X0 D
  899. X388 220 m
  900. Xx
  901. X504 216 m
  902. X392 216 l
  903. X0 D
  904. X401 213 m
  905. X392 216 l
  906. X401 220 l
  907. X0 D
  908. X392 216 m
  909. Xx
  910. X504 200 m
  911. X392 200 l
  912. X0 D
  913. X401 197 m
  914. X392 200 l
  915. X401 204 l
  916. X0 D
  917. X392 200 m
  918. Xx
  919. X208 120 m
  920. X240 120 l
  921. X232 112 l
  922. X216 112 l
  923. X208 120 l
  924. Xx
  925. X232 160 m
  926. X232 120 l
  927. X0 D
  928. X236 129 m
  929. X232 120 l
  930. X229 129 l
  931. X0 D
  932. X232 120 m
  933. Xx
  934. X160 136 m
  935. X160 128 l
  936. X216 128 l
  937. X216 120 l
  938. X0 D
  939. X220 129 m
  940. X216 120 l
  941. X213 129 l
  942. X0 D
  943. X216 120 m
  944. Xx
  945. X2 D
  946. X280 160 m
  947. X280 280 l
  948. Xx
  949. X0 D
  950. X112 144 200 136 b
  951. X144 280 328 160 b
  952. X424 116 m
  953. X236 116 l
  954. X0 D
  955. X245 113 m
  956. X236 116 l
  957. X245 120 l
  958. X0 D
  959. X236 116 m
  960. Xx
  961. X352 216 m
  962. X352 184 l
  963. X344 192 l
  964. X344 208 l
  965. X352 216 l
  966. Xx
  967. X384 208 m
  968. X352 208 l
  969. X0 D
  970. X361 205 m
  971. X352 208 l
  972. X361 212 l
  973. X0 D
  974. X352 208 m
  975. Xx
  976. X344 200 m
  977. X328 200 l
  978. X0 D
  979. X337 197 m
  980. X328 200 l
  981. X337 204 l
  982. X0 D
  983. X328 200 m
  984. Xx
  985. X388 260 m
  986. X0 0 -1 0 -4 0 s
  987. X-2 0 -4 -8 -4 -26 s
  988. X0 -17 -2 -26 -8 -26 s
  989. Xx
  990. X224 112 m
  991. X0 0 0 -2 0 -8 s
  992. X0 D
  993. X228 113 m
  994. X224 104 l
  995. X221 113 l
  996. X0 D
  997. X224 104 m
  998. Xx
  999. X264 96 328 80 b
  1000. X64 88 240 56 b
  1001. X320 96 m
  1002. X320 80 l
  1003. Xx
  1004. X64 72 m
  1005. X240 72 l
  1006. Xx
  1007. X160 72 m
  1008. X160 56 l
  1009. Xx
  1010. X112 72 m
  1011. X112 56 l
  1012. Xx
  1013. X224 104 m
  1014. X152 104 l
  1015. X152 88 l
  1016. X0 D
  1017. X156 97 m
  1018. X152 88 l
  1019. X149 97 l
  1020. X0 D
  1021. X152 88 m
  1022. Xx
  1023. X224 104 m
  1024. X296 104 l
  1025. X296 96 l
  1026. X0 D
  1027. X300 105 m
  1028. X296 96 l
  1029. X293 105 l
  1030. X0 D
  1031. X296 96 m
  1032. Xx
  1033. X324 80 m
  1034. X324 72 l
  1035. X348 72 l
  1036. X348 188 l
  1037. X0 D
  1038. X345 180 m
  1039. X348 188 l
  1040. X352 180 l
  1041. X0 D
  1042. X348 188 m
  1043. Xx
  1044. X296 80 m
  1045. X296 64 l
  1046. X360 64 l
  1047. X360 192 l
  1048. X352 192 l
  1049. X0 D
  1050. X361 189 m
  1051. X352 192 l
  1052. X361 196 l
  1053. X0 D
  1054. X352 192 m
  1055. Xx
  1056. X976 112 m
  1057. X976 72 l
  1058. X0 D
  1059. X980 81 m
  1060. X976 72 l
  1061. X973 81 l
  1062. X0 D
  1063. X976 72 m
  1064. Xx
  1065. X920 112 m
  1066. X920 72 l
  1067. X0 D
  1068. X924 81 m
  1069. X920 72 l
  1070. X917 81 l
  1071. X0 D
  1072. X920 72 m
  1073. Xx
  1074. X348 72 m
  1075. X432 72 l
  1076. X432 96 l
  1077. X0 D
  1078. X429 88 m
  1079. X432 96 l
  1080. X436 88 l
  1081. X0 D
  1082. X432 96 m
  1083. Xx
  1084. X916 88 m
  1085. X924 96 l
  1086. Xx
  1087. X836 88 m
  1088. X844 96 l
  1089. Xx
  1090. X772 88 m
  1091. X780 96 l
  1092. Xx
  1093. X692 88 m
  1094. X700 96 l
  1095. Xx
  1096. X612 88 m
  1097. X620 96 l
  1098. Xx
  1099. X572 88 m
  1100. X580 96 l
  1101. Xx
  1102. X532 88 m
  1103. X540 96 l
  1104. Xx
  1105. X720 72 m
  1106. X720 56 l
  1107. Xx
  1108. X824 72 m
  1109. X824 56 l
  1110. Xx
  1111. X600 72 m
  1112. X600 56 l
  1113. Xx
  1114. X560 72 m
  1115. X560 56 l
  1116. Xx
  1117. X960 72 992 56 b
  1118. X904 72 936 56 b
  1119. X680 72 864 56 b
  1120. X520 72 640 56 b
  1121. X536 112 m
  1122. X536 72 l
  1123. X0 D
  1124. X540 81 m
  1125. X536 72 l
  1126. X533 81 l
  1127. X0 D
  1128. X536 72 m
  1129. Xx
  1130. X576 112 m
  1131. X576 72 l
  1132. X0 D
  1133. X580 81 m
  1134. X576 72 l
  1135. X573 81 l
  1136. X0 D
  1137. X576 72 m
  1138. Xx
  1139. X616 112 m
  1140. X616 72 l
  1141. X0 D
  1142. X620 81 m
  1143. X616 72 l
  1144. X613 81 l
  1145. X0 D
  1146. X616 72 m
  1147. Xx
  1148. X696 112 m
  1149. X696 72 l
  1150. X0 D
  1151. X700 81 m
  1152. X696 72 l
  1153. X693 81 l
  1154. X0 D
  1155. X696 72 m
  1156. Xx
  1157. X776 112 m
  1158. X776 72 l
  1159. X0 D
  1160. X780 81 m
  1161. X776 72 l
  1162. X773 81 l
  1163. X0 D
  1164. X776 72 m
  1165. Xx
  1166. X840 112 m
  1167. X840 72 l
  1168. X0 D
  1169. X844 81 m
  1170. X840 72 l
  1171. X837 81 l
  1172. X0 D
  1173. X840 72 m
  1174. Xx
  1175. X972 88 m
  1176. X980 96 l
  1177. Xx
  1178. X504 280 1000 112 b
  1179. X488 40 m
  1180. X488 336 l
  1181. X0 D
  1182. X485 328 m
  1183. X488 336 l
  1184. X492 328 l
  1185. X0 D
  1186. X488 336 m
  1187. Xx
  1188. X0.5 W
  1189. X160 140 m
  1190. X(NOP, length 0) ce 0 t
  1191. X256 120 m
  1192. X(stall!) lj 0 t
  1193. X10 S
  1194. X292 88 m
  1195. X(nxt addr) ce 0 t
  1196. X152 80 m
  1197. X(uWord Control Fields) ce 0 t
  1198. X136 64 m
  1199. X(stage 2) ce 0 t
  1200. X88 64 m
  1201. X(stage 3) ce 0 t
  1202. X200 64 m
  1203. X(stage 1) ce 0 t
  1204. X540 64 m
  1205. X(Breg1) ce 0 t
  1206. X580 64 m
  1207. X(offset1) ce 0 t
  1208. X620 64 m
  1209. X(ctrl1) ce 0 t
  1210. X700 64 m
  1211. X(Breg2) ce 0 t
  1212. X776 64 m
  1213. X(offset2) ce 0 t
  1214. X844 64 m
  1215. X(ctrl2) ce 0 t
  1216. X920 64 m
  1217. X(sop) ce 0 t
  1218. X1 W
  1219. X424 136 440 96 b
  1220. X0.5 W
  1221. X8 S
  1222. X976 64 m
  1223. X(car/cdr) ce 0 t
  1224. X10 S
  1225. X432 116 m
  1226. X(=) ce 0 t
  1227. X12 S
  1228. X512 200 m
  1229. X(ExtraOp) lj 0 t
  1230. X536 216 m
  1231. X(OpCode) ce 0 t
  1232. X20 S
  1233. X760 188 m
  1234. X(Operand Decode Logic) ce 0 t
  1235. X22 S
  1236. X760 228 m
  1237. X(ODL) ce 0 t
  1238. X10 S
  1239. X544 92 m
  1240. X(5) lj 0 t
  1241. X584 92 m
  1242. X(5) lj 0 t
  1243. X704 92 m
  1244. X(5) lj 0 t
  1245. X784 92 m
  1246. X(30) lj 0 t
  1247. X928 92 m
  1248. X(2) lj 0 t
  1249. X984 92 m
  1250. X(1) lj 0 t
  1251. X14 S
  1252. X232 252 m
  1253. X(uROM) ce 0 t
  1254. X12 S
  1255. X216 216 m
  1256. X(Instruction) ce 0 t
  1257. X216 192 m
  1258. X(Decode ROM) ce 0 t
  1259. X304 216 m
  1260. X(ODL) ce 0 t
  1261. X304 192 m
  1262. X(uCode) ce 0 t
  1263. X10 S
  1264. X232 164 m
  1265. X(data) ce 0 t
  1266. X488 28 m
  1267. X(next_PC) ce 0 t
  1268. X304 168 m
  1269. X(rtx) ce 0 t
  1270. X8 S
  1271. X424 392 m
  1272. X(stall!) rj 0 t
  1273. X1 W
  1274. X304 160 m
  1275. X304 152 l
  1276. X464 152 l
  1277. X464 304 l
  1278. X0 D
  1279. X461 296 m
  1280. X464 304 l
  1281. X468 296 l
  1282. X0 D
  1283. X464 304 m
  1284. Xx
  1285. X464 304 m
  1286. X464 376 l
  1287. X384 376 l
  1288. X384 384 l
  1289. X0 D
  1290. X381 376 m
  1291. X384 384 l
  1292. X388 376 l
  1293. X0 D
  1294. X384 384 m
  1295. Xx
  1296. X448 384 m
  1297. X448 368 l
  1298. X480 368 l
  1299. X480 336 l
  1300. X0 D
  1301. X484 345 m
  1302. X480 336 l
  1303. X477 345 l
  1304. X0 D
  1305. X480 336 m
  1306. Xx
  1307. X416 384 m
  1308. X0 D
  1309. X413 376 m
  1310. X416 384 l
  1311. X420 376 l
  1312. X0 D
  1313. X416 384 m
  1314. X416 352 l
  1315. X472 352 l
  1316. X472 336 l
  1317. Xx
  1318. X408 116 m
  1319. X408 144 l
  1320. X472 144 l
  1321. X472 336 l
  1322. X0 D
  1323. X469 328 m
  1324. X472 336 l
  1325. X476 328 l
  1326. X0 D
  1327. X472 336 m
  1328. Xx
  1329. X480 336 m
  1330. X480 48 l
  1331. X424 48 l
  1332. X424 40 l
  1333. X0 D
  1334. X428 49 m
  1335. X424 40 l
  1336. X421 49 l
  1337. X0 D
  1338. X424 40 m
  1339. Xx
  1340. X0.5 W
  1341. X10 S
  1342. X424 28 m
  1343. X(length0) ce 0 t
  1344. X1 W
  1345. X976 56 m
  1346. X976 40 l
  1347. X0 D
  1348. X980 49 m
  1349. X976 40 l
  1350. X973 49 l
  1351. X0 D
  1352. X976 40 m
  1353. Xx
  1354. X920 56 m
  1355. X920 40 l
  1356. X0 D
  1357. X924 49 m
  1358. X920 40 l
  1359. X917 49 l
  1360. X0 D
  1361. X920 40 m
  1362. Xx
  1363. X840 56 m
  1364. X840 40 l
  1365. X0 D
  1366. X844 49 m
  1367. X840 40 l
  1368. X837 49 l
  1369. X0 D
  1370. X840 40 m
  1371. Xx
  1372. X776 56 m
  1373. X776 40 l
  1374. X0 D
  1375. X780 49 m
  1376. X776 40 l
  1377. X773 49 l
  1378. X0 D
  1379. X776 40 m
  1380. Xx
  1381. X696 56 m
  1382. X696 40 l
  1383. X0 D
  1384. X700 49 m
  1385. X696 40 l
  1386. X693 49 l
  1387. X0 D
  1388. X696 40 m
  1389. Xx
  1390. X616 56 m
  1391. X616 40 l
  1392. X0 D
  1393. X620 49 m
  1394. X616 40 l
  1395. X613 49 l
  1396. X0 D
  1397. X616 40 m
  1398. Xx
  1399. X576 56 m
  1400. X576 40 l
  1401. X0 D
  1402. X580 49 m
  1403. X576 40 l
  1404. X573 49 l
  1405. X0 D
  1406. X576 40 m
  1407. Xx
  1408. X536 56 m
  1409. X536 40 l
  1410. X0 D
  1411. X540 49 m
  1412. X536 40 l
  1413. X533 49 l
  1414. X0 D
  1415. X536 40 m
  1416. Xx
  1417. X136 56 m
  1418. X136 40 l
  1419. X0 D
  1420. X140 49 m
  1421. X136 40 l
  1422. X133 49 l
  1423. X0 D
  1424. X136 40 m
  1425. Xx
  1426. X88 56 m
  1427. X88 40 l
  1428. X0 D
  1429. X92 49 m
  1430. X88 40 l
  1431. X85 49 l
  1432. X0 D
  1433. X88 40 m
  1434. Xx
  1435. X0.5 W
  1436. X200 32 m
  1437. X(\(decoded\)) ce 0 t
  1438. X1 W
  1439. X200 56 m
  1440. X200 40 l
  1441. X0 D
  1442. X204 49 m
  1443. X200 40 l
  1444. X197 49 l
  1445. X0 D
  1446. X200 40 m
  1447. Xx
  1448. X536 328 m
  1449. X536 280 l
  1450. X0 D
  1451. X540 289 m
  1452. X536 280 l
  1453. X533 289 l
  1454. X0 D
  1455. X536 280 m
  1456. Xx
  1457. X600 328 m
  1458. X600 280 l
  1459. X0 D
  1460. X604 289 m
  1461. X600 280 l
  1462. X597 289 l
  1463. X0 D
  1464. X600 280 m
  1465. Xx
  1466. X2 D
  1467. X0 336 m
  1468. X368 336 l
  1469. Xx
  1470. X640 336 m
  1471. X1120 336 l
  1472. Xx
  1473. X248 64 m
  1474. X288 64 l
  1475. Xx
  1476. X368 64 m
  1477. X472 64 l
  1478. Xx
  1479. X496 64 m
  1480. X512 64 l
  1481. Xx
  1482. X648 64 m
  1483. X672 64 l
  1484. Xx
  1485. X872 64 m
  1486. X896 64 l
  1487. Xx
  1488. X944 64 m
  1489. X952 64 l
  1490. Xx
  1491. X1000 64 m
  1492. X1120 64 l
  1493. Xx
  1494. X0 D
  1495. X808 376 m
  1496. X776 376 l
  1497. X0 D
  1498. X785 373 m
  1499. X776 376 l
  1500. X785 380 l
  1501. X0 D
  1502. X776 376 m
  1503. Xx
  1504. X776 360 m
  1505. X808 360 l
  1506. X0 D
  1507. X800 364 m
  1508. X808 360 l
  1509. X800 357 l
  1510. X0 D
  1511. X808 360 m
  1512. Xx
  1513. X0.5 W
  1514. X816 376 m
  1515. X(shift) lj 0 t
  1516. X768 360 m
  1517. X(fill) rj 0 t
  1518. X22 S
  1519. X40 696 m
  1520. X(SLIME PROCESSOR) lj 0 t
  1521. X1 W
  1522. X40 680 m
  1523. X264 680 l
  1524. Xx
  1525. X0.5 W
  1526. X20 S
  1527. X40 584 m
  1528. X(IFU) ce 0 t
  1529. X40 544 m
  1530. X(1 stage) ce 0 t
  1531. X40 264 m
  1532. X(IDU) ce 0 t
  1533. X40 224 m
  1534. X(1 stage) ce 0 t
  1535. X1 W
  1536. X8 600 72 568 b
  1537. X0.5 W
  1538. X600 696 m
  1539. X(Stage Interconnect Diagram \(Part 1\)) ce 0 t
  1540. X1 W
  1541. X2 D
  1542. X0 64 m
  1543. X56 64 l
  1544. Xx
  1545. X0 D
  1546. X8 280 72 248 b
  1547. X%%Trailer
  1548. Xshowpage
  1549. X% Trailer for xpic to PostScript converter
  1550. X% $Header: x2ps.tra,v 1.1 88/08/31 23:48:01 moraes Exp $
  1551. Xxpic end restore
  1552. END_OF_FILE
  1553. if test 15723 -ne `wc -c <'xpic/doc/marcel.ps'`; then
  1554.     echo shar: \"'xpic/doc/marcel.ps'\" unpacked with wrong size!
  1555. fi
  1556. # end of 'xpic/doc/marcel.ps'
  1557. fi
  1558. if test -f 'xpic/obj_spline.c' -a "${1}" != "-c" ; then 
  1559.   echo shar: Will not clobber existing file \"'xpic/obj_spline.c'\"
  1560. else
  1561. echo shar: Extracting \"'xpic/obj_spline.c'\" \(14826 characters\)
  1562. sed "s/^X//" >'xpic/obj_spline.c' <<'END_OF_FILE'
  1563. X/* $Header: obj_spline.c,v 1.5 89/04/21 03:31:22 xwindows Exp $ */
  1564. X/* This code is UNBELIEVABLY convoluted and UGLY. Works - just barely! */
  1565. X/*
  1566. X *  The spline routines - These require some really ugly hacks to get
  1567. X *  half-decent rubber-banding. And it still leaves some droppings on
  1568. X *  the screen. The basic idea is that the segments of the spline are
  1569. X *  invariant from midpoint of the defining segment to the midpoint of
  1570. X *  the next defining segment. So the non-invariant section is covered
  1571. X *  up by the defining segment during rubberbanding. When the spline is
  1572. X *  complete, the rubber banded segments are erased and the complete
  1573. X *  spline drawn. Yuck! There must be a better way to do this.
  1574. X */
  1575. X#include <values.h>
  1576. X
  1577. X#include "xpic.h"
  1578. X#include "windows.h"
  1579. X#include "spline.h"
  1580. X#include "gels.h"
  1581. X#include "draw.h"
  1582. X#include "assert.h"
  1583. X
  1584. Xstatic int xmin, xmax, ymin, ymax;    /* Bounding box */
  1585. Xstatic XPoint *drawVerts;            /*
  1586. X                                     *  Points four points behind current
  1587. X                                     *  point, used by the spline drawing routine
  1588. X                                     */
  1589. Xstatic PointList *ptList;
  1590. X
  1591. Xspline_event(evtype, mx, my)
  1592. X{
  1593. X    switch(evtype) {
  1594. X    case MOTION | START_MODE:
  1595. X    case RIGHT  | START_MODE:
  1596. X    case MIDDLE | START_MODE:
  1597. X    case REDRAW | START_MODE:
  1598. X        break;
  1599. X    case MOTION | END_MODE:
  1600. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1601. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, 
  1602. X             verts[1].x, verts[1].y, gcInvert);
  1603. X        if ((line_arrow & EN_ARROW) != 0)
  1604. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1605. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1606. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1607. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1608. X         CoordModePrevious);
  1609. X        verts[nVerts].x = verts[nVerts+1].x = mx;
  1610. X        verts[nVerts].y = verts[nVerts+1].y = my;
  1611. X        CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize);
  1612. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1613. X         CoordModePrevious);
  1614. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1615. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1616. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, 
  1617. X             verts[1].x, verts[1].y, gcInvert);
  1618. X        if ((line_arrow & EN_ARROW) != 0)
  1619. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1620. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1621. X        break;
  1622. X    case LEFT | START_MODE:
  1623. X        drawingMode = END_MODE;
  1624. X        xmin = xmax = verts[0].x = verts[1].x = verts[2].x = 
  1625. X         verts[3].x = mx;
  1626. X        ymin = ymax = verts[0].y = verts[1].y = verts[2].y = 
  1627. X         verts[3].y = my;
  1628. X        drawVerts = verts;
  1629. X        nVerts = 2;
  1630. X        CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize);
  1631. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1632. X         CoordModePrevious);
  1633. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1634. X        break;
  1635. X    case LEFT | END_MODE:
  1636. X        /*
  1637. X         *  must always have at least two extra vertices in the
  1638. X         *  verts array for the current mouse coordinates
  1639. X         */
  1640. X        if (nVerts + 3 >= maxVerts) {
  1641. X            maxVerts += INC_VERTS;
  1642. X#ifdef DEBUG
  1643. X            (void) fprintf(stderr, "Reallocing verts to %d\n", maxVerts);
  1644. X#endif
  1645. X            if ((verts = (XPoint *) realloc((char *) verts,
  1646. X             (unsigned) (maxVerts * sizeof(XPoint)))) == NULL) {
  1647. X                message("No more memory for vertices");
  1648. X                break;
  1649. X            }
  1650. X            drawVerts = &verts[nVerts - 2];
  1651. X        }
  1652. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1653. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, 
  1654. X             verts[1].x, verts[1].y, gcInvert);
  1655. X        if ((line_arrow & EN_ARROW) != 0)
  1656. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1657. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1658. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1659. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1660. X         CoordModePrevious);
  1661. X        verts[nVerts].x = verts[nVerts+1].x = verts[nVerts+2].x = mx;
  1662. X        verts[nVerts].y = verts[nVerts+1].y = verts[nVerts+2].y = my;
  1663. X        /*
  1664. X         *  Really ugly - we'd like leave the last rubber banded section
  1665. X         *  around because the spline that we're showing at this point
  1666. X         *  consists of lots of rubber-banded segments. But we can't
  1667. X         *  leave the rubber banded section from the MOTION drawing,
  1668. X         *  because the button may have been pressed at a different
  1669. X         *  place, so we invert that, compute a fidged rubber segment
  1670. X         *  for this point, draw it, and never invert it back.
  1671. X         *  Eventually, the protruding lines from the end segments get
  1672. X         *  erased by the defining polyline, (we hope) and the spline
  1673. X         *  gets overwritten by the DRAW operation at the end.
  1674. X         *  Horrible!!
  1675. X         */
  1676. X        CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize);
  1677. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1678. X         CoordModePrevious);
  1679. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1680. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, 
  1681. X             verts[1].x, verts[1].y, gcNormal);
  1682. X        nVerts++;
  1683. X        xmin = MIN(xmin, mx);
  1684. X        xmax = MAX(xmax, mx);
  1685. X        ymin = MIN(ymin, my);
  1686. X        ymax = MAX(ymax, my);
  1687. X        drawVerts++;
  1688. X        CopyAndFlatten(drawVerts, 3, &flatVerts, &nFlat, &flatSize);
  1689. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat,
  1690. X         CoordModePrevious);
  1691. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1692. X        if ((line_arrow & EN_ARROW) != 0)
  1693. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1694. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1695. X        break;
  1696. X    case RIGHT | END_MODE:
  1697. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1698. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, verts[1].x, 
  1699. X             verts[1].y, gcInvert);
  1700. X        if ((line_arrow & EN_ARROW) != 0)
  1701. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1702. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1703. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1704. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat, 
  1705. X         CoordModePrevious);
  1706. X        /* Use ERASE to clean out junk */
  1707. X        setwidth(tmpGcErase, lineThickness);
  1708. X        SETDASHES(tmpGcErase, line_type);
  1709. X        drawlines(picDpy, picWin, tmpGcErase, verts, nVerts, CoordModeOrigin);
  1710. X        verts[nVerts].x = verts[nVerts-1].x;
  1711. X        verts[nVerts].y = verts[nVerts-1].y;
  1712. X        FlattenSpline(verts, nVerts, &flatVerts, &nFlat, &flatSize);
  1713. X        nVerts++;
  1714. X        drawlines(picDpy, picWin, gcNormal, flatVerts, nFlat,
  1715. X         CoordModePrevious);
  1716. X        if (((line_arrow & EN_ARROW) != 0) && (nVerts > 2))
  1717. X            Arrow(picDpy, picWin, verts[nVerts - 3].x, verts[nVerts - 3].y, 
  1718. X             verts[nVerts - 2].x, verts[nVerts - 2].y, gcInvert);
  1719. X        drawingMode = START_MODE;
  1720. X        if (nVerts <= 3)
  1721. X            break;
  1722. X        if ((ptList = NewPtList(verts, nVerts)) == NULL)
  1723. X            message("No more memory for line/spline");
  1724. X        else {                
  1725. X            AddLineGel(&(CurrentCell->gelList), SPLINE, ptList,
  1726. X             line_type | line_arrow, xmin, ymin, xmax, ymax, lineThickness);
  1727. X            FreeGel(CurrentCell->undoList);
  1728. X            CurrentCell->undoList = NULL;
  1729. X            CurrentCell->undo = 1;
  1730. X            CurrentCell->saved |= MODIFIED;
  1731. X        }
  1732. X        break;
  1733. X    case MIDDLE | END_MODE:
  1734. X        if ((line_arrow & ST_ARROW) != 0)
  1735. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y,
  1736. X              verts[1].x, verts[1].y, gcInvert);
  1737. X        if ((line_arrow & EN_ARROW) != 0)
  1738. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1739. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1740. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1741. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat,
  1742. X         CoordModePrevious);
  1743. X        /*
  1744. X         *  We use background and GXcopy instead of inverting
  1745. X         *  because some of the points on the path may have
  1746. X         *  already been turned off by the previous drawlines.
  1747. X         */
  1748. X        setwidth(tmpGcErase, lineThickness);
  1749. X        SETDASHES(tmpGcErase, line_type);
  1750. X        drawlines(picDpy, picWin, tmpGcErase, verts, nVerts, CoordModeOrigin);
  1751. X        verts[nVerts].x = verts[nVerts+1].x = mx;
  1752. X        verts[nVerts].y = verts[nVerts+1].y = mx;
  1753. X        nVerts += 2;
  1754. X        FlattenSpline(verts, nVerts-1, &flatVerts, &nFlat, &flatSize);
  1755. X        drawlines(picDpy, picWin, tmpGcErase, flatVerts, nFlat, 
  1756. X         CoordModePrevious);
  1757. X        drawingMode = START_MODE;
  1758. X        break;
  1759. X    case REDRAW | END_MODE:
  1760. X        if (((line_arrow & ST_ARROW) != 0) && (nVerts == 2))
  1761. X            Arrow(picDpy, picWin, verts[2].x, verts[2].y, 
  1762. X             verts[1].x, verts[1].y, gcInvert);
  1763. X        if ((line_arrow & EN_ARROW) != 0)
  1764. X            Arrow(picDpy, picWin, verts[nVerts - 1].x, verts[nVerts - 1].y, 
  1765. X             verts[nVerts].x, verts[nVerts].y, gcInvert);
  1766. X        /* !! Should call XDraw for the whole spline here  - this is wrong */
  1767. X        drawlines(picDpy, picWin, gcInvert, drawVerts, 3, CoordModeOrigin);
  1768. X        drawlines(picDpy, picWin, gcInvert, flatVerts, nFlat,
  1769. X         CoordModePrevious);
  1770. X        break;
  1771. X    default:
  1772. X#ifdef DEBUG
  1773. X        (void) sprintf(errstring, "Hey! Unknown SPLINE mode %d", drawingMode);
  1774. X        message(errstring);
  1775. X#endif
  1776. X        break;
  1777. X    }
  1778. X    ASSERT(allock(), "spline_event");
  1779. X}
  1780. X
  1781. X
  1782. Xspline_abort()
  1783. X{
  1784. X    spline_event((RIGHT | drawingMode), 0, 0);
  1785. X}
  1786. X
  1787. X#define MAXSPLINEBUF    7
  1788. Xstatic XPoint vbuf[MAXSPLINEBUF];
  1789. X
  1790. X/*
  1791. X *  Copies N vertices from v to vbuf, duplicates the ones at the
  1792. X *  beginning and end, and calls the spline routine to flatten them. This
  1793. X *  wouldn't be needed if the spline routine properly doubled up the
  1794. X *  endpoints, but alas, it doesn't.
  1795. X */
  1796. X/*
  1797. X *  NOTE: The new spline routine doubles the endpoints, but expects the
  1798. X *  0th and Nth locations in the verts array passed to it to be free
  1799. X */
  1800. XCopyAndFlatten(v, n, flattened, nflat, flatSize)
  1801. Xregister XPoint *v;
  1802. XXPoint *flattened[];
  1803. Xint *nflat;
  1804. Xint *flatSize;
  1805. X{
  1806. X    register int i;
  1807. X    register int j;
  1808. X
  1809. X    ASSERT(n < MAXSPLINEBUF, "n too large");
  1810. X    /* Copy the n points */
  1811. X    for (i = 1, j = 0; j < n; i++, j++) {
  1812. X        vbuf[i].x = v[j].x;
  1813. X        vbuf[i].y = v[j].y;
  1814. X    }
  1815. X    FlattenSpline(vbuf, n+1, flattened, nflat, flatSize);
  1816. X}
  1817. X
  1818. X
  1819. Xspline_adj(evtype, gel, mx, my)
  1820. Xint evtype;
  1821. XGel *gel;
  1822. Xint mx, my;
  1823. X{
  1824. X    static XPoint *v;
  1825. X    static XPoint *adjusted;
  1826. X    static int arrowstyle, start, end, npts;
  1827. X    static Gel *splinegel, *oldsplinegel;
  1828. X    /*
  1829. X     *  Will not need to process MOTION|START_MODE, RIGHT|START_MODE,
  1830. X     *  REDRAW|START_MODE - these are taken care of in
  1831. X     *  the adj_element routine.
  1832. X     */
  1833. X    switch(evtype) {
  1834. X    case MOTION | END_MODE:
  1835. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1836. X        adjusted->x = mx;
  1837. X        adjusted->y = my;
  1838. X        CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize);
  1839. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1840. X        break;
  1841. X    case LEFT | START_MODE:
  1842. X        splinegel = CopyGel(gel, 1);
  1843. X        oldsplinegel = gel;
  1844. X        gel = NULL;
  1845. X        GetClosestSplinePoint(splinegel, mx, my, &v, &npts, &adjusted, &start, &end);
  1846. X        /* Spline has been erased in element_adjust, so we redraw inverted */
  1847. X        GelDraw(splinegel, INVERT);
  1848. X        setwidth(tmpGcNormal, splinegel->linewidth);
  1849. X        setwidth(tmpGcInvert, splinegel->linewidth);
  1850. X        SETDASHES(tmpGcNormal, getlinestyle(splinegel->attributes))
  1851. X        SETDASHES(tmpGcInvert, getlinestyle(splinegel->attributes))
  1852. X        if (!start) {
  1853. X            v--;
  1854. X            npts++;
  1855. X        }
  1856. X        if (!end) {
  1857. X            npts++;
  1858. X        }
  1859. X        CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize);
  1860. X        /*
  1861. X         *  Now we redraw the section of the spline we're going to
  1862. X         *  adjust + the end segments. This erases it!
  1863. X         */
  1864. X        drawlines(picDpy, picWin, tmpGcInvert, flatVerts, nFlat, 
  1865. X         CoordModePrevious);
  1866. X        /* Now we redraw the spline section so it shows - yuk. */
  1867. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1868. X        drawingMode = END_MODE;
  1869. X        arrowstyle = getlinearrow(splinegel->attributes);
  1870. X        start = start && (arrowstyle & ST_ARROW);
  1871. X        end = end && (arrowstyle & EN_ARROW);
  1872. X        break;
  1873. X    case LEFT | END_MODE:
  1874. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1875. X        adjusted->x = mx;
  1876. X        adjusted->y = my;
  1877. X        /*
  1878. X         *  We need to erase the end segments of the spline that
  1879. X         *  protrude. The logic (or illogic, is sililar to the junk code
  1880. X         *  in the LEFT | END_MODE case in the draw. Go read the comment
  1881. X         *  there. It won't help much either.     
  1882. X         */
  1883. X        CopyAndFlatten(v, npts, &flatVerts, &nFlat, &flatSize);
  1884. X        drawlines(picDpy, picWin, tmpGcInvert, flatVerts, nFlat, 
  1885. X         CoordModePrevious);
  1886. X        update_box(splinegel->b_box, mx, my);
  1887. X        GelDraw(splinegel, DRAW);
  1888. X        (void) PushGel(&(CurrentCell->gelList), splinegel);
  1889. X        splinegel = NULL;
  1890. X        FreeGel(CurrentCell->undoList);
  1891. X        CurrentCell->undoList = oldsplinegel;
  1892. X        CurrentCell->undo = 1;
  1893. X        CurrentCell->saved |= MODIFIED;
  1894. X        drawingMode = START_MODE;
  1895. X        break;
  1896. X    case RIGHT | END_MODE:
  1897. X    case MIDDLE | END_MODE:
  1898. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1899. X        GelDraw(oldsplinegel, DRAW);
  1900. X        (void) PushUnderUndo(&(CurrentCell->gelList), oldsplinegel, 
  1901. X         CurrentCell->undo);
  1902. X        oldsplinegel = NULL;
  1903. X        FreeGel(splinegel);
  1904. X        splinegel = NULL;
  1905. X        if (evtype == (MIDDLE | END_MODE))
  1906. X            ClearGelFlags(CurrentCell->gelList);
  1907. X        drawingMode = START_MODE;
  1908. X        break;
  1909. X    case MIDDLE | START_MODE:
  1910. X        ClearGelFlags(CurrentCell->gelList);
  1911. X        break;
  1912. X    case REDRAW | END_MODE:
  1913. X        DrawSplineSection(v, npts, tmpGcInvert, start, end);
  1914. X        break;
  1915. X    default:
  1916. X#ifdef DEBUG
  1917. X        (void) sprintf(errstring, "Hey! Unknown mode %d in spline_adj", 
  1918. X         evtype);
  1919. X        message(errstring);
  1920. X#endif
  1921. X        break;
  1922. X    }
  1923. X    ASSERT(allock(), "spline_adj");
  1924. X}
  1925. X
  1926. X
  1927. XDrawSplineSection(v, npts, gc, start, end)
  1928. XXPoint *v;
  1929. XGC gc;
  1930. Xint start, end, npts;
  1931. X{
  1932. X    drawlines(picDpy, picWin, gc, flatVerts, nFlat, CoordModePrevious);
  1933. X    drawlines(picDpy, picWin, gc, v, npts, CoordModeOrigin);
  1934. X
  1935. X    /* !! Fix! */
  1936. X    if (start)
  1937. X        Arrow(picDpy, picWin, v[1].x, v[1].y, v[0].x, v[0].y, gc);
  1938. X    if (end)
  1939. X        Arrow(picDpy, picWin, v[0].x, v[0].y, v[1].x, v[1].y, gc);
  1940. X}
  1941. X
  1942. X
  1943. X/*
  1944. X *  Finds the closest point in the spline gel 'g' to mx, my and
  1945. X *  puts the points in 'v'. Caller must allocate space for v. 'adjusted'
  1946. X *  will point to the closest point in the gel pointlist, and start and
  1947. X *  end will be set depending on whether the point is the start or end
  1948. X *  point. 'npts' is the number of points in v, usually 3, but 2 if one
  1949. X *  of the points is an endpoint.
  1950. X */
  1951. XGetClosestSplinePoint(g, mx, my, v, npts, adjusted, start, end)
  1952. XGel *g;
  1953. XXPoint **v;
  1954. XXPoint **adjusted;
  1955. Xint *start, *end, *npts;
  1956. Xint mx, my;
  1957. X{
  1958. X    register int i;
  1959. X    int mindist = MAXINT;
  1960. X    int dist;
  1961. X    int closest;
  1962. X    int n = ((PointList *) g->data)->nVerts;
  1963. X    XPoint *vertices = ((PointList *) g->data)->v;
  1964. X
  1965. X    *adjusted = vertices;
  1966. X    for (i = 1,vertices++; i < n-1; i++, vertices++) {
  1967. X        dist = (vertices->x - mx)*(vertices->x - mx) + 
  1968. X         (vertices->y - my)*(vertices->y - my);
  1969. X        if (dist < mindist) {
  1970. X            closest = i;
  1971. X            *adjusted = vertices;
  1972. X            mindist = dist;
  1973. X        }
  1974. X    }
  1975. X    *npts = 3;
  1976. X    if (closest <= 1) {
  1977. X        *start = TRUE;
  1978. X        *v = *adjusted;
  1979. X        (*npts)--;
  1980. X    } else {
  1981. X        *start = FALSE;
  1982. X        *v = *adjusted - 1;
  1983. X    }
  1984. X    if (closest >= n - 2) {
  1985. X        *end = TRUE;
  1986. X        (*npts)--;
  1987. X    } else {
  1988. X        *end = FALSE;
  1989. X    }
  1990. X    ASSERT((*npts != 1), "One point spline");
  1991. X}
  1992. X
  1993. X/*
  1994. X * Finds distance of point from a spline. This is the distance of the closest
  1995. X * segment of the controlling line from the point. The distance of a segment
  1996. X * from the point is the perpendicular distance of the point from the segment,
  1997. X * if the perpendicular intersects the segment, else it is the distance of the
  1998. X * closest endpoint. We just call line_distance()..
  1999. X */
  2000. Xint
  2001. Xspline_distance(gel, xp, yp)
  2002. XGel *gel;
  2003. Xint xp, yp;
  2004. X{
  2005. X    extern int line_distance();
  2006. X    
  2007. X    return(line_distance(gel, xp, yp));
  2008. X}
  2009. END_OF_FILE
  2010. if test 14826 -ne `wc -c <'xpic/obj_spline.c'`; then
  2011.     echo shar: \"'xpic/obj_spline.c'\" unpacked with wrong size!
  2012. fi
  2013. # end of 'xpic/obj_spline.c'
  2014. fi
  2015. if test -f 'xpic/test/marcel.x' -a "${1}" != "-c" ; then 
  2016.   echo shar: Will not clobber existing file \"'xpic/test/marcel.x'\"
  2017. else
  2018. echo shar: Extracting \"'xpic/test/marcel.x'\" \(13421 characters\)
  2019. sed "s/^X//" >'xpic/test/marcel.x' <<'END_OF_FILE'
  2020. X56 67 1176 776 8
  2021. X1 438 496 672 544 672 20 1
  2022. X2
  2023. X 544 672 496 672
  2024. X1 439 496 472 512 648 20 1
  2025. X3
  2026. X 512 472 512 648 496 648
  2027. X1 440 372 392 372 408 20 1
  2028. X2
  2029. X 372 408 372 392
  2030. X6 441 447 434 481 447 0 0
  2031. X464 440 7 0 2
  2032. XdPC (h)
  2033. X1 442 528 320 544 320 20 1
  2034. X2
  2035. X 544 320 528 320
  2036. X6 443 435 379 452 390 2000 0
  2037. X452 384 4 0 1
  2038. XDrtx
  2039. X6 444 489 315 520 326 2000 0
  2040. X520 320 7 0 1
  2041. XPC(h)in
  2042. X6 445 487 379 520 390 2000 0
  2043. X520 384 6 0 1
  2044. XHW_gen
  2045. X6 446 353 411 392 422 0 0
  2046. X372 416 9 0 1
  2047. X(from EU)
  2048. X6 447 360 379 386 390 1000 0
  2049. X360 384 5 0 1
  2050. XIBASE
  2051. X6 448 696 167 720 178 1000 0
  2052. X696 172 6 0 1
  2053. XPC_sel
  2054. X6 449 594 191 664 202 2000 0
  2055. X664 196 17 0 1
  2056. X(from EU) PC(h)in
  2057. X6 450 595 175 660 186 2000 0
  2058. X660 180 16 0 1
  2059. X(from IFU) PCout
  2060. X6 451 867 298 877 311 0 0
  2061. X872 304 1 0 2
  2062. X+
  2063. X1 452 528 248 560 248 20 1
  2064. X2
  2065. X 528 248 560 248
  2066. X3 453 864 288 880 320 0 1
  2067. X1 454 688 200 840 232 20 1
  2068. X3
  2069. X 688 200 840 200 840 232
  2070. X1 455 408 144 1152 272 20 1
  2071. X3
  2072. X 408 272 408 144 1152 144
  2073. X6 456 465 242 519 255 0 0
  2074. X492 248 12 0 2
  2075. XPC Stack ptr
  2076. X6 457 830 258 858 271 0 0
  2077. X844 264 6 0 2
  2078. XPC (h)
  2079. X6 458 950 306 987 319 0 0
  2080. X968 312 7 0 2
  2081. XControl
  2082. X6 459 941 290 995 303 0 0
  2083. X968 296 11 0 2
  2084. XQueue Shift
  2085. X6 460 1044 354 1060 367 0 0
  2086. X1052 360 2 0 2
  2087. XQL
  2088. X6 461 1043 338 1061 351 0 0
  2089. X1052 344 2 0 2
  2090. XQH
  2091. X1 462 1040 352 1064 352 0 1
  2092. X2
  2093. X 1040 352 1064 352
  2094. X1 463 1104 352 1104 776 20 1
  2095. X2
  2096. X 1104 776 1104 352
  2097. X1 464 1064 352 1104 352 20 1
  2098. X2
  2099. X 1104 352 1064 352
  2100. X1 465 1016 376 1136 376 20 1
  2101. X2
  2102. X 1136 376 1016 376
  2103. X1 466 1120 280 1120 776 20 1
  2104. X2
  2105. X 1120 280 1120 776
  2106. X1 467 848 280 1120 280 20 1
  2107. X2
  2108. X 848 280 1120 280
  2109. X1 468 1016 352 1040 352 20 1
  2110. X2
  2111. X 1040 352 1016 352
  2112. X1 469 1016 344 1040 344 20 1
  2113. X2
  2114. X 1040 344 1016 344
  2115. X3 470 1040 336 1064 368 0 1
  2116. X6 471 378 358 454 378 0 0
  2117. X416 368 10 0 5
  2118. XController
  2119. X6 472 401 334 431 354 0 0
  2120. X416 344 3 0 5
  2121. XIFU
  2122. X6 473 103 297 128 311 2000 0
  2123. X128 304 3 0 3
  2124. XIRQ
  2125. X6 474 71 321 128 335 2000 0
  2126. X128 328 8 0 3
  2127. XIRQ_addr
  2128. X6 475 177 346 248 359 2000 0
  2129. X248 352 12 0 2
  2130. XTAG Mismatch
  2131. X6 476 176 362 248 375 2000 0
  2132. X248 368 14 0 2
  2133. XRead Exception
  2134. X6 477 173 378 248 391 2000 0
  2135. X248 384 15 0 2
  2136. XWrite Exception
  2137. X1 478 136 304 312 304 10 1
  2138. X2
  2139. X 312 304 136 304
  2140. X1 479 136 328 312 328 10 1
  2141. X2
  2142. X 312 328 136 328
  2143. X1 480 256 384 312 384 10 1
  2144. X2
  2145. X 312 384 256 384
  2146. X1 481 256 368 312 368 10 1
  2147. X2
  2148. X 312 368 256 368
  2149. X1 482 256 352 312 352 10 1
  2150. X2
  2151. X 312 352 256 352
  2152. X6 483 851 231 856 242 2000 0
  2153. X856 236 1 0 1
  2154. XF
  2155. X6 484 838 231 844 242 2000 0
  2156. X844 236 1 0 1
  2157. XT
  2158. X6 485 582 407 588 418 2000 0
  2159. X588 412 1 0 1
  2160. XT
  2161. X6 486 595 407 600 418 2000 0
  2162. X600 412 1 0 1
  2163. XF
  2164. X6 487 608 387 616 398 1000 0
  2165. X608 392 2 0 1
  2166. X18
  2167. X1 488 596 388 604 396 0 1
  2168. X2
  2169. X 596 396 604 388
  2170. X1 489 600 384 600 408 20 1
  2171. X2
  2172. X 600 384 600 408
  2173. X1 490 592 416 592 432 20 1
  2174. X2
  2175. X 592 416 592 432
  2176. X1 491 576 408 608 416 0 1
  2177. X5
  2178. X 584 416 600 416 608 408 576 408
  2179. X 584 416
  2180. X1 492 552 376 560 376 20 1
  2181. X2
  2182. X 560 376 552 376
  2183. X6 493 573 434 611 447 0 0
  2184. X592 440 7 0 2
  2185. XQA data
  2186. X1 494 544 200 680 440 20 1
  2187. X3
  2188. X 544 440 544 200 680 200
  2189. X6 495 497 331 520 342 2000 0
  2190. X520 336 6 0 1
  2191. Xlength
  2192. X1 496 368 296 376 320 0 1
  2193. X5
  2194. X 376 304 376 312 368 320 368 296
  2195. X 376 304
  2196. X1 497 356 312 368 312 20 1
  2197. X2
  2198. X 356 312 368 312
  2199. X1 498 356 304 368 304 20 1
  2200. X2
  2201. X 356 304 368 304
  2202. X1 499 440 308 456 308 20 1
  2203. X2
  2204. X 440 308 456 308
  2205. X1 500 376 308 392 308 20 1
  2206. X2
  2207. X 376 308 392 308
  2208. X1 501 352 168 684 272 20 1
  2209. X4
  2210. X 352 272 352 168 684 168 684 180
  2211. X1 502 384 184 680 272 20 1
  2212. X3
  2213. X 384 272 384 184 680 184
  2214. X1 503 424 232 836 272 20 1
  2215. X5
  2216. X 424 272 424 232 808 232 812 236
  2217. X 836 236
  2218. X6 504 320 347 340 358 1000 0
  2219. X320 352 3 0 1
  2220. XTAG
  2221. X6 505 320 363 340 374 1000 0
  2222. X320 368 5 0 1
  2223. Xreade
  2224. X6 506 320 379 342 390 1000 0
  2225. X320 384 6 0 1
  2226. Xwritee
  2227. X6 507 340 275 364 286 0 0
  2228. X352 280 6 0 1
  2229. XPC_sel
  2230. X6 508 372 275 396 286 0 0
  2231. X384 280 5 0 1
  2232. XPCout
  2233. X6 509 401 275 415 286 0 0
  2234. X408 280 2 0 1
  2235. XRD
  2236. X6 510 418 275 430 286 0 0
  2237. X424 280 3 0 1
  2238. Xabs
  2239. X6 511 395 307 437 318 0 0
  2240. X416 312 10 0 1
  2241. Xpre-decode
  2242. X6 512 405 299 428 310 0 0
  2243. X416 304 4 0 1
  2244. XuPLA
  2245. X6 513 439 275 458 286 0 0
  2246. X448 280 5 0 1
  2247. Xfetch
  2248. X6 514 475 275 486 286 0 0
  2249. X480 280 3 0 1
  2250. Xinc
  2251. X6 515 506 275 519 286 0 0
  2252. X512 280 3 0 1
  2253. Xdec
  2254. X6 516 495 291 520 302 2000 0
  2255. X520 296 6 0 1
  2256. Xh0_ovr
  2257. X6 517 499 299 520 310 2000 0
  2258. X520 304 6 0 1
  2259. Xoffset
  2260. X1 518 528 312 920 336 20 1
  2261. X4
  2262. X 528 336 904 336 904 312 920 312
  2263. X1 519 448 160 1136 272 20 1
  2264. X3
  2265. X 448 272 448 160 1136 160
  2266. X1 520 512 256 512 272 20 1
  2267. X2
  2268. X 512 272 512 256
  2269. X1 521 480 256 480 272 20 1
  2270. X2
  2271. X 480 272 480 256
  2272. X1 522 528 304 832 304 20 1
  2273. X2
  2274. X 528 304 832 304
  2275. X1 523 528 248 876 296 20 1
  2276. X5
  2277. X 528 296 792 296 792 248 876 248
  2278. X 876 256
  2279. X3 524 464 240 528 256 0 1
  2280. X3 525 312 272 528 392 0 1
  2281. X3 526 392 296 440 320 0 1
  2282. X1 527 560 348 1016 348 0 1
  2283. X2
  2284. X 1016 348 560 348
  2285. X1 528 944 352 944 384 0 1
  2286. X2
  2287. X 944 352 944 384
  2288. X1 529 560 352 1016 352 0 1
  2289. X2
  2290. X 560 352 1016 352
  2291. X3 530 560 344 1016 384 0 1
  2292. X1 531 560 368 1016 368 1 1
  2293. X2
  2294. X 560 368 1016 368
  2295. X1 532 1000 352 1000 384 0 1
  2296. X2
  2297. X 1000 352 1000 384
  2298. X1 533 680 176 688 224 0 1
  2299. X5
  2300. X 680 224 688 216 688 184 680 176
  2301. X 680 224
  2302. X1 534 688 352 688 384 0 1
  2303. X2
  2304. X 688 352 688 384
  2305. X3 535 560 240 736 280 0 1
  2306. X1 536 872 256 872 272 0 1
  2307. X2
  2308. X 872 256 872 272
  2309. X1 537 856 200 888 304 20 1
  2310. X5
  2311. X 880 304 888 304 888 200 856 200
  2312. X 856 232
  2313. X3 538 816 256 880 272 0 1
  2314. X1 539 848 272 864 296 20 1
  2315. X3
  2316. X 848 272 848 296 864 296
  2317. X1 540 848 240 848 256 20 1
  2318. X2
  2319. X 848 240 848 256
  2320. X1 541 832 232 864 240 0 1
  2321. X5
  2322. X 840 240 856 240 864 232 832 232
  2323. X 840 240
  2324. X1 542 840 312 864 312 20 1
  2325. X2
  2326. X 840 312 864 312
  2327. X1 543 832 296 840 328 0 1
  2328. X5
  2329. X 832 328 840 320 840 304 832 296
  2330. X 832 328
  2331. X1 544 824 320 832 320 20 1
  2332. X2
  2333. X 824 320 832 320
  2334. X6 545 805 313 820 327 2000 0
  2335. X820 320 3 0 3
  2336. X'1'
  2337. X3 546 920 288 1016 320 0 1
  2338. X1 547 880 352 880 384 0 1
  2339. X2
  2340. X 880 352 880 384
  2341. X1 548 816 352 816 384 0 1
  2342. X2
  2343. X 816 352 816 384
  2344. X1 549 752 352 752 384 0 1
  2345. X2
  2346. X 752 352 752 384
  2347. X6 550 874 259 879 270 0 0
  2348. X876 264 1 0 1
  2349. Xh
  2350. X1 551 648 216 680 240 20 1
  2351. X3
  2352. X 648 240 648 216 680 216
  2353. X1 552 1136 160 1136 776 20 1
  2354. X2
  2355. X 1136 160 1136 776
  2356. X1 553 1152 144 1152 776 20 1
  2357. X2
  2358. X 1152 144 1152 776
  2359. X1 554 728 196 736 204 0 1
  2360. X2
  2361. X 728 204 736 196
  2362. X1 555 652 400 660 408 0 1
  2363. X2
  2364. X 652 408 660 400
  2365. X6 556 664 399 672 410 1000 0
  2366. X664 404 2 0 1
  2367. X18
  2368. X6 557 728 183 736 194 1000 0
  2369. X728 188 2 0 1
  2370. X31
  2371. X6 558 796 219 808 230 2000 0
  2372. X808 224 3 0 1
  2373. Xabs
  2374. X6 559 604 249 692 263 0 0
  2375. X648 256 16 0 3
  2376. XPC  pseudo-stack
  2377. X6 560 605 265 691 279 0 0
  2378. X648 272 17 0 3
  2379. X(circular buffer)
  2380. X6 561 961 353 984 367 0 0
  2381. X972 360 4 0 3
  2382. Xdata
  2383. X6 562 951 369 993 383 0 0
  2384. X972 376 8 0 3
  2385. Xaddr (h)
  2386. X6 563 647 353 666 367 0 0
  2387. X656 360 2 0 3
  2388. XQB
  2389. X6 564 711 353 730 367 0 0
  2390. X720 360 2 0 3
  2391. XQC
  2392. X6 565 774 353 794 367 0 0
  2393. X784 360 2 0 3
  2394. XQD
  2395. X6 566 839 353 858 367 0 0
  2396. X848 360 2 0 3
  2397. XQE
  2398. X6 567 903 353 921 367 0 0
  2399. X912 360 2 0 3
  2400. XQF
  2401. X6 568 638 434 674 447 0 0
  2402. X656 440 7 0 2
  2403. XQB data
  2404. X1 569 624 432 624 448 0 1
  2405. X2
  2406. X 624 432 624 448
  2407. X3 570 560 432 688 448 0 1
  2408. X1 571 624 352 624 384 0 1
  2409. X2
  2410. X 624 352 624 384
  2411. X1 572 656 384 656 432 20 1
  2412. X2
  2413. X 656 384 656 432
  2414. X6 573 582 353 603 367 0 0
  2415. X592 360 2 0 3
  2416. XQA
  2417. X1 574 552 376 552 416 20 1
  2418. X2
  2419. X 552 376 552 416
  2420. X6 575 490 355 520 366 2000 0
  2421. X520 360 5 0 1
  2422. XHW_op
  2423. X1 576 528 360 584 408 20 1
  2424. X5
  2425. X 528 360 536 360 536 392 584 392
  2426. X 584 408
  2427. X1 577 464 416 552 432 20 1
  2428. X3
  2429. X 552 416 464 416 464 432
  2430. X3 578 432 432 496 448 0 1
  2431. X1 579 464 448 512 472 20 1
  2432. X4
  2433. X 464 448 464 456 512 456 512 472
  2434. X3 580 472 496 480 536 0 1
  2435. X2 581 448 504 472 528 0 1
  2436. X5
  2437. X 472 504 456 504 448 516 456 528
  2438. X 472 528
  2439. X1 582 440 552 448 584 0 1
  2440. X5
  2441. X 448 552 440 560 440 576 448 584
  2442. X 448 552
  2443. X1 583 472 528 480 528 0 1
  2444. X2
  2445. X 472 528 480 528
  2446. X1 584 472 520 480 520 0 1
  2447. X2
  2448. X 472 520 480 520
  2449. X1 585 472 512 480 512 0 1
  2450. X2
  2451. X 472 512 480 512
  2452. X1 586 472 504 480 504 0 1
  2453. X2
  2454. X 472 504 480 504
  2455. X1 587 480 536 480 560 0 1
  2456. X2
  2457. X 480 536 480 560
  2458. X1 588 444 516 448 556 20 1
  2459. X3
  2460. X 448 516 444 516 444 556
  2461. X1 589 448 560 560 560 20 1
  2462. X2
  2463. X 560 560 448 560
  2464. X1 590 448 576 560 576 20 1
  2465. X2
  2466. X 560 576 448 576
  2467. X1 591 264 656 296 664 0 1
  2468. X5
  2469. X 264 656 296 656 288 664 272 664
  2470. X 264 656
  2471. X1 592 288 616 288 656 20 1
  2472. X2
  2473. X 288 616 288 656
  2474. X1 593 216 640 272 656 20 1
  2475. X4
  2476. X 216 640 216 648 272 648 272 656
  2477. X1 594 336 496 336 616 2 1
  2478. X2
  2479. X 336 616 336 496
  2480. X3 595 168 632 256 640 0 1
  2481. X3 596 200 496 384 616 0 1
  2482. X1 597 292 660 480 660 20 1
  2483. X2
  2484. X 480 660 292 660
  2485. X1 598 400 560 408 592 0 1
  2486. X5
  2487. X 408 560 408 592 400 584 400 568
  2488. X 408 560
  2489. X1 599 408 568 440 568 20 1
  2490. X2
  2491. X 440 568 408 568
  2492. X1 600 384 576 400 576 20 1
  2493. X2
  2494. X 400 576 384 576
  2495. X2 601 428 516 444 568 0 1
  2496. X4
  2497. X 444 516 436 516 436 568 428 568
  2498. X2 602 280 664 280 672 20 1
  2499. X2
  2500. X 280 664 280 672
  2501. X3 603 320 680 384 696 0 1
  2502. X3 604 120 688 296 720 0 1
  2503. X1 605 376 680 376 696 0 1
  2504. X2
  2505. X 376 680 376 696
  2506. X1 606 120 704 296 704 0 1
  2507. X2
  2508. X 120 704 296 704
  2509. X1 607 216 704 216 720 0 1
  2510. X2
  2511. X 216 704 216 720
  2512. X1 608 168 704 168 720 0 1
  2513. X2
  2514. X 168 704 168 720
  2515. X1 609 208 672 280 688 20 1
  2516. X3
  2517. X 280 672 208 672 208 688
  2518. X1 610 280 672 352 680 20 1
  2519. X3
  2520. X 280 672 352 672 352 680
  2521. X1 611 380 588 404 704 20 1
  2522. X4
  2523. X 380 696 380 704 404 704 404 588
  2524. X1 612 352 584 416 712 20 1
  2525. X5
  2526. X 352 696 352 712 416 712 416 584
  2527. X 408 584
  2528. X1 613 1032 664 1032 704 20 1
  2529. X2
  2530. X 1032 664 1032 704
  2531. X1 614 976 664 976 704 20 1
  2532. X2
  2533. X 976 664 976 704
  2534. X1 615 404 680 488 704 20 1
  2535. X3
  2536. X 404 704 488 704 488 680
  2537. X1 616 972 680 980 688 0 1
  2538. X2
  2539. X 972 688 980 680
  2540. X1 617 892 680 900 688 0 1
  2541. X2
  2542. X 892 688 900 680
  2543. X1 618 828 680 836 688 0 1
  2544. X2
  2545. X 828 688 836 680
  2546. X1 619 748 680 756 688 0 1
  2547. X2
  2548. X 748 688 756 680
  2549. X1 620 668 680 676 688 0 1
  2550. X2
  2551. X 668 688 676 680
  2552. X1 621 628 680 636 688 0 1
  2553. X2
  2554. X 628 688 636 680
  2555. X1 622 588 680 596 688 0 1
  2556. X2
  2557. X 588 688 596 680
  2558. X1 623 776 704 776 720 0 1
  2559. X2
  2560. X 776 704 776 720
  2561. X1 624 880 704 880 720 0 1
  2562. X2
  2563. X 880 704 880 720
  2564. X1 625 656 704 656 720 0 1
  2565. X2
  2566. X 656 704 656 720
  2567. X1 626 616 704 616 720 0 1
  2568. X2
  2569. X 616 704 616 720
  2570. X3 627 1016 704 1048 720 0 1
  2571. X3 628 960 704 992 720 0 1
  2572. X3 629 736 704 920 720 0 1
  2573. X3 630 576 704 696 720 0 1
  2574. X1 631 592 664 592 704 20 1
  2575. X2
  2576. X 592 664 592 704
  2577. X1 632 632 664 632 704 20 1
  2578. X2
  2579. X 632 664 632 704
  2580. X1 633 672 664 672 704 20 1
  2581. X2
  2582. X 672 664 672 704
  2583. X1 634 752 664 752 704 20 1
  2584. X2
  2585. X 752 664 752 704
  2586. X1 635 832 664 832 704 20 1
  2587. X2
  2588. X 832 664 832 704
  2589. X1 636 896 664 896 704 20 1
  2590. X2
  2591. X 896 664 896 704
  2592. X1 637 1028 680 1036 688 0 1
  2593. X2
  2594. X 1028 688 1036 680
  2595. X3 638 560 496 1056 664 0 1
  2596. X1 639 544 440 544 736 20 1
  2597. X2
  2598. X 544 736 544 440
  2599. X6 640 192 631 241 642 0 0
  2600. X216 636 13 0 1
  2601. XNOP, length 0
  2602. X6 641 312 651 329 662 1000 0
  2603. X312 656 6 0 1
  2604. Xstall!
  2605. X6 642 330 682 366 695 0 0
  2606. X348 688 8 0 2
  2607. Xnxt addr
  2608. X6 643 160 690 257 703 0 0
  2609. X208 696 20 0 2
  2610. XuWord Control Fields
  2611. X6 644 178 706 207 719 0 0
  2612. X192 712 7 0 2
  2613. Xstage 2
  2614. X6 645 130 706 159 719 0 0
  2615. X144 712 7 0 2
  2616. Xstage 3
  2617. X6 646 242 706 271 719 0 0
  2618. X256 712 7 0 2
  2619. Xstage 1
  2620. X6 647 583 706 610 719 0 0
  2621. X596 712 5 0 2
  2622. XBreg1
  2623. X6 648 620 706 653 719 0 0
  2624. X636 712 7 0 2
  2625. Xoffset1
  2626. X6 649 665 706 687 719 0 0
  2627. X676 712 5 0 2
  2628. Xctrl1
  2629. X6 650 743 706 770 719 0 0
  2630. X756 712 5 0 2
  2631. XBreg2
  2632. X6 651 816 706 849 719 0 0
  2633. X832 712 7 0 2
  2634. Xoffset2
  2635. X6 652 889 706 911 719 0 0
  2636. X900 712 5 0 2
  2637. Xctrl2
  2638. X6 653 968 706 984 719 0 0
  2639. X976 712 3 0 2
  2640. Xsop
  2641. X3 654 480 640 496 680 0 1
  2642. X6 655 1020 707 1045 718 0 0
  2643. X1032 712 7 0 1
  2644. Xcar/cdr
  2645. X6 656 483 654 493 667 0 0
  2646. X488 660 1 0 2
  2647. X=
  2648. X6 657 568 569 615 583 1000 0
  2649. X568 576 7 0 3
  2650. XExtraOp
  2651. X6 658 569 553 615 567 0 0
  2652. X592 560 6 0 3
  2653. XOpCode
  2654. X6 659 713 576 919 601 0 0
  2655. X816 588 20 0 7
  2656. XOperand Decode Logic
  2657. X6 660 790 535 843 562 0 0
  2658. X816 548 3 0 8
  2659. XODL
  2660. X6 661 600 678 606 691 1000 0
  2661. X600 684 1 0 2
  2662. X5
  2663. X6 662 640 678 646 691 1000 0
  2664. X640 684 1 0 2
  2665. X5
  2666. X6 663 760 678 766 691 1000 0
  2667. X760 684 1 0 2
  2668. X5
  2669. X6 664 840 678 852 691 1000 0
  2670. X840 684 2 0 2
  2671. X30
  2672. X6 665 984 678 990 691 1000 0
  2673. X984 684 1 0 2
  2674. X2
  2675. X6 666 1040 678 1046 691 1000 0
  2676. X1040 684 1 0 2
  2677. X1
  2678. X6 667 265 516 311 533 0 0
  2679. X288 524 4 0 4
  2680. XuROM
  2681. X6 668 242 553 303 567 0 0
  2682. X272 560 11 0 3
  2683. XInstruction
  2684. X6 669 235 577 309 591 0 0
  2685. X272 584 10 0 3
  2686. XDecode ROM
  2687. X6 670 346 553 375 567 0 0
  2688. X360 560 3 0 3
  2689. XODL
  2690. X6 671 342 577 378 591 0 0
  2691. X360 584 5 0 3
  2692. XuCode
  2693. X6 672 278 606 298 619 0 0
  2694. X288 612 4 0 2
  2695. Xdata
  2696. X6 673 524 742 564 755 0 0
  2697. X544 748 7 0 2
  2698. Xnext_PC
  2699. X6 674 354 602 367 615 0 0
  2700. X360 608 3 0 2
  2701. Xrtx
  2702. X6 675 463 379 480 390 2000 0
  2703. X480 384 6 0 1
  2704. Xstall!
  2705. X1 676 360 472 520 624 20 1
  2706. X4
  2707. X 360 616 360 624 520 624 520 472
  2708. X1 677 440 392 520 472 20 1
  2709. X4
  2710. X 520 472 520 400 440 400 440 392
  2711. X1 678 504 392 536 440 20 1
  2712. X4
  2713. X 504 392 504 408 536 408 536 440
  2714. X1 679 472 392 528 440 10 1
  2715. X4
  2716. X 472 392 472 424 528 424 528 440
  2717. X1 680 464 440 528 660 20 1
  2718. X4
  2719. X 464 660 464 632 528 632 528 440
  2720. X1 681 480 440 536 736 20 1
  2721. X4
  2722. X 536 440 536 728 480 728 480 736
  2723. X6 682 463 742 498 755 0 0
  2724. X480 748 7 0 2
  2725. Xlength0
  2726. X1 683 1032 720 1032 736 20 1
  2727. X2
  2728. X 1032 720 1032 736
  2729. X1 684 976 720 976 736 20 1
  2730. X2
  2731. X 976 720 976 736
  2732. X1 685 896 720 896 736 20 1
  2733. X2
  2734. X 896 720 896 736
  2735. X1 686 832 720 832 736 20 1
  2736. X2
  2737. X 832 720 832 736
  2738. X1 687 752 720 752 736 20 1
  2739. X2
  2740. X 752 720 752 736
  2741. X1 688 672 720 672 736 20 1
  2742. X2
  2743. X 672 720 672 736
  2744. X1 689 632 720 632 736 20 1
  2745. X2
  2746. X 632 720 632 736
  2747. X1 690 592 720 592 736 20 1
  2748. X2
  2749. X 592 720 592 736
  2750. X1 691 192 720 192 736 20 1
  2751. X2
  2752. X 192 720 192 736
  2753. X1 692 144 720 144 736 20 1
  2754. X2
  2755. X 144 720 144 736
  2756. X6 693 233 738 280 751 0 0
  2757. X256 744 9 0 2
  2758. X(decoded)
  2759. X1 694 256 720 256 736 20 1
  2760. X2
  2761. X 256 720 256 736
  2762. X1 695 592 448 592 496 20 1
  2763. X2
  2764. X 592 448 592 496
  2765. X1 696 656 448 656 496 20 1
  2766. X2
  2767. X 656 448 656 496
  2768. X1 697 56 440 424 440 2 1
  2769. X2
  2770. X 56 440 424 440
  2771. X1 698 696 440 1176 440 2 1
  2772. X2
  2773. X 696 440 1176 440
  2774. X1 699 304 712 344 712 2 1
  2775. X2
  2776. X 304 712 344 712
  2777. X1 700 424 712 528 712 2 1
  2778. X2
  2779. X 424 712 528 712
  2780. X1 701 552 712 568 712 2 1
  2781. X2
  2782. X 552 712 568 712
  2783. X1 702 704 712 728 712 2 1
  2784. X2
  2785. X 704 712 728 712
  2786. X1 703 928 712 952 712 2 1
  2787. X2
  2788. X 928 712 952 712
  2789. X1 704 1000 712 1008 712 2 1
  2790. X2
  2791. X 1000 712 1008 712
  2792. X1 705 1056 712 1176 712 2 1
  2793. X2
  2794. X 1056 712 1176 712
  2795. X1 706 832 400 864 400 20 1
  2796. X2
  2797. X 864 400 832 400
  2798. X1 707 832 416 864 416 20 1
  2799. X2
  2800. X 832 416 864 416
  2801. X6 708 872 394 893 407 1000 0
  2802. X872 400 5 0 2
  2803. Xshift
  2804. X6 709 811 410 824 423 2000 0
  2805. X824 416 4 0 2
  2806. Xfill
  2807. X6 710 96 67 319 94 1000 0
  2808. X96 80 15 0 8
  2809. XSLIME PROCESSOR
  2810. X1 711 96 96 320 96 0 1
  2811. X2
  2812. X 96 96 320 96
  2813. X6 712 77 180 116 205 0 0
  2814. X96 192 3 0 7
  2815. XIFU
  2816. X6 713 67 220 125 245 0 0
  2817. X96 232 7 0 7
  2818. X1 stage
  2819. X6 714 75 500 118 525 0 0
  2820. X96 512 3 0 7
  2821. XIDU
  2822. X6 715 67 540 125 565 0 0
  2823. X96 552 7 0 7
  2824. X1 stage
  2825. X3 716 64 176 128 208 0 1
  2826. X6 717 497 68 815 93 0 0
  2827. X656 80 35 0 7
  2828. XStage Interconnect Diagram (Part 1)
  2829. X1 718 56 712 112 712 2 1
  2830. X2
  2831. X 56 712 112 712
  2832. X3 719 64 496 128 528 0 1
  2833. END_OF_FILE
  2834. if test 13421 -ne `wc -c <'xpic/test/marcel.x'`; then
  2835.     echo shar: \"'xpic/test/marcel.x'\" unpacked with wrong size!
  2836. fi
  2837. # end of 'xpic/test/marcel.x'
  2838. fi
  2839. echo shar: End of archive 10 \(of 15\).
  2840. cp /dev/null ark10isdone
  2841. MISSING=""
  2842. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do
  2843.     if test ! -f ark${I}isdone ; then
  2844.     MISSING="${MISSING} ${I}"
  2845.     fi
  2846. done
  2847. if test "${MISSING}" = "" ; then
  2848.     echo You have unpacked all 15 archives.
  2849.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2850. else
  2851.     echo You still need to unpack the following archives:
  2852.     echo "        " ${MISSING}
  2853. fi
  2854. ##  End of shell archive.
  2855. exit 0
  2856.