home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 618a.lha / FastLife_v1.1 / FastLife.doc.pp / FastLife.doc
Text File  |  1992-03-03  |  21KB  |  602 lines

  1. ›1m›32m
  2.                      F a s t L i f e
  3. ›0m
  4.                            by
  5. ›1m›33m
  6.                  R o n  C h a r l t o n
  7. ›0m
  8.                       Version 1.1
  9.                       04-Jan-1992
  10.  
  11.  
  12. FastLife is an Amiga implementation of Conway's Game of Life.
  13.  
  14. FastLife may be freely distributed.
  15.  
  16. ›1m›32m
  17. C r e d i t s
  18. ›0m
  19.    o  Intuition Interface and Integration by Ron Charlton
  20.    o  Blitter Life Routines by Tom Rokicki
  21.    o  CPU (680x0) Life Routines by Olaf Seibert
  22.    o  Simple Requesters by Steve Tibbett
  23.    o  ARP File Requester by Charlie Heath
  24.    o  Menus generated with MenuC by Bruce Mackey
  25.  
  26. ›1m›32m
  27. Q u i c k   S t a r t
  28. ›0m
  29. 1. Double click on the FastLife Icon
  30. 2. Select the "Control-Run" menu item
  31.  
  32.       ›33mor›0m
  33.  
  34. 1. Double-click on the FastLife Icon
  35. 2. Select "Project-New" menu item
  36. 3. Select "Project-Open" menu item
  37. 4. Type "acorn.life" (without the quotes) and press <return>
  38. 5. Click in the center of the screen
  39. 6. Select the "Control-Run" menu item
  40.  
  41. ›1m›32m
  42. F e a t u r e s
  43. ›0m
  44.    o  Menu-selectable Calculation Mode (CPU or Blitter)
  45.    o  High Speed Blitter mode on Amiga 2000/500/1000 (19 generations/sec.)
  46.    o  CPU mode for Amiga 3000 or accelerator (35 gen's./sec. at 25 Mhz)
  47.    o  Automatic fallback to CPU mode when memory is low
  48.    o  Four screen sizes
  49.    o  Full Intuition interface
  50.    o  Runs under Workbench 1.3 and 2.0x
  51.    o  Runs from Workbench and CLI
  52.    o  Uses Heath File Requester (if you have arp.library)
  53.    o  153 Life patterns in text file format
  54.  
  55. ›1m›32m
  56. T h e   G a m e   o f   L i f e
  57. ›0m
  58. In 1970 John Horton Conway, a mathematician at the University of Cambridge,
  59. invented the game of Life.  It was introduced by Martin Gardener in his
  60. October 1970 Scientific American column. Conway's goal was to create a
  61. board "game" with simple rules that would exhibit complex behavior.  The
  62. game is played on an infinite checkerboard, or grid.  Each square, or cell,
  63. is either alive or dead (ON or OFF).  Time moves in steps; each step marks
  64. the life of one generation.
  65.  
  66. Each cell's condition (ON or OFF) in the next generation is based on the
  67. life in it and its eight neighboring cells.  For example, the cell
  68. represented by the asterisk (*) below has eight neighbors -
  69.  
  70.      123
  71.      4*5
  72.      678
  73.  
  74. There are three rules concerning the neighbors state in the next
  75. generation:
  76.  
  77.      1.  If there are 2 ON neighbors the cell stays ON or OFF
  78.      2.  If there are 3 ON neighbors the cell is ON
  79.      3.  0, 1, 4, 5, 6, 7 or 8 ON neighbors the cell is OFF
  80.  
  81. The analogy to real life: too many neighbors and the cell dies from
  82. overcrowding, too few neighbors and the cell dies from loneliness.  Three
  83. cells results in trisexual mating.
  84.  
  85. The ON/OFF state is determined for all cells on the board before changing
  86. to the next generation.
  87.  
  88. Many computer versions of Life have one pixel on the screen represent one
  89. cell on the board, as does FastLife.  The screen resolution determines how
  90. many cells are available in FastLife, so the board is not truly infinite as
  91. defined by Conway.
  92.  
  93. An excellent reference for learning more about the history and
  94. philosophical implications of Life is
  95.  
  96.      ›33mThe Recursive Universe›0m by William Poundstone,
  97.      Contemporary Books, Chicago, 1985
  98.  
  99. The book consists of alternating chapters about Conway's game of Life and
  100. modern physics, and what the game of Life can reveal about the beginning of
  101. biological life and its replication.
  102.  
  103. ›1m›32m
  104. A b o u t   F a s t L i f e
  105. ›0m
  106. The desire to combine the speed of Tom Rokicki's blitter Life routines with
  107. an Intuition interface and access to many of the classic Life patterns led
  108. to the development of FastLife.  Olaf Seibert's 32-bit CPU (680x0) mode
  109. allows the CPU to take over when there is insufficient memory to use the
  110. blitter or when your Amiga's CPU is faster than the blitter.
  111.  
  112. The storage format for the Life patterns supplied with FastLife is a simple
  113. text file (see File Format below).  Although FastLife does not allow
  114. on-screen editing of Life patterns, you may use your favorite text editor
  115. to create text file patterns to load into FastLife.
  116.  
  117. Conway defined an infinite board for Life; FastLife limits itself to the
  118. screen size of the Amiga (320 by 200 to 640 by 400). Patterns that spread
  119. to the edge of the screen will be "eaten" away there, so you should be sure
  120. that you select a screen size that will contain the entire pattern you want
  121. to view.  This corruption of the Life pattern at the edge of the screen is
  122. not detected by FastLife; you must observe for yourself when this happens
  123. as Fastlife runs.
  124.  
  125. FastLife ALWAYS calculates the entire screen, unlike some other
  126. implementations of Life.  Calculation speed is not dependent on how many
  127. cells are ON or OFF, but only on the screen size and whether the blitter or
  128. CPU is used for calculation.
  129.  
  130. ›1m›32m
  131. C h o o s i n g   a   C a l c u l a t i o n   M o d e
  132. ›0m
  133. Fastlife can use the blitter or the CPU to calculate each generation.  The
  134. only difference is how fast the next generation is calculated and how much
  135. memory is used.  I have tested Fastlife on a stock Amiga 2000 and an Amiga
  136. 3000/25; the results are shown below. The Amiga 2000 results should be
  137. valid for the Amiga 500 and Amiga 1000 also.
  138.  
  139. If your Amiga is not listed, or you have an accelerator, you can run a
  140. simple test to decide which mode is fastest on your Amiga. The test is
  141. described later under "Which is Faster?"
  142.  
  143. You may change the calculation mode in several ways:
  144.  
  145.      CPU mode -
  146.           Menu Item CalcMode-CPU
  147.           Right-Amiga-C key
  148.           C key
  149.           Add any argument to the Shell/CLI command line
  150.  
  151.      Blitter mode -
  152.           Menu Item CalcMode-Blitter
  153.           Right-Amiga-B key
  154.           B key
  155.           No arguments to the Shell/CLI command line
  156.  
  157. ›1m›32m
  158. F a s t l i f e   S p e e d   a n d   M e m o r y
  159. ›0m
  160. FastLife memory usage and speed vs. screen size and calculation mode on a
  161. stock Amiga 2000 (68000 at 7 MHz) and a stock Amiga 3000/25 (68030 at 25
  162. MHz):
  163.  
  164.      Screen   Calc.             Memory         Generations
  165.       Size    Mode           CHIP   TOTAL      per Second
  166.      ------- -------         ----   -----      -----------
  167.      320x200 68030            18K     63k         35.0
  168.      320x400 68030            34k     79k         18.0
  169.      640x200 68030            34k     79k         18.0
  170.      640x400 68030            66k    111k          9.0
  171.  
  172.      320x200 blitter          50k     95k         19.0
  173.      320x400 blitter          98k    143k          9.5
  174.      640x200 blitter          98k    143k          9.5
  175.      640x400 blitter         194k    239k          4.7
  176.  
  177.      320x200 68000            18K     63k          5.5
  178.      320x400 68000            34k     79k          2.7
  179.      640x200 68000            34k     79k          2.7
  180.      640x400 68000            66k    111k          1.3
  181.  
  182. So -
  183.  
  184.   blitter speed   = 4   times 68000  ( 7 MHz Amiga 2000)
  185.   blitter speed   = 1/2 times 68030  (25 MHz Amiga 3000)
  186.  
  187. and for each screen size -
  188.  
  189.   blitter mode CHIP memory   = 3 times CPU mode CHIP memory
  190.   blitter mode total memory  = 2 times CPU mode total memory
  191.  
  192. ›33mNote:›0m The CPU calculation mode is slowed greatly if FAST memory is not
  193. available.  For example, no FAST memory will slow the 320x200 68030 rate
  194. from 35 to 14 generations per second!›1m›32m
  195.  
  196.  
  197. S t a r t i n g   F a s t L i f e
  198. ›0m
  199. You may start FastLife from Workbench by double-clicking its icon.  You may
  200. request FastLife start in either CPU or blitter calculation mode by setting
  201. an icon ToolType.  To set a ToolType click once on FastLife's icon and use
  202. the Workbench menu to select Info (Workbench 1.3) or Information (Workbench
  203. 2.0).  Enter the appropriate ToolType:
  204.  
  205.      CALCMODE=BLITTER
  206.  
  207.           or
  208.  
  209.      CALCMODE=CPU
  210.  
  211. Finally, select Save.  FastLife will then start in the selected mode if
  212. enough memory is available.
  213.  
  214. You may also start FastLife from the Shell or CLI by typing
  215.  
  216.      1> FastLife
  217.  
  218. or
  219.  
  220.      1> run FastLife
  221.  
  222. If you add anything to the end of the CLI command FastLife will use the CPU
  223. rather than the blitter when it starts. The command would then be
  224.  
  225.  
  226.      1> FastLife frog fuzz
  227.  
  228. or
  229.  
  230.      1> run FastLife frog fuzz
  231.  
  232. ›1m›32m
  233. U s i n g  F a s t L i f e
  234. ›0m
  235. When Fastlife starts it will open its default screen (320 by 200 pixels),
  236. which is its fastest.  FastLife will use the requested calculation mode
  237. when sufficient memory is available.  If sufficient memory is not available
  238. Fastlife will automatically fall back to the CPU mode.
  239.  
  240. FastLife will initially display its name on the default screen.  You may
  241. select menu item Control-Run and see FastLife run for over 3100 generations
  242. before the pattern becomes stable.  Or you may immediately select menu item
  243. Project-New to clear the screen.
  244.  
  245. If you use the menu to request a new screen size FastLife will try to give
  246. you that size, but if memory is not available it will fall back in the
  247. following order:
  248.  
  249.      1. Requested screen size with requested calculation mode
  250.      2. Requested screen size with CPU mode
  251.      3. Default screen size with requested calculation mode
  252.      4. Default screen size with CPU mode
  253.  
  254. In the worst case no screen will be provided and FastLife will exit with an
  255. error message.
  256.  
  257. If you can't get the screen size and blitter/CPU mode you want, try closing
  258. other screens, windows and projects/tools to free up memory.  You may even
  259. want to reboot your Amiga in case memory has been fragmented by other
  260. programs.
  261.  
  262. You can use the Left-Amiga-N and Left-Amiga-M key combinations to expose
  263. the FastLife screen or hide it behind the Workbench screen.  You can also
  264. click in the small FastLife window on the Workbench to bring FastLife's
  265. screen to the front.  (Also see the Project-ScreenToBack menu item.)
  266.  
  267. ›1m›32m
  268. M e n u s   a n d   K e y b o a r d   S h o r t c u t s
  269. ›0m
  270. FastLife has the following menu selections:
  271.  
  272.  
  273. Project
  274.     New           <N>
  275.     Open          <O>
  276.     Open Again    <A>
  277.     About
  278.     ScreenToBack
  279.     Generation
  280.         Show
  281.         Reset
  282.     Screen Size
  283.         320 x 200
  284.         320 x 400
  285.         640 x 200
  286.         640 x 400
  287.     Priority
  288.         Lower
  289.         Normal
  290.         Higher
  291.     Quit          <Q>
  292.  
  293. CalcMode
  294.     Blitter       <B>
  295.     CPU           <C>
  296.  
  297. Control
  298.     Once          </>
  299.     Speed
  300.     Run           <R>
  301.     Stop          <S>
  302.  
  303.  
  304.  
  305. The menu items are:
  306.  
  307. Project-›33mNew›0m - "New" clears the screen of ON cells in preparation for a
  308.     new pattern.
  309.  
  310. Project-›33mOpen›0m - "Open" allows you to load a new Life pattern from disk.
  311.     The Life file names end with ".life" (no quotes).
  312.  
  313.     IF YOU HAVE ARP:
  314.     If you have arp.library (ARP 39+, REL1.3) in your LIBS: directory you
  315.     will get the Heath File Requester.  You will be shown only files that
  316.     end in ".life" (upper or lower case does not matter).  Double click on
  317.     a file name to load it.
  318.  
  319.     IF YOU DO NOT HAVE ARP:
  320.     If you do not have arp.library you will see a requester with a string
  321.     gadget into which you may type a file name to load.  Be sure you give a
  322.     path name if the ".life" files are not in the current directory.
  323.  
  324.     You may include ".life" when you type in the file name or you may leave
  325.     it out.  However, on disk the file name must include ".life".
  326.  
  327.     There are three file types:  Absolute, Relative and Picture (denoted in
  328.     the files with "#A", "#R" or "#P").  An Absolute file will immediately
  329.     be displayed on the screen.  The other file types will wait for you to
  330.     click on the screen to indicate where to display the pattern from the
  331.     file.  The mouse pointer will change to a picture of a glider life form
  332.     to indicate FastLife is waiting for a click.
  333.  
  334.     FastLife will indicate if part of the Life pattern falls off of the
  335.     screen's edge.
  336.  
  337.     NOTE - the "*.life" files are separated into directories by screen
  338.     size.  Within the 320 by 200 directory the files are in sub-directories
  339.     solely so floppy disk users won't have to wait for the Heath requester
  340.     to load 130 filenames each time they want to Open a file.
  341.  
  342. Project-›33mOpen Again›0m - You may load the previous file again by selecting
  343.     "Open Again".  If the file is Relative or Pattern you must again click
  344.     to show where to load the pattern on the screen. (You may want to
  345.     select "New" before using "Open Again".  The file name is not lost when
  346.     "New" is selected.)
  347.  
  348. Project-›33mAbout›0m - Shows the current version number and date, along with
  349.     credits to the authors.
  350.  
  351. Project-›33mScreenToBack›0m - Sends the FastLife screen to the back (behind
  352.     the Workbench screen).
  353.  
  354. Project-›33mGeneration›0m - The Show subitem will show the current generation
  355.     number.  The "Reset" subitem will reset the generation number to zero.
  356.  
  357. Porject-›33mScreenSize›0m - Selecting a subitem under screen size will change
  358.     to that size.  NOTE:  The current Life pattern on the screen will be
  359.     lost when a new screen size is selected.
  360.  
  361. Project-›33mPriority›0m - select Lower (-1), Normal (0), or Higher (1) task
  362.     Priority
  363.  
  364.     The Lower, Normal and Higher subitems set the task priority of FastLife
  365.     to -1, 0 or +1 respectively.
  366.  
  367.     Caveat:  Task priorities on the Amiga range from -127 to +127.  It
  368.     might appear that increasing or decreasing Fastlife's priority by only
  369.     one would have little effect.  This is not true since the priority
  370.     number only establishes an ›3morder›0m.  The difference between the
  371.     priorities matters not.  If you select a Higher priority for FastLife
  372.     it can prevent any program at a lower priority (such as zero) from
  373.     running at all.  Since most programs run at priority zero, FastLife
  374.     with Higher Priority (1) can stall them completely.  Conversely, if
  375.     FastLife's priority is Lower (-1) other programs can stop FastLife from
  376.     responding.  A complication to all this is the interaction of programs
  377.     when they are waiting.  A program with higher priority can allow lower
  378.     priority programs to run if it has nothing to do at the moment (as when
  379.     a word processor is waiting for you to type something). Polite programs
  380.     yield to lower priority programs as much as possible.  If FastLife is
  381.     running at its fastest (i.e., number key '1' selected) it will never
  382.     yield to lower priority programs, thus stalling them completely.  If
  383.     you select a number key '2' through '9' FastLife will be waiting part
  384.     of the time and will yield to other programs.  If you select a Lower
  385.     priority for FastLife and a higher priority program does no waiting (as
  386.     when you "TYPE" a file in a CLI or Shell) FastLife will not respond to
  387.     your commands.  The cure for this is to cause the other program to wait
  388.     (Stop the mandelbrot generator, or send Break to the CLI or Shell,
  389.     etc.).
  390.  
  391. Project-›33mQuit›0m - closes FastLife
  392.  
  393.  
  394. CalcMode-›33mBlitter›0m - Use the Blitter for calculating
  395.  
  396. CalcMode-›33mCPU›0m     - Use the 680x0 CPU for calculating
  397.  
  398.  
  399. Control-›33mOnce›0m  - Calculate one generation
  400.  
  401. Control-›33mSpeed›0m - describes how to control the speed of FastLife
  402.  
  403.     Selecting the Speed menu item will display a brief description of how
  404.     to slow FastLife.  Slowing FastLife will allow you to see what is
  405.     happening in more detail.
  406.  
  407.     Pressing one of the number keys '1' thru '9' will select fastest
  408.     through slowest, respectively.  '1' introduces no delay. Each higher
  409.     numbered key slows FastLife more.  '9' introduces about ten seconds of
  410.     delay between each generation.  (Also see the caveat under "Priority.")
  411.  
  412. Control-›33mRun›0m   - causes the screen to update continuously
  413.  
  414. Control-›33mStop›0m  - stops updating of the screen.
  415.  
  416. -----
  417.  
  418.  
  419. Selecting "Once" or "Run" will appear to do nothing if there is no Life
  420. pattern on the screen.  Open a pattern file first.  Also note that
  421. selecting speed key '9' may make it appear FastLife is stalled when it is
  422. not.
  423.  
  424. You may make multiple menu selections at one time, for example:  Press and
  425. hold the right mouse button, point at "Project-New" and click the left
  426. mouse button; point at "Project-Open" and click the left mouse button.
  427. Release the right mouse button.  This will clear the screen and bring up
  428. "Open" in one menu action.  Multiple menu selections are explained in your
  429. Amiga software manual.
  430.  
  431. ›1m›32m
  432. F i l e   F o r m a t
  433. ›0m
  434. The Life patterns supplied with FastLife are stored in files that end in
  435. ".life" (The Heath File Requester will display only file names that end
  436. thusly). The patterns were obtained with "xlife" for X-Windows under UNIX
  437. and retain a subset of the formats used there.
  438.  
  439. You can make your own Life patterns using your favorite text editor, just
  440. be sure to follow the format described below.  Also be sure that your file
  441. name ends in ".life" so the Heath File Requester will show it.
  442. Multitasking on the Amiga will allow you to switch back and forth between
  443. FastLife and your editor to speed your work.
  444.  
  445.  
  446. Picture file format - The "Picture" file format has a "#P" as the first
  447. line.  Each line that follows represents a line of cells across the screen,
  448. with "*" being an ON cell and any other character being an OFF cell.
  449.  
  450. An example of a Picture file is
  451.  
  452.  #P
  453.  **.
  454.  .**
  455.  .*.
  456.  
  457. Absolute file format - The "Absolute" file format consists of pairs of
  458. absolute X-Y addresses of the cells to turn ON, one pair per line.  The
  459. file may or may not have "#A" as the first line.
  460.  
  461. Relative file format - The first line of a "Relative" file must contain
  462. "#R".  Each following line is interpreted as a relative X-Y address
  463. (relative to the position on the screen where you click) of a cell to turn
  464. ON.  The upper left of the image will normally be placed where you click
  465. the mouse on the screen.  Two integers may be placed on the first line
  466. following the "#R" to offset the image.
  467.  
  468.  
  469. ›1m›32m
  470. W h i c h   i s   F a s t e r ?
  471. ›0m
  472. Alternately pressing Right-Amiga-C and Right-Amiga-B will switch between
  473. CPU and Blitter calculating mode.  If it is not obvious which is faster,
  474. use the following procedure -
  475.  
  476.  1. Open ›3many›0m life pattern
  477.  2. Select menu item CalcMode-›33mBlitter›0m
  478.  3. Select menu subitem Project-Generation-›33mReset›0m
  479.  4. Run Fastlife for 10 seconds by your watch
  480.  5. Select menu item Control-›33mStop›0m
  481.  6. Select menu subitem Project-Generation-›33mShow›0m & divide the count by 10
  482.  7. The result is generations per second for ›4mBlitter›0m mode
  483.  
  484.  8. Select menu item CalcMode-›33mCPU›0m
  485.  9. Select menu subitem Project-Generation-›33mReset›0m
  486. 10. Run Fastlife for 10 seconds by your watch
  487. 11. Select menu item Control-›33mStop›0m
  488. 12. Select menu subitem Project-Generation-›33mShow›0m & divide the count by 10
  489. 13. The result is generations per second for ›4mCPU›0m mode
  490.  
  491. 14. Compare the results in step 7 and 13.
  492.  
  493. ›1m›32m
  494. I n t e r e s t i n g   P a t t e r n s
  495. ›0m
  496. Alu.life
  497. bunnies.life
  498. f2.life
  499. glider1_2.life
  500. glider2_2.life
  501. gliderglidergun.life
  502. oscillators.life
  503. p24.life
  504. p26.life
  505. p55.life
  506. rabbit.life
  507. randomgun.life
  508. round.life
  509. switchengine.life
  510.  
  511. ›1m›32m
  512. I f   Y o u   H a v e   T r o u b l e
  513. ›0m
  514. Be sure you have a pattern on the screen before you RUN or it will appear
  515. that nothing is happening.
  516.  
  517. Close screens, windows, projects and tools (or reboot) to free CHIP and
  518. FAST memory if you can't get the screen size you want or blitter support.
  519.  
  520. Reboot to remove memory fragmentation.
  521.  
  522. You will want arp.library in your LIBS: directory (it's not a requirement
  523. but will make your FastLife much easier).  Arp.library is available on many
  524. bulletin boards and "public domain" disk collections.
  525.  
  526. -----
  527.  
  528. FastLife was developed with Manx Aztec C version 5.0e and has been tested
  529. with Workbench 1.3 and 2.04.  Its executable size is less than 30
  530. kilobytes.
  531.  
  532. ›1m›32m
  533. A u t h o r
  534. ›0m
  535.           FastLife
  536.  
  537.              By
  538.  
  539.      Ron Charlton
  540.      9002 Balcor Circle
  541.      Knoxville, TN 37923
  542.      
  543.      (615)694-0800 evenings Eastern Time
  544.      Internet:  charltr@ornl.gov
  545.  
  546.  
  547. ›1m›32mH i s t o r y›0m
  548.  
  549. ›4mVersion 1.0›0m
  550.  
  551.      Initial Release
  552.  
  553. ›4mVersion 1.1›0m
  554.  
  555.      The VERSION Shell command is supported.
  556.  
  557.      The flags passed to the ARP file requester were corrected.
  558.  
  559.      The Tools menu was changed to CalcMode menu.
  560.  
  561.      Anything following FastLife's name on the command line forces CPU
  562.      calculation mode.
  563.  
  564.      FastLife's version is shown in its Workbench window.
  565.  
  566.      SaveAs and Save menu items were removed.
  567.  
  568.      When opening a Relative or Picture format file the mouse pointer
  569.      changes to indicate a mouse click is needed to position the lifeform.
  570.  
  571.      Speed control with the number keys was added.
  572.  
  573.      The Pause menu item was changed to Stop.
  574.  
  575.      Various menu shortcut keys were added.
  576.  
  577.      A Control-Speed menu item was added to explain how to control the
  578.      speed of FastLife.
  579.  
  580.      A Project-Priority menu item was added to select a task priority of
  581.      higher (1), Normal (0) or Lower (-1).
  582.  
  583.      The Icon Tooltypes CALCMODE=BLITTER and CALCMODE=CPU were added.
  584.  
  585.      Clicking on FastLife's Workbench window brings the FastLife screen to
  586.      front.
  587.  
  588.      FastLife adapts to "any" Screen and Default text height and width.
  589.  
  590.       "FASTLIFE" now appears on the startup screen.
  591.  
  592.      The 'B' and 'C' keys select blitter and CPU, respectively.
  593.  
  594.      Menu checkmarks and ghosting were added where appropriate.
  595.  
  596.      ".life" is added to file names if not supplied.
  597.  
  598.      And last but not least, there was a code cleanup.
  599.  
  600. ›3mEnd FastLife.doc›0m
  601.  
  602.