home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
mandelblitz_387.lzh
/
MandelBlitz
/
MandelBlitz.doc
< prev
next >
Wrap
Text File
|
1990-10-22
|
11KB
|
268 lines
MandelBlitz 1.0 User Manual
Jun 12, 1990
Preface
=======
This program is not in the public domain, it is freeware, freely
distributable sofware. This means that you can copy it freely as long as you
don't ask any more money for it than a nominal fee for copying. The program
must always be distributed with its document, both in original unmodified
form.
If you have suggestions or remarks about this program, or if you find
any bugs, please let me know.
Write to the following address:
Nico François
Corbielaan 13
B-3060 Bertem
BELGIUM
Contents
========
1. An introduction
2. Usage
2.1 The file requester
2.2 Project menu
2.3 Prefs menu
2.4 Zoom menu
2.5 Color cycling
3. Palette
4. Mandel chunk
5. Future versions
1. An introduction
==================
Yep, another mandelbrot program :^)
If you do not know what mandelbrots are I suggest you immediately run out
to your public library or local bookstore and pick up a book about them. I
would advise you to take a look at the pictures on this disk first because it
is possible that you might not be fascinated by them (the idea ! :-). Most
people ARE fascinated by them and will hopefully enjoy this program.
Plotting mandelbrots takes a lot of computing power. MandelBlitz uses
the following two things to speed up calculation: a special algorithm to find
large regions of the same iteration depth and the blitter to fill these up
(hence the name Mandel_BLIT_z) ! This results in a mandelbrot program that
calculates the standard set in about 45 seconds (PAL) or 35 seconds (NTSC) on
a 68000 Amiga. I hope you agree that this is very fast (hence the name
Mandel_BLITZ) (hey, wait a minute, wasn't this name explained before :^)
Other things that speed up plotting are fast 16 and 32 bit integer
calculations, both written in assembly for top speed.
Observant people might notice a certain similarity between parts of
MandelBlitz and TurboMandel (Fish #302, by Philip Marivoet). This is not a
coincidence :^) (hi Philip)
2. Usage
========
First some general things:
- If you intend to run MandelBlitz via the CLI or Shell There is no need
to 'Run' it. The program will auto-detach and the CLI can be used for
other things.
- MandelBlitz does not support overscan yet, but it does automatically
adjust its screen to match the size of the Workbench screen. So if you
put your Workbench in overscan MandelBlitz will also work in overscan.
Stupid way to do it, but it works :^) Next version will probably have
overscan suport.
- Press the left mouse button and move the mouse to draw a rubber banded
box. This box can be used to zoom in on the displayed mandelbrot, it
will always have the same widht/height ratio as the screen. Zooming
can be done most of the time, even during calculation.
- MandelBlitz will automatically change from 16 bit calculations to 32
bit calculations when it is necessary (16 bit is not very accurate).
- Requesters can be answered by pressing 'Y'/'N' or 'Amiga-V'/'Amiga-B'.
2.1 The file requester
----------------------
Whenever you are required to enter a filename, MandelBlitz sets up a file
requester. This requester lists all the files (and their length) of a
selected directory. You don't have to wait for the directory scan to end, you
can select a file or directory the moment you see it, or you can enter it in
the appropriate string gadget. If you press <SHIFT-ENTER> in a string gadget
you will activate the other string gadget (file or directory). To get a list
of all devices connected to your Amiga as well as all the assigns made press
the right mouse button.
If you wait for the directory scan to end and quit the file requester, the
next time you use it all the files will still be there, so you don't have to
wait for the directory to be read again. This feature has one disadvantage :
if files are changed or added to the selected directory they won't be shown in
the list, or they will be shown with the wrong filelength, the next time the
requester appears. Therefore, if you think anything has been changed to the
selected directory, use the 'GET DIR' gadget to re-read the directory. (E.g.
when you save a crunched file on top of the old one, the old file length will
be shown in the requester.)
Use the 'Hide/Show .info' gadget to hide or show .info files (workbench
icons). The entries are always sorted, files and directories are seperated.
The requester also contains an invisible dragbar so you can drag it to another
screen position to see what is underneath it.
2.2 Project menu
----------------
Load IFF > Load an IFF mandelbrot picture file. The picture must have
a mandelchunk (see below) or it will not be loaded.
Save IFF > Save current mandelbrot as an IFF file with a mandelchunk.
Title > Toggle the titlebar on/off.
WorkBench > Open or close WorkBench if possible. (Adds 42K)
About... > Show general information.
Quit > Quit program or stop calculation (in which case the menu
item reads 'Stop').
2.3 Prefs menu
--------------
Calculation > Type of calculation used to plot the mandelbrot. Using 16
bit ints is a lot faster than using FFP, but FFP is a lot
more accurate than 16 bit ints. Note that the difference
between 32 bit ints and FFP seems to be very small.
Iteration > Maximum iteration depth.
Screen > Type of screen used to plot. First set flags then select
'New Screen'. The calculation will restart as soon as the
new screen has been opened.
Palette > Change screen palette.
Turbo > Use this if you have no REAL fast ram (A500s internally
expanded or A2000s unexpanded). When turbo is on the
number of visible bitplanes will be decreased to a level
that no longer slows your Amiga down (4 in lo-res, 2 in
hi-res), internally the full number of planes will still
be used. If you switch turbo off all will be back to
normal.
2.4 Zoom menu
-------------
Coords > Brings up a requester where you can enter coordinates.
You can use this to enter coordinates you have found in
a magazine. Note that the coordinates will be adjusted so
the width/height ratio equals that of the screen.
Restart > Restart calculation of current mandelbrot.
Reset > Back to the standard mandelbrot set, ready to start zooming
again.
2.5 Color cycling
-----------------
MandelBlitz supports color cycling. Start or stop the cycling by
pressing TAB. Use SHIFT-TAB to reverse the direction and the UP and DOWN
arrow keys to speed up/slow down cycling.
Press the LEFT and RIGHT arrow keys when MandelBlitz is not cycling to
shift the entire palette left or right (also possible when changing the
palette).
3. Palette
==========
Because a mandelbrot needs smooth color transitions MandelBlitz has a
special palette utility. It uses a sine wave pattern to calculate the colors.
Red, green and blue each have their own sine wave. First select a wave by
pressing one of the R/G/B gadgets. You can then control the position of the
top of this wave (the arrow left/right gadgets), the slope of the wave can be
increased/decreased (use the color up/down gadgets) and the height of the top
of the current color can be adjusted (use the intensity up/down gadgets). I
suppose 'OK', 'CANCEL' and 'UNDO' sort of explain themselves.
It takes a while to learn to control this but once you get the hang of it
the results can be quite staggering.
4. Mandel chunk
===============
All IFF ILBM (picture) files saved by MandelBlitz incorporate an extra
chunk called 'MANC'. This chunk holds all the necessary information for the
plotted mandelbrot. This way you can continue zooming in on pictures you have
saved, MandelBlitz will find the coordinates in the mandel chunk. Note that
the mandelchunk will be lost if you load a mandelbrot in DPaint and save it
again.
The mandelchunk is the same as the mandelchunk generated by TurboMandel
and is formed like this:
struct ManC {
/* starts like a normal IFF chunk, id = 'MANC' */
ULONG id, chunklen;
/* this is the special stuff */
IEEE_64 xcoo, ycoo, xside, yside;
UWORD iteration_depth;
UBYTE calculation, flags;
UWORD toppos[3], decrstep[3], colint[3];
};
1° Xcoo, ycoo, xside and yside are the coordinates of the plotted
mandelbrot. They are represented as 64 bit IEEE floating point
numbers (double) to be as portable as possible. Coordinates of
the standard set are: (-2.5,-1.4)-(3.5,2.8).
2° Iteration_depth is the maximum number of iterations calculated before
MandelBlitz decides to color the point black.
3° Calculation : 0 for FFP calculation, 1 for 32 bit integer and 2 for 16
bit integer.
4° Flags : only bit 0 is used at the moment, it is set for 3D mandelbrots
(generated by TurboMandel). Since MandelBlitz does not support 3D
mandelbrots it will not load these pictures.
5° toppos[3], decrstep[3] and colint[3] are the internal variables used
to calculate the palette (see above). RED is 0, GREEN is 1 and BLUE
is 2, so toppos[1] means the toppos of GREEN.
5. Future versions
==================
This is only the first version of MandelBlitz and there are many powerful
enhancements planned. One thing I definately want to incorporate is 68020/30
and 68881/2 support (I should be getting my hands on these very soon now :-),
MandelBlitz will already speed up quite a bit when run on a '030, but with a
special version it should be even faster. I am also thinking about extending
the integer calculation to 48 bits or even 64 bits. Overscan support is also
planned.
If you have other suggestions (or if you don't think the program is worth
improving :-) please drop me a line and let me know. Next versions might be
shareware or maybe even commercial, I don't know yet. This version however is
freeware, though this does not mean I will eat or burn any money you include
with your letters :)
Enjoy your quest for nice mandelbrots :-)
PROGRAM HISTORY:
*****************************************************************************
VERSION 1.0
First release.
*****************************************************************************
MandelBlitz 1.0 written by Nico François (Yes, Nico is my first name :-)
thanks to Ton Hospel for the idea to speed up calculation,
Philip Marivoet for all sorts of things :)
(c) 1990 Nico François / PowerPeak
//
Thanks to \X/ Amiga for being the best computer ever !