@database FlashMandel.guide
@author "Dino Papararo - Claudio Pucci - Paolo Alvino"
@(c) "Copyright (c) 1995-1999 Dino Papararo"
@$VER: FlashMandel.guide 1.4 (18/01/99)
@font courier.font 13
@wordwrap

@node Main "FlashMandel Guide"

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} 1.4 Copyright 1995-1999 Dino Papararo

A new program for @{"Mandelbrot's set" link Mandelbrot}.

	@{"Installation" link Install}  How to install
	@{"Requirements" link Required}  Minimun requirements
 	@{"YAFG        " link YAFG}  @{fg highlight}Yet Another Fractal Generator@{fg text}
	@{"Interface   " link Interfc}  Program's interface
	@{"Features    " link Caratte}  Major features
	@{"History     " link History}  History and old versions
	@{"Future      " link Futuro}  To do...
	@{"Author      " link Autore}  Yes I'm...
	@{"Greetings   " link Ringra}  ... Hi everybody !
	@{"Copyright   " link CopyRg}  Necessary informations


PowerPC version should be released by Steffen Haeuser, but date isn't fixed because he's very busy due to other PPC porting too.
If you are a programmer and interested for a recompile to support PPC please @{"contact me" link Autore}.

@endnode

@node Install "Installation"

To install the program, simply move the drawer "FlashMandel" into desired directory.
However @{b}@{fg highlight}FlashMandel@{fg text}@{ub} does not need assignments, changes to user-startup or not standard libraries.
I suggest you to rename the closest to your configuration version in "@{b}@{fg highlight}FlashMandel@{fg text}@{ub}" and cancel other binaries.

@next Required

@endnode

@node Mandelbrot "Mandelbrot's informations"

@prev Mandelbrot

Benoit Mandelbrot is the fractal's inventor. In 1975 he coined this word to refer to auto-similar and fragmented forms, characteristics common to all fractals.
@{fghighlight}Mandelbrot's set@{fg text} is a fractal generated by mathematic formula @{fg fill}Z = Z^2+C@{fg text}.
This function is iterated many times into complex field (you get a complex number initially equal to zero, square it and add a costant, then you restart procedure); "@{i}many times@{ui}" correspond to the "@{i}iterations@{ui}" that you can set in many fractal's programs.
The result of this iteration can converge to a number or go to infinite. In the case that it goes to infinite, we assign a corresponding color to the speed of the divergence in the complex field.
This is the @{"Mandelbrot's puppet" link Mandelbrot.brush/main}.

@next Mandelbrot

@endnode

@node Required "System's requirements"

@prev Install

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} does not need a lot of resources.
It works on any @{b}Amiga@{ub} with at least 512 KB, with any processor, from @{"68000 to 68060" link Processori} and any @{"chip-set" link ChipSet}.
From version 0.870 to latest, is needed at least Kickstart @{b}3.0@{ub}.
If there are @{"Graphic's boards" link ChipSet}, they are supported by @{b}Screen Database@{ub} and @{b}ToolTypes@{ub}.
However I suggest you to get at least 6 MB ram, OS 3.1, 68030/68882 50 MHz, and a graphic board.

@endnode

@node YAFG "Yet Another Fractal Generator"

@{b}@{i}@{fg highlight}@{bg text}Why another fractal's generator@{bg back}@{fg text}@{ui}@{ub}
For joke, (this is the first binding program by @{"author" link Autore}), but also because does not exist something like it which is @{b}full based@{ub} on @{b}Amiga OS@{ub} and doesn't make, to gain more speed, dirty tricks.
At this time the binary is less than 65 KB, while other programs are 100 KB or more; moreover the others do not manage well RTG, Overscan, Multitasking or they writes directly into Chip ram or somewhere...
Obviously there can be BUGs !
For the features read the node @{"Features" link Caratte}.
@endnode

@node Interfc "Program's interface"

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} is system friendly, and it respects the @{b}@{fg highlight}Style Guide@{fg text}@{ub}, so all gadgets, menus and requesters are easy.

These are the supported @{b}ToolTypes@{ub}:

@{b}@{fg highlight}SCREENWIDTH@{fg text}@{ub} : initial screen's width between 640 and 16368 pixel (default=640).
@{b}@{fg highlight}SCREENHEIGHT@{fg text}@{ub}: initial screen's height between 480 and 16384 pixel (default=480).
@{b}@{fg highlight}SCREENPLANES@{fg text}@{ub}: initial screen's depth between 3 and 8 bitplanes (default=8).
@{b}@{fg highlight}SCREENMODE@{fg text}@{ub}  : initial hexadecimal display mode OCS,ECS,AGA,RTG (default=40d20001 CGX 640x480x8).
@{b}@{fg highlight}REALMIN@{fg text}@{ub}     : initial left real limit between -8 and +8 (default=-2.2).
@{b}@{fg highlight}REALMAX@{fg text}@{ub}     : initial right real limit between -8 and +8 (default=+0.8).
@{b}@{fg highlight}IMAGMIN@{fg text}@{ub}     : initial bottom imag limit between -8 and +8 (default=-1.125).
@{b}@{fg highlight}IMAGMAX@{fg text}@{ub}     : initial top imag limit between -8 and +8 (default=+1.125).
@{b}@{fg highlight}FONTNAME@{fg text}@{ub}    : initial screen font (default=courier.font).
@{b}@{fg highlight}FONTSIZE@{fg text}@{ub}    : initial font size (default=13).
@{b}@{fg highlight}STARTPRI@{fg text}@{ub}    : initial program priority (default=-3).

At the start, if you haven't modified ToolTypes, @{"Mandelbrot's set" link Mandelbrot.brush/main} is rendered between @{b}(-2.2,-1.125i)@{ub} and @{b}(+0.8,+1.125i)@{ub} limits, with a 640 x 480 for @{"MC 68000-30" link Processori} and 1024 x 768 for @{"MC 68040-60" link Processori} screen at maximun colors supported (256 for @{"AGA/RTG" link ChipSet}, 16 with @{"ECS/OCS" link ChipSet}).
At the end, the about requester will be displayed.

On the screen's title bar there are the following parameters:

@{b}@{fg highlight}Real@{fg text}@{ub} current coord for real axis.
@{b}@{fg highlight}Imag@{fg text}@{ub} current coord for imag axis.
These two parameters will continually change moving the mouse pointer.

@{b}@{fg highlight}W:H@{fg text}@{ub} is the ratio between screen's dimensions.
@{b}@{fg highlight}R:I@{fg text}@{ub} is the ratio between fractal's dimensions.
For a real representation these two parameters @{b}MUST@{ub} be equal !
If not, is @{b}NECESSARY@{ub} to go into the @{b}@{fg highlight}Coordinates Requester@{fg text}@{ub} ShortCut @{b}@{fg highlight}Amiga C@{fg text}@{ub} and select the @{b}@{fg highlight}Ratio@{fg text}@{ub} button, then recalculate the picture with the new values.

There are four menus, with shortcuts obviously:

	@{" Project " link Project}
	@{" Options " link Options}
	@{"Calculate" link Calculate}
	@{"  Video  " link Video}

Holding down the left mouse button over fractal's picture, will appear a rectangle corresponding to the new coords for a Zoom or Preview.
Meantime rendering, with the @{b}@{fg highlight}Tab@{fg text}@{ub} key you can jump @{"current rectangle" link CProb}; hitting the @{b}@{fg highlight}Esc@{fg text}@{ub} key or using the @{b}@{fg highlight}Stop@{fg text}@{ub} ShortCut @{b}@{fg highlight}Amiga X@{fg text}@{ub}, you'll stop the rendering.

@next Caratte

@endnode

@node Project "Menu Project"

@prev Interfc

There are seven choices, @{b}About@{ub}, @{b}Load Picture@{ub}, @{b}Save Picture@{ub}, @{b}Load Palette@{ub}, @{b}Save Palette@{ub}, @{b}Print@{ub} e @{b}Quit@{ub}.

@{b}About@{ub} it's the same requester which appears at the start, it gives you infos about @{"Author" link Autore} and his workgroup.
Shortcut: @{b}Amiga A@{ub}

@{b}Load Picture@{ub} loads a previously saved IFF picture, setting parameters automatically like those at the save time.
Shortcut: @{b}Amiga L@{ub}

@{b}Save Picture@{ub} saves current picture in IFF format, with a special @{b}Chunk@{ub} where to store fractal's coords and other parameters (iterations, mapping, etc...). Clicking such icon from Workbench, the picture will be shown by MultiView, which must be into the Path. Be careful to not overwrite an existing file because there is not a verify function.
Shortcut: @{b}Amiga S@{ub}

@{b}Load Palette@{ub} loads an IFF palette, from a single file or from any IFF picture: Be careful to colors, because FlashMandel uses them from highest, contrarily to other programs... in this case you can invert palette from @{"Palette requester" link PalReq}.
Shortcut: @{b}Amiga K@{ub}

@{b}Save Palette@{ub} saves current palette in IFF format, useful for any graphic application.
Shortcut: @{b}Amiga J@{ub}

@{b}Print@{ub} performs a @{i}hard copy@{ui} of the screen, it will print screen just like it is (settings are based on system preferences), the title bar, if it's present, is not printed.
Shortcut: @{b}Amiga D@{ub}

@{b}Quit@{ub} closes the program.
Shortcut: @{b}Amiga Q@{ub}

@endnode

@node Options "Menu Options"

There are six choices: @{b}Title@{ub}, @{b}Limits@{ub}, @{b}Iterations@{ub}, @{b}Priority@{ub}, @{b}Color mapping@{ub}, @{b}Precision@{ub}.

@{b}Title@{ub} is a submenu which has a @{"boolean flag" link BoolFlag} that means if to show or not the title bar (Shortcut: @{b}Amiga O@{ub}); if the title bar is ghosted, you can zoom even in the higher part of the screen, but holding down the right mouse button the menu will always be there.
This submenu has also the @{b}Last time@{ub} (Shortcut: @{b}Amiga T@{ub}) choice, which shows on the title bar the elapsed time for the last rendering and the speed in Pixels per Seconds, obviously if during rendering you stop it, time and speed will be inesacts.
It's useful to notice that the speed rendering is not proportional to the screen dimensions, for its rendering method, the so-called 'Divide et Impera'.
With other programs, rendering in 800x600 needs four times than one in 400x300, while instead with @{b}FlashMandel@{ub} you have always to reduce it.

@{b}Limits@{ub} shows a window with some numeric gadgets and permit to insert by hand new values for coords.
Four @{"Button Gadget" link ButtGad} @{b}Accept Ratio Reset Cancel@{ub} are left to accept and apply changes, adjust coord's aspect ratio to the screen dimensions, to come back to the original values and to close the window without any change.
The Other button, instead, holds only one of two complex dimensions for a successful next ratio adjustment; default is fractal's real coords.
Shortcut: @{b}Amiga C@{ub}

@{b}Iteration@{ub} is a submenu where to set @{"iterations" link Mandelbrot}, with preset values or a numeric requester. You are warned about @{"color mapping" link MappingCol} set, best iterations number @{b}MUST@{ub} be greater than screen's colors otherwise you'll not be able to use all colors. This parameter interferes a lot with the final result and the rendering time !
Max iterations are equal to 2^15 -> 32768.
Shortcut: @{b}Amiga I@{ub} to store a not preset iteration number.

@{b}Priority@{ub} is a submenu for task priority. Choices are between -5 and +5 to not interfere with normal OS activity.
Shortcut: @{b}Amiga <n>@{ub} to set the priority at +<n>, where <n> is a numeric value between 0 and 5.
@{b}Amiga Shift <n>@{ub} to set the priority at -<n>, where <n> is a numeric value between 0 and 5.
@{b}NOTE:@{ub} for negative priorities keys are, in sequence from -1 to -5, <@{b}!@{ub}> <@{b}"@{ub}> <@{b}#@{ub}> <@{b}$@{ub}> <@{b}%@{ub}>

@{b}Color mapping@{ub} is a submenu to set the @{"color mapping" link MappingCol}.
 	@{b}Repeated@{ub}  After the highest, the next color will'be the lowest and so on.
	@{b}Spread@{ub}    Colors are never repeated, but choosen linearly between minimum and maximun iteration.

@{b}Precision@{ub} to choose the @{"Calculating mode" link IntIeee} between Integer and IEEE: the first is really fast, but has less precision, the second uses the normal library's functions and/or the numeric coprocessor.

@endnode

@node Calculate "Menu Calculate"

There are five choices: @{b}Preview@{ub}, @{b}ReCalculate@{ub}, @{b}UnDo@{ub}, @{b}Zoom@{ub}, @{b}Stop@{ub}.

@{b}Preview@{ub} opens a window four times smaller than screen for a faster rendering.
Shortcut: @{b}Amiga W@{ub}

@{b}ReCalculate@{ub} rewrites fractal with a new set of parameters.
Shortcut: @{b}Amiga R@{ub}

@{b}UnDo@{ub} comes back to the previous coords.
Shortcut: @{b}Amiga U@{ub}

@{b}Zoom@{ub} renders fractal within the new rectangle coords.
Shortcut: @{b}Amiga Z@{ub}

@{b}Stop@{ub} stops rendering.
Shortcut: @{b}Amiga X@{ub}, same result holding down ESC key.

@endnode

@node Video "Menu Video"

There are four choices: @{b}Cycle@{ub}, @{b}Palette@{ub}, @{b}Screen mode@{ub}, @{b}Font settings@{ub}.

@{b}Cycle@{ub} is a submenu with three options:

  @{b}Forward@{ub}  starts the @{"color cycling" link ColCyc} forward (Shortcut: @{b}Amiga >@{ub}).

  @{b}Backward@{ub} starts the @{"color cycling" link ColCyc} backward (Shortcut: @{b}Amiga <@{ub}).

  @{b}Delay@{ub}    sets delay between color cycling (0..100) (Shortcut: @{b}Amiga -@{ub}).


@{b}Palette@{ub} Opens @{"Palette requester" link PalReq} to manage colors.

@{b}Screen mode@{ub} to select new screen resolutions.

@{b}Font settings@{ub} to change screen's fonts, useful for higher resolutions. Gui will change automatically with new fonts. Maximun font size is 24 pixel and are supported proportional fonts.

@next Interfc

@endnode

@node BoolFlag "Boolean Flag"

@prev BoolFlag

A boolean flag has two states, on/off, zero/one; in this case shows or not the screen title.
@next BoolFlag

@endnode

@node ButtGad "Button Gadget"

@prev ButtGad

Un @{b}Button Gadget@{ub} is a Gadget (interface selectable element) which can be pressed to execute any function.
(@{fg fill}I didn't believe there were people who don't know it...@{fg text})

@next ButtGad

@endnode

@node PalReq "Palette Requester"

@prev PalReq

@{b}Palette Requester@{ub} is a window where to modify, copy, spread, etc. the colors.

This window has many gadgets. The first is a rectangle with all modifiable colors, selecting one you can modify every cromatic component. Colors are ordered from left to right and from up to down; first color is in the top-left corner, last instead is in the bottom-right corner. First 4 colors should be unchanged, because are used for the interface look, however you can change them, but pay attention... you are warned!
@{b}Copy@{ub} gadget copies the selected color into another. Select color to copy and press the @{b}Copy@{ub} gadget, than select destination position and click on gadget @{b}Paste@{ub}.
@{b}Paste@{ub} gadget clones in current position the previously copied color.
@{b}Spread@{ub} gadget merges colors between current color and next selected.
@{b}Invert@{ub} gadget invert the palette. Is useful to test high palette's pens without zooming in and to import palettes of other Mandelbrot's pictures. @{b}FlashMandel@{ub} for speed reasons uses colors in a different manner from other programs, the pen 255 is the first to be used, the pen 254 the second and so on...
@{b}UnDo@{ub} gadget can delete only last operation.

The three scroller gadgets modify color's components red (R), green (G) and blue (B) of current color.
I suggest you to modify the single color's components with the keys @{b}'e'-'t'@{ub} for red, @{b}'f'-'h'@{ub} for green, @{b}'v'-'n'@{ub} for blue. The keys are @{b}'case sensitive'@{ub} and if used with @{b}shift/caps lock@{ub} you will add/sub @{b}10@{ub} units.

Three gadgets @{b}Accept@{ub}, @{b}Reset@{ub} e @{b}Cancel@{ub} downwards can accept the new changes, reset to original colors and reject any change.

Warning: in EXTRAHALFBRITE modes only firsts 32 colors are showed, others are ghosted and have same colors than firsts, only with half intensity.
@next PalReq

@endnode

@node ColCyc "Color Cycling"

@prev ColCyc

The @{i}Color Cycling@{ui} is a special function to animate the picture, moving palette color sequence.
In a @{"Color Bar" link Bar.brush/main} with a sequence of colors, if we copy the first in the second and so on, we'll have an animation effect.
The @{"Mandelbrot's set" link Mandelbrot} generated has next related property: for all near functions divergences are set same colors, therefore the palette rotation, in this case, generate a special effect.

@next ColCyc

@endnode

@node MappingCol "Color Mapping"

@prev MappingCol

There are two types of @{b}Color Mapping@{ub}.
@{b}Spread@{ub} is the default giving all fractal's points a specified color not assigned later.
@{b}Repeated@{ub} is a function to assign for every iteration number a specified color of palette. If the colors are all assigned, then they will be repeated from the first and so on.

Is strongly recommended that the iterations be always higher than colors, otherwise you will have a cromatic loss.

@next MappingCol

@endnode

@node Caratte "Program features"

@prev Interfc

Flashmandel is system friendly, with full respect of OS and Multitasking, uses only standard library functions, and SHOULD not be Enforcer or Mungwall Hit.
It has been tested with an @{b}Amiga 1200 standard@{ub} + Omega 1200, @{b}Amiga 4000@{ub} + 060/PPC60 + CV64 + kick 3.1, @{b}Amiga 2000@{ub} + GVP G-Force 030/882 + CV643D + kick 3.1, and @{b}Amiga 3000@{ub} + PicassoIV.
Uses every screen mode of @{fg highlight}Screen Database@{fg text}, with support for all graphic boards.
Uses @{i}@{"Fixed Point" link IntIeee}@{ui} 32 bits math to improve performances on Amiga without FPU.
In @{i}FPU@{ui} version rendering is speeded up with a direct access to the FPU registers.
Uses the @{"Divide et Impera" link CProb} recursively method to gain time for @{"Mandelbrot's set" link Mandelbrot} rendering.
Uses ToolTypes.
Sources are spreaded to learn as example and to improve/continue developing program.

@endnode

@node Futuro "FlashMandel Future"

I'd like to add at least the following features:

@{b}1)@{ub} @{fg highlight}PowerPC@{fg text} support for REALTIME rendering ! (If you have one, call me...)
@{b}2)@{ub} @{fg highlight}Locale.library@{fg text} support for menus and errors.

Please send @{"me" link Autore} any comment, suggest, bug, by normal mail or E-Mail @{fg highlight}DinoP@IName.Com@{fg text}.

@next History

@endnode

@node History "FlashMandel History"

@prev Futuro

@{b}@{fg highlight}FlashMandel 1.4@{fg text}@{ub}

 Fixed palette bug when decreasing and later increasing screen depth, colors no more are lost.

 Added fade effects between screen changes.

 Added new ToolType STARTPRI.

 Added new picture Fractal_6.iff.

 Added new Palette_09.256 & Palette_09.32.

 Reworked source to easy support PowerPC.

 Small code fixes and improvements.

@{b}@{fg highlight}FlashMandel 1.3@{fg text}@{ub}

 Major SpeeeedUp improvements.

 No more required mathieeedoubbas.library V39+ (never released by AI) for IEEE ver.

 Fixed bug with fontnames longer than 10 chars.

 Fixed bug in Palette requester using Undo as first operation.

 Added pic Fractal5.iff and rewritten Palette_07 & Palette_08.

@{b}@{fg highlight}FlashMandel 1.2@{fg text}@{ub}

 Fixed Enforcer hit in palette requester.

 Now gui is font sensitive.

 Added new ToolTypes FONTNAME & FONTSIZE.

@{b}@{fg highlight}FlashMandel 1.1@{fg text}@{ub}

 Fixed bug in Palette requester with ExtraHalfBrite's screens.

 Changed SCREENPLANES ToolType in SCREENDEPTH.

 Restyled Limits Requester.

 New icons for Standard & NewIcon mode.

 Now source is STRICT ANSI compatible.

 Small code fixes and improvements.

 Deleted some pictures from archive to minimize space and Up/Download time.

@{b}@{fg highlight}FlashMandel 1.0@{fg text}@{ub}

 Added rendering speed in pixel/sec from menu Options->Title->Last Time.

 Extended palette requester with new invert function and reworked color's control by keys.

 Now will only appear screens between 16/256 colors, 3/8 bitplanes.

 Gained a little speed in rendering.

 Modified docs, now in english too.

 Added new 256 colors Palette.

 Added new 256 colors Picture.

 Reworked startup code.

@{b}@{fg highlight}FlashMandel 0.870@{fg text}@{ub}

 Implemented ToolTypes.

 Implemented Font requester.

 Implemented Ratio button in Coordinates requester.

 Changed start coords.

 Changed title bar.

 Fixed minimum screen resolution to 640x480.

 Rewritten documentation.

 Deleted installation's script.

 Added 256 colors palettes and pictures.

 Corrected some potential bugs on RTG systems.

@{b}@{fg highlight}FlashMandel 0.810@{fg text}@{ub}

 Corrected screen's depth bug.

 Corrected bug in cycle function to manage the EHB.

 Added controls by keys for R,G,B components of palette requester.

 Added 256 colors palettes and reduced 32 colors palettes.

 Added pictures.

 Small code changes.

 Recompiled with SAS C 6.58.

 Updated docs.

 Installation's script reworked.

@{b}@{fg highlight}FlashMandel 0.700@{fg text}@{ub}

 Added @{b}Load@{ub} and @{b}Save@{ub} for pics and palettes.

 Recoded screen opening..

 Many little bugs corrected.

@{b}@{fg highlight}FlashMandel 0.100@{fg text}@{ub}

 Added @{"Color's cycle" link ColCyc}.

 Added @{"Palette Requester" link PalReq}.

 Deleted functions for a particular CPU and made dedicated versions for @{"All processors" link Processori}.

 Reworked rendering method for @{"continous probability" link CProb} to avoid recalculating the same points.

 Added @{"color's mapping" link MappingCol}.

 Added @{"installation's script" link Install}.

 Corrected bugs for binaries and docs.


@{b}@{fg highlight}FlashMandel 0.099@{fg text}@{ub}

 First released version.

@next Ringra

@endnode

@node Autore "How reach the author"

@prev RBrandner

Postal address (if you have @{fg highlight}a lot of@{fg text} patience):

	Dino Papararo
	Via Manzoni 184
	80123 Napoli
        Italy

E-Mail address:

        DinoP@IName.Com


Coder of @{b}@{fg highlight}FlashMandel@{fg text}@{ub}.

@next CPucci

@endnode

@node CPucci "Precious cooperator"

@prev Autore

E-Mail address:

	E-Mail: @{fg fill}PucciC\@Cli.Di.UniPi.It@{fg text}

Has written the first docs version in @{b}AmigaGuide@{ub}, old and not more included installation's script and has worked in first beta testing and in small code routine (eg. color cycling).

@next LDPietra

@endnode

@node LDPietra "For informations about Fixed Point math"

@prev CPucci

	@{fg highlight}Lelio della Pietra@{fg text}

Has explained the Fixed Point base operations like mul,add...

@next STassi

@endnode

@node STassi "Great Beta Tester"

@prev LDPietra

	@{fg highlight}Sergio Tassi@{fg text}

Has heavily tested the program on a  A-1200 NF, has created palettes and GUI look.

@next GStaffelli

@endnode

@node GStaffelli "For the RTG debug"

@prev STassi

	@{fg highlight}Giuseppe Staffelli@{fg text}

Has tested the early versions under CyberGraphix.

@next PAlvino

@endnode

@node PAlvino "For docs supervision"

@prev GStaffelli

	@{fg highlight}Paolo Alvino@{fg text}

Has corrected both italian and english Amigaguide docs and tested program with his A-3000 + Picasso IV.

@next RBrandner

@endnode

@node RBrandner "Author another fractal generator program"

@prev PAlvino

	@{fg highlight}Robert Brandner@{fg text}

	Austria

Has written another fractal generator program FFEX, @{b}@{fg highlight}FlashMandel@{fg text}@{ub} can be considered as the continuation of it. FFEX was written in Modula II in 1991.

Obviously @{b}@{fg highlight}FlashMandel@{fg text}@{ub} is the evolution of the original project, which today is to consider completely obsolete and bad coded... (@{"Dino Papararo" link Autore})

@next TFerMGie

@endnode

@node TFerMGie "Mandel-92 authors"

@prev RBrandner

	@{fg highlight}Tobias Ferber and Martin Giese@{fg text}

Have written a Mandelbrot's set exploration program Mandel-92 with a @{"Fixed Point" link IntIeee} assembly 68000 function of type 4+28, from which the author has developed a personal calculating routine more efficient.

@next Autore

@endnode

@node Ringra "FlashMandel workgroup"

@prev History

@{"Author" link Autore} greets these people to have helped him during the project development:

@{"Lelio della Pietra" link LDPietra} for Fixed Point explanations.

@{"Claudio Pucci" link CPucci} for early versions debugging, for first docs in @{b}AmigaGuide@{ub}, old @{"installation script" link Install} not more supported and the little cpu-time method for color cycling.

@{"Sergio Tassi" link STassi} for beta testing, palettes and gui-look.

@{"Giuseppe Staffelli" link GStaffelli} for RTG debug under CyberGraphicX.

@{"Paolo Alvino" link PAlvino} for the rielaboration of this document.

@{"Robert Brandner" link RBrandner} for an old Mandelbrot's set exploration program FFEX from which @{b}@{fg highlight}FlashMandel@{fg text}@{ub} has developed.

@{"Tobias Ferber e Martin Giese" link TFerMGie} for the main @{"Fixed Point" link IntIeee} assembly function from which the author has developed his own routine.

Last but not least following people have contibuted with criticisms and hints to debug and improve costantly of FlashMandel:

@{fg highlight}Vincenzo Iodice@{fg text},@{fg highlight}Guillaume Ubbelohde@{fg text},@{fg highlight}Jen Allen@{fg text},@{fg highlight}Illya Rudkyn@{fg text},@{fg highlight}Jarle Thorsen@{fg text},@{fg highlight}Francis Labrie@{fg text},
@{fg highlight}Carol Meilicke@{fg text},@{fg highlight}Steffen Haeuser@{fg text},@{fg highlight}Staffan Lindberg@{fg text}.

TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX ! TNX !

@endnode

@node CopyRg "CopyRight infos"

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} is GiftWare, send anything to @{"Author" link Autore}, if you like it.

USE @{b}@{fg highlight}FlashMandel@{fg text}@{ub} AT YOUR OWN RISK, THERE IS NO WARRANTY OF FUNCTIONING. @{"AUTHOR" link Autore} DOES NOT ASSUME ANY RESPONSABILITY.

The whole archive of @{b}@{fg highlight}FlashMandel@{fg text}@{ub} or a part of it can't be used for money, anyway it is freely distributable in Public Domain, ShareWare or GiftWare software collections, on condition that they be under 30 US $ fee. Fred Fish, Aminet, AmyResource and EARCD are free to include this program in their collections.

@next CopyRg

@endnode

@node Processori "Supported processors"

@prev Processori

Every MotorolaŽ 68000 family processor is supported.
In this archive are released the versions for 68000, (68020+68881)+ and 68040+; you can simply delete the unnecessary versions and rename the suitable one for your system in "FlashMandel".
Are not released versions compiled for 68010, 68020, 68030+68881/2 and 68040 because there's not a remarkable improvement compared with the released versions.
040+ version is really compiled to generate code for 68060, compatible 100% with 68040.

@next Processori

@endnode

@node ChipSet "I chipset supportati"

@prev ChipSet

Are supported all the original @{b}Amiga@{ub} @{b}OCS@{ub}, @{b}ECS@{ub} e @{b}AGA@{ub} chipsets. The program adapts himself to yours, allowing a maximum of 64 colors (in ExtraHalfBrite) on @{b}OCS@{ub} and @{b}ECS@{ub}, and screens up to 256 colors on @{b}AGA@{ub}.
If you have a graphic board which adds owner screens to the @{fg highlight}Screen Database@{fg text}, the program will use them in any resolution (anyway with a 256 colors limitation, for the present).

@next ChipSet

@endnode

@node IntIeee "Differences between Fixed Point Math and IEEE"

@prev IntIeee

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} uses two different kind of calculation which have their respective advantages and disadvantages:

@{b}Fixed Point@{ub} is a mathematics dividing the integer part of a number from the decimal one always in the same number of bits (in this case 1 bit for the sign, 3 bits for the integer and 28 bits for the fixed comma). The employed functions use a 32 bits precision (a LongWord) and are very fast, but they have the disadvantage of losing precision in the decimal part quickly (they are indeed more precise than "1 / 2 ^ 27", due to the errors in the approximations). The Fixed Point function is an evolution of Mandel-92 one, a fractal calculation program written by @{"Tobias Ferber" link TFerMGie} and @{"Martin Giese" link TFerMGie}, strongly optimized by @{"author" link Autore}.
Having only three bit of precision for the integers, which can represent numbers between -8 and +8, it's not possible to draw the fractal beyond this numerical interval.

@{b}IEEE@{ub} is the standard mathematics used by the huge majority of the processors, it is slow because uses the mobile comma, but it has more precision; if it's present, the mathematic coprocessor is utilized, besides with the purposely compiled versions, also with the IEEE system library which automatically recognizes it.

@next IntIeee

@endnode

@node CProb "Continuitā Probabilistica"

@prev CProb

@{b}@{fg highlight}FlashMandel@{fg text}@{ub} utilizes the properties of @{"Mandelbrot's set" link Mandelbrot} known as @{b}Probabilistic Continuity@{ub} that is to say:

@{b}@{i}Given a rectangle on the complex plane containing @{"Mandelbrot's set" link Mandelbrot}, if all the points on the rectangle outline have the same escape speed, in that case is "very probable" that the inner area has the same escape speed too.@{ui}@{ub}

The program traces the borders of the rectangle to draw and, if they have the same color, fills the area with this one, otherwise it divides the rectangle in two parts and starts again on the two drawn rectangles repeatedly, with a strategy called @{i}divide et impera@{ui}.
An explanation of the word @{i}probabilistic@{ui} is given if you let the program trace the complex plane area with the coordinates (-8,-8i) (8,8i), which it fills with a uniform color: it's not a program bug, it made only a probability error...

@next CProb

@endnode
