home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / mandelblitz_387.lzh / MandelBlitz / MandelBlitz.doc < prev    next >
Text File  |  1990-10-22  |  11KB  |  268 lines

  1.  
  2.  
  3.                          MandelBlitz 1.0 User Manual
  4.  
  5.                                  Jun 12, 1990
  6.  
  7.  
  8.  
  9. Preface
  10. =======
  11.  
  12.      This program is not in the public domain, it is freeware, freely
  13. distributable sofware.  This means that you can copy it freely as long as you
  14. don't ask any more money for it than a nominal fee for copying.  The program
  15. must always be distributed with its document, both in original unmodified
  16. form.
  17.      If you have suggestions or remarks about this program, or if you find
  18. any bugs, please let me know.
  19.  
  20.      Write to the following address:
  21.  
  22.                                 Nico François
  23.                                 Corbielaan 13
  24.                                 B-3060 Bertem
  25.                                 BELGIUM
  26.  
  27.  
  28. Contents
  29. ========
  30.  
  31. 1. An introduction
  32.  
  33. 2. Usage
  34.      2.1 The file requester
  35.      2.2 Project menu
  36.      2.3 Prefs menu
  37.      2.4 Zoom menu
  38.      2.5 Color cycling
  39.  
  40. 3. Palette
  41.  
  42. 4. Mandel chunk
  43.  
  44. 5. Future versions
  45.  
  46.  
  47. 1. An introduction
  48. ==================
  49.  
  50.      Yep, another mandelbrot program :^)
  51.  
  52.      If you do not know what mandelbrots are I suggest you immediately run out
  53. to your public library or local bookstore and pick up a book about them.  I
  54. would advise you to take a look at the pictures on this disk first because it
  55. is possible that you might not be fascinated by them (the idea ! :-).  Most
  56. people ARE fascinated by them and will hopefully enjoy this program.
  57.  
  58.      Plotting mandelbrots takes a lot of computing power.  MandelBlitz uses
  59. the following two things to speed up calculation:  a special algorithm to find
  60. large regions of the same iteration depth and the blitter to fill these up
  61. (hence the name Mandel_BLIT_z) !  This results in a mandelbrot program that
  62. calculates the standard set in about 45 seconds (PAL) or 35 seconds (NTSC) on
  63. a 68000 Amiga.  I hope you agree that this is very fast (hence the name
  64. Mandel_BLITZ) (hey, wait a minute, wasn't this name explained before :^)
  65.      Other things that speed up plotting are fast 16 and 32 bit integer
  66. calculations, both written in assembly for top speed.
  67.  
  68.      Observant people might notice a certain similarity between parts of
  69. MandelBlitz and TurboMandel (Fish #302, by Philip Marivoet).  This is not a
  70. coincidence :^) (hi Philip)
  71.  
  72.  
  73. 2. Usage
  74. ========
  75.  
  76.      First some general things:
  77.  
  78.      - If you intend to run MandelBlitz via the CLI or Shell There is no need
  79.        to 'Run' it.  The program will auto-detach and the CLI can be used for
  80.        other things.
  81.  
  82.      - MandelBlitz does not support overscan yet, but it does automatically
  83.        adjust its screen to match the size of the Workbench screen.  So if you
  84.        put your Workbench in overscan MandelBlitz will also work in overscan.
  85.        Stupid way to do it, but it works :^)  Next version will probably have
  86.        overscan suport.
  87.  
  88.      - Press the left mouse button and move the mouse to draw a rubber banded
  89.        box.  This box can be used to zoom in on the displayed mandelbrot, it
  90.        will always have the same widht/height ratio as the screen.  Zooming
  91.        can be done most of the time, even during calculation.
  92.  
  93.      - MandelBlitz will automatically change from 16 bit calculations to 32
  94.        bit calculations when it is necessary (16 bit is not very accurate).
  95.  
  96.      - Requesters can be answered by pressing 'Y'/'N' or 'Amiga-V'/'Amiga-B'.
  97.  
  98. 2.1 The file requester
  99. ----------------------
  100.  
  101.     Whenever you are required to enter a filename, MandelBlitz sets up a file
  102. requester.  This requester lists all the files (and their length) of a
  103. selected directory.  You don't have to wait for the directory scan to end, you
  104. can select a file or directory the moment you see it, or you can enter it in
  105. the appropriate string gadget.  If you press <SHIFT-ENTER> in a string gadget
  106. you will activate the other string gadget (file or directory).  To get a list
  107. of all devices connected to your Amiga as well as all the assigns made press
  108. the right mouse button.
  109.     If you wait for the directory scan to end and quit the file requester, the
  110. next time you use it all the files will still be there, so you don't have to
  111. wait for the directory to be read again.  This feature has one disadvantage :
  112. if files are changed or added to the selected directory they won't be shown in
  113. the list, or they will be shown with the wrong filelength, the next time the
  114. requester appears.  Therefore, if you think anything has been changed to the
  115. selected directory, use the 'GET DIR' gadget to re-read the directory.  (E.g.
  116. when you save a crunched file on top of the old one, the old file length will
  117. be shown in the requester.)
  118.      Use the 'Hide/Show .info' gadget to hide or show .info files (workbench
  119. icons).  The entries are always sorted, files and directories are seperated.
  120. The requester also contains an invisible dragbar so you can drag it to another
  121. screen position to see what is underneath it.
  122.  
  123. 2.2 Project menu
  124. ----------------
  125.  
  126.      Load IFF    > Load an IFF mandelbrot picture file.  The picture must have
  127.                    a mandelchunk (see below) or it will not be loaded.
  128.      Save IFF    > Save current mandelbrot as an IFF file with a mandelchunk.
  129.      Title       > Toggle the titlebar on/off.
  130.      WorkBench   > Open or close WorkBench if possible. (Adds 42K)
  131.      About...    > Show general information.
  132.      Quit        > Quit program or stop calculation (in which case the menu
  133.                    item reads 'Stop').
  134.  
  135. 2.3 Prefs menu
  136. --------------
  137.  
  138.      Calculation > Type of calculation used to plot the mandelbrot.  Using 16
  139.                    bit ints is a lot faster than using FFP, but FFP is a lot
  140.                    more accurate than 16 bit ints.  Note that the difference
  141.                    between 32 bit ints and FFP seems to be very small.
  142.      Iteration   > Maximum iteration depth.
  143.      Screen      > Type of screen used to plot.  First set flags then select
  144.                    'New Screen'.  The calculation will restart as soon as the
  145.                    new screen has been opened.
  146.      Palette     > Change screen palette.
  147.      Turbo       > Use this if you have no REAL fast ram (A500s internally
  148.                    expanded or A2000s unexpanded).  When turbo is on the
  149.                    number of visible bitplanes will be decreased to a level
  150.                    that no longer slows your Amiga down (4 in lo-res, 2 in
  151.                    hi-res), internally the full number of planes will still
  152.                    be used.  If you switch turbo off all will be back to
  153.                    normal.
  154.  
  155. 2.4 Zoom menu
  156. -------------
  157.  
  158.      Coords      > Brings up a requester where you can enter coordinates.
  159.                    You can use this to enter coordinates you have found in
  160.                    a magazine.  Note that the coordinates will be adjusted so
  161.                    the width/height ratio equals that of the screen.
  162.      Restart     > Restart calculation of current mandelbrot.
  163.      Reset       > Back to the standard mandelbrot set, ready to start zooming
  164.                    again.
  165.  
  166. 2.5 Color cycling
  167. -----------------
  168.  
  169.      MandelBlitz supports color cycling.  Start or stop the cycling by
  170. pressing TAB.  Use SHIFT-TAB to reverse the direction and the UP and DOWN
  171. arrow keys to speed up/slow down cycling.
  172.      Press the LEFT and RIGHT arrow keys when MandelBlitz is not cycling to
  173. shift the entire palette left or right (also possible when changing the
  174. palette).
  175.  
  176.  
  177. 3. Palette
  178. ==========
  179.  
  180.      Because a mandelbrot needs smooth color transitions MandelBlitz has a
  181. special palette utility.  It uses a sine wave pattern to calculate the colors.
  182. Red, green and blue each have their own sine wave.  First select a wave by
  183. pressing one of the R/G/B gadgets.  You can then control the position of the
  184. top of this wave (the arrow left/right gadgets), the slope of the wave can be
  185. increased/decreased (use the color up/down gadgets) and the height of the top
  186. of the current color can be adjusted (use the intensity up/down gadgets).  I
  187. suppose 'OK', 'CANCEL' and 'UNDO' sort of explain themselves.
  188.      It takes a while to learn to control this but once you get the hang of it
  189. the results can be quite staggering.
  190.  
  191.  
  192. 4. Mandel chunk
  193. ===============
  194.  
  195.      All IFF ILBM (picture) files saved by MandelBlitz incorporate an extra
  196. chunk called 'MANC'.  This chunk holds all the necessary information for the
  197. plotted mandelbrot.  This way you can continue zooming in on pictures you have
  198. saved, MandelBlitz will find the coordinates in the mandel chunk.  Note that
  199. the mandelchunk will be lost if you load a mandelbrot in DPaint and save it
  200. again.
  201.      The mandelchunk is the same as the mandelchunk generated by TurboMandel
  202. and is formed like this:
  203.  
  204.      struct ManC {
  205.         /* starts like a normal IFF chunk, id = 'MANC' */
  206.         ULONG   id, chunklen;
  207.         /* this is the special stuff */
  208.         IEEE_64 xcoo, ycoo, xside, yside;
  209.         UWORD   iteration_depth;
  210.         UBYTE   calculation, flags;
  211.         UWORD   toppos[3], decrstep[3], colint[3];
  212.         };
  213.  
  214.      1° Xcoo, ycoo, xside and yside are the coordinates of the plotted
  215.         mandelbrot.  They are represented as 64 bit IEEE floating point
  216.         numbers (double) to be as portable as possible.  Coordinates of
  217.         the standard set are: (-2.5,-1.4)-(3.5,2.8).
  218.      2° Iteration_depth is the maximum number of iterations calculated before
  219.         MandelBlitz decides to color the point black.
  220.      3° Calculation : 0 for FFP calculation, 1 for 32 bit integer and 2 for 16
  221.         bit integer.
  222.      4° Flags : only bit 0 is used at the moment, it is set for 3D mandelbrots
  223.         (generated by TurboMandel).  Since MandelBlitz does not support 3D
  224.         mandelbrots it will not load these pictures.
  225.      5° toppos[3], decrstep[3] and colint[3] are the internal variables used
  226.         to calculate the palette (see above).  RED is 0, GREEN is 1 and BLUE
  227.         is 2, so toppos[1] means the toppos of GREEN.
  228.  
  229.  
  230. 5. Future versions
  231. ==================
  232.  
  233.      This is only the first version of MandelBlitz and there are many powerful
  234. enhancements planned.  One thing I definately want to incorporate is 68020/30
  235. and 68881/2 support (I should be getting my hands on these very soon now :-),
  236. MandelBlitz will already speed up quite a bit when run on a '030, but with a
  237. special version it should be even faster.  I am also thinking about extending
  238. the integer calculation to 48 bits or even 64 bits.  Overscan support is also
  239. planned.
  240.      If you have other suggestions (or if you don't think the program is worth
  241. improving :-) please drop me a line and let me know.  Next versions might be
  242. shareware or maybe even commercial, I don't know yet.  This version however is
  243. freeware, though this does not mean I will eat or burn any money you include
  244. with your letters :)
  245.  
  246.  
  247.                             Enjoy your quest for nice mandelbrots :-)
  248.  
  249.  
  250.                               PROGRAM HISTORY:
  251.  
  252. *****************************************************************************
  253. VERSION 1.0
  254.  
  255.      First release.
  256.  
  257. *****************************************************************************
  258.  
  259. MandelBlitz 1.0 written by Nico François (Yes, Nico is my first name :-)
  260.                 thanks to Ton Hospel for the idea to speed up calculation,
  261.                           Philip Marivoet for all sorts of things :)
  262.  
  263. (c) 1990 Nico François / PowerPeak
  264.  
  265.                                    //
  266.                        Thanks to \X/ Amiga for being the best computer ever !
  267.  
  268.