home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume8 / xlife / part04 < prev    next >
Internet Message Format  |  1990-07-06  |  72KB

  1. Path: uunet!lll-winken!elroy.jpl.nasa.gov!ames!amdcad!sun!andrew.cmu.edu
  2. From: dl2n+@andrew.cmu.edu (Daniel Edward Lovinger)
  3. Newsgroups: comp.sources.x
  4. Subject: v08i040: Xlife 2.0, Part04/10
  5. Message-ID: <138509@sun.Eng.Sun.COM>
  6. Date: 7 Jul 90 00:01:25 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 4376
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: Daniel Edward Lovinger <dl2n+@andrew.cmu.edu>
  12. Posting-number: Volume 8, Issue 40
  13. Archive-name: xlife/part04
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then unpack
  17. # it by saving it into a file and typing "sh file".  To overwrite existing
  18. # files, type "sh file -c".  You can also feed this as standard input via
  19. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  20. # will see the following message at the end:
  21. #        "End of archive 4 (of 8)."
  22. # Contents:  xlife-2.0/Imakefile xlife-2.0/cell.c
  23. #   xlife-2.0/doc/on_blockpushers xlife-2.0/generate.c
  24. #   xlife-2.0/main.c xlife-2.0/patterns/blockpusher3.life
  25. #   xlife-2.0/patterns/oscillator7.life
  26. #   xlife-2.0/patterns/rakecollision.life xlife-2.0/tab.h
  27. # Wrapped by dl2n@niobe.weh.andrew.cmu.edu on Mon Jul  2 22:48:08 1990
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f xlife-2.0/Imakefile -a "${1}" != "-c" ; then 
  30.   echo shar: Will not over-write existing file \"xlife-2.0/Imakefile\"
  31. else
  32. echo shar: Extracting \"xlife-2.0/Imakefile\" \(3709 characters\)
  33. sed "s/^X//" >xlife-2.0/Imakefile <<'END_OF_xlife-2.0/Imakefile'
  34. X#Imakefile for xlife 2.0
  35. X
  36. X#define ManSuffix n /* For sites where administrators have messed with this */
  37. X
  38. XPROGRAMS    = xlife lifeconv
  39. X
  40. XXLIFEPATSDIR    = /afs/andrew.cmu.edu/usr0/games/lib/xlife
  41. X
  42. X
  43. XPATTERNS = \
  44. X    12gliders.life \
  45. X    2_ak47.life \
  46. X    acorn.life \
  47. X    ak47.life \
  48. X    alu.life \
  49. X    background1.life \
  50. X    baker.life \
  51. X    barberpole.life \
  52. X    beaconmaker.life \
  53. X    benchmark.life \
  54. X    bheptomino.life \
  55. X    bigglider.life \
  56. X    billiards.life \
  57. X    blinkership.life \
  58. X    blinkership2.life \
  59. X    blinkership3.life \
  60. X    blockpusher.life \
  61. X    blockpusher2.life \
  62. X    blockpusher3.life \
  63. X    blockpusher4.life \
  64. X    boatcap.life \
  65. X    boatmaker.life \
  66. X    breeder.life \
  67. X    bunnies.life \
  68. X    centinal.life \
  69. X    cheshirecat.life \
  70. X    citiesindust.life \
  71. X    clappinghands.life \
  72. X    clock.life \
  73. X    cmu.life \
  74. X    cmu2.life \
  75. X    cmu3.life \
  76. X    collapsecap.life \
  77. X    counter.life \
  78. X    cow.life \
  79. X    cross.life \
  80. X    diagfuse.life \
  81. X    eaters3.life \
  82. X    f.life \
  83. X    f2.life \
  84. X    f3.life \
  85. X    fencepost.life \
  86. X    figure8.life \
  87. X    fisheater.life \
  88. X    flasher.life \
  89. X    flywheel.life \
  90. X    fusebranch.life \
  91. X    fusecorner.life \
  92. X    fusehinge.life \
  93. X    futility.life \
  94. X    gardenofeden.life \
  95. X    gear.life \
  96. X    glider.life \
  97. X    gliderarmyof256.life \
  98. X    gliderbackcap.life \
  99. X    gliderforecap.life \
  100. X    glidergen1.life \
  101. X    glidergen2.life \
  102. X    glidergen3.life \
  103. X    glidergen4.life \
  104. X    glidergen5.life \
  105. X    glidergen6.life \
  106. X    glidergen7.life \
  107. X    gliderglidergun.life \
  108. X    glidergun.life \
  109. X    glidergun2.life \
  110. X    glidermesscap.life \
  111. X    gliders1_2.life \
  112. X    gliders2_2.life \
  113. X    gliders4_4.life \
  114. X    glidersidecap.life \
  115. X    glidersparcap.life \
  116. X    glidertofish.life \
  117. X    gourmet.life \
  118. X    greymatter1.life \
  119. X    gunandeater.life \
  120. X    harvester.life \
  121. X    horizfuse.life \
  122. X    j.life \
  123. X    kickback.life \
  124. X    lambdabomb.life \
  125. X    largefish.life \
  126. X    line.life \
  127. X    longfuse.life \
  128. X    longfuse2.life \
  129. X    longsnake.life \
  130. X    mediumfish.life \
  131. X    mediumfishgun.life \
  132. X    mediumfishgun2.life \
  133. X    morejunk.life \
  134. X    oscilators.life \
  135. X    oscillator1.life \
  136. X    oscillator2.life \
  137. X    oscillator3.life \
  138. X    oscillator6.life \
  139. X    oscillator7.life \
  140. X    p120glider.life \
  141. X    p24.life \
  142. X    p26.life \
  143. X    p28.life \
  144. X    p47.life \
  145. X    p54shuttle.life \
  146. X    p55.life \
  147. X    p66.life \
  148. X    p94.life \
  149. X    pentadecathlon.life \
  150. X    piecollection.life \
  151. X    pifuse.life \
  152. X    piston.life \
  153. X    piston2.life \
  154. X    puffertrain.life \
  155. X    pulsar18-22-20.life \
  156. X    pulsar48-56-72.life \
  157. X    pulse.life \
  158. X    pulse1.life \
  159. X    pulse2.life \
  160. X    pump.life \
  161. X    r.life \
  162. X    rabbit.life \
  163. X    rake.life \
  164. X    rake2.life \
  165. X    rake3.life \
  166. X    rake4.life \
  167. X    rake5.life \
  168. X    rake6.life \
  169. X    rake7.life \
  170. X    rakecollision.life \
  171. X    rakeshipgun.life \
  172. X    randomgun.life \
  173. X    relay.life \
  174. X    round.life \
  175. X    rpentomino.life \
  176. X    schooloffish.life \
  177. X    sglider.life \
  178. X    shiningflower.life \
  179. X    sixgliders.life \
  180. X    skyline.life \
  181. X    slowship.life \
  182. X    slowship2.life \
  183. X    slowship3.life \
  184. X    smallfish.life \
  185. X    smallfishgun.life \
  186. X    somejunk.life \
  187. X    spark.life \
  188. X    spark2.life \
  189. X    sparkfuse.life \
  190. X    sparktopifuse.life \
  191. X    squareblinker.life \
  192. X    squarecap.life \
  193. X    squaredance.life \
  194. X    stargaterepeater.life \
  195. X    switchengine.life \
  196. X    test.life \
  197. X    testtube.life \
  198. X    testtubebaby.life \
  199. X    thunderbird.life \
  200. X    thunderbirdfuse.life \
  201. X    turbine8.life \
  202. X    washerwoman.life \
  203. X    wave1.life
  204. X
  205. XSRCS1 =  \
  206. X    button.c\
  207. X    cell.c\
  208. X    cellbox.c\
  209. X    data.c\
  210. X    expose.c\
  211. X    file.c\
  212. X    file_misc.c \
  213. X    generate.c\
  214. X    gentab.c\
  215. X    help.c\
  216. X    key.c\
  217. X    keyin.c\
  218. X    main.c\
  219. X    motion.c\
  220. X    resize.c\
  221. X    utils.c
  222. X
  223. XOBJS1 =  \
  224. X    button.o\
  225. X    cell.o\
  226. X    cellbox.o\
  227. X    data.o\
  228. X    expose.o\
  229. X    file.o\
  230. X    file_misc.o \
  231. X    generate.o\
  232. X    gentab.o\
  233. X    help.o\
  234. X    key.o\
  235. X    keyin.o\
  236. X    main.o\
  237. X    motion.o\
  238. X    resize.o\
  239. X    utils.o
  240. X
  241. XSRCS2 = \
  242. X    lifeconv.c
  243. X
  244. XOBJS2 = \
  245. X    lifeconv.o
  246. X
  247. XAllTarget($(PROGRAMS))
  248. X
  249. XComplexProgramTarget_1(xlife, -L/usr/local/lib $(XLIB),)
  250. XComplexProgramTarget_2(lifeconv,,)
  251. X
  252. Xinstall.patterns:
  253. X    @case '${MFLAGS}' in *[i]*) set +e;; esac; \
  254. X    for i in $(PATTERNS) ; do \
  255. X        (set -x; $(INSTALL) -c $(INSTDATFLAGS) patterns/$$i $(XLIFEPATSDIR)); \
  256. X    done
  257. END_OF_xlife-2.0/Imakefile
  258. if test 3709 -ne `wc -c <xlife-2.0/Imakefile`; then
  259.     echo shar: \"xlife-2.0/Imakefile\" unpacked with wrong size!
  260. fi
  261. # end of overwriting check
  262. fi
  263. if test -f xlife-2.0/cell.c -a "${1}" != "-c" ; then 
  264.   echo shar: Will not over-write existing file \"xlife-2.0/cell.c\"
  265. else
  266. echo shar: Extracting \"xlife-2.0/cell.c\" \(7759 characters\)
  267. sed "s/^X//" >xlife-2.0/cell.c <<'END_OF_xlife-2.0/cell.c'
  268. X/*
  269. X * XLife Copyright 1989 Jon Bennett jb7m+@andrew.cmu.edu, jcrb@cs.cmu.edu
  270. X *
  271. X * Permission to use, copy, modify, distribute, and sell this software and its
  272. X * documentation for any purpose is hereby granted without fee, provided that
  273. X * the above copyright notice appear in all copies and that both that
  274. X * copyright notice and this permission notice appear in supporting
  275. X * documentation, and that the name of the copyright holders not be used in
  276. X * advertising or publicity pertaining to distribution of the software without
  277. X * specific, written prior permission.  The copyright holders make no
  278. X * representations about the suitability of this software for any purpose.  It
  279. X * is provided "as is" without express or implied warranty.
  280. X *
  281. X * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  282. X * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  283. X * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  284. X * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  285. X * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  286. X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  287. X * PERFORMANCE OF THIS SOFTWARE.
  288. X */
  289. X
  290. X#include "defs.h"
  291. X#include "data.h"
  292. X#include "cellbox.h"
  293. X#include "stdio.h"
  294. X
  295. Xint getcell(ptr, xdx, ydx)
  296. X/* get state of cell xdx, ydx within box *ptr */
  297. Xcellbox    *ptr;
  298. Xint xdx, ydx;
  299. X{
  300. X    if (ydx > 3)
  301. X    return(ptr->live2 & 1 << ( (ydx - 4)*8  + xdx));
  302. X    else
  303. X    return(ptr->live1 & 1 << ( ydx*8  + xdx));
  304. X}
  305. X
  306. Xvoid setcell(ptr, xdx, ydx, val)
  307. X/* set state of cell xdx, ydx within box *ptr */
  308. Xcellbox    *ptr;
  309. Xint xdx, ydx, val;
  310. X{
  311. X    if (val)
  312. X    {
  313. X    if (ydx > 3)
  314. X        ptr->live2 |= 1 << ( (ydx - 4)*8  + xdx);
  315. X    else
  316. X        ptr->live1 |= 1 << ( ydx*8  + xdx);
  317. X    }
  318. X    else
  319. X    {
  320. X    if (ydx > 3)
  321. X        ptr->live2 &= 0xffffffff^(1 << ( (ydx - 4)*8  + xdx));
  322. X    else
  323. X        ptr->live1 &= 0xffffffff^(1 << ( ydx*8  + xdx));
  324. X    }
  325. X}
  326. X
  327. Xvoid forget(ptr)
  328. X/* remove a box's info about last generation's state */
  329. Xcellbox *ptr;
  330. X{
  331. X    ptr->olive1 ^= ptr->olive1;
  332. X    ptr->olive2 ^= ptr->olive2;
  333. X}
  334. X
  335. Xstatic void displayline(line,x,y,oline)
  336. X/* post changes in a half-cell to the X structure arrays */
  337. Xunsigned long line,x,y,oline;
  338. X{
  339. X    int sc,yy;
  340. X    unsigned long diff;
  341. X    sc = (1 << (scale -1)) - (scale > 2);
  342. X    diff=line ^ oline;
  343. X    if (scale == 1){
  344. X    if(diff & 0x1){
  345. X        if(line & 0x1){
  346. X        onpoints[onpt].x= x - xpos;
  347. X        onpoints[onpt].y= y - ypos;
  348. X        onpt++;
  349. X        }
  350. X        else{
  351. X        offpoints[offpt].x= x - xpos;
  352. X        offpoints[offpt].y= y - ypos;
  353. X        offpt++;
  354. X        }
  355. X    }
  356. X    ++x;
  357. X    if(diff & 0x2){
  358. X        if(line & 0x2){
  359. X        onpoints[onpt].x= x - xpos;
  360. X        onpoints[onpt].y= y - ypos;
  361. X        onpt++;
  362. X        }
  363. X        else{
  364. X        offpoints[offpt].x= x - xpos;
  365. X        offpoints[offpt].y= y - ypos;
  366. X        offpt++;
  367. X        }
  368. X    }
  369. X    ++x;
  370. X    if(diff & 0x4){
  371. X        if(line & 0x4){
  372. X        onpoints[onpt].x= x - xpos;
  373. X        onpoints[onpt].y= y - ypos;
  374. X        onpt++;
  375. X        }
  376. X        else{
  377. X        offpoints[offpt].x= x - xpos;
  378. X        offpoints[offpt].y= y - ypos;
  379. X        offpt++;
  380. X        }
  381. X    }
  382. X    ++x;
  383. X    if(diff & 0x8){
  384. X       if(line & 0x8){
  385. X        onpoints[onpt].x= x - xpos;
  386. X        onpoints[onpt].y= y - ypos;
  387. X        onpt++;
  388. X        }
  389. X        else{
  390. X        offpoints[offpt].x= x - xpos;
  391. X        offpoints[offpt].y= y - ypos;
  392. X        offpt++;
  393. X        }
  394. X    }
  395. X    ++x;
  396. X    if(diff & 0x10){
  397. X        if(line & 0x10){
  398. X        onpoints[onpt].x= x - xpos;
  399. X        onpoints[onpt].y= y - ypos;
  400. X        onpt++;
  401. X        }
  402. X        else{
  403. X        offpoints[offpt].x= x - xpos;
  404. X        offpoints[offpt].y= y - ypos;
  405. X        offpt++;
  406. X        }
  407. X    }
  408. X    ++x;
  409. X    if(diff & 0x20){
  410. X        if(line & 0x20){
  411. X        onpoints[onpt].x= x - xpos;
  412. X        onpoints[onpt].y= y - ypos;
  413. X        onpt++;
  414. X        }
  415. X        else{
  416. X        offpoints[offpt].x= x - xpos;
  417. X        offpoints[offpt].y= y - ypos;
  418. X        offpt++;
  419. X        }
  420. X    }
  421. X    ++x;
  422. X    if(diff & 0x40){
  423. X        if(line & 0x40){
  424. X        onpoints[onpt].x= x - xpos;
  425. X        onpoints[onpt].y= y - ypos;
  426. X        onpt++;
  427. X        }
  428. X        else{
  429. X        offpoints[offpt].x= x - xpos;
  430. X        offpoints[offpt].y= y - ypos;
  431. X        offpt++;
  432. X        }
  433. X    }
  434. X    ++x;    
  435. X    if(diff & 0x80){
  436. X        if(line & 0x80){
  437. X        onpoints[onpt].x= x - xpos;
  438. X        onpoints[onpt].y= y - ypos;
  439. X        onpt++;
  440. X        }
  441. X        else{
  442. X        offpoints[offpt].x= x - xpos;
  443. X        offpoints[offpt].y= y - ypos;
  444. X        offpt++;
  445. X        }
  446. X    }
  447. X    }
  448. X    else{
  449. X    yy=((y - ypos) << (scale -1));
  450. X    if(diff & 0x1){
  451. X        if(line & 0x1){
  452. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  453. X        onrects[onrect].y= yy;
  454. X        onrects[onrect].width = sc;
  455. X        onrects[onrect].height = sc;
  456. X        onrect++;
  457. X        }
  458. X        else{
  459. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  460. X        offrects[offrect].y= yy;
  461. X        offrects[offrect].width = sc;
  462. X        offrects[offrect].height = sc;
  463. X        offrect++;
  464. X        }
  465. X    }
  466. X    ++x;
  467. X    if(diff & 0x2){
  468. X        if(line & 0x2){
  469. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  470. X        onrects[onrect].y= yy;
  471. X        onrects[onrect].width = sc;
  472. X        onrects[onrect].height = sc;
  473. X        onrect++;
  474. X        }
  475. X        else{
  476. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  477. X        offrects[offrect].y= yy;
  478. X        offrects[offrect].width = sc;
  479. X        offrects[offrect].height = sc;
  480. X        offrect++;
  481. X        }
  482. X    }
  483. X    ++x;
  484. X    if(diff & 0x4){
  485. X        if(line & 0x4){
  486. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  487. X        onrects[onrect].y= yy;
  488. X        onrects[onrect].width = sc;
  489. X        onrects[onrect].height = sc;
  490. X        onrect++;
  491. X        }
  492. X        else{
  493. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  494. X        offrects[offrect].y= yy;
  495. X        offrects[offrect].width = sc;
  496. X        offrects[offrect].height = sc;
  497. X        offrect++;
  498. X        }
  499. X    }
  500. X    ++x;
  501. X    if(diff & 0x8){
  502. X        if(line & 0x8){
  503. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  504. X        onrects[onrect].y= yy;
  505. X        onrects[onrect].width = sc;
  506. X        onrects[onrect].height = sc;
  507. X        onrect++;
  508. X        }
  509. X        else{
  510. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  511. X        offrects[offrect].y= yy;
  512. X        offrects[offrect].width = sc;
  513. X        offrects[offrect].height = sc;
  514. X        offrect++;
  515. X        }
  516. X    }
  517. X    ++x;
  518. X    if(diff & 0x10){
  519. X        if(line & 0x10){
  520. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  521. X        onrects[onrect].y= yy;
  522. X        onrects[onrect].width = sc;
  523. X        onrects[onrect].height = sc;
  524. X        onrect++;
  525. X        }
  526. X        else{
  527. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  528. X        offrects[offrect].y= yy;
  529. X        offrects[offrect].width = sc;
  530. X        offrects[offrect].height = sc;
  531. X        offrect++;
  532. X        }
  533. X    }
  534. X    ++x;
  535. X    if(diff & 0x20){
  536. X        if(line & 0x20){
  537. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  538. X        onrects[onrect].y= yy;
  539. X        onrects[onrect].width = sc;
  540. X        onrects[onrect].height = sc;
  541. X        onrect++;
  542. X        }
  543. X        else{
  544. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  545. X        offrects[offrect].y= yy;
  546. X        offrects[offrect].width = sc;
  547. X        offrects[offrect].height = sc;
  548. X        offrect++;
  549. X        }
  550. X    }
  551. X    ++x;
  552. X    if(diff & 0x40){
  553. X        if(line & 0x40){
  554. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  555. X        onrects[onrect].y= yy;
  556. X        onrects[onrect].width = sc;
  557. X        onrects[onrect].height = sc;
  558. X        onrect++;
  559. X        }
  560. X        else{
  561. X        offrects[offrect].x= ((x - xpos) << (scale -1));
  562. X        offrects[offrect].y= yy;
  563. X        offrects[offrect].width = sc;
  564. X        offrects[offrect].height = sc;
  565. X        offrect++;
  566. X        }
  567. X    }
  568. X    ++x;
  569. X    if(diff & 0x80){
  570. X        if(line & 0x80){
  571. X        onrects[onrect].x= ((x - xpos) << (scale -1));
  572. X        onrects[onrect].y= yy;
  573. X        onrects[onrect].width = sc;
  574. X        onrects[onrect].height = sc;
  575. X        onrect++;
  576. X        }
  577. X        else{
  578. X        offrects[offrect].x= ((x  - xpos) << (scale -1));
  579. X        offrects[offrect].y= yy;
  580. X        offrects[offrect].width = sc;
  581. X        offrects[offrect].height = sc;
  582. X        offrect++;
  583. X        }
  584. X    }
  585. X    }
  586. X    
  587. X}
  588. X
  589. Xvoid displaybox(x, y, ptr)
  590. Xunsigned long x, y;
  591. Xcellbox    *ptr;
  592. X{
  593. X    register unsigned long live1 = ptr->live1;
  594. X    register unsigned long live2 = ptr->live2;
  595. X    register unsigned long olive1 = ptr->olive1;
  596. X    register unsigned long olive2 = ptr->olive2;
  597. X
  598. X    displayline(live1,x,y,olive1);
  599. X    displayline(live1>>8,x,++y,olive1>>8);
  600. X    displayline(live1>>16,x,++y,olive1>>16);
  601. X    displayline(live1>>24,x,++y,olive1>>24);
  602. X    displayline(live2,x,++y,olive2);
  603. X    displayline(live2>>8,x,++y,olive2>>8);
  604. X    displayline(live2>>16,x,++y,olive2>>16);
  605. X    displayline(live2>>24,x,++y,olive2>>24);
  606. X    
  607. X}
  608. X
  609. END_OF_xlife-2.0/cell.c
  610. if test 7759 -ne `wc -c <xlife-2.0/cell.c`; then
  611.     echo shar: \"xlife-2.0/cell.c\" unpacked with wrong size!
  612. fi
  613. # end of overwriting check
  614. fi
  615. if test -f xlife-2.0/doc/on_blockpushers -a "${1}" != "-c" ; then 
  616.   echo shar: Will not over-write existing file \"xlife-2.0/doc/on_blockpushers\"
  617. else
  618. echo shar: Extracting \"xlife-2.0/doc/on_blockpushers\" \(8597 characters\)
  619. sed "s/^X//" >xlife-2.0/doc/on_blockpushers <<'END_OF_xlife-2.0/doc/on_blockpushers'
  620. XHere are some excerpts from my latest letter to Bob Wainwright, including
  621. Xa description of block pusher 3, another example of glider self-repair,
  622. Xand some p3s:
  623. X
  624. X     Last month I spent quite a bit of time trying to build a smaller block
  625. Xpusher.  After building a smaller catcher as described in my 12/14/89
  626. Xletter, I went to work on the shotgun.  By adding 90 degree turns to
  627. Xreposition the glider sources, I was able to squeeze everything into a
  628. X271x289 rectangle.  I ran "block pusher 2" for 10000 generations, during
  629. Xwhich the block moved 10 times.  That's enough to determine the min and max
  630. Xpopulations: 2389 and 2584.  But I was annoyed because it was still too big
  631. Xfor my fast screen-oriented program.  So I decided to look for a smaller
  632. Xsalvo which could push a block.  I started searching through the 2 glider +
  633. Xblock collisions, hoping to find one which would move the block and send
  634. Xback a glider.  It seemed unlikely that the block would actually be pushed
  635. Xalong the diagonal, but I figured that I could use one of the many 2 glider
  636. X+ block collisions which just move the block to put the block back on the
  637. Xright diagonal, a convenient distance downstream.  But after watching a few
  638. Xhundred collisions, I found something even better: one which produced a
  639. Xblock 10 units downstream, sent back a glider, and produced some other junk
  640. X(a traffic light and 2 blocks) upstream from the new block.  It seemed
  641. Xlikely that I could find a way to add a third glider to suppress the junk.
  642. XI didn't quite manage that, despite a fairly thorough search.  But I did
  643. Xfind a way to add a glider so the junk was suppressed and a second return
  644. Xglider was produced.  Here's the salvo about to push a block; the reaction
  645. Xtakes 135 generations:
  646. X
  647. X        .o.......,.........,.........
  648. X        ..o......,.........,.........
  649. X        ooo......,.........,.........
  650. X        .........,.........,.........
  651. X        .........,.........,.........
  652. X        .........,.........,.........
  653. X        .........,.........,.........     Figure 0
  654. X        .........,.........,.........
  655. X        .........,.........,......o.o
  656. X        .........,.........,.......oo
  657. X        .........,.........,.......o.
  658. X        .........,.........,o........
  659. X        .........,.........,.oo...oo.
  660. X        .........,.........,oo....oo.
  661. X
  662. X     Because the 3 gliders's flightpaths are fairly far apart, I was able
  663. Xto build a shotgun without needing the G+LW -> G reaction.  Instead, I used
  664. Xa salvoing method which I'd thought of earlier but couldn't use for the 5
  665. Xglider salvo:
  666. X
  667. X          G1    G0
  668. X            \  /
  669. X             \/  E
  670. X             /\ /
  671. X            /  X
  672. X            \   R                Figure 1
  673. X             \ X    G3
  674. X              X \  /
  675. X             / \ \/
  676. X            /   \/\
  677. X          G2    /\ \
  678. X                \ \ \
  679. X                 \ \
  680. X                  \
  681. X
  682. XHere G denotes a gun, E an eater, and R a rephaser.  The G0 and G1 streams
  683. Xcross without interacting, as do the G0 and G2 streams.  The G0 stream
  684. Xmakes a 90 degree turn after crossing the G1 stream.  The G1 and G2 streams
  685. Xthen meet at a rephaser, which pulls the G1 stream 6 units to the left,
  686. Xbringing it closer to the G0 stream than a 90 degree turn by itself can.
  687. XThis produces the two lead gliders of the salvo.  The third is added by a
  688. Xfourth gun whose output makes a 90 degree turn.
  689. X
  690. X     The wideness of the salvo (and its fixed geometry) made building a
  691. Xsuppressor harder.  There's no way to destroy the salvo with just one
  692. Xperpendicular glider.  So I used two, one from the catcher and another
  693. Xwhich I call the assistant. The one from the catcher strikes the two lead
  694. Xgliders and creates a half honey farm.  The assistant destroys one beehive
  695. Xand the third salvo glider destroys the other.  But if the glider from the
  696. Xcatcher is missing (as it will be when the catcher detects a return
  697. Xglider), then the assistant passes through the salvo without harming it and
  698. Xthen gets eaten.  So I didn't need extra circuitry to delete the assistant
  699. Xwhen a return is detected.  Here's how the annihilation works; also shown
  700. Xis the eater which eats the assistant when the glider from the catcher is
  701. Xabsent:
  702. X
  703. X        .........,.........,.........,....a.a
  704. X        .........,.........,.........,....aa.
  705. X        .........,.........,.........,.....a.
  706. X        .........,.........,.........,.......
  707. X        .o.......,.........,.........,.......
  708. X        ..o......,.........,.........,.......
  709. X        ooo......,.........,.........,.......
  710. X        .........,.........,.........,.......
  711. X        .........,.........,.........,.......
  712. X        .........,.........,.........,.......
  713. X        .........,.........,.........,.......    Figure 2
  714. X        .........,.........,.........,.......
  715. X        .........,.........,......o.o,.......
  716. X        .........,.........,.......oo,.......
  717. X        .........,.........,.......o.,.......
  718. X        .........,.........,o........,.......
  719. X        .........,.........,.oo......,.......
  720. X        .........,.........,oo.......,.......
  721. X        .........,.........,.........,.......
  722. X        .........,.........,.........,.......
  723. X        .........,.........,.........,.......
  724. X        .........,.........,.ccc.....,.......
  725. X        .........,.........,...c.....,.......
  726. X        .........,..ee.....,..c......,.......
  727. X        .........,...e.....,.........,.......
  728. X        .........,eee......,.........,.......
  729. X        .........,e........,.........,.......
  730. X
  731. X     Building a catcher was much harder, because of the extra return
  732. Xglider.  Instead of using vanish reactions to detect the return, I had to
  733. Xuse ternaries.  (Not the usual ternaries, since the 2 return gliders are on
  734. Xslightly different flightpaths.)  Not surprisingly, such reactions turned
  735. Xout to be rare.  As a result, I wasn't able to use just queen bee shuttles
  736. Xfor 90 degree turns to make the detectors cross the diagonal; I also had to
  737. Xuse a pair of inverting 90 degree turns (p30 guns).  And there's another
  738. Xproblem:  Each time the block gets pushed, the round trip time for the
  739. Xsalvo and return increases by 80.  So there are 3 possible phases mod 120
  740. Xfor the first return glider. (That's why the detectors have to cross the
  741. Xdiagonal in 3 places.)  But the second return glider arrives about 80
  742. Xgenerations behind the first; it's almost in the same position and phase as
  743. Xthe next return glider will be.  So the detector that's farthest downstream
  744. Xmust be able to hit a first return glider in a certain place, but miss a
  745. Xsecond return glider in almost the same place.  And of course the detectors
  746. Xmust not interfere with escaping salvos.  Getting the geometry right was a
  747. Xreal pain!
  748. X
  749. X     Anyway, I finally got "block pusher 3" working.  The initial bounding
  750. Xbox is only 168x194.  It runs in my screen-oriented program at 5.3 hertz
  751. Xfor 4107 generations, pushing the block 4 times; on the 5th push it hits
  752. Xthe edge. I also ran it in my Forth program (at 0.5 hertz) for 16852
  753. Xgenerations, during which the block moved 13 times.  The population
  754. Xfluctuates between 1185 and 1424.  That could presumably be smoothed out
  755. Xsomewhat by pulling a couple of guns farther out to change their phases; 3
  756. Xof the 6 p120 guns are synchronized.  Also, I now know how to build a
  757. Xslightly smaller p120 gun, so the size could be decreased a bit.  (Maybe
  758. Xlater.  And maybe someday I'll build a squirt gun based on this.)
  759. X
  760. X. . .
  761. X
  762. XThe top glider in Figure 13 also repairs itself, changing 3/4'th of the
  763. Xforming honey farm into 2 boats.
  764. X
  765. X        ....o..
  766. X        .....oo
  767. X        ....oo.
  768. X        .......
  769. X        o.o....
  770. X        .oo....
  771. X        .o.....
  772. X        .......
  773. X        oo.....
  774. X        oo.....
  775. X
  776. X       Figure 13
  777. X
  778. X     Here are a few results from my search program.  Figure 15 shows a
  779. Xsmaller p3 with an active corner.  It fits in an 11x11 box; there are none
  780. Xin 10x11.  (I don't know about 10xN for N between 12 and 22.)  Figure 16 is
  781. Xa smaller version of Figure 1 of my 12/4/89 letter.  Figures 17 and 18 show
  782. Xp3 billiard tables which act like 2 and 4 overlapping copies of Figure 16
  783. Xand its kin.
  784. X
  785. X        ......o....
  786. X        ......ooo..
  787. X        oo..oo...o.    oo.oo....    ..oo.o..o    ...oo.o..
  788. X        .o.o.o.oo..    o.oo...oo    .o.o.oooo    ...o.oo..
  789. X        ....oo.o...    .....o..o    .o.o.....    oo.o.....
  790. X        ..o.o..o...    .ooo.ooo.    oo.o.oo..    .o.o.oooo
  791. X        ..o..ooo.oo    o........    o......o.    o.......o
  792. X        oo.oo...o.o    oo..oo...    ..oo.o.o.    oooo.o.o.
  793. X        ...o..o.o..    .....o...    ...o.oo..    .....o.oo
  794. X        ..o.o...o..    ....o....    ...o.....    ..oo.o...
  795. X        oo....oo...    ....oo...    ..oo.....    ..o.oo...
  796. X
  797. X         Figure 15     Figure 16    Figure 17    Figure 18
  798. END_OF_xlife-2.0/doc/on_blockpushers
  799. if test 8597 -ne `wc -c <xlife-2.0/doc/on_blockpushers`; then
  800.     echo shar: \"xlife-2.0/doc/on_blockpushers\" unpacked with wrong size!
  801. fi
  802. # end of overwriting check
  803. fi
  804. if test -f xlife-2.0/generate.c -a "${1}" != "-c" ; then 
  805.   echo shar: Will not over-write existing file \"xlife-2.0/generate.c\"
  806. else
  807. echo shar: Extracting \"xlife-2.0/generate.c\" \(8368 characters\)
  808. sed "s/^X//" >xlife-2.0/generate.c <<'END_OF_xlife-2.0/generate.c'
  809. X/*
  810. X * XLife Copyright 1989 Jon Bennett jb7m+@andrew.cmu.edu, jcrb@cs.cmu.edu
  811. X *
  812. X * Permission to use, copy, modify, distribute, and sell this software and its
  813. X * documentation for any purpose is hereby granted without fee, provided that
  814. X * the above copyright notice appear in all copies and that both that
  815. X * copyright notice and this permission notice appear in supporting
  816. X * documentation, and that the name of the copyright holders not be used in
  817. X * advertising or publicity pertaining to distribution of the software without
  818. X * specific, written prior permission.  The copyright holders make no
  819. X * representations about the suitability of this software for any purpose.  It
  820. X * is provided "as is" without express or implied warranty.
  821. X *
  822. X * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  823. X * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  824. X * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  825. X * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  826. X * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  827. X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  828. X * PERFORMANCE OF THIS SOFTWARE.
  829. X *
  830. X * CMU SUCKS
  831. X */
  832. X
  833. X#include "defs.h"
  834. X#include "cellbox.h"
  835. X#include "tab.h"
  836. X
  837. Xvoid generate(){
  838. X    
  839. X    
  840. X    register u_long t1,t2,t3,*tmpptr,y;
  841. X    cellbox *cptr,*tptr,*cptrup,*cptrdn,*cptrlf,*cptrrt;
  842. X
  843. X#ifdef PROF    
  844. X    link_called = link_search = 0;
  845. X    create_called = create_null = 0;
  846. X#endif PROF
  847. X
  848. X    cptr = head;
  849. X    numcells=0;
  850. X    generations++;
  851. X    while(cptr ){
  852. X
  853. X    if(!(cptr->live1 || cptr->live2)){
  854. X        cptr = cptr->next;
  855. X        continue;
  856. X    }
  857. X
  858. X    cptrup=cptr->up;
  859. X    cptrdn=cptr->dn;
  860. X    cptrlf=cptr->lf;
  861. X    cptrrt=cptr->rt;
  862. X    
  863. X    t1=cptr->live1&0xff;
  864. X    if(t1){
  865. X        if(cptrup==NULL){
  866. X        cptrup=link(cptr->x,cptr->y - 8);
  867. X        cptrup->dn=cptr;
  868. X        }
  869. X        t2=tab1[t1];
  870. X        cptrup->on[7]+=t2;
  871. X        cptr->on[1]+=t2;
  872. X        cptr->on[0]+=tab2[t1];
  873. X    }
  874. X    
  875. X    t1=(cptr->live2 & 0xff000000)>>24;        
  876. X    if(t1){
  877. X        if(cptrdn==NULL){
  878. X        cptrdn=link(cptr->x,cptr->y + 8);
  879. X        cptrdn->up=cptr;
  880. X        }
  881. X        t2=tab1[t1];
  882. X        cptrdn->on[0]+=t2;
  883. X        cptr->on[6]+=t2;
  884. X        cptr->on[7]+=tab2[t1];
  885. X    }
  886. X
  887. X    t1=cptr->live1;
  888. X    t2=cptr->live2;
  889. X
  890. X    if(t1 & 0x1010101){
  891. X        if(cptrlf==NULL){
  892. X        cptrlf=link(cptr->x - 8,cptr->y);
  893. X        cptrlf->rt=cptr;
  894. X        }
  895. X        if(t1 & 0x1){
  896. X        cptrlf->on[0]+=0x10000000;
  897. X        cptrlf->on[1]+=0x10000000;
  898. X        if(cptrlf->up==NULL){
  899. X            cptrlf->up=link(cptr->x - 8,cptr->y - 8);
  900. X        }
  901. X        cptrlf->up->on[7]+= 0x10000000;
  902. X        cptrlf->up->dn=cptrlf;
  903. X        }
  904. X        if(t1 & 0x100){
  905. X        cptrlf->on[0]+=0x10000000;
  906. X        cptrlf->on[1]+=0x10000000;
  907. X        cptrlf->on[2]+=0x10000000;
  908. X        }
  909. X        if(t1 & 0x10000){
  910. X        cptrlf->on[1]+=0x10000000;
  911. X        cptrlf->on[2]+=0x10000000;
  912. X        cptrlf->on[3]+=0x10000000;
  913. X        }
  914. X        if(t1 & 0x1000000){
  915. X        cptrlf->on[2]+=0x10000000;
  916. X        cptrlf->on[3]+=0x10000000;
  917. X        cptrlf->on[4]+=0x10000000;
  918. X        }
  919. X    }
  920. X    
  921. X    if(t2 & 0x1010101){
  922. X        if(cptrlf==NULL){
  923. X        cptrlf=link(cptr->x - 8,cptr->y);
  924. X        cptrlf->rt=cptr;
  925. X        }
  926. X        if(t2 & 0x1){
  927. X        cptrlf->on[3]+=0x10000000;
  928. X        cptrlf->on[4]+=0x10000000;
  929. X        cptrlf->on[5]+=0x10000000;
  930. X        }
  931. X        if(t2 & 0x100){
  932. X        cptrlf->on[4]+=0x10000000;
  933. X        cptrlf->on[5]+=0x10000000;
  934. X        cptrlf->on[6]+=0x10000000;
  935. X        }
  936. X        if(t2 & 0x10000){
  937. X        cptrlf->on[5]+=0x10000000;
  938. X        cptrlf->on[6]+=0x10000000;
  939. X        cptrlf->on[7]+=0x10000000;
  940. X        }        
  941. X        if(t2 & 0x1000000){
  942. X        cptrlf->on[6]+=0x10000000;
  943. X        cptrlf->on[7]+=0x10000000;
  944. X        if(cptrlf->dn==NULL){
  945. X            cptrlf->dn=link(cptr->x - 8,cptr->y + 8);
  946. X        }
  947. X        cptrlf->dn->on[0]+= 0x10000000;
  948. X        cptrlf->dn->up=cptrlf;
  949. X        }
  950. X    }
  951. X    
  952. X    if(t1 & 0x80808080){
  953. X        if(cptrrt == NULL){
  954. X        cptrrt=link(cptr->x + 8,cptr->y);
  955. X        cptrrt->lf=cptr;
  956. X        }
  957. X        if(t1 & 0x80){
  958. X        cptrrt->on[0]+=0x1;
  959. X        cptrrt->on[1]+=0x1;
  960. X        if(cptrrt->up==NULL){
  961. X            cptrrt->up=link(cptr->x + 8,cptr->y - 8);
  962. X        }
  963. X        cptrrt->up->on[7]+= 0x1;
  964. X        cptrrt->up->dn=cptrrt;
  965. X        }
  966. X        if(t1 & 0x8000){
  967. X            cptrrt->on[0]+=0x1;
  968. X            cptrrt->on[1]+=0x1;
  969. X            cptrrt->on[2]+=0x1;
  970. X        }
  971. X        if(t1 & 0x800000){
  972. X            cptrrt->on[1]+=0x1;
  973. X            cptrrt->on[2]+=0x1;
  974. X            cptrrt->on[3]+=0x1;
  975. X        }
  976. X        if(t1 & 0x80000000){
  977. X            cptrrt->on[2]+=0x1;
  978. X            cptrrt->on[3]+=0x1;
  979. X            cptrrt->on[4]+=0x1;
  980. X        }
  981. X    }
  982. X    
  983. X    if(t2 & 0x80808080){
  984. X        if(cptrrt == NULL){
  985. X        cptrrt=link(cptr->x + 8,cptr->y);
  986. X        cptrrt->lf=cptr;
  987. X        }
  988. X        if(t2 & 0x80){
  989. X            cptrrt->on[3]+=0x1;
  990. X            cptrrt->on[4]+=0x1;
  991. X            cptrrt->on[5]+=0x1;
  992. X        }
  993. X        if(t2 & 0x8000){
  994. X            cptrrt->on[4]+=0x1;
  995. X            cptrrt->on[5]+=0x1;
  996. X            cptrrt->on[6]+=0x1;
  997. X        }
  998. X        if(t2 & 0x800000){
  999. X            cptrrt->on[5]+=0x1;
  1000. X            cptrrt->on[6]+=0x1;
  1001. X            cptrrt->on[7]+=0x1;
  1002. X        }
  1003. X        if(t2 & 0x80000000){
  1004. X        cptrrt->on[6]+=0x1;
  1005. X        cptrrt->on[7]+=0x1;
  1006. X        if(cptrrt->dn==NULL){
  1007. X            cptrrt->dn=link(cptr->x + 8,cptr->y + 8);
  1008. X        }
  1009. X        cptrrt->dn->on[0]+= 0x1;
  1010. X        cptrrt->dn->up=cptrrt;
  1011. X        }
  1012. X    }
  1013. X    
  1014. X    t1=(cptr->live1 & 0xff00) >> 8;
  1015. X    t2=(cptr->live1 & 0xff0000) >> 16;
  1016. X    
  1017. X    if(t1){
  1018. X        t3 = tab1[t1];
  1019. X        cptr->on[1]+=tab2[t1];
  1020. X        cptr->on[0]+=t3;
  1021. X        cptr->on[2]+=t3;
  1022. X    }
  1023. X    
  1024. X    t1=(cptr->live1 & 0xff000000) >> 24;
  1025. X    
  1026. X    if(t2){
  1027. X        t3 = tab1[t2];
  1028. X        cptr->on[2]+=tab2[t2];
  1029. X        cptr->on[1]+=t3;
  1030. X        cptr->on[3]+=t3;
  1031. X    }
  1032. X    
  1033. X    t2=(cptr->live2 & 0xff);
  1034. X    
  1035. X    if(t1){
  1036. X        t3 = tab1[t1];
  1037. X        cptr->on[3]+=tab2[t1];
  1038. X        cptr->on[2]+=t3;
  1039. X        cptr->on[4]+=t3;
  1040. X    }
  1041. X    
  1042. X    t1=(cptr->live2 & 0xff00) >> 8;
  1043. X    
  1044. X    if(t2){
  1045. X        t3 = tab1[t2];
  1046. X        cptr->on[4]+=tab2[t2];
  1047. X        cptr->on[3]+=t3;
  1048. X        cptr->on[5]+=t3;
  1049. X    }
  1050. X    
  1051. X    t2=(cptr->live2 & 0xff0000) >> 16;        
  1052. X    
  1053. X    if(t1){
  1054. X        t3 = tab1[t1];
  1055. X        cptr->on[5]+=tab2[t1];
  1056. X        cptr->on[4]+=t3;
  1057. X        cptr->on[6]+=t3;
  1058. X    }
  1059. X    
  1060. X    if(t2){
  1061. X        t3 = tab1[t2];
  1062. X        cptr->on[6]+=tab2[t2];
  1063. X        cptr->on[5]+=t3;
  1064. X        cptr->on[7]+=t3;
  1065. X    }
  1066. X    
  1067. X    cptr->up=cptrup;
  1068. X    cptr->dn=cptrdn;
  1069. X    cptr->lf=cptrlf;
  1070. X    cptr->rt=cptrrt;
  1071. X    cptr=cptr->next;
  1072. X    }
  1073. X    
  1074. X    cptr=head;
  1075. X    while(cptr){
  1076. X    t1=cptr->live1;
  1077. X    cptr->olive1=t1;
  1078. X    tmpptr=cptr->on;
  1079. X    t2=0;
  1080. X    t3= *tmpptr;
  1081. X    if(t3 &0xffff){
  1082. X        t2=lookup[((t3 & 0xffff)<<4) + (t1&0xf)];
  1083. X    }
  1084. X    if(t3 &0xffff0000){
  1085. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>4)&0xf)] << 4;
  1086. X    }
  1087. X    *tmpptr=0;
  1088. X    tmpptr++;
  1089. X    t3= *tmpptr;
  1090. X    if(t3 &0xffff){
  1091. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>8)&0xf)] << 8;
  1092. X    }
  1093. X    if(t3 &0xffff0000){
  1094. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>12)&0xf)] << 12;
  1095. X    }
  1096. X    *tmpptr=0;
  1097. X    tmpptr++;
  1098. X    t3= *tmpptr;
  1099. X    if(t3 &0xffff){
  1100. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>16)&0xf)] << 16;
  1101. X    }
  1102. X    if(t3 &0xffff0000){
  1103. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>20)&0xf)] << 20;
  1104. X    }
  1105. X    *tmpptr=0;
  1106. X    tmpptr++;
  1107. X    t3= *tmpptr;
  1108. X    if(t3 &0xffff){
  1109. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>24)&0xf)] << 24;
  1110. X    }
  1111. X    if(t3 &0xffff0000){
  1112. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>28)&0xf)] << 28;
  1113. X    }
  1114. X    *tmpptr=0;
  1115. X    tmpptr++;
  1116. X    t3= *tmpptr;
  1117. X    cptr->live1=t2;
  1118. X    t1=cptr->olive2=cptr->live2;    
  1119. X    t2=0;
  1120. X
  1121. X    if(t3 &0xffff){
  1122. X        t2=lookup[((t3 & 0xffff)<<4) + (t1&0xf)];
  1123. X    }
  1124. X    if(t3 &0xffff0000){
  1125. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>4)&0xf)] << 4;
  1126. X    }
  1127. X    *tmpptr=0;
  1128. X    tmpptr++;
  1129. X    t3= *tmpptr;
  1130. X    if(t3 &0xffff){
  1131. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>8)&0xf)] << 8;
  1132. X    }
  1133. X    if(t3 &0xffff0000){
  1134. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>12)&0xf)] << 12;
  1135. X    }
  1136. X    *tmpptr=0;
  1137. X    tmpptr++;
  1138. X    t3= *tmpptr;
  1139. X    if(t3 &0xffff){
  1140. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>16)&0xf)] << 16;
  1141. X    }
  1142. X    if(t3 &0xffff0000){
  1143. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>20)&0xf)] << 20;
  1144. X    }
  1145. X    *tmpptr=0;
  1146. X    tmpptr++;
  1147. X    t3= *tmpptr;
  1148. X    if(t3 &0xffff){
  1149. X        t2|=lookup[((t3 & 0xffff)<<4) + ((t1>>24)&0xf)] << 24;
  1150. X    }
  1151. X    if(t3 &0xffff0000){
  1152. X        t2|=lookup[((t3 & 0xffff0000)>>12) + ((t1>>28)&0xf)] << 28;
  1153. X    }
  1154. X    *tmpptr=0;
  1155. X    cptr->live2=t2;
  1156. X    
  1157. X    if(dispcells){
  1158. X        t1=cptr->live1;
  1159. X        for(y=0;y<32;y++)
  1160. X        if(t1 & (1<<y)) numcells++;
  1161. X        t1=cptr->live2;
  1162. X        for(y=0;y<32;y++)
  1163. X        if(t1 & (1<<y)) numcells++;
  1164. X    }    
  1165. X    
  1166. X     if(cptr->live1 || cptr->live2){
  1167. X        cptr->dead=0;
  1168. X        cptr=cptr->next;
  1169. X    }
  1170. X    else{
  1171. X        cptr->dead++;
  1172. X        if(cptr->dead > maxdead){
  1173. X        tptr=cptr->next;
  1174. X        kill(cptr);
  1175. X        cptr=tptr;
  1176. X        }
  1177. X        else{
  1178. X        cptr=cptr->next;
  1179. X        }
  1180. X    }
  1181. X    }
  1182. X#ifdef PROF
  1183. X    printf("num=%d ",numboxes);
  1184. X    if(link_called){
  1185. X    printf("l_c=%d ",link_called);
  1186. X    if(link_search){
  1187. X        printf(" l_ave=%f ",link_search/(float)link_called);
  1188. X    }
  1189. X    }
  1190. X    if(create_called){
  1191. X    printf("c_c=%d ",create_called);
  1192. X    if(create_null){
  1193. X        printf(" c_ave=%f ",create_null/(float)create_called);
  1194. X    }
  1195. X    }
  1196. X
  1197. X    printf("\n");
  1198. X#endif PROF
  1199. X}
  1200. X
  1201. X
  1202. END_OF_xlife-2.0/generate.c
  1203. if test 8368 -ne `wc -c <xlife-2.0/generate.c`; then
  1204.     echo shar: \"xlife-2.0/generate.c\" unpacked with wrong size!
  1205. fi
  1206. # end of overwriting check
  1207. fi
  1208. if test -f xlife-2.0/main.c -a "${1}" != "-c" ; then 
  1209.   echo shar: Will not over-write existing file \"xlife-2.0/main.c\"
  1210. else
  1211. echo shar: Extracting \"xlife-2.0/main.c\" \(6984 characters\)
  1212. sed "s/^X//" >xlife-2.0/main.c <<'END_OF_xlife-2.0/main.c'
  1213. X/*
  1214. X * XLife Copyright 1989 Jon Bennett jb7m+@andrew.cmu.edu, jcrb@cs.cmu.edu
  1215. X *
  1216. X * Permission to use, copy, modify, distribute, and sell this software and its
  1217. X * documentation for any purpose is hereby granted without fee, provided that
  1218. X * the above copyright notice appear in all copies and that both that
  1219. X * copyright notice and this permission notice appear in supporting
  1220. X * documentation, and that the name of the copyright holders not be used in
  1221. X * advertising or publicity pertaining to distribution of the software without
  1222. X * specific, written prior permission.  The copyright holders make no
  1223. X * representations about the suitability of this software for any purpose.  It
  1224. X * is provided "as is" without express or implied warranty.
  1225. X *
  1226. X * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  1227. X * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  1228. X * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  1229. X * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  1230. X * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  1231. X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  1232. X * PERFORMANCE OF THIS SOFTWARE.
  1233. X *
  1234. X * CMU SUCKS
  1235. X */
  1236. X
  1237. X#include <X11/Xos.h>
  1238. X
  1239. X#include "defs.h"
  1240. X#include "icon.h"
  1241. X#include "cursor_data.h"
  1242. X#include "cursor_mask.h"
  1243. X#include "patchlevel.h"
  1244. X
  1245. X#define BORDERWIDTH 2         /* width of window manager borders to assume */
  1246. X
  1247. Xmain(argc, argv)
  1248. Xint argc;
  1249. Xchar **argv;
  1250. X{
  1251. X    int i;
  1252. X    Pixmap icon,cursor_data,cursor_mask;
  1253. X    XSizeHints hints;
  1254. X    XSetWindowAttributes winat;
  1255. X    XColor white,black,dummy;
  1256. X    XComposeStatus stat;
  1257. X    char *geomstring = NULL;
  1258. X    char *initpat = NULL;
  1259. X    int bwidth = BORDERWIDTH;
  1260. X    struct timeval inputdelay, timeouttemp;
  1261. X    
  1262. X    if (!(disp = XOpenDisplay(getenv("DISPLAY"))))
  1263. X    fatal("Can't open Display\n");
  1264. X
  1265. X    for (i = 1; i < argc; i++)
  1266. X    {
  1267. X    if (strcmp(argv[i], "-geometry") == 0)
  1268. X        geomstring = argv[++i];
  1269. X    else if (*argv[i] == '=')
  1270. X        geomstring = argv[i];
  1271. X    else if (strcmp(argv[i], "-bw") == 0)
  1272. X        bwidth = atoi(argv[++i]);
  1273. X    else if (*argv[i] != '-')
  1274. X    {
  1275. X        initpat = argv[i];
  1276. X        break;
  1277. X    }
  1278. X    }
  1279. X
  1280. X    screen = DefaultScreen(disp);
  1281. X    rootw = RootWindow(disp, screen);
  1282. X    fcolor = WhitePixel(disp, screen);
  1283. X    bcolor = BlackPixel(disp, screen);
  1284. X
  1285. X    hints.x = 0;
  1286. X    hints.y = 0;    
  1287. X    width = DisplayWidth(disp,screen);
  1288. X    height = DisplayHeight(disp,screen);
  1289. X
  1290. X    hints.width = width - bwidth*2;
  1291. X    hints.height = height - bwidth*2;
  1292. X    
  1293. X    hints.flags = PPosition | PSize;
  1294. X    if (geomstring != NULL)
  1295. X    {
  1296. X    int result;
  1297. X
  1298. X    result = XParseGeometry(geomstring,&hints.x,&hints.y,
  1299. X                &hints.width,&hints.height);
  1300. X    if (result & XNegative)
  1301. X        hints.x += DisplayWidth(disp,screen) - hints.width - bwidth * 2;
  1302. X    if (result & YNegative)
  1303. X        hints.y += DisplayHeight(disp,screen) - hints.height - bwidth*2;
  1304. X    if (result & XValue || result & YValue)
  1305. X    {
  1306. X        hints.flags |= USPosition;
  1307. X        hints.flags &= ~PPosition;
  1308. X    }
  1309. X    if (result & WidthValue || result & HeightValue)
  1310. X    {
  1311. X        hints.flags |= USSize;
  1312. X        hints.flags &= ~PSize;
  1313. X    }
  1314. X    }
  1315. X    
  1316. X    mainw = XCreateSimpleWindow(disp, rootw,
  1317. X        0, 0, hints.width, hints.height, BORDERWIDTH, fcolor, bcolor);
  1318. X
  1319. X    if(!mainw)
  1320. X    fatal("Can't open main window");
  1321. X
  1322. X    icon = XCreateBitmapFromData(disp, mainw, icon_bits, icon_width, icon_height);
  1323. X    XSetStandardProperties(disp, mainw, "Xlife: the game of bit manipulation , version 2.0", "Xlife", icon, argv, argc, &hints);
  1324. X
  1325. X    xgcv.background = bcolor;
  1326. X    xgcv.foreground = bcolor;
  1327. X    blackgc = XCreateGC(disp, mainw, GCForeground | GCBackground, &xgcv);
  1328. X    xgcv.foreground = fcolor;
  1329. X    ntextgc = XCreateGC(disp, mainw, GCForeground | GCBackground, &xgcv);
  1330. X    btextgc = XCreateGC(disp, mainw, GCForeground | GCBackground, &xgcv);
  1331. X    whitegc = XCreateGC(disp, mainw, GCForeground | GCBackground, &xgcv);
  1332. X    
  1333. X    if(!((nfont = XLoadQueryFont(disp, NORMALFONT)) && (bfont = XLoadQueryFont(disp, BOLDFONT))))
  1334. X    fatal("Can't load font\n");
  1335. X    XSetFont(disp, ntextgc, nfont->fid);
  1336. X    XSetFont(disp, btextgc, bfont->fid);
  1337. X    xgcv.function = GXcopy;
  1338. X    xgcv.plane_mask = 1;
  1339. X
  1340. X    XAllocNamedColor(disp, DefaultColormap(disp, screen), "white", &white, &dummy);
  1341. X    XAllocNamedColor(disp, DefaultColormap(disp, screen), "black", &black, &dummy);
  1342. X    cursor_data = XCreateBitmapFromData(disp, mainw, cursor_data_bits, cursor_data_width, cursor_data_height);
  1343. X    cursor_mask = XCreateBitmapFromData(disp, mainw, cursor_mask_bits, cursor_mask_width, cursor_mask_height);
  1344. X    cursor = XCreatePixmapCursor(disp, cursor_data, cursor_mask, &white, &black, cursor_data_x_hot, cursor_data_y_hot);
  1345. X    XDefineCursor(disp, mainw, cursor);
  1346. X    
  1347. X    inputgc = XCreateGC(disp, mainw, GCFunction | GCPlaneMask, &xgcv);
  1348. X
  1349. X    lifew = XCreateSimpleWindow(disp, mainw,
  1350. X        0, 0,width , (height - INPUTH), BORDERWIDTH,
  1351. X        fcolor, bcolor);
  1352. X    inputw = XCreateSimpleWindow(disp, mainw,
  1353. X        0, (height - INPUTH), width, INPUTH, BORDERWIDTH,
  1354. X        fcolor, bcolor);
  1355. X
  1356. X    winat.win_gravity = SouthGravity;
  1357. X    XChangeWindowAttributes(disp,inputw,CWWinGravity,&winat);
  1358. X    
  1359. X    XSelectInput(disp,mainw, ExposureMask | StructureNotifyMask);
  1360. X    XSelectInput(disp, inputw, KeyPressMask | ExposureMask);
  1361. X    XSelectInput(disp, lifew, KeyPressMask | ButtonPressMask | Button1MotionMask | Button3MotionMask | ExposureMask);
  1362. X
  1363. X    initcells();
  1364. X    numcomments=0;
  1365. X    settimeout(0);
  1366. X    xpos = ypos = STARTPOS;
  1367. X    dispcells=0;
  1368. X    scale = 1;
  1369. X    born = 8;
  1370. X    live = 12;
  1371. X    maxdead = 10;
  1372. X    generations = 0;
  1373. X    numboxes = 0;
  1374. X    numcells = 0;
  1375. X    width = hints.width;
  1376. X    height = hints.height;
  1377. X    inputlength = width/FONTWIDTH;
  1378. X    state = STOP;
  1379. X    fname[0]=NULL;
  1380. X    strcpy(loadirbuf,DIR);
  1381. X
  1382. X    /* the one actual comment :-). only accept one pattern since it is highly
  1383. X     *  unlikely that overlaying n patterns is what you want to do
  1384. X     */
  1385. X    gentab();
  1386. X    if (initpat != NULL)
  1387. X    do_loadfile(initpat);
  1388. X    
  1389. X    XMapWindow(disp, inputw);
  1390. X    XMapWindow(disp, lifew);
  1391. X    XMapWindow(disp, mainw);
  1392. X
  1393. X    XFlush(disp);
  1394. X    
  1395. X    for(;;) {
  1396. X    while(XCheckMaskEvent(disp, KeyPressMask | ButtonPressMask | Button1MotionMask | Button3MotionMask | ExposureMask | StructureNotifyMask,&event)){
  1397. X        switch(event.type) {
  1398. X          case KeyPress:
  1399. X        XLookupString(&event.xkey, keybuf, 16, &ks, &stat);
  1400. X        if (!DoKeySymIn(ks))
  1401. X            DoKeyIn(keybuf);
  1402. X        break;
  1403. X          case MotionNotify:
  1404. X        Motion();
  1405. X        break;
  1406. X          case ButtonPress:
  1407. X        Button();
  1408. X        break;
  1409. X          case ConfigureNotify:
  1410. X        DoResize();
  1411. X        break;
  1412. X          case Expose:
  1413. X        DoExpose(ClassifyWin(event.xexpose.window));
  1414. X          default:
  1415. X        break;
  1416. X        }
  1417. X    }
  1418. X    
  1419. X    if ((state == RUN) | (state == HIDE)) {
  1420. X        generate();
  1421. X        redisplay();
  1422. X    } else {
  1423. X        inputdelay.tv_sec = 0;
  1424. X        inputdelay.tv_usec = 100000;
  1425. X        (void) select(32,0,0,0,&inputdelay);
  1426. X    }
  1427. X
  1428. X    if (state== RUN){
  1429. X        timeouttemp.tv_sec = timeout.tv_sec;
  1430. X        timeouttemp.tv_usec = timeout.tv_usec;
  1431. X        (void) select(32,0,0,0,&timeouttemp);
  1432. X    }
  1433. X    }
  1434. X}
  1435. X
  1436. END_OF_xlife-2.0/main.c
  1437. if test 6984 -ne `wc -c <xlife-2.0/main.c`; then
  1438.     echo shar: \"xlife-2.0/main.c\" unpacked with wrong size!
  1439. fi
  1440. # end of overwriting check
  1441. fi
  1442. if test -f xlife-2.0/patterns/blockpusher3.life -a "${1}" != "-c" ; then 
  1443.   echo shar: Will not over-write existing file \"xlife-2.0/patterns/blockpusher3.life\"
  1444. else
  1445. echo shar: Extracting \"xlife-2.0/patterns/blockpusher3.life\" \(9579 characters\)
  1446. sed "s/^X//" >xlife-2.0/patterns/blockpusher3.life <<'END_OF_xlife-2.0/patterns/blockpusher3.life'
  1447. X#R
  1448. X-67 -96
  1449. X-66 -96
  1450. X  3 -96
  1451. X  4 -96
  1452. X-67 -95
  1453. X-66 -95
  1454. X  3 -95
  1455. X  4 -95
  1456. X-53 -92
  1457. X-52 -92
  1458. X-11 -92
  1459. X-10 -92
  1460. X-67 -91
  1461. X-53 -91
  1462. X-10 -91
  1463. X  4 -91
  1464. X-68 -90
  1465. X-67 -90
  1466. X-66 -90
  1467. X-55 -90
  1468. X-53 -90
  1469. X-10 -90
  1470. X -8 -90
  1471. X  3 -90
  1472. X  4 -90
  1473. X  5 -90
  1474. X-69 -89
  1475. X-65 -89
  1476. X-55 -89
  1477. X-54 -89
  1478. X-40 -89
  1479. X-39 -89
  1480. X-24 -89
  1481. X-23 -89
  1482. X -9 -89
  1483. X -8 -89
  1484. X  2 -89
  1485. X  6 -89
  1486. X-70 -88
  1487. X-68 -88
  1488. X-67 -88
  1489. X-66 -88
  1490. X-64 -88
  1491. X-40 -88
  1492. X-39 -88
  1493. X-24 -88
  1494. X-23 -88
  1495. X  1 -88
  1496. X  3 -88
  1497. X  4 -88
  1498. X  5 -88
  1499. X  7 -88
  1500. X-69 -87
  1501. X-68 -87
  1502. X-67 -87
  1503. X-66 -87
  1504. X-65 -87
  1505. X  2 -87
  1506. X  3 -87
  1507. X  4 -87
  1508. X  5 -87
  1509. X  6 -87
  1510. X-39 -83
  1511. X-24 -83
  1512. X-64 -82
  1513. X-63 -82
  1514. X-62 -82
  1515. X-41 -82
  1516. X-40 -82
  1517. X-38 -82
  1518. X-37 -82
  1519. X-26 -82
  1520. X-25 -82
  1521. X-23 -82
  1522. X-22 -82
  1523. X -1 -82
  1524. X  0 -82
  1525. X  1 -82
  1526. X-62 -81
  1527. X -1 -81
  1528. X-63 -80
  1529. X-42 -80
  1530. X-36 -80
  1531. X-27 -80
  1532. X-21 -80
  1533. X  0 -80
  1534. X-42 -78
  1535. X-41 -78
  1536. X-39 -78
  1537. X-37 -78
  1538. X-36 -78
  1539. X-27 -78
  1540. X-26 -78
  1541. X-24 -78
  1542. X-22 -78
  1543. X-21 -78
  1544. X-37 -75
  1545. X-26 -75
  1546. X-40 -74
  1547. X-37 -74
  1548. X-26 -74
  1549. X-23 -74
  1550. X-66 -73
  1551. X-65 -73
  1552. X-64 -73
  1553. X-37 -73
  1554. X-26 -73
  1555. X  1 -73
  1556. X  2 -73
  1557. X  3 -73
  1558. X-67 -72
  1559. X-63 -72
  1560. X-41 -72
  1561. X-40 -72
  1562. X-23 -72
  1563. X-22 -72
  1564. X  0 -72
  1565. X  4 -72
  1566. X-68 -71
  1567. X-62 -71
  1568. X-45 -71
  1569. X-41 -71
  1570. X-22 -71
  1571. X-18 -71
  1572. X -1 -71
  1573. X  5 -71
  1574. X-68 -70
  1575. X-67 -70
  1576. X-65 -70
  1577. X-63 -70
  1578. X-62 -70
  1579. X-46 -70
  1580. X-45 -70
  1581. X-41 -70
  1582. X-39 -70
  1583. X-24 -70
  1584. X-22 -70
  1585. X-18 -70
  1586. X-17 -70
  1587. X -1 -70
  1588. X  0 -70
  1589. X  2 -70
  1590. X  4 -70
  1591. X  5 -70
  1592. X-46 -69
  1593. X-44 -69
  1594. X-40 -69
  1595. X-39 -69
  1596. X-24 -69
  1597. X-23 -69
  1598. X-19 -69
  1599. X-17 -69
  1600. X-65 -67
  1601. X  2 -67
  1602. X-66 -66
  1603. X-64 -66
  1604. X-40 -66
  1605. X-39 -66
  1606. X-35 -66
  1607. X-34 -66
  1608. X-29 -66
  1609. X-28 -66
  1610. X-24 -66
  1611. X-23 -66
  1612. X  1 -66
  1613. X  3 -66
  1614. X-66 -65
  1615. X-64 -65
  1616. X-40 -65
  1617. X-34 -65
  1618. X-29 -65
  1619. X-23 -65
  1620. X  1 -65
  1621. X  3 -65
  1622. X-66 -64
  1623. X-65 -64
  1624. X  2 -64
  1625. X  3 -64
  1626. X-67 -63
  1627. X-39 -63
  1628. X-35 -63
  1629. X-28 -63
  1630. X-24 -63
  1631. X  4 -63
  1632. X-68 -62
  1633. X-67 -62
  1634. X-66 -62
  1635. X-38 -62
  1636. X-37 -62
  1637. X-36 -62
  1638. X-27 -62
  1639. X-26 -62
  1640. X-25 -62
  1641. X  3 -62
  1642. X  4 -62
  1643. X  5 -62
  1644. X-69 -61
  1645. X-65 -61
  1646. X  2 -61
  1647. X  6 -61
  1648. X-70 -60
  1649. X-68 -60
  1650. X-67 -60
  1651. X-66 -60
  1652. X-64 -60
  1653. X  1 -60
  1654. X  3 -60
  1655. X  4 -60
  1656. X  5 -60
  1657. X  7 -60
  1658. X-69 -59
  1659. X-68 -59
  1660. X-67 -59
  1661. X-66 -59
  1662. X-65 -59
  1663. X-60 -59
  1664. X -3 -59
  1665. X  2 -59
  1666. X  3 -59
  1667. X  4 -59
  1668. X  5 -59
  1669. X  6 -59
  1670. X-59 -58
  1671. X-58 -58
  1672. X -5 -58
  1673. X -4 -58
  1674. X-60 -57
  1675. X-59 -57
  1676. X-54 -57
  1677. X-40 -57
  1678. X-39 -57
  1679. X-24 -57
  1680. X-23 -57
  1681. X -9 -57
  1682. X -4 -57
  1683. X -3 -57
  1684. X-55 -56
  1685. X-39 -56
  1686. X-24 -56
  1687. X -8 -56
  1688. X-55 -55
  1689. X-54 -55
  1690. X-53 -55
  1691. X-42 -55
  1692. X-41 -55
  1693. X-40 -55
  1694. X-23 -55
  1695. X-22 -55
  1696. X-21 -55
  1697. X-10 -55
  1698. X -9 -55
  1699. X -8 -55
  1700. X-42 -54
  1701. X-37 -54
  1702. X-36 -54
  1703. X-21 -54
  1704. X-16 -54
  1705. X-15 -54
  1706. X-36 -53
  1707. X-16 -53
  1708. X-36 -52
  1709. X-34 -52
  1710. X-23 -52
  1711. X-18 -52
  1712. X-16 -52
  1713. X-53 -51
  1714. X-51 -51
  1715. X-35 -51
  1716. X-34 -51
  1717. X-24 -51
  1718. X-23 -51
  1719. X-22 -51
  1720. X-21 -51
  1721. X-19 -51
  1722. X-18 -51
  1723. X-17 -51
  1724. X-12 -51
  1725. X-10 -51
  1726. X-52 -50
  1727. X-51 -50
  1728. X-25 -50
  1729. X-24 -50
  1730. X-22 -50
  1731. X-20 -50
  1732. X-19 -50
  1733. X-12 -50
  1734. X-11 -50
  1735. X-52 -49
  1736. X-26 -49
  1737. X-25 -49
  1738. X-24 -49
  1739. X-22 -49
  1740. X-19 -49
  1741. X-11 -49
  1742. X-67 -48
  1743. X-66 -48
  1744. X-25 -48
  1745. X-24 -48
  1746. X-22 -48
  1747. X-20 -48
  1748. X  3 -48
  1749. X  4 -48
  1750. X-67 -47
  1751. X-66 -47
  1752. X-24 -47
  1753. X-23 -47
  1754. X-22 -47
  1755. X-21 -47
  1756. X  3 -47
  1757. X  4 -47
  1758. X-23 -46
  1759. X-15 -41
  1760. X-14 -41
  1761. X-14 -40
  1762. X-14 -39
  1763. X-12 -39
  1764. X-11 -39
  1765. X -5 -39
  1766. X -4 -39
  1767. X-13 -38
  1768. X -5 -38
  1769. X -3 -38
  1770. X -9 -37
  1771. X -4 -37
  1772. X -3 -37
  1773. X -2 -37
  1774. X  6 -37
  1775. X  7 -37
  1776. X-11 -36
  1777. X -8 -36
  1778. X -3 -36
  1779. X -2 -36
  1780. X -1 -36
  1781. X  6 -36
  1782. X  7 -36
  1783. X-10 -35
  1784. X -9 -35
  1785. X -4 -35
  1786. X -3 -35
  1787. X -2 -35
  1788. X-48 -34
  1789. X-47 -34
  1790. X-46 -34
  1791. X -5 -34
  1792. X -3 -34
  1793. X-46 -33
  1794. X -5 -33
  1795. X -4 -33
  1796. X-47 -32
  1797. X-17 -31
  1798. X-15 -31
  1799. X 50 -31
  1800. X 51 -31
  1801. X-16 -30
  1802. X-15 -30
  1803. X 50 -30
  1804. X 51 -30
  1805. X-39 -29
  1806. X-38 -29
  1807. X-16 -29
  1808. X 42 -29
  1809. X 43 -29
  1810. X-38 -28
  1811. X-32 -28
  1812. X-31 -28
  1813. X 42 -28
  1814. X-41 -27
  1815. X-40 -27
  1816. X-39 -27
  1817. X-32 -27
  1818. X-31 -27
  1819. X 30 -27
  1820. X 32 -27
  1821. X 40 -27
  1822. X 42 -27
  1823. X-41 -26
  1824. X 28 -26
  1825. X 32 -26
  1826. X 40 -26
  1827. X 41 -26
  1828. X 50 -26
  1829. X-20 -25
  1830. X 21 -25
  1831. X 22 -25
  1832. X 28 -25
  1833. X 49 -25
  1834. X 50 -25
  1835. X 51 -25
  1836. X-19 -24
  1837. X-18 -24
  1838. X 21 -24
  1839. X 22 -24
  1840. X 27 -24
  1841. X 32 -24
  1842. X 48 -24
  1843. X 52 -24
  1844. X-20 -23
  1845. X-19 -23
  1846. X 28 -23
  1847. X 47 -23
  1848. X 49 -23
  1849. X 50 -23
  1850. X 51 -23
  1851. X 53 -23
  1852. X 28 -22
  1853. X 32 -22
  1854. X 48 -22
  1855. X 49 -22
  1856. X 50 -22
  1857. X 51 -22
  1858. X 52 -22
  1859. X-38 -21
  1860. X  4 -21
  1861. X 30 -21
  1862. X 32 -21
  1863. X-40 -20
  1864. X-39 -20
  1865. X-38 -20
  1866. X  2 -20
  1867. X  4 -20
  1868. X-79 -19
  1869. X-41 -19
  1870. X-28 -19
  1871. X  3 -19
  1872. X  4 -19
  1873. X-80 -18
  1874. X-79 -18
  1875. X-41 -18
  1876. X-40 -18
  1877. X-28 -18
  1878. X-27 -18
  1879. X-29 -17
  1880. X-27 -17
  1881. X 47 -16
  1882. X 46 -15
  1883. X 47 -15
  1884. X-18 -14
  1885. X 46 -14
  1886. X 48 -14
  1887. X-31 -13
  1888. X-30 -13
  1889. X-29 -13
  1890. X-18 -13
  1891. X-17 -13
  1892. X-16 -13
  1893. X 21 -13
  1894. X 22 -13
  1895. X-81 -12
  1896. X-80 -12
  1897. X-79 -12
  1898. X-50 -12
  1899. X-49 -12
  1900. X-31 -12
  1901. X-15 -12
  1902. X 21 -12
  1903. X 52 -12
  1904. X 53 -12
  1905. X-82 -11
  1906. X-81 -11
  1907. X-79 -11
  1908. X-78 -11
  1909. X-50 -11
  1910. X-49 -11
  1911. X-36 -11
  1912. X-35 -11
  1913. X-30 -11
  1914. X-16 -11
  1915. X-15 -11
  1916. X 19 -11
  1917. X 21 -11
  1918. X 52 -11
  1919. X-82 -10
  1920. X-81 -10
  1921. X-79 -10
  1922. X-78 -10
  1923. X-35 -10
  1924. X-34 -10
  1925. X 19 -10
  1926. X 20 -10
  1927. X 53 -10
  1928. X 54 -10
  1929. X 55 -10
  1930. X-82  -9
  1931. X-81  -9
  1932. X-80  -9
  1933. X-79  -9
  1934. X-78  -9
  1935. X-45  -9
  1936. X-44  -9
  1937. X-43  -9
  1938. X-42  -9
  1939. X-41  -9
  1940. X-36  -9
  1941. X 55  -9
  1942. X-83  -8
  1943. X-82  -8
  1944. X-78  -8
  1945. X-77  -8
  1946. X-46  -8
  1947. X-44  -8
  1948. X-43  -8
  1949. X-42  -8
  1950. X-40  -8
  1951. X 67  -8
  1952. X 68  -8
  1953. X-45  -7
  1954. X-41  -7
  1955. X 67  -7
  1956. X-44  -6
  1957. X-43  -6
  1958. X-42  -6
  1959. X-14  -6
  1960. X-13  -6
  1961. X-12  -6
  1962. X 54  -6
  1963. X 65  -6
  1964. X 67  -6
  1965. X 79  -6
  1966. X 80  -6
  1967. X-43  -5
  1968. X-15  -5
  1969. X-11  -5
  1970. X 53  -5
  1971. X 55  -5
  1972. X 65  -5
  1973. X 66  -5
  1974. X 79  -5
  1975. X 80  -5
  1976. X-78  -4
  1977. X-77  -4
  1978. X-76  -4
  1979. X-53  -4
  1980. X-47  -4
  1981. X-42  -4
  1982. X-41  -4
  1983. X 46  -4
  1984. X 47  -4
  1985. X 51  -4
  1986. X 52  -4
  1987. X 56  -4
  1988. X-76  -3
  1989. X-53  -3
  1990. X-47  -3
  1991. X-42  -3
  1992. X-40  -3
  1993. X-16  -3
  1994. X-10  -3
  1995. X 46  -3
  1996. X 47  -3
  1997. X 51  -3
  1998. X 52  -3
  1999. X 56  -3
  2000. X-77  -2
  2001. X-52  -2
  2002. X-48  -2
  2003. X-42  -2
  2004. X-40  -2
  2005. X-16  -2
  2006. X-15  -2
  2007. X-11  -2
  2008. X-10  -2
  2009. X 51  -2
  2010. X 52  -2
  2011. X 56  -2
  2012. X-51  -1
  2013. X-50  -1
  2014. X-49  -1
  2015. X-41  -1
  2016. X 13  -1
  2017. X 15  -1
  2018. X 53  -1
  2019. X 55  -1
  2020. X 14   0
  2021. X 15   0
  2022. X 54   0
  2023. X-55   1
  2024. X-54   1
  2025. X-22   1
  2026. X-20   1
  2027. X-16   1
  2028. X-15   1
  2029. X 14   1
  2030. X-56   2
  2031. X-55   2
  2032. X-44   2
  2033. X-43   2
  2034. X-41   2
  2035. X-39   2
  2036. X-38   2
  2037. X-22   2
  2038. X-21   2
  2039. X-17   2
  2040. X-15   2
  2041. X-54   3
  2042. X-44   3
  2043. X-38   3
  2044. X-21   3
  2045. X-17   3
  2046. X 78   3
  2047. X 79   3
  2048. X 80   3
  2049. X-43   4
  2050. X-39   4
  2051. X-17   4
  2052. X-16   4
  2053. X 71   4
  2054. X 77   4
  2055. X 81   4
  2056. X-42   5
  2057. X-41   5
  2058. X-40   5
  2059. X-13   5
  2060. X 10   5
  2061. X 70   5
  2062. X 71   5
  2063. X 76   5
  2064. X 82   5
  2065. X-79   6
  2066. X-78   6
  2067. X-77   6
  2068. X-16   6
  2069. X-13   6
  2070. X 11   6
  2071. X 12   6
  2072. X 70   6
  2073. X 72   6
  2074. X 76   6
  2075. X 77   6
  2076. X 79   6
  2077. X 81   6
  2078. X 82   6
  2079. X-80   7
  2080. X-76   7
  2081. X-13   7
  2082. X 10   7
  2083. X 11   7
  2084. X-81   8
  2085. X-75   8
  2086. X-80   9
  2087. X-76   9
  2088. X-52   9
  2089. X -2   9
  2090. X -1   9
  2091. X 79   9
  2092. X-79  10
  2093. X-78  10
  2094. X-77  10
  2095. X-53  10
  2096. X-52  10
  2097. X-51  10
  2098. X-18  10
  2099. X-17  10
  2100. X-15  10
  2101. X-13  10
  2102. X-12  10
  2103. X -1  10
  2104. X  0  10
  2105. X 78  10
  2106. X 80  10
  2107. X-79  11
  2108. X-78  11
  2109. X-77  11
  2110. X-53  11
  2111. X-52  11
  2112. X-51  11
  2113. X -2  11
  2114. X 78  11
  2115. X 80  11
  2116. X-39  12
  2117. X-18  12
  2118. X-12  12
  2119. X 79  12
  2120. X 80  12
  2121. X 81  12
  2122. X-68  13
  2123. X-67  13
  2124. X-66  13
  2125. X-55  13
  2126. X-54  13
  2127. X-50  13
  2128. X-49  13
  2129. X-38  13
  2130. X 81  13
  2131. X 82  13
  2132. X-66  14
  2133. X-55  14
  2134. X-54  14
  2135. X-50  14
  2136. X-49  14
  2137. X-40  14
  2138. X-39  14
  2139. X-38  14
  2140. X-17  14
  2141. X-16  14
  2142. X-14  14
  2143. X-13  14
  2144. X 81  14
  2145. X-67  15
  2146. X-15  15
  2147. X 82  15
  2148. X 83  15
  2149. X 84  15
  2150. X-81  16
  2151. X-80  16
  2152. X-79  16
  2153. X 18  16
  2154. X 19  16
  2155. X 20  16
  2156. X 84  16
  2157. X-82  17
  2158. X-81  17
  2159. X-79  17
  2160. X-78  17
  2161. X 20  17
  2162. X-82  18
  2163. X-81  18
  2164. X-79  18
  2165. X-78  18
  2166. X-18  18
  2167. X-17  18
  2168. X 19  18
  2169. X-82  19
  2170. X-81  19
  2171. X-80  19
  2172. X-79  19
  2173. X-78  19
  2174. X-45  19
  2175. X-44  19
  2176. X-43  19
  2177. X-42  19
  2178. X-41  19
  2179. X-17  19
  2180. X-83  20
  2181. X-82  20
  2182. X-78  20
  2183. X-77  20
  2184. X-46  20
  2185. X-44  20
  2186. X-43  20
  2187. X-42  20
  2188. X-40  20
  2189. X-20  20
  2190. X-19  20
  2191. X-18  20
  2192. X-45  21
  2193. X-41  21
  2194. X-31  21
  2195. X-30  21
  2196. X-20  21
  2197. X-53  22
  2198. X-52  22
  2199. X-44  22
  2200. X-43  22
  2201. X-42  22
  2202. X-31  22
  2203. X-29  22
  2204. X 39  22
  2205. X-68  23
  2206. X-67  23
  2207. X-53  23
  2208. X-43  23
  2209. X-29  23
  2210. X 39  23
  2211. X 41  23
  2212. X-68  24
  2213. X-66  24
  2214. X-29  24
  2215. X-28  24
  2216. X -7  24
  2217. X -6  24
  2218. X 39  24
  2219. X 40  24
  2220. X-66  25
  2221. X-41  25
  2222. X-40  25
  2223. X -7  25
  2224. X -6  25
  2225. X-66  26
  2226. X-65  26
  2227. X-41  26
  2228. X-52  27
  2229. X-50  27
  2230. X-40  27
  2231. X-39  27
  2232. X-38  27
  2233. X-54  28
  2234. X-50  28
  2235. X-38  28
  2236. X-80  29
  2237. X-79  29
  2238. X-62  29
  2239. X-54  29
  2240. X-79  30
  2241. X-63  30
  2242. X-62  30
  2243. X-61  30
  2244. X-60  30
  2245. X-55  30
  2246. X-50  30
  2247. X -8  30
  2248. X -7  30
  2249. X -6  30
  2250. X-64  31
  2251. X-63  31
  2252. X-61  31
  2253. X-59  31
  2254. X-54  31
  2255. X -8  31
  2256. X -7  31
  2257. X -6  31
  2258. X-75  32
  2259. X-74  32
  2260. X-65  32
  2261. X-64  32
  2262. X-63  32
  2263. X-61  32
  2264. X-58  32
  2265. X-54  32
  2266. X-50  32
  2267. X-43  32
  2268. X-42  32
  2269. X -9  32
  2270. X -5  32
  2271. X-75  33
  2272. X-74  33
  2273. X-64  33
  2274. X-63  33
  2275. X-61  33
  2276. X-59  33
  2277. X-52  33
  2278. X-50  33
  2279. X-43  33
  2280. X-41  33
  2281. X-63  34
  2282. X-62  34
  2283. X-61  34
  2284. X-60  34
  2285. X-41  34
  2286. X-10  34
  2287. X -9  34
  2288. X -5  34
  2289. X -4  34
  2290. X-62  35
  2291. X-41  35
  2292. X-40  35
  2293. X-51  36
  2294. X 52  36
  2295. X 53  36
  2296. X 54  36
  2297. X-53  37
  2298. X-51  37
  2299. X 54  37
  2300. X-52  38
  2301. X-51  38
  2302. X -4  38
  2303. X -3  38
  2304. X 53  38
  2305. X-32  39
  2306. X-31  39
  2307. X -5  39
  2308. X -3  39
  2309. X  1  39
  2310. X-31  40
  2311. X-30  40
  2312. X -3  40
  2313. X  0  40
  2314. X  1  40
  2315. X-32  41
  2316. X  0  41
  2317. X  2  41
  2318. X-60  42
  2319. X-62  43
  2320. X-61  43
  2321. X -3  43
  2322. X-61  44
  2323. X-60  44
  2324. X-78  45
  2325. X-78  46
  2326. X-77  46
  2327. X-76  46
  2328. X-75  47
  2329. X-38  47
  2330. X-76  48
  2331. X-75  48
  2332. X-40  48
  2333. X-39  48
  2334. X-38  48
  2335. X -6  48
  2336. X -5  48
  2337. X -4  48
  2338. X 57  48
  2339. X 58  48
  2340. X-41  49
  2341. X -7  49
  2342. X -3  49
  2343. X 32  49
  2344. X 33  49
  2345. X 57  49
  2346. X 58  49
  2347. X-73  50
  2348. X-72  50
  2349. X-41  50
  2350. X-40  50
  2351. X -8  50
  2352. X -2  50
  2353. X 32  50
  2354. X-73  51
  2355. X-71  51
  2356. X -8  51
  2357. X -2  51
  2358. X 21  51
  2359. X 22  51
  2360. X 30  51
  2361. X 32  51
  2362. X-73  52
  2363. X -5  52
  2364. X 21  52
  2365. X 24  52
  2366. X 30  52
  2367. X 31  52
  2368. X -7  53
  2369. X -3  53
  2370. X 11  53
  2371. X 15  53
  2372. X 16  53
  2373. X 17  53
  2374. X 25  53
  2375. X-47  54
  2376. X-46  54
  2377. X -4  54
  2378. X 10  54
  2379. X 11  54
  2380. X 12  54
  2381. X 13  54
  2382. X 14  54
  2383. X 18  54
  2384. X 25  54
  2385. X-59  55
  2386. X-57  55
  2387. X-46  55
  2388. X-45  55
  2389. X -8  55
  2390. X -5  55
  2391. X  9  55
  2392. X 10  55
  2393. X 12  55
  2394. X 13  55
  2395. X 17  55
  2396. X 25  55
  2397. X-64  56
  2398. X-63  56
  2399. X-59  56
  2400. X-56  56
  2401. X-47  56
  2402. X -8  56
  2403. X -2  56
  2404. X -1  56
  2405. X  8  56
  2406. X  9  56
  2407. X 10  56
  2408. X 12  56
  2409. X 13  56
  2410. X 17  56
  2411. X 21  56
  2412. X 24  56
  2413. X-71  57
  2414. X-70  57
  2415. X-67  57
  2416. X-66  57
  2417. X-64  57
  2418. X-63  57
  2419. X-62  57
  2420. X-56  57
  2421. X-55  57
  2422. X-43  57
  2423. X-42  57
  2424. X -7  57
  2425. X -2  57
  2426. X -1  57
  2427. X  9  57
  2428. X 10  57
  2429. X 12  57
  2430. X 13  57
  2431. X 14  57
  2432. X 15  57
  2433. X 21  57
  2434. X 22  57
  2435. X-72  58
  2436. X-70  58
  2437. X-66  58
  2438. X-62  58
  2439. X-58  58
  2440. X-54  58
  2441. X-53  58
  2442. X-44  58
  2443. X-42  58
  2444. X-10  58
  2445. X -9  58
  2446. X -8  58
  2447. X 10  58
  2448. X 11  58
  2449. X 12  58
  2450. X 13  58
  2451. X-82  59
  2452. X-81  59
  2453. X-73  59
  2454. X-64  59
  2455. X-62  59
  2456. X-56  59
  2457. X-55  59
  2458. X-45  59
  2459. X-38  59
  2460. X-37  59
  2461. X-34  59
  2462. X-33  59
  2463. X-10  59
  2464. X 11  59
  2465. X-82  60
  2466. X-81  60
  2467. X-73  60
  2468. X-70  60
  2469. X-63  60
  2470. X-62  60
  2471. X-59  60
  2472. X-56  60
  2473. X-45  60
  2474. X-42  60
  2475. X-39  60
  2476. X-36  60
  2477. X-34  60
  2478. X-33  60
  2479. X-73  61
  2480. X-59  61
  2481. X-57  61
  2482. X-45  61
  2483. X-38  61
  2484. X-37  61
  2485. X -3  61
  2486. X-72  62
  2487. X-70  62
  2488. X-44  62
  2489. X-42  62
  2490. X -6  62
  2491. X -5  62
  2492. X -4  62
  2493. X -3  62
  2494. X  2  62
  2495. X-71  63
  2496. X-70  63
  2497. X-43  63
  2498. X-42  63
  2499. X-15  63
  2500. X -7  63
  2501. X -6  63
  2502. X -5  63
  2503. X -4  63
  2504. X  2  63
  2505. X-16  64
  2506. X-14  64
  2507. X -7  64
  2508. X -4  64
  2509. X  6  64
  2510. X  7  64
  2511. X-17  65
  2512. X-13  65
  2513. X-12  65
  2514. X -7  65
  2515. X -6  65
  2516. X -5  65
  2517. X -4  65
  2518. X  6  65
  2519. X  7  65
  2520. X-28  66
  2521. X-27  66
  2522. X-17  66
  2523. X-13  66
  2524. X-12  66
  2525. X -6  66
  2526. X -5  66
  2527. X -4  66
  2528. X -3  66
  2529. X 22  66
  2530. X 23  66
  2531. X 24  66
  2532. X-28  67
  2533. X-27  67
  2534. X-17  67
  2535. X-13  67
  2536. X-12  67
  2537. X -3  67
  2538. X 24  67
  2539. X-16  68
  2540. X-14  68
  2541. X 23  68
  2542. X-15  69
  2543. X -6  70
  2544. X -4  70
  2545. X -5  71
  2546. X -4  71
  2547. X -5  72
  2548. X  2  77
  2549. X  3  78
  2550. X  4  78
  2551. X-31  79
  2552. X  2  79
  2553. X  3  79
  2554. X-31  80
  2555. X-30  80
  2556. X-29  80
  2557. X-28  81
  2558. X-29  82
  2559. X-28  82
  2560. X-21  83
  2561. X-25  84
  2562. X-22  84
  2563. X-26  85
  2564. X-25  85
  2565. X-22  85
  2566. X-21  85
  2567. X-20  85
  2568. X-26  86
  2569. X-24  86
  2570. X  0  88
  2571. X  1  88
  2572. X-12  89
  2573. X-11  89
  2574. X -1  89
  2575. X  1  89
  2576. X-19  90
  2577. X-17  90
  2578. X-16  90
  2579. X-12  90
  2580. X-11  90
  2581. X-10  90
  2582. X  1  90
  2583. X-23  91
  2584. X-20  91
  2585. X-16  91
  2586. X-10  91
  2587. X -9  91
  2588. X -7  91
  2589. X  5  91
  2590. X-24  92
  2591. X-23  92
  2592. X-20  92
  2593. X-15  92
  2594. X-10  92
  2595. X -7  92
  2596. X  4  92
  2597. X  5  92
  2598. X-35  93
  2599. X-34  93
  2600. X-25  93
  2601. X-24  93
  2602. X-18  93
  2603. X-17  93
  2604. X-16  93
  2605. X-15  93
  2606. X-10  93
  2607. X -9  93
  2608. X -7  93
  2609. X  3  93
  2610. X  4  93
  2611. X  9  93
  2612. X 10  93
  2613. X 13  93
  2614. X 14  93
  2615. X-35  94
  2616. X-34  94
  2617. X-26  94
  2618. X-25  94
  2619. X-24  94
  2620. X-16  94
  2621. X-12  94
  2622. X-11  94
  2623. X-10  94
  2624. X  2  94
  2625. X  3  94
  2626. X  4  94
  2627. X  9  94
  2628. X 10  94
  2629. X 13  94
  2630. X 14  94
  2631. X-25  95
  2632. X-24  95
  2633. X-12  95
  2634. X-11  95
  2635. X  3  95
  2636. X  4  95
  2637. X  9  95
  2638. X 10  95
  2639. X-24  96
  2640. X-23  96
  2641. X  4  96
  2642. X  5  96
  2643. X-23  97
  2644. X  5  97
  2645. END_OF_xlife-2.0/patterns/blockpusher3.life
  2646. if test 9579 -ne `wc -c <xlife-2.0/patterns/blockpusher3.life`; then
  2647.     echo shar: \"xlife-2.0/patterns/blockpusher3.life\" unpacked with wrong size!
  2648. fi
  2649. # end of overwriting check
  2650. fi
  2651. if test -f xlife-2.0/patterns/oscillator7.life -a "${1}" != "-c" ; then 
  2652.   echo shar: Will not over-write existing file \"xlife-2.0/patterns/oscillator7.life\"
  2653. else
  2654. echo shar: Extracting \"xlife-2.0/patterns/oscillator7.life\" \(76 characters\)
  2655. sed "s/^X//" >xlife-2.0/patterns/oscillator7.life <<'END_OF_xlife-2.0/patterns/oscillator7.life'
  2656. X.....****....****.
  2657. X**.......*.......*
  2658. X**..**...*..**...*
  2659. X....**..*...**..*.
  2660. END_OF_xlife-2.0/patterns/oscillator7.life
  2661. if test 76 -ne `wc -c <xlife-2.0/patterns/oscillator7.life`; then
  2662.     echo shar: \"xlife-2.0/patterns/oscillator7.life\" unpacked with wrong size!
  2663. fi
  2664. # end of overwriting check
  2665. fi
  2666. if test -f xlife-2.0/patterns/rakecollision.life -a "${1}" != "-c" ; then 
  2667.   echo shar: Will not over-write existing file \"xlife-2.0/patterns/rakecollision.life\"
  2668. else
  2669. echo shar: Extracting \"xlife-2.0/patterns/rakecollision.life\" \(8875 characters\)
  2670. sed "s/^X//" >xlife-2.0/patterns/rakecollision.life <<'END_OF_xlife-2.0/patterns/rakecollision.life'
  2671. X#A
  2672. X538 186
  2673. X539 186
  2674. X456 211
  2675. X456 209
  2676. X456 210
  2677. X456 195
  2678. X456 193
  2679. X456 194
  2680. X552 204
  2681. X552 205
  2682. X553 205
  2683. X552 206
  2684. X552 198
  2685. X552 199
  2686. X553 199
  2687. X552 200
  2688. X360 418
  2689. X361 418
  2690. X552 211
  2691. X553 212
  2692. X553 213
  2693. X552 214
  2694. X553 214
  2695. X552 190
  2696. X553 190
  2697. X553 191
  2698. X553 192
  2699. X552 193
  2700. X375 401
  2701. X374 402
  2702. X375 402
  2703. X192 312
  2704. X192 313
  2705. X193 313
  2706. X193 314
  2707. X184 304
  2708. X184 305
  2709. X185 305
  2710. X185 306
  2711. X176 296
  2712. X176 297
  2713. X177 297
  2714. X177 298
  2715. X168 288
  2716. X168 289
  2717. X169 289
  2718. X169 290
  2719. X160 280
  2720. X160 281
  2721. X161 281
  2722. X161 282
  2723. X152 272
  2724. X152 273
  2725. X153 273
  2726. X153 274
  2727. X144 264
  2728. X144 265
  2729. X145 265
  2730. X145 266
  2731. X136 256
  2732. X136 257
  2733. X137 257
  2734. X137 258
  2735. X128 248
  2736. X128 249
  2737. X129 249
  2738. X129 250
  2739. X120 240
  2740. X120 241
  2741. X121 241
  2742. X121 242
  2743. X112 232
  2744. X112 233
  2745. X113 233
  2746. X113 234
  2747. X104 224
  2748. X104 225
  2749. X105 225
  2750. X105 226
  2751. X96 216
  2752. X96 217
  2753. X97 217
  2754. X97 218
  2755. X88 208
  2756. X88 209
  2757. X89 209
  2758. X89 210
  2759. X80 200
  2760. X80 201
  2761. X81 201
  2762. X81 202
  2763. X72 192
  2764. X72 193
  2765. X73 193
  2766. X73 194
  2767. X64 184
  2768. X64 185
  2769. X65 185
  2770. X65 186
  2771. X56 176
  2772. X56 177
  2773. X57 177
  2774. X57 178
  2775. X48 168
  2776. X48 169
  2777. X49 169
  2778. X49 170
  2779. X40 160
  2780. X40 161
  2781. X41 161
  2782. X41 162
  2783. X32 152
  2784. X32 153
  2785. X33 153
  2786. X33 154
  2787. X24 144
  2788. X24 145
  2789. X25 145
  2790. X25 146
  2791. X16 136
  2792. X16 137
  2793. X17 137
  2794. X17 138
  2795. X8 128
  2796. X8 129
  2797. X9 129
  2798. X9 130
  2799. X0 120
  2800. X0 121
  2801. X1 121
  2802. X1 122
  2803. X-8 112
  2804. X-8 113
  2805. X-7 113
  2806. X-7 114
  2807. X-16 104
  2808. X-16 105
  2809. X-15 105
  2810. X-15 106
  2811. X-24 96
  2812. X-24 97
  2813. X-23 97
  2814. X-23 98
  2815. X-32 88
  2816. X-32 89
  2817. X-31 89
  2818. X-31 90
  2819. X-40 80
  2820. X-40 81
  2821. X-39 81
  2822. X-39 82
  2823. X-48 72
  2824. X-48 73
  2825. X-47 73
  2826. X-47 74
  2827. X-56 64
  2828. X-56 65
  2829. X-55 65
  2830. X-55 66
  2831. X-64 56
  2832. X-64 57
  2833. X-63 57
  2834. X-63 58
  2835. X-72 48
  2836. X-72 49
  2837. X-71 49
  2838. X-71 50
  2839. X-80 40
  2840. X-80 41
  2841. X-79 41
  2842. X-79 42
  2843. X-88 32
  2844. X-88 33
  2845. X-87 33
  2846. X-87 34
  2847. X-96 24
  2848. X-96 25
  2849. X-95 25
  2850. X-95 26
  2851. X-104 16
  2852. X-104 17
  2853. X-103 17
  2854. X-103 18
  2855. X-112 8
  2856. X-112 9
  2857. X-111 9
  2858. X-111 10
  2859. X-120 0
  2860. X-120 1
  2861. X-119 1
  2862. X-119 2
  2863. X-128 -8
  2864. X-128 -7
  2865. X-127 -7
  2866. X-127 -6
  2867. X-136 -16
  2868. X-136 -15
  2869. X-135 -15
  2870. X-135 -14
  2871. X-152 -32
  2872. X-152 -31
  2873. X-151 -31
  2874. X-151 -30
  2875. X510 219
  2876. X510 220
  2877. X511 220
  2878. X511 221
  2879. X462 235
  2880. X462 236
  2881. X463 236
  2882. X463 237
  2883. X414 251
  2884. X414 252
  2885. X415 252
  2886. X415 253
  2887. X366 267
  2888. X366 268
  2889. X367 268
  2890. X367 269
  2891. X318 283
  2892. X318 284
  2893. X319 284
  2894. X319 285
  2895. X270 299
  2896. X270 300
  2897. X271 300
  2898. X271 301
  2899. X222 315
  2900. X222 316
  2901. X223 316
  2902. X223 317
  2903. X246 307
  2904. X246 308
  2905. X247 308
  2906. X247 309
  2907. X294 291
  2908. X294 292
  2909. X295 292
  2910. X295 293
  2911. X342 275
  2912. X342 276
  2913. X343 276
  2914. X343 277
  2915. X390 259
  2916. X390 260
  2917. X391 260
  2918. X391 261
  2919. X438 243
  2920. X438 244
  2921. X439 244
  2922. X439 245
  2923. X486 227
  2924. X486 228
  2925. X487 228
  2926. X487 229
  2927. X385 445
  2928. X386 446
  2929. X386 447
  2930. X384 448
  2931. X385 448
  2932. X386 448
  2933. X-137 -33
  2934. X-138 -32
  2935. X-137 -32
  2936. X-138 -31
  2937. X-113 -25
  2938. X-114 -24
  2939. X-113 -24
  2940. X-114 -23
  2941. X-89 -17
  2942. X-90 -16
  2943. X-89 -16
  2944. X-90 -15
  2945. X-65 -9
  2946. X-66 -8
  2947. X-65 -8
  2948. X-66 -7
  2949. X-41 -1
  2950. X-42 0
  2951. X-41 0
  2952. X-42 1
  2953. X-17 7
  2954. X-18 8
  2955. X-17 8
  2956. X-18 9
  2957. X7 15
  2958. X6 16
  2959. X7 16
  2960. X6 17
  2961. X31 23
  2962. X30 24
  2963. X31 24
  2964. X30 25
  2965. X55 31
  2966. X54 32
  2967. X55 32
  2968. X54 33
  2969. X79 39
  2970. X78 40
  2971. X79 40
  2972. X78 41
  2973. X103 47
  2974. X102 48
  2975. X103 48
  2976. X102 49
  2977. X127 55
  2978. X126 56
  2979. X127 56
  2980. X126 57
  2981. X151 63
  2982. X150 64
  2983. X151 64
  2984. X150 65
  2985. X175 71
  2986. X174 72
  2987. X175 72
  2988. X174 73
  2989. X199 79
  2990. X198 80
  2991. X199 80
  2992. X198 81
  2993. X223 87
  2994. X222 88
  2995. X223 88
  2996. X222 89
  2997. X247 95
  2998. X246 96
  2999. X247 96
  3000. X246 97
  3001. X271 103
  3002. X270 104
  3003. X271 104
  3004. X270 105
  3005. X295 111
  3006. X294 112
  3007. X295 112
  3008. X294 113
  3009. X319 119
  3010. X318 120
  3011. X319 120
  3012. X318 121
  3013. X343 127
  3014. X342 128
  3015. X343 128
  3016. X342 129
  3017. X367 135
  3018. X366 136
  3019. X367 136
  3020. X366 137
  3021. X391 143
  3022. X390 144
  3023. X391 144
  3024. X390 145
  3025. X415 151
  3026. X414 152
  3027. X415 152
  3028. X414 153
  3029. X439 159
  3030. X438 160
  3031. X439 160
  3032. X438 161
  3033. X463 167
  3034. X462 168
  3035. X463 168
  3036. X462 169
  3037. X487 175
  3038. X486 176
  3039. X487 176
  3040. X486 177
  3041. X511 183
  3042. X510 184
  3043. X511 184
  3044. X510 185
  3045. X-144 -24
  3046. X-144 -23
  3047. X-143 -23
  3048. X-143 -22
  3049. X361 403
  3050. X362 403
  3051. X360 404
  3052. X362 404
  3053. X363 404
  3054. X360 405
  3055. X361 405
  3056. X362 405
  3057. X360 406
  3058. X361 406
  3059. X360 419
  3060. X361 419
  3061. X362 419
  3062. X360 420
  3063. X362 420
  3064. X363 420
  3065. X361 421
  3066. X362 421
  3067. X512 219
  3068. X464 235
  3069. X416 251
  3070. X368 267
  3071. X320 283
  3072. X272 299
  3073. X224 315
  3074. X248 307
  3075. X296 291
  3076. X344 275
  3077. X392 259
  3078. X440 243
  3079. X488 227
  3080. X-145 -22
  3081. X-137 -14
  3082. X-129 -6
  3083. X-121 2
  3084. X-113 10
  3085. X-105 18
  3086. X-97 26
  3087. X-89 34
  3088. X-81 42
  3089. X-73 50
  3090. X-65 58
  3091. X-57 66
  3092. X-49 74
  3093. X-41 82
  3094. X-33 90
  3095. X-25 98
  3096. X-17 106
  3097. X-9 114
  3098. X-1 122
  3099. X7 130
  3100. X15 138
  3101. X23 146
  3102. X31 154
  3103. X39 162
  3104. X47 170
  3105. X55 178
  3106. X63 186
  3107. X71 194
  3108. X79 202
  3109. X87 210
  3110. X95 218
  3111. X103 226
  3112. X111 234
  3113. X119 242
  3114. X127 250
  3115. X135 258
  3116. X143 266
  3117. X151 274
  3118. X159 282
  3119. X167 290
  3120. X175 298
  3121. X191 314
  3122. X183 306
  3123. X457 411
  3124. X458 411
  3125. X457 413
  3126. X458 413
  3127. X457 414
  3128. X459 414
  3129. X459 415
  3130. X457 416
  3131. X458 416
  3132. X459 416
  3133. X457 408
  3134. X458 408
  3135. X459 408
  3136. X459 409
  3137. X457 410
  3138. X459 410
  3139. X376 400
  3140. X376 401
  3141. X377 401
  3142. X378 401
  3143. X376 402
  3144. X377 402
  3145. X378 402
  3146. X458 422
  3147. X459 422
  3148. X456 423
  3149. X457 423
  3150. X459 423
  3151. X460 423
  3152. X456 424
  3153. X457 424
  3154. X458 424
  3155. X459 424
  3156. X456 425
  3157. X457 425
  3158. X458 425
  3159. X456 399
  3160. X457 399
  3161. X458 399
  3162. X456 400
  3163. X457 400
  3164. X458 400
  3165. X459 400
  3166. X456 401
  3167. X457 401
  3168. X459 401
  3169. X460 401
  3170. X458 402
  3171. X459 402
  3172. X498 194
  3173. X499 194
  3174. X512 185
  3175. X488 177
  3176. X464 169
  3177. X440 161
  3178. X416 153
  3179. X392 145
  3180. X368 137
  3181. X344 129
  3182. X320 121
  3183. X296 113
  3184. X272 105
  3185. X248 97
  3186. X224 89
  3187. X200 81
  3188. X176 73
  3189. X152 65
  3190. X128 57
  3191. X104 49
  3192. X80 41
  3193. X56 33
  3194. X32 25
  3195. X8 17
  3196. X-16 9
  3197. X-40 1
  3198. X-64 -7
  3199. X-88 -15
  3200. X-112 -23
  3201. X-136 -31
  3202. X372 419
  3203. X373 419
  3204. X374 419
  3205. X373 421
  3206. X374 421
  3207. X374 422
  3208. X375 422
  3209. X375 423
  3210. X399 415
  3211. X399 409
  3212. X410 391
  3213. X411 391
  3214. X410 392
  3215. X412 392
  3216. X410 393
  3217. X386 383
  3218. X387 383
  3219. X386 384
  3220. X388 384
  3221. X386 385
  3222. X362 375
  3223. X363 375
  3224. X362 376
  3225. X364 376
  3226. X362 377
  3227. X338 367
  3228. X339 367
  3229. X338 368
  3230. X340 368
  3231. X338 369
  3232. X314 359
  3233. X315 359
  3234. X314 360
  3235. X316 360
  3236. X314 361
  3237. X290 351
  3238. X291 351
  3239. X290 352
  3240. X292 352
  3241. X290 353
  3242. X266 343
  3243. X267 343
  3244. X266 344
  3245. X268 344
  3246. X266 345
  3247. X242 335
  3248. X243 335
  3249. X242 336
  3250. X244 336
  3251. X242 337
  3252. X218 327
  3253. X219 327
  3254. X218 328
  3255. X220 328
  3256. X218 329
  3257. X199 322
  3258. X419 420
  3259. X420 420
  3260. X421 420
  3261. X418 421
  3262. X419 421
  3263. X420 421
  3264. X421 421
  3265. X422 421
  3266. X418 422
  3267. X419 422
  3268. X420 422
  3269. X422 422
  3270. X423 422
  3271. X421 423
  3272. X422 423
  3273. X452 195
  3274. X453 195
  3275. X454 195
  3276. X455 195
  3277. X546 195
  3278. X548 195
  3279. X549 196
  3280. X549 197
  3281. X550 197
  3282. X551 197
  3283. X550 198
  3284. X550 199
  3285. X544 200
  3286. X551 200
  3287. X551 201
  3288. X551 203
  3289. X544 204
  3290. X551 204
  3291. X550 205
  3292. X550 206
  3293. X549 207
  3294. X550 207
  3295. X551 207
  3296. X549 208
  3297. X546 209
  3298. X548 209
  3299. X547 210
  3300. X550 210
  3301. X548 190
  3302. X549 190
  3303. X550 190
  3304. X551 190
  3305. X547 191
  3306. X547 194
  3307. X550 194
  3308. X547 213
  3309. X548 214
  3310. X549 214
  3311. X550 214
  3312. X551 214
  3313. X383 444
  3314. X381 445
  3315. X381 447
  3316. X382 448
  3317. X383 448
  3318. X410 431
  3319. X410 432
  3320. X412 432
  3321. X410 433
  3322. X411 433
  3323. X386 439
  3324. X386 440
  3325. X388 440
  3326. X386 441
  3327. X387 441
  3328. X358 419
  3329. X359 419
  3330. X358 420
  3331. X359 420
  3332. X455 405
  3333. X452 407
  3334. X453 407
  3335. X454 407
  3336. X452 408
  3337. X454 408
  3338. X452 409
  3339. X454 409
  3340. X453 410
  3341. X453 414
  3342. X452 415
  3343. X454 415
  3344. X452 416
  3345. X454 416
  3346. X452 417
  3347. X453 417
  3348. X454 417
  3349. X451 212
  3350. X455 212
  3351. X453 213
  3352. X448 398
  3353. X448 399
  3354. X449 399
  3355. X455 399
  3356. X448 400
  3357. X454 400
  3358. X455 400
  3359. X454 401
  3360. X455 401
  3361. X455 419
  3362. X454 423
  3363. X455 423
  3364. X448 424
  3365. X454 424
  3366. X455 424
  3367. X448 425
  3368. X449 425
  3369. X455 425
  3370. X448 426
  3371. X453 191
  3372. X451 192
  3373. X455 192
  3374. X451 194
  3375. X511 212
  3376. X511 214
  3377. X511 190
  3378. X511 192
  3379. X452 209
  3380. X453 209
  3381. X454 209
  3382. X455 209
  3383. X451 210
  3384. X537 203
  3385. X539 203
  3386. X541 203
  3387. X537 204
  3388. X542 204
  3389. X543 204
  3390. X540 205
  3391. X538 206
  3392. X539 206
  3393. X540 206
  3394. X538 207
  3395. X536 208
  3396. X536 196
  3397. X538 197
  3398. X538 198
  3399. X539 198
  3400. X540 198
  3401. X540 199
  3402. X537 200
  3403. X542 200
  3404. X543 200
  3405. X537 201
  3406. X539 201
  3407. X541 201
  3408. X537 214
  3409. X538 214
  3410. X539 214
  3411. X540 214
  3412. X541 214
  3413. X542 214
  3414. X536 215
  3415. X542 215
  3416. X542 216
  3417. X536 217
  3418. X541 217
  3419. X538 218
  3420. X539 218
  3421. X536 187
  3422. X541 187
  3423. X542 188
  3424. X536 189
  3425. X542 189
  3426. X537 190
  3427. X538 190
  3428. X539 190
  3429. X540 190
  3430. X541 190
  3431. X542 190
  3432. X200 320
  3433. X200 321
  3434. X201 321
  3435. X201 322
  3436. X-153 -30
  3437. X444 414
  3438. X443 415
  3439. X444 415
  3440. X440 405
  3441. X441 405
  3442. X443 409
  3443. X444 409
  3444. X444 410
  3445. X440 419
  3446. X441 419
  3447. X444 423
  3448. X445 423
  3449. X446 423
  3450. X447 423
  3451. X443 424
  3452. X444 424
  3453. X445 424
  3454. X446 424
  3455. X447 424
  3456. X443 425
  3457. X444 425
  3458. X445 425
  3459. X446 425
  3460. X447 426
  3461. X447 398
  3462. X443 399
  3463. X444 399
  3464. X445 399
  3465. X446 399
  3466. X443 400
  3467. X444 400
  3468. X445 400
  3469. X446 400
  3470. X447 400
  3471. X444 401
  3472. X445 401
  3473. X446 401
  3474. X447 401
  3475. X533 198
  3476. X535 198
  3477. X533 199
  3478. X534 199
  3479. X534 200
  3480. X535 200
  3481. X534 204
  3482. X535 204
  3483. X533 205
  3484. X534 205
  3485. X533 206
  3486. X535 206
  3487. X533 210
  3488. X535 210
  3489. X377 420
  3490. X379 420
  3491. X376 422
  3492. X377 422
  3493. X378 422
  3494. X376 423
  3495. X377 423
  3496. X378 423
  3497. X376 424
  3498. X533 192
  3499. X534 192
  3500. X532 193
  3501. X534 193
  3502. X535 193
  3503. X533 194
  3504. X535 194
  3505. X532 211
  3506. X534 211
  3507. X535 211
  3508. X533 212
  3509. X534 212
  3510. X436 407
  3511. X434 408
  3512. X436 408
  3513. X433 409
  3514. X434 410
  3515. X437 410
  3516. X438 410
  3517. X439 410
  3518. X435 411
  3519. X436 411
  3520. X437 411
  3521. X438 411
  3522. X439 411
  3523. X435 413
  3524. X436 413
  3525. X437 413
  3526. X438 413
  3527. X439 413
  3528. X434 414
  3529. X437 414
  3530. X438 414
  3531. X439 414
  3532. X433 415
  3533. X434 416
  3534. X436 416
  3535. X436 417
  3536. X434 399
  3537. X435 399
  3538. X434 400
  3539. X436 400
  3540. X434 401
  3541. X434 423
  3542. X434 424
  3543. X436 424
  3544. X434 425
  3545. X435 425
  3546. X525 204
  3547. X526 204
  3548. X525 205
  3549. X526 205
  3550. X525 199
  3551. X526 199
  3552. X525 200
  3553. X526 200
  3554. X427 414
  3555. X428 414
  3556. X427 415
  3557. X428 415
  3558. X427 409
  3559. X428 409
  3560. X427 410
  3561. X428 410
  3562. X516 197
  3563. X517 197
  3564. X515 198
  3565. X518 198
  3566. X515 199
  3567. X517 199
  3568. X516 200
  3569. X516 204
  3570. X515 205
  3571. X517 205
  3572. X515 206
  3573. X518 206
  3574. X516 207
  3575. X517 207
  3576. X513 189
  3577. X515 190
  3578. X516 191
  3579. X516 192
  3580. X512 193
  3581. X513 193
  3582. X514 193
  3583. X515 193
  3584. X516 193
  3585. X512 211
  3586. X513 211
  3587. X514 211
  3588. X515 211
  3589. X516 211
  3590. X516 212
  3591. X516 213
  3592. X515 214
  3593. X513 215
  3594. X418 403
  3595. X419 403
  3596. X420 403
  3597. X421 403
  3598. X422 403
  3599. X419 404
  3600. X420 404
  3601. X421 404
  3602. X418 406
  3603. X419 406
  3604. X417 407
  3605. X420 407
  3606. X416 408
  3607. X417 408
  3608. X419 408
  3609. X420 408
  3610. X417 409
  3611. X419 409
  3612. X418 410
  3613. X418 414
  3614. X417 415
  3615. X419 415
  3616. X416 416
  3617. X417 416
  3618. X419 416
  3619. X420 416
  3620. X417 417
  3621. X420 417
  3622. X418 418
  3623. X419 418
  3624. X421 401
  3625. X422 401
  3626. X418 402
  3627. X419 402
  3628. X420 402
  3629. X422 402
  3630. X423 402
  3631. X504 203
  3632. X505 203
  3633. X506 204
  3634. X509 204
  3635. X510 204
  3636. X509 205
  3637. X510 205
  3638. X504 206
  3639. X505 206
  3640. X506 206
  3641. X504 198
  3642. X505 198
  3643. X506 198
  3644. X509 199
  3645. X510 199
  3646. X506 200
  3647. X509 200
  3648. X510 200
  3649. X504 201
  3650. X505 201
  3651. X411 414
  3652. X412 414
  3653. X411 415
  3654. X412 415
  3655. X411 409
  3656. X412 409
  3657. X411 410
  3658. X412 410
  3659. X497 195
  3660. X498 195
  3661. X499 195
  3662. X500 195
  3663. X497 196
  3664. X498 196
  3665. X500 196
  3666. X501 196
  3667. X500 197
  3668. X496 198
  3669. X498 198
  3670. X499 198
  3671. X496 199
  3672. X497 199
  3673. X498 199
  3674. X499 199
  3675. X503 199
  3676. X497 200
  3677. X503 200
  3678. X497 204
  3679. X503 204
  3680. X496 205
  3681. X497 205
  3682. X498 205
  3683. X499 205
  3684. X503 205
  3685. X496 206
  3686. X498 206
  3687. X499 206
  3688. X500 207
  3689. X497 208
  3690. X498 208
  3691. X500 208
  3692. X501 208
  3693. X497 209
  3694. X498 209
  3695. X499 209
  3696. X500 209
  3697. X498 210
  3698. X499 210
  3699. X400 408
  3700. X401 408
  3701. X402 409
  3702. X400 410
  3703. X401 410
  3704. X400 414
  3705. X401 414
  3706. X402 415
  3707. X400 416
  3708. X401 416
  3709. X493 203
  3710. X494 203
  3711. X494 204
  3712. X489 205
  3713. X490 205
  3714. X493 205
  3715. X494 205
  3716. X488 206
  3717. X489 206
  3718. X491 206
  3719. X495 206
  3720. X489 207
  3721. X490 207
  3722. X491 207
  3723. X490 208
  3724. X490 196
  3725. X489 197
  3726. X490 197
  3727. X491 197
  3728. X488 198
  3729. X489 198
  3730. X491 198
  3731. X495 198
  3732. X489 199
  3733. X490 199
  3734. X493 199
  3735. X494 199
  3736. X494 200
  3737. X493 201
  3738. X494 201
  3739. X482 198
  3740. X483 198
  3741. X481 199
  3742. X484 199
  3743. X482 200
  3744. X483 200
  3745. X482 204
  3746. X483 204
  3747. X481 205
  3748. X484 205
  3749. X482 206
  3750. X483 206
  3751. X387 409
  3752. X388 409
  3753. X387 410
  3754. X388 410
  3755. X387 414
  3756. X388 414
  3757. X387 415
  3758. X388 415
  3759. X377 414
  3760. X378 414
  3761. X379 414
  3762. X380 414
  3763. X381 414
  3764. X376 415
  3765. X380 416
  3766. X380 417
  3767. X377 404
  3768. X379 404
  3769. X380 407
  3770. X380 408
  3771. X376 409
  3772. X377 410
  3773. X378 410
  3774. X379 410
  3775. X380 410
  3776. X381 410
  3777. X469 199
  3778. X470 199
  3779. X469 200
  3780. X470 200
  3781. X469 204
  3782. X470 204
  3783. X469 205
  3784. X470 205
  3785. X373 403
  3786. X374 403
  3787. X372 405
  3788. X373 405
  3789. X374 405
  3790. X372 406
  3791. X373 406
  3792. X375 406
  3793. X372 407
  3794. X373 407
  3795. X375 407
  3796. X372 417
  3797. X373 417
  3798. X375 417
  3799. X372 418
  3800. X373 418
  3801. X375 418
  3802. X358 404
  3803. X359 404
  3804. X358 405
  3805. X359 405
  3806. X359 406
  3807. X359 418
  3808. END_OF_xlife-2.0/patterns/rakecollision.life
  3809. if test 8875 -ne `wc -c <xlife-2.0/patterns/rakecollision.life`; then
  3810.     echo shar: \"xlife-2.0/patterns/rakecollision.life\" unpacked with wrong size!
  3811. fi
  3812. # end of overwriting check
  3813. fi
  3814. if test -f xlife-2.0/tab.h -a "${1}" != "-c" ; then 
  3815.   echo shar: Will not over-write existing file \"xlife-2.0/tab.h\"
  3816. else
  3817. echo shar: Extracting \"xlife-2.0/tab.h\" \(7406 characters\)
  3818. sed "s/^X//" >xlife-2.0/tab.h <<'END_OF_xlife-2.0/tab.h'
  3819. X/*
  3820. X * XLife Copyright 1989 Jon Bennett jb7m+@andrew.cmu.edu, jcrb@cs.cmu.edu
  3821. X *
  3822. X * Permission to use, copy, modify, distribute, and sell this software and its
  3823. X * documentation for any purpose is hereby granted without fee, provided that
  3824. X * the above copyright notice appear in all copies and that both that
  3825. X * copyright notice and this permission notice appear in supporting
  3826. X * documentation, and that the name of the copyright holders not be used in
  3827. X * advertising or publicity pertaining to distribution of the software without
  3828. X * specific, written prior permission.  The copyright holders make no
  3829. X * representations about the suitability of this software for any purpose.  It
  3830. X * is provided "as is" without express or implied warranty.
  3831. X *
  3832. X * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  3833. X * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  3834. X * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  3835. X * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  3836. X * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  3837. X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  3838. X * PERFORMANCE OF THIS SOFTWARE.
  3839. X */
  3840. X
  3841. Xint tab1[]={
  3842. X0x00000000,
  3843. X0x00000011,
  3844. X0x00000111,
  3845. X0x00000122,
  3846. X0x00001110,
  3847. X0x00001121,
  3848. X0x00001221,
  3849. X0x00001232,
  3850. X0x00011100,
  3851. X0x00011111,
  3852. X0x00011211,
  3853. X0x00011222,
  3854. X0x00012210,
  3855. X0x00012221,
  3856. X0x00012321,
  3857. X0x00012332,
  3858. X0x00111000,
  3859. X0x00111011,
  3860. X0x00111111,
  3861. X0x00111122,
  3862. X0x00112110,
  3863. X0x00112121,
  3864. X0x00112221,
  3865. X0x00112232,
  3866. X0x00122100,
  3867. X0x00122111,
  3868. X0x00122211,
  3869. X0x00122222,
  3870. X0x00123210,
  3871. X0x00123221,
  3872. X0x00123321,
  3873. X0x00123332,
  3874. X0x01110000,
  3875. X0x01110011,
  3876. X0x01110111,
  3877. X0x01110122,
  3878. X0x01111110,
  3879. X0x01111121,
  3880. X0x01111221,
  3881. X0x01111232,
  3882. X0x01121100,
  3883. X0x01121111,
  3884. X0x01121211,
  3885. X0x01121222,
  3886. X0x01122210,
  3887. X0x01122221,
  3888. X0x01122321,
  3889. X0x01122332,
  3890. X0x01221000,
  3891. X0x01221011,
  3892. X0x01221111,
  3893. X0x01221122,
  3894. X0x01222110,
  3895. X0x01222121,
  3896. X0x01222221,
  3897. X0x01222232,
  3898. X0x01232100,
  3899. X0x01232111,
  3900. X0x01232211,
  3901. X0x01232222,
  3902. X0x01233210,
  3903. X0x01233221,
  3904. X0x01233321,
  3905. X0x01233332,
  3906. X0x11100000,
  3907. X0x11100011,
  3908. X0x11100111,
  3909. X0x11100122,
  3910. X0x11101110,
  3911. X0x11101121,
  3912. X0x11101221,
  3913. X0x11101232,
  3914. X0x11111100,
  3915. X0x11111111,
  3916. X0x11111211,
  3917. X0x11111222,
  3918. X0x11112210,
  3919. X0x11112221,
  3920. X0x11112321,
  3921. X0x11112332,
  3922. X0x11211000,
  3923. X0x11211011,
  3924. X0x11211111,
  3925. X0x11211122,
  3926. X0x11212110,
  3927. X0x11212121,
  3928. X0x11212221,
  3929. X0x11212232,
  3930. X0x11222100,
  3931. X0x11222111,
  3932. X0x11222211,
  3933. X0x11222222,
  3934. X0x11223210,
  3935. X0x11223221,
  3936. X0x11223321,
  3937. X0x11223332,
  3938. X0x12210000,
  3939. X0x12210011,
  3940. X0x12210111,
  3941. X0x12210122,
  3942. X0x12211110,
  3943. X0x12211121,
  3944. X0x12211221,
  3945. X0x12211232,
  3946. X0x12221100,
  3947. X0x12221111,
  3948. X0x12221211,
  3949. X0x12221222,
  3950. X0x12222210,
  3951. X0x12222221,
  3952. X0x12222321,
  3953. X0x12222332,
  3954. X0x12321000,
  3955. X0x12321011,
  3956. X0x12321111,
  3957. X0x12321122,
  3958. X0x12322110,
  3959. X0x12322121,
  3960. X0x12322221,
  3961. X0x12322232,
  3962. X0x12332100,
  3963. X0x12332111,
  3964. X0x12332211,
  3965. X0x12332222,
  3966. X0x12333210,
  3967. X0x12333221,
  3968. X0x12333321,
  3969. X0x12333332,
  3970. X0x11000000,
  3971. X0x11000011,
  3972. X0x11000111,
  3973. X0x11000122,
  3974. X0x11001110,
  3975. X0x11001121,
  3976. X0x11001221,
  3977. X0x11001232,
  3978. X0x11011100,
  3979. X0x11011111,
  3980. X0x11011211,
  3981. X0x11011222,
  3982. X0x11012210,
  3983. X0x11012221,
  3984. X0x11012321,
  3985. X0x11012332,
  3986. X0x11111000,
  3987. X0x11111011,
  3988. X0x11111111,
  3989. X0x11111122,
  3990. X0x11112110,
  3991. X0x11112121,
  3992. X0x11112221,
  3993. X0x11112232,
  3994. X0x11122100,
  3995. X0x11122111,
  3996. X0x11122211,
  3997. X0x11122222,
  3998. X0x11123210,
  3999. X0x11123221,
  4000. X0x11123321,
  4001. X0x11123332,
  4002. X0x12110000,
  4003. X0x12110011,
  4004. X0x12110111,
  4005. X0x12110122,
  4006. X0x12111110,
  4007. X0x12111121,
  4008. X0x12111221,
  4009. X0x12111232,
  4010. X0x12121100,
  4011. X0x12121111,
  4012. X0x12121211,
  4013. X0x12121222,
  4014. X0x12122210,
  4015. X0x12122221,
  4016. X0x12122321,
  4017. X0x12122332,
  4018. X0x12221000,
  4019. X0x12221011,
  4020. X0x12221111,
  4021. X0x12221122,
  4022. X0x12222110,
  4023. X0x12222121,
  4024. X0x12222221,
  4025. X0x12222232,
  4026. X0x12232100,
  4027. X0x12232111,
  4028. X0x12232211,
  4029. X0x12232222,
  4030. X0x12233210,
  4031. X0x12233221,
  4032. X0x12233321,
  4033. X0x12233332,
  4034. X0x22100000,
  4035. X0x22100011,
  4036. X0x22100111,
  4037. X0x22100122,
  4038. X0x22101110,
  4039. X0x22101121,
  4040. X0x22101221,
  4041. X0x22101232,
  4042. X0x22111100,
  4043. X0x22111111,
  4044. X0x22111211,
  4045. X0x22111222,
  4046. X0x22112210,
  4047. X0x22112221,
  4048. X0x22112321,
  4049. X0x22112332,
  4050. X0x22211000,
  4051. X0x22211011,
  4052. X0x22211111,
  4053. X0x22211122,
  4054. X0x22212110,
  4055. X0x22212121,
  4056. X0x22212221,
  4057. X0x22212232,
  4058. X0x22222100,
  4059. X0x22222111,
  4060. X0x22222211,
  4061. X0x22222222,
  4062. X0x22223210,
  4063. X0x22223221,
  4064. X0x22223321,
  4065. X0x22223332,
  4066. X0x23210000,
  4067. X0x23210011,
  4068. X0x23210111,
  4069. X0x23210122,
  4070. X0x23211110,
  4071. X0x23211121,
  4072. X0x23211221,
  4073. X0x23211232,
  4074. X0x23221100,
  4075. X0x23221111,
  4076. X0x23221211,
  4077. X0x23221222,
  4078. X0x23222210,
  4079. X0x23222221,
  4080. X0x23222321,
  4081. X0x23222332,
  4082. X0x23321000,
  4083. X0x23321011,
  4084. X0x23321111,
  4085. X0x23321122,
  4086. X0x23322110,
  4087. X0x23322121,
  4088. X0x23322221,
  4089. X0x23322232,
  4090. X0x23332100,
  4091. X0x23332111,
  4092. X0x23332211,
  4093. X0x23332222,
  4094. X0x23333210,
  4095. X0x23333221,
  4096. X0x23333321,
  4097. X0x23333332
  4098. X};
  4099. X
  4100. Xint tab2[]={
  4101. X0x00000000,
  4102. X0x00000010,
  4103. X0x00000101,
  4104. X0x00000111,
  4105. X0x00001010,
  4106. X0x00001020,
  4107. X0x00001111,
  4108. X0x00001121,
  4109. X0x00010100,
  4110. X0x00010110,
  4111. X0x00010201,
  4112. X0x00010211,
  4113. X0x00011110,
  4114. X0x00011120,
  4115. X0x00011211,
  4116. X0x00011221,
  4117. X0x00101000,
  4118. X0x00101010,
  4119. X0x00101101,
  4120. X0x00101111,
  4121. X0x00102010,
  4122. X0x00102020,
  4123. X0x00102111,
  4124. X0x00102121,
  4125. X0x00111100,
  4126. X0x00111110,
  4127. X0x00111201,
  4128. X0x00111211,
  4129. X0x00112110,
  4130. X0x00112120,
  4131. X0x00112211,
  4132. X0x00112221,
  4133. X0x01010000,
  4134. X0x01010010,
  4135. X0x01010101,
  4136. X0x01010111,
  4137. X0x01011010,
  4138. X0x01011020,
  4139. X0x01011111,
  4140. X0x01011121,
  4141. X0x01020100,
  4142. X0x01020110,
  4143. X0x01020201,
  4144. X0x01020211,
  4145. X0x01021110,
  4146. X0x01021120,
  4147. X0x01021211,
  4148. X0x01021221,
  4149. X0x01111000,
  4150. X0x01111010,
  4151. X0x01111101,
  4152. X0x01111111,
  4153. X0x01112010,
  4154. X0x01112020,
  4155. X0x01112111,
  4156. X0x01112121,
  4157. X0x01121100,
  4158. X0x01121110,
  4159. X0x01121201,
  4160. X0x01121211,
  4161. X0x01122110,
  4162. X0x01122120,
  4163. X0x01122211,
  4164. X0x01122221,
  4165. X0x10100000,
  4166. X0x10100010,
  4167. X0x10100101,
  4168. X0x10100111,
  4169. X0x10101010,
  4170. X0x10101020,
  4171. X0x10101111,
  4172. X0x10101121,
  4173. X0x10110100,
  4174. X0x10110110,
  4175. X0x10110201,
  4176. X0x10110211,
  4177. X0x10111110,
  4178. X0x10111120,
  4179. X0x10111211,
  4180. X0x10111221,
  4181. X0x10201000,
  4182. X0x10201010,
  4183. X0x10201101,
  4184. X0x10201111,
  4185. X0x10202010,
  4186. X0x10202020,
  4187. X0x10202111,
  4188. X0x10202121,
  4189. X0x10211100,
  4190. X0x10211110,
  4191. X0x10211201,
  4192. X0x10211211,
  4193. X0x10212110,
  4194. X0x10212120,
  4195. X0x10212211,
  4196. X0x10212221,
  4197. X0x11110000,
  4198. X0x11110010,
  4199. X0x11110101,
  4200. X0x11110111,
  4201. X0x11111010,
  4202. X0x11111020,
  4203. X0x11111111,
  4204. X0x11111121,
  4205. X0x11120100,
  4206. X0x11120110,
  4207. X0x11120201,
  4208. X0x11120211,
  4209. X0x11121110,
  4210. X0x11121120,
  4211. X0x11121211,
  4212. X0x11121221,
  4213. X0x11211000,
  4214. X0x11211010,
  4215. X0x11211101,
  4216. X0x11211111,
  4217. X0x11212010,
  4218. X0x11212020,
  4219. X0x11212111,
  4220. X0x11212121,
  4221. X0x11221100,
  4222. X0x11221110,
  4223. X0x11221201,
  4224. X0x11221211,
  4225. X0x11222110,
  4226. X0x11222120,
  4227. X0x11222211,
  4228. X0x11222221,
  4229. X0x01000000,
  4230. X0x01000010,
  4231. X0x01000101,
  4232. X0x01000111,
  4233. X0x01001010,
  4234. X0x01001020,
  4235. X0x01001111,
  4236. X0x01001121,
  4237. X0x01010100,
  4238. X0x01010110,
  4239. X0x01010201,
  4240. X0x01010211,
  4241. X0x01011110,
  4242. X0x01011120,
  4243. X0x01011211,
  4244. X0x01011221,
  4245. X0x01101000,
  4246. X0x01101010,
  4247. X0x01101101,
  4248. X0x01101111,
  4249. X0x01102010,
  4250. X0x01102020,
  4251. X0x01102111,
  4252. X0x01102121,
  4253. X0x01111100,
  4254. X0x01111110,
  4255. X0x01111201,
  4256. X0x01111211,
  4257. X0x01112110,
  4258. X0x01112120,
  4259. X0x01112211,
  4260. X0x01112221,
  4261. X0x02010000,
  4262. X0x02010010,
  4263. X0x02010101,
  4264. X0x02010111,
  4265. X0x02011010,
  4266. X0x02011020,
  4267. X0x02011111,
  4268. X0x02011121,
  4269. X0x02020100,
  4270. X0x02020110,
  4271. X0x02020201,
  4272. X0x02020211,
  4273. X0x02021110,
  4274. X0x02021120,
  4275. X0x02021211,
  4276. X0x02021221,
  4277. X0x02111000,
  4278. X0x02111010,
  4279. X0x02111101,
  4280. X0x02111111,
  4281. X0x02112010,
  4282. X0x02112020,
  4283. X0x02112111,
  4284. X0x02112121,
  4285. X0x02121100,
  4286. X0x02121110,
  4287. X0x02121201,
  4288. X0x02121211,
  4289. X0x02122110,
  4290. X0x02122120,
  4291. X0x02122211,
  4292. X0x02122221,
  4293. X0x11100000,
  4294. X0x11100010,
  4295. X0x11100101,
  4296. X0x11100111,
  4297. X0x11101010,
  4298. X0x11101020,
  4299. X0x11101111,
  4300. X0x11101121,
  4301. X0x11110100,
  4302. X0x11110110,
  4303. X0x11110201,
  4304. X0x11110211,
  4305. X0x11111110,
  4306. X0x11111120,
  4307. X0x11111211,
  4308. X0x11111221,
  4309. X0x11201000,
  4310. X0x11201010,
  4311. X0x11201101,
  4312. X0x11201111,
  4313. X0x11202010,
  4314. X0x11202020,
  4315. X0x11202111,
  4316. X0x11202121,
  4317. X0x11211100,
  4318. X0x11211110,
  4319. X0x11211201,
  4320. X0x11211211,
  4321. X0x11212110,
  4322. X0x11212120,
  4323. X0x11212211,
  4324. X0x11212221,
  4325. X0x12110000,
  4326. X0x12110010,
  4327. X0x12110101,
  4328. X0x12110111,
  4329. X0x12111010,
  4330. X0x12111020,
  4331. X0x12111111,
  4332. X0x12111121,
  4333. X0x12120100,
  4334. X0x12120110,
  4335. X0x12120201,
  4336. X0x12120211,
  4337. X0x12121110,
  4338. X0x12121120,
  4339. X0x12121211,
  4340. X0x12121221,
  4341. X0x12211000,
  4342. X0x12211010,
  4343. X0x12211101,
  4344. X0x12211111,
  4345. X0x12212010,
  4346. X0x12212020,
  4347. X0x12212111,
  4348. X0x12212121,
  4349. X0x12221100,
  4350. X0x12221110,
  4351. X0x12221201,
  4352. X0x12221211,
  4353. X0x12222110,
  4354. X0x12222120,
  4355. X0x12222211,
  4356. X0x12222221
  4357. X};
  4358. X
  4359. END_OF_xlife-2.0/tab.h
  4360. if test 7406 -ne `wc -c <xlife-2.0/tab.h`; then
  4361.     echo shar: \"xlife-2.0/tab.h\" unpacked with wrong size!
  4362. fi
  4363. # end of overwriting check
  4364. fi
  4365. echo shar: End of archive 4 \(of 8\).
  4366. cp /dev/null ark4isdone
  4367. MISSING=""
  4368. for I in 1 2 3 4 5 6 7 8 ; do
  4369.     if test ! -f ark${I}isdone ; then
  4370.     MISSING="${MISSING} ${I}"
  4371.     fi
  4372. done
  4373. if test "${MISSING}" = "" ; then
  4374.     echo You have unpacked all 8 archives.
  4375.     rm -f ark[1-9]isdone
  4376. else
  4377.     echo You still need to unpack the following archives:
  4378.     echo "        " ${MISSING}
  4379. fi
  4380. ##  End of shell archive.
  4381. exit 0
  4382.  
  4383. dan
  4384. ----------------------------------------------------
  4385. O'Reilly && Associates   argv@sun.com / argv@ora.com
  4386. Opinions expressed reflect those of the author only.
  4387.