MandelVroom User's Guide Program and Pictures by Kevin Clague Documentation updated by Serenella Ciongoli INTRODUCTION Reference material: H.O. Peitgen - P.H. Richter The beauty of fractals - Springer-Verlag 1986 H.O. Peitgen - P.H. Richter The Science of Fractal Images - Springer-Verlag 1988 B.B. Maldelbrot - The fractal geometry of nature - W.H. Freeman and Company Scientific American - August 1985 - Exploring the Mandelbrot Set Micro Cornucopia - Jan/Feb 1988 - 'Drawing The Mandelbrot and Julia Sets' by Larry Fogg. What is a Mandelbrot set The Mandelbrot set is the set of all the complex numbers for which the value of a complex function (usually Z*Z +/- C) is finite even after an indefinitely large number of iterations. MandelVroom determines the part of the complex plane comprising the Mandelbrot set, according to the following procedure: Consider the algebraic expression Z*Z + C, where Z is a complex variable, and C is a complex constant. For a range of values of C, we: 1. set the initial value of Z equal to the complex number 0 2. calculate the expression Z*Z + C = Z' 3. substitute Z' in the expression and calculate again, repeating the process until we reach infinity (or a preset maximum iteration count). 4. Repeat the steps 1 thru 3 for a new value of C. We map the Mandelbrot set calculated in the above process in a three dimensional coordinate system, where the X and Y coordinates represent the real and imaginary values of C, and the Z axis represents the iteration count we obtained in step 3. Quoted from the article in Scientific American: The Mandelbrot set broods in silent complexity at the center of a vast two-dimensional sheet of numbers called the complex plane. When a certain operation is applied repeatedly to the numbers, the ones inside remain to drift or dance about. Close to the boundary, minutely choreographed wanderings mark the onset of instability. Here is an infinite regress of details that astonishes us with its variety, its complexity and its strange beauty. What is a Julia curve To calculate a Julia curve, we use a process similar to the one we used to create the Mandelbrot set. The difference consists in the fact that the user will choose a C complex constant (MandelVroom will ask you to set a Julia seed), then we will apply steps 1 thru 4 for different values of Z. What is MandelVroom MandelVroom is a Mandelbrot picture generator that allows you to explore the Mandelbrot set. It provides you with tools to zoom in and out, and to move around it. You can also create Julia curves whose pattern is based on a location in the Mandelbrot set or in a previously generated Julia curve. In this document, moving around in the Mandelbrot or Julia set is referred to as navigation. The section titled "Mandelbrot Navigation" outlines how to use MandelVroom to get around the Mandelbrot set. The section titled "Julia Navigation" contains a similar discussion about Julia curves. For the most part, MandelVroom treats Mandelbrot and Julia pictures identically, so, for the rest of this introduction, we will use the term Mandelbrot to mean Mandelbrot and Julia. Each pixel in a Mandlebrot picture represents a location in the complex plane. The color of each pixel is determined by the number of times an equation can be iterated at that pixel's location in the complex plane. When you calculate a Mandelbrot picture, the result is a two dimensional array of iteration counts (one element per pixel). One dimension of the array represents the width, the other dimension is the height of the picture in your picture window. MandelVroom uses this two dimensional array of heights as the basis to create a three dimensional object. If you imagine that a Mandlebrot picture on your Amiga screen is flat on the ground, then the iteration counts of the Mandelbrot equation can be thought of as altitude. All Mandelbrot programs convert this iteration count (from now on referred to as altitude) into color. Most of them use the altitude modulo the number of colors to determine the color to assign to any given pixel. MandelVroom uses contour map making techniques to map range of altitude to color, and to give you direct control over picture coloration. MandelVroom lets you color your Mandelbrot pictures via a user modifiable contour map key with 256 entries. Each contour entry (referred to as contour in the rest of this document) represents a range of altitudes and associated colors. You use the Contour Palette (the modifiable contour map key), to choose which pen should be associated with a given range of altitudes. There is also a Color Palette, thru which you can choose the color you want associated with a contour entry. You can set a contour pen by clicking a command gadget and then touching the Color Palette. You can set the lower bound of a contour height range by pressing a command gadget, and then clicking someplace in the Mandelbrot picture you are trying to color. This coloring scheme is powerful and flexible, and gives you direct control over the coloration of your Mandelbrot pictures. The Color and Contour Palettes are discussed in more detail in the section titled "Coloration". As your Mandelbrot picture is calculating, MandelVroom remembers each pixel's altitude, so you can later recolor the picture without having to recalculate it. This is a real time saver, since Mandelbrot programs are notorious for using huge amounts of CPU time (hours, possibly even days), especially if you use floating point math and do not have floating point hardware support. MandelVroom creates a separate task to generate each of your Mandelbrot pictures, so you can recolor your picture while it is generating. At last, you can do SOMETHING ELSE with your machine (and MandelVroom itself), besides watching a Mandelbrot program veeeery sloooowly generating a picture. This makes MandelVroom uniquely Amiga. MandelVroom has a number of other significant features including: - Graphics oriented "point-and-click" user interface using Intuition menus and gadgets - Support for 320x200, 320x400, 640x200 and 640x400 screens - Support for EXTRA_HALFBRITE - Capability to change graphics screen modes while projects are generating - Support for PAL (European) Amigas - 68020/68881 math support. If you have a 68020 based Amiga, MandelVroom will be able to utilize the 68020 and its 68881 (if one is available). - Picture generator support for five math modes: - two 32 bit math modes (one for 68000, the other for 68020) - Amiga Fast Floating Point - IEEE floating point using Amiga math libraries - IEEE floating point using 68881 in assembly - Capability of stopping then resuming picture generation. - Project oriented. Each picture is a separate project. - Loading and saving of projects to disk. - Multiple projects open and generate simultaneously. - Navigation is allowed across projects - A magnifying lens to aid in navigation - On-Line help for all the gadgets and menu Items. More on each of these features later. START UP REQUIREMENTS MandelVroom can be executed on Amigas with 512K of RAM, but it really runs much better if you have more. MandelVroom requires the following libraries to be available in your LIBS: directory: mathtrans.library mathieeedoubbas.library icon.library (only if started from the WorkBench) Installing MandelVroom on a hard disk First you should create a directory on your hard disk. From your CLI you could type: makedir dh0:Mandel then you should copy all the MandelVroom drawers and files to it: copy Mandelbrot:#? to dh0:Mandel all If you expect to run MandelVroom from the Workbench, then you need also to create a drawer icon for its directory: copy Mandelbrot:projects.info to dh0:mandel.info Before running MandelVroom from the hard disk, if you want the help function available, you should: assign Mandelbrot: dh0:mandel Starting from the WorkBench If you are using a floppy drive, place your MandleVroom disk in any drive. Double click the icon for the MandelVroom disk. If you are using a hard disk, double click its icon, then select the Mandel drawer icon you created during the installation. After you display the MandelVroom icon, double clicking it will start the program and the automatic generation of the default project, a small picture of the Mandelbrot set. You can also open the Projects drawer and double click one or more of the projects previously generated. At startup, MandelVroom will display all the selected projects. Starting from the CLI MandelVroom can also be started from the CLI. It requires a minimum of 30000 bytes of stack space. MandelVroom's command syntax is as follows: MandelVroom ... If you supply one or more project names (names of previously saved pictures), MandelVroom will open up and display each of the projects you indicated. If you don't provide any project name, MandelVroom will start up generating the default project, a small picture of the Mandelbrot set. HELP MandelVroom has an on line help facility. If you pull down the Help Item in the Project menu, then select the menu Item you want help with, MandelVroom will open a new window and display help information for it. You can also do the same for any gadget that is available for your use. THE PICTURE WINDOW MandelVroom displays projects in windows called picture windows. Each picture has the standard system gadgets: a close gadget, front and back gadgets, a drag bar, and a resize gadget. In the right hand margin of a picture window, there are four or five gadgets that are used to control MandelVroom. The use of each of these keys will be described in more detail later, but here is an outline of what the gadgets are for: C - Current. Makes this project the current project. G (or S) - This gadget toggles between Generate and Stop. This is the start/stop button for the picture generator used by this project. I - Zoom In. Allows you to navigate into some region of a previously generated picture. O - Zoom Out. Allows you to navigate out from your current location in the Mandelbrot or Julia picture. J - Set Julia Seed. This gadget is present only in Julia type windows. It allows you to set the seed for a Julia project from a previously generated picture. The importance of the Current gadget will become apparent when you have more than one project open at the same time. Like Amiga windows, you can have many projects open at one time, but only one can be "active" for input. MandelVroom allows you to have many projects open, but the menu and control panels only apply to the current one. You can quickly identify the current project by the asterisk in the Title Bar of its picture window. The G (or S) button serves two purposes: indicates the state of the project (generating or stopped), and modifies the state of the project. When you press this button, it changes to an "S" for stop. If, for some reason, you don't want to generate the entire picture, press the "S" (stop) button, and picture generation will stop. Once the picture has stopped generating, either because you pressed the stop button, or the picture completes generating, the "S" gadget will become a "G" gadget again. This tells you that, if you press it, it will generate again. The function provided by the G (or S) button are also available thru the Calculate Generate menu. This menu also provides a third function, called the Resume Item: it allows you to continue generating a project after you have stopped its generation. You can stop a project's generation, save the project to disk, and quit MandelVroom. Later, you can reload the project, and resume its generation using the Calculate Generate Resume menu Item. The Zoom In, Zoom Out and Set Julia Seed gadgets are used for navigation. They are discussed in detail in the sections titled "Mandelbrot Navigation" and "Julia Navigation". MandelVroom also offers you the option of having no borders around your picture. this options very convenient if you want to save an image in ILBM format, or use any of the programs that write an image of the screen to disk. Please refer to the section Borderless later on in this document. All the functions provided by the gadgets are also available thru the MandelVroom's pull down menu system. THE MENUS MandelVroom is a graphics oriented point-and-click program that is controlled using menus and gadgets. There are four menus associated with MandelVroom: Project - Items that are of global interest: Load, Save and New Project, request Help, Quit. Display - Items to control MandelVroom's screen and picture windows characteristics. Calculate - MandelVroom specific commands and control settings. Special - Preset pictures and Orbit definitions As an alternative to mouse selection of a menu Item, the most frequently used commands also have keyboard shortcuts. The keyboard sequence to be used, when available, is indicated on the right of each menu Item. The Items in the Project, Display, Calculate and Special menus will each be explained later in this document. Next we are going to discuss the Presets Item in the Special Menu. PRESETS Unless you are familiar with Mandelbrot programs, it may take you a while to find your way in the Mandelbrot set. So this package contains a set of predefined Mandelbrot and Julia pictures as starting point for your explorations. Later, the "Mandelbrot Navigation" and "Julia Navigation" sections will teach you how to create new projects from these presets. To open a preset project, press the right mouse button to pull down the Special Menu, Preset Item. Each preset has a name that is also its menu Item name. The names were chosen on a whim by Kevin, so don't try to read any cosmic significance in them. Select a preset by releasing the right mouse button over the one you want. MandelVroom should open a new project window for you and start to calculate the preset Mandelbrot or Julia picture into it. If you decide you don't want this project anymore, you can close it by pressing the project's window close gadget. If you want to make a larger version of the same project, you can resize the window and press the Generate gadget in the right margin of the project's window. If you try this while the project is generating, remember that you will have to press the G/S button twice: once to stop the project from being generated, and again to start it generating. You can also use the Pan Item in the Calculate menu to reposition the picture in the enlarged window. The next sections will describe how to change the colors and contours associated with the preset projects. First let us learn about coloration. COLORATION As already mentioned, coloration is the same for Mandelbrot plots and Julia curves. So, in this section, the term Mandelbrot refers to both Mandelbrot and Julia pictures. As already explained in the Introduction (What is MandelVroom), how a Mandelbrot picture looks depends on two things: the colors you choose for your color palette, and what contour setting you use to map altitude into color. So, let us explore the use of the Color Palette. Color Palette The Color Palette allows you to modify the color values in the hardware color registers (also referred to as pens). You can open the Color Palette by selecting the Display menu Colors Item. You will notice that the Color Palette has three distinct areas. On the left, there is a box filled with all the pens available to you. The center region of the color palette contains three potentiometer gadgets, one for each of the three color components of a pen: red, green and blue (RGB). The region on the right contains 3 gadgets that allow you a large degree of control in defining the colors associated with the pens. The potentiomenter gadgets can only apply to one pen at a time. This pen is referred to as the current pen, and is identified by a border around it. This border makes the current pen larger than the rest. You can make any pen the current pen by clicking it with the left mouse button. Once you have made current the pen you want, you can observe its color component's values by looking at the characters under each of the potentiometer gadgets. These characters are the hexadecimal (base 16) values determining each of the color components. You can change a pen color by sliding any one of the potentiometer gadgets up or down, or by clicking with the left mouse in the container area (above the potentiometer to increase its value, below it to decrease). You can copy one pen RGB values into another pen using the Copy gadget in the Color Palette. To properly use the Copy gadget, you must perform the following steps: 1. Make sure the pen whose color you want to copy is the current one. Click on it, if necessary. 2. Click the Color Palette Copy gadget. The mouse cursor should change to indicate "TO". 3. Click the Color Palette pen you would like to change. The color of the pen you chose in step one should now be copied into the new pen you picked. The new pen also becomes the current pen. The rest of this documentation will use a shorthand notation for a sequence for these kinds of command sequences. The shorthand notation for the copy command is: [ColorPen] COPY ColorPen The words in square brackets are optional. Words in all upper case are commands and words in lower case are parameters. The "ColorPen" parameter is a notation for a Color Palette pen. Later you will see "ContourPen" used as a notation for Contour Palette pens. You can exhange two pen's colors by using the Exchg gadget. The syntax for the Exchg command is as follows: [ColorPen] EXCHG ColorPen You can mix two pen's colors together by using the Spread command gadget. When you spread between two gadgets, the pens in between the two pens specified in the command sequence are blended to give you a smooth change in color. The format for the Spread command is: [ColorPen] SPREAD ColorPen If the above syntax definition is confusing, remember that the color palette operates much like the color palette in Deluxe Paint (tm of Electronic Arts). Now that you have all the skills necessary to run the Color Palette, we are ready to use it in conjunction with the Contour Palette. CONTOURS In the Introduction, we mentioned that MandelVroom treats Mandelbrot plots and Julia curves as three dimensional objects. You can think of them as sticking straight out of the screen toward you. It takes a while to get the feel for the three dimensional aspects of the picture. MandelVroom has a simple query tool that prints the height of a given pixel in the screen's title bar. Query Height and Location If you have no commands outstanding, you can query the height of any pixel by placing the cursor over it and pressing the left mouse button. If you slide the mouse around, while holding down the left mouse button, the screen Title bar will change as the altitude under the cursor changes. Slide it around, until you understand what is taller than what in the picture. A good understanding of the tall parts and short parts of a picture is imperative for a good use of the Contour Palette. In addition to displaying the height of the pixel under the cursor, the Title bar also displays its location in the complex plane. The location is shown as the values of the r(eal) and i(maginary) coordinates. Definition of Contour As already mentioned in the introduction, a contour associates a pen number (color) to a range of altitudes. To clarify this, let us start by taking a look at a geographic map. A contour map of the United States might use white to represent the tops of the Rockies, grey to represent the mountains down to the foothills, green to represent the land down to the prairies, and golden-brown to represent the low level plaines. The key to this contour map has four entries (one per color). Each entry has a range of altitudes that might look like this: white - 13,000 feet to 6000 feet grey - 5,999 feet to 3000 feet green - 2,999 feet to 1000 feet brown - 999 feet to 0 feet In this simple example of a contour map key, the color grey altitude range can really be expressed as everything at, or above 3000 feet and below 6000 feet. Note that, in this map, the colors are only used once, so there is little ambiguity about what the color grey means. Also, there are no altitudes that are not accounted for (except those taller than the mountains, and below sea-level). If you assume that all altitudes from 13000 feet down to zero are represented by some color, then the map key contains redundant information. In MandelVroom, each contour only has one height: the lower bound of the associated range of heights. The high bound of the height range associated with this contour, is given by the previous contour's lower bound minus one. In other words, it takes 2 contours to represent a range of heights. So the above example would look like this: white - infinity down to 6000 feet (contour 0) grey - down to 3000 feet (contour 1) green - down to 1000 feet (contour 2) brown - down to 0 feet (contour 3) A result of this is that contour zero (the leftmost contour in the Contour Palette) represents the tallest contour, and that all other contours to the right of it should be lower in altitude (for the range to make sense). All contours that do not follow this rule are considered invalid and are ignored by MandelVroom. The potentiometer gadget knobs for valid contours are brightly colored, while the ones for invalid contours are dimly colored. MandelVroom associates a pen number to each contour (the lower bound of a range of heights). A consequence of contours decreasing in height is that, when you color pictures using MandelVroom, you generally color them from the top down. The best way is to start by modifying the leftmost contours (the tallest) and work your way to the lowlands (the rightmost contours). The section titled "Coloring Pictures" discusses this in detail. Now, we are ready to learn how to use the Contour Palette. Opening the Contour Palette You can open the Contour Palette by selecting the Display Contours menu Item. You should see a big window open across the bottom of the screen. The Contour Palette has four major areas: - The title bar, which also gives info on the current contour. - The command gadgets for editing the contours. This is the row of buttons below the title bar. - The Color Bar, that displays the pens for all 256 contours. It is directly below the command gadgets. -The Contour Editing section that is below the Color Bar and on the left side of the window. The command gadgets are used to manipulate the contour heights and pen numbers. They allow you to affect contour heights and pens both individually and in groups of consecutive contours. The Color Bar and the Contour Editing section are interrelated. The Color Bar shows you all 256 pens associated with the contours, while the Contour Editing section gives you a detailed look at 32 of the 256 contours. It is analogous to an editor window that gives you a small section of a big file. Inside the Color Bar, there is a box around 32 consective colors. This box indicates which 32 of the 256 contours are being displayed in the Contour Editing section. You can slide the box around by depressing and holding the left mouse button down inside the it, then moving the mouse left and right. For now, you should leave the slider at the left edge of the Color Bar. This leaves the Contour Editing section displaying the first 32 contours. The Contour Title Bar The title bar keeps you informed about the contours you are working on. As you select a contour entry, it will display information about the C(ontour) number you are changing, the P(en) associated with that contour number, and its H(eight) or altitude range. Here is an example title bar: C: 1 P: 4 H: 1022-137 In this case, the current contour is contour one. The pen for contour one is pen four, and contour one range of heights is 1022 down to 137. Remember that this means contour zero low bound height is 1023. Contour Editing The Contour Editing section is used to modify a contour height or pen. You can change individual contours using the Contour Palette Set command gadget. You can change a range of contour heights using the Smooth gadget. You can change a range of contour pens using the Cut, Copy, and Paste command gadgets. Contour Editing gadgets Each of the contours in the Contour Editing section is represented by one column which contains a pen gadget (on top) and a potentiometer gadget. The pen gadget is used to select a contour as the current contour, so you can edit it. When you touch a contour pen gadget, MandelVroom draws a box around it to indicate that it is current. A contour potentiometer gadget serves two purposes. The first is to be a rough indicator of the height of a given contour (the Contour Palette Title Bar contains the accurate value of the current contour's height). A contour potentiometer gadget also gives you a crude way of setting the height of a contour. As you will soon see, the Set command gadget is a much better way to set it. Changing Contour Heights As we mentioned earlier, you can change a contour height by sliding its potentiometer gadget up and down, or by clicking with the left mouse in the container area (above the potentiometer to increase its value, below it to decrease). You can also use the Set command gadget to set the current contour height to the height associated with a given pixel in your Mandelbrot (or Julia) picture. The syntax of the Set command gadget (for changing height) is: [ContourPen] SET "pixel-pick" In English, this means: click on a contour pen gadget (if necessary) to set the current pen. Click the Set command gadget. Click on a pixel in the picture you are coloring. MandelVroom will determine the height associated with the pixel you clicked, and use that as the current contour height. This is very useful, and gives you direct control over contour heights. Before we go on, please take note of the syntax. In the Color Palette section, we used "ColorPen" to represent the action of clicking a Color Palette pen. In this section we have introduced Contour Palette pens. We use "ContourPen" to represent the action of clicking a Contour Palette pen. The contour pens serve two purposes. The first is an indication of the color of given contour. The second is to select contour(s) as parameters for commands. At times, you select a contour to change its color. Other times you select a contour to change its height. In either case, you press a contour pen to make a contour selection. Changing a Range of Heights The Set command gadget is usefull, but tedious if you want to use it to set each of the 256 contour heights. You can change a range of contour heights by using the Set command in conjunction with the Smooth command. Suppose you used the Set command to set contour one's height to 256 and contour twenty's height to 56. If you smooth the heights between contour one and twenty, the contours in between will have the following heights: Contour Height 2 246 3 236 4 226 : : : : 18 76 19 66 The smoothed contours have been evenly spaced (in terms of height). This is a very handy tool. The syntax of the Smooth command is: [ContourPen] SMOOTH ContourPen There are two special cases of the Smooth command. The first has to do with illegal contour height situations. If contour two has a height that is LOWER than contour twenty (an illegal contour situation), the heights are decreased by one. This can be handy if you want a range of contours to decrease by one. It can be confusing if you don't know what you are doing. The second special case has to do with the gadget labeled Last. Pressing this gadget is equivalent to pressing contour 255's contour pen gadget. This saves you the effort of sliding the Color Bar Box to the right and pressing the rightmost contour (and probably sliding the Color Bar Box back to where you were). When you Smooth to Last, the contour heights are decreased by one, no matter what the height of the last contour. So the syntax for the Smooth command really is: [ContourPen] SMOOTH ContourPen | LAST In human terms, this means: once you have pressed the Smooth gadget, you can press a contour pen gadget, or the Last gadget. The Ceiling gadget The Ceiling gadget is the single potentiometer gadget to the right of the Contour Editing section. This gadget does not affect your picture. It only affects the way contour heights are displayed in the contour potentiometer gadgets. It is most usefull for viewing those contours whose heights are relatively low. If you pull the Ceiling gadget down to a height of fifty, then you get a good view of those contour heights that are fifty or lower. If this confuses you, slide the Ceiling around a few times and look at how the contour potentiometers change. Play with it enough to convince yourself that it does not affect the contour heights. If you cannot figure it out, just pull it up to the top and ignore it. If you pull down the Ceiling gadget, and some contour heights are taller than the Ceiling, these contour potentiometer gadgets will be glued to the top of the potentiometer container. If you are trying to move a contour potentiometer, and, when you release it, it snaps back to the top of the container, then it is taller than the Ceiling. You must pull the Ceiling to the top of its container to alleviate this problem. The Paint gadget After you have changed the contours, you will want to see what effect it has on your picture. To do this, press the Paint gadget. MandelVroom will then redraw your picture using the new contour settings. Any time you change any contours (heights or pens), you need to press the Paint command gadget to see its effect on your picture. Changing Contour Pen colors The simplest way of changing the color of a contour pen is by using the Set command gadget. Before trying to use the Set command to do this, you must have the Color Palette open. To do this, pull down the Edit Colors menu Item. The syntax of the Set command is as follows: [ContourPen] SET ColorPen This means: click a Contour Palette pen to make it current if need be. Click the Set command gadget, then click the Color Palette pen that you want used as the contour pen. After you complete the command sequence, you should see that the contour pen color has changed to match the pen you chose from the Color Palette. You should also see that the Color Bar has changed to match the new pen. It would be quite tedious to set each individual contour pen using the Set command gadget, so MandelVroom provides you with a set of tools that allow you to work with a list of pens called pen patterns. Contour Pen Patterns The pattern tools (Cut, Copy and Paste) allow you to manipulate a range of pens within the Contour Palette. These commands allow you to copy the pens from a range of contours into a holding register, and then copy them from the holding register into another range of contour pens. Copying Pen Patterns The Copy command allows you to copy a list of pen numbers from one of two places into the holding register. You can copy a range of consecutive pen numbers from the Color Palette into the holding register. You can also copy a list of pen numbers from the Contour Palette into the holding register. Once in the holding register, you can paste it into a set of contour pens using the Paste command gadget. The Copy command has two syntax formats. The first is for copying pens from the Color Palette, the other for the Contour Palette. [ColorPen] COPY ColorPen [ContourPen] COPY ContourPen Please keep in mind that there is a difference between the Color Palette Copy command, and the Contour Palette Copy command. It is unfortunate that both command gadgets have the same name. They have very different meanings. Cutting Pen Patterns The Cut command copies a range of contour pens into the holding register, and then removes the range of pens from the contour list. The pens to the right of the cut section are shifted to the left to cover the removed pens. The syntax for the Cut command is: [ContourPen] CUT ContourPen Pattern Direction Sensitivity The Contour Palette Copy, Cut and Paste commands are direction sensitive. If, for example, you perform the following mouse actions: 1. Click contour 3's pen 2. Click the contour Copy command 3. Click contour 18's pen then, contour three's pen is the first to go into the holding register, followed by contour four through contour eighteen's pen. If we swapped steps one and three, then contour eighteen's pen would be the first pen in the holding register. This is very handy. It is quite useful for reversing, or making mirror images of, pen patterns. More on this after we have learned to paste pen patterns. Pasting Pen Patterns Once you have a pattern in the holding register, you can overlay a range of contour pens with it. The syntax for the Paste command is as follows: [ContourPen] PASTE ContourPen Pattern Direction Sensitivity Tricks Keep in mind that the Paste command overlays (does not insert) pens into the contour pen list. By taking advantage of pattern direction sensitivity when copying and pasting, it is easy to reverse a range of contour pens. Example: 1. Click contour 0's pen 2. Click the Copy command 3. Click contour 31's pen 4. Click the Paste command 5. Click contour 0's pen This should reverse the pattern of pens in contours zero through contour thirty-one. You can also easily make a pattern that is symmetric around a given pen. Try this one: 1. Click contour 15's pen 2. Click the Copy command 3. Click contour 0's pen 4. Click contour 15's pen 5. Click the Paste command 6. Click contour 30's pen Insightful use of pattern direction sensitivity can be very helpful in creating extremely complex patterns with very few mouse actions. Pattern Repetition When you Cut or Copy a pattern and put it into the holding register, the pattern has a length. When you paste this pattern, the number of contours to be pasted to may be bigger or smaller than the length of the pattern in the holding register. If the pattern in the holding register is longer than needed for the Paste command, then MandelVroom only pastes as much as indicated by the Paste command. If the pattern in the holding register is shorter, then the pattern is repeated until the length indicated by the Paste command is achieved. This can be very handy, especially for repeating symmetric patterns like the one we created earlier. Cut, Copy and Paste to Last Remember that the gadget named Last is a short hand for pressing contour 255's pen gadget. You can use the Last gadget in conjunction with the pattern commands. A more accurate definition of the pattern command syntax is: [ContourPen] COPY ContourPen | LAST [ContourPen] CUT ContourPen | LAST [ContourPen] PASTE ContourPen | LAST Using the Last gadget in conjunction with the Paste gadget is a great way of repeating a pattern for the rest of the contour list. Dragging the Color Bar Box At any time during the Contour Palette range oriented commands, you can drag the Color Bar Box to select which thirty two contours are available to you in the Contour Editing section. So the most accurate form of Contour command syntaxes are: [ContourPen] [drag_bar_box] CUT [drag_bar_box] pen | LAST [ContourPen] [drag_bar_box] COPY [drag_bar_box] pen | LAST [ContourPen] [drag_bar_box] PASTE [drag_bar_box] pen | LAST [ContourPen] [drag_bar_box] SMOOTH [drag_bar_box] pen | LAST The Mod(ulo) gadget The Mod gadget is used to control the spacing of contour pens used with the Cut, Copy and Paste commands. If you set the Mod gadget to two, then, when you Paste pens, every other pen will be pasted. This can be very handy for mixing two patterns together. As an example you could use it to make all the even pens green and all the odd pens blue. You can set the Mod gadget to any positive integer. Beware, that, when you set the Mod gadget to a value, it stays that way. If you change it to some value other than one, you should change it back to one as soon as you are done, or it will probably bite you back you very quickly. AUTOCONTOUR The Autocontour commands are used to set the contour heights of the current picture in a way that will evenly distribute them amongst the contours. You are responsible for choosing the pen patterns, pattern length and pen colors. Autocontour will choose heights for your contours. Length of pattern affects how much detail is shown in your picture. Refer to the section on Coloring Pictures for a more in-depth discussion on understanding a Mandelbrot picture. To use the Autocontour command, set a pattern of pens in the contour palette and pull down one of the two Autocontour menu Items. When you choose Autocontour I, MandelVroom performs the following steps: 1. Count number of contours in contour palette. The program starts with the righmost contour and begins counting from the first contour with a pen number not equal to 1. 2. Calculate number of pixels in the picture minus the number of pixels that have an altitude equal to the MaxIteration for this picture. 3. Divide the number of pixels from step 2 by the number of contours from step 1. 4. Calculate a histogram of the number of pixels at each of the possible heights. The number calculated in step 3 is the average number of pixels per contour. Using the histogram data, the program allocates heights to contours from tallest to shortest. There are two flavors of AutoContour. The above description applies to the first of the two flavors. The second differs from the first, in that, once a given contour's height range is equal to one, all subsequent contour height ranges are set to one. COLOR CYCLING Pulling down the Display menu Cycling Item will give you access to the Color Cycling control panel. Color cycling is an animation method that treats a range of consecutive pens in the Color Palette as a rotation register. When "cycling", the program moves one pen's color components to another pen. A range of consecutive pens also has a direction and a rotation speed. To use the Color Cycling Palette, you must also have the Color Palette open. You can do this by pulling down the Display menu Colors Item. On / Off This gadget enables and disables color cycling. The purpose of the gadget toggles with usage. If cycling is on, then pressing it turns it off (and vice versa.) Range The Color Cycling control panel allows you four color cycling ranges. Usage: [ColorPen] RANGE ColorPen This command gadget allows you to configure which pens are included in the current cycling range. Pressing the Range gadget stops color cycling. Press the On/Off gadget to restart cycling. The cycling range number gadgets (C1, C2, C3 and C4) allow you to select the range number you want to configure. Once selected, you can use the Range, Speed, and Direction gadgets to configure the range number. Pressing these gadgets stops color cycling. Press the On/Off gadget to restart cycling. Direction This gadget configures the direction of rotation for the current cycling range. Pressing the direction gadget toggles the direction of rotation. Pressing the direction gadget stops color cycling. Press the On/Off gadget to restart cycling. Speed This gadget configures the speed of rotation for the current cycling range. Dragging the knob changes the speed. You can also do incremental changes to the speed by clicking in the container of the speed potentiometer. Using the speed gadget stops color cycling. Press the On/Off gadget to restart cycling. COLORING PICTURES Now that you know how to use the tools, you must understand the subject matter you are trying to color. Watching a number of people run this program, it seems that the biggest stumbling block is their grasp of the way MandelVroom treats Mandelbrot and Julia pictures as three dimensional objects. We recommend you use the Query Height feature (described at the beginning of the Contour section) to get a feeling for which parts of a given picture are considered tall, and which are considered short. In general, Mandelbrot and Julia pictures are made up of three kinds of regions. The lower regions of a picture can be identified by large sweeping curved areas that are all the same color. The larger the curves, the lower the altitude. If your eye moves in a direction that leads it to smaller and smaller sweeping curves, you are moving toward taller parts of the picture. Eventually, these curves get so small that they are no longer individually identifiable. When the curves get so small, the heights associated with pixels seem to become random or chaotic. This is the second kind of region found in Mandelbrot and Julia pictures. Typically, these intermediate regions are the ones that we humans find interesting in Mandelbrot and Julia pictures. When colored properly, a structure becomes apparent and things appear ordered. The third kind of region's pixels are the tallest in the picture. They are all the same height. In most Mandelbrot pictures, these pixels are typically (but not necessarily) colored black. These pixels are unlike all the other pixels in the picture, because they have had the Mandelbrot equation iterated the maximum number of times (refer back to the section titled "What is a Mandelbrot set"). To make things more clear, let us consider the preset picture "Big Brot" generated when MandelVroom first starts up. In the center of the picture, there is a large black object that looks like a squashed bug. The pixels that make up the bug shape are in the tallest part of the picture. Just oustside of the black region are the tall, at first look random, pixels. At the outer edges of the picture, there are large regions that are all the same color (and height). If you look at the Contour Palette associated with Big Brot, you will find that contour zero is used to color the bug part of the picture. Contour zero's pen is black, just like the bug. The next few contours are used to color the region just outside the bug's body. If you select contour one's pen, then look in the Contour Palette Title Bar, you will notice that the height range associated with this contour is quite large. This is because there are few pixels in the picture that fall into this height range. By making the range large, we have collected, gathered these pixels together under the same color. This tends to give them a structure that might otherwise not be apparent. If you move farther to the right (increasing contour numbers) you will notice that the range of each of the successive contour heights gets smaller and smaller. In this picture the contour height range goes rapidly to one, which we do to make each of the large sweeping curves in the lower regions a different color (and therefore identifiable). LEARNING FROM PRESETS We recommend you load a number of the preset pictures found in the Preset Menu. By generating these pictures, and examining their contours, you should be able to see how the Contour Palette was used to color pictures. Remember that you can generate a preset by pulling down the name of the preset you want to generate, and releasing the right mouse button. If you have more than one preset generating at once, you can make a given preset project current by pressing its "C" button. If you have the Contour Palette open on the screen, then it will be updated to reflect the current project's contours. If you didn't have the Contour Palette open, then, when you open it, it will show you the contour settings for the current project. Now that you have generated a preset project, you should play with the Color and the Contour Palette. The first few times you try to color pictures, and until you become familiar with using the palettes, you will probably get strange, even ugly combinations of colors and shapes. But, you can always recreate the presets using the Preset Menu, and restart your explorations from there. Just remember: if you get a picture that you really like, use the Save Item in the Project menu to save it to disk. You can then reload it, using the Load Item in the Project menu, then change it as much as you want without risk of loosing it. You could lose a picture, when you go to modify something already beautiful and make it ugly. You could also clone the picture (see below in the section New Projects), so as to have two copies open at the same time. Then, when you change one copy, you can compare the two versions and decide which one you like better. Oh, by the way, many of the best pictures in the Project drawer were colored by accident. You can often get really beautiful effects when least expecting them. The preset "Valley Gal" is a wonderful example of accidental beauty. ONWARD TO NAVIGATION Now that you have learned how to change the colors of the preset pictures, it is time to go off and find your own "nice" subject matters to color. To do that, you will want to open new projects and select regions of the presets as the starting points for your explorations. As you are going through the next sections, remember that the "interesting" objects to zoom into are generally the taller parts of the pictures. The section titled "Mandelbrot Navigation" will teach you how to use MandelVroom to move around within the Mandelbrot set. The section "Julia Navigation" will make it clear how Julia curves are different from Mandelbrot plots. It will also teach you how to create an infinite variety of Julia curves. New Projects MandelVroom allows you to have as many projects as you have RAM for, and they can be of two kind: Mandelbrot or Julia. You can open new Mandlebrot projects by pulling down the New Project Item MAND sub-Item. You can open new Julia projects by pulling down the New Project Item JULIA sub-Item. Although you can have many projects open at the same time, only one of them is considered the current project. You can identify the current project by an asterisk in the title bar of its picture window. Whenever you open a new project, that project is made current. You can also make any project the current one by clicking the "C" gadget in the right margin of its picture window. In addition, you can pull down the Projects menu Current Item from within the window you want to make current. If the current project is of type MAND and you pull down the New Project Item MAND sub-Item, then MandelVroom will make the new project a copy of the current one, and then mark it as current. In a similar way, if you open a new Julia project from a current project that has the type of JULIA, then MandelVroom will make the new project a duplicate of the current one. The new project is then marked as the current project. If you open a new Julia project from a Mandelbrot project, then you will be able to generate a Julia curve based on the originating Mandelbrot project. After learning how to navigate, you will really like having multiple projects, because you can use each one of them as the basis for a number of excursions. You will also be able to have a sequence of pictures to record your journey. Mandelbrot and Julia projects are treated identically in coloration, but they are subtly different for navigation. The next few sections will teach you about Mandlebrot pictures and navigation. Then we will examine how Julia curves differ from Mandlebrot plots. MANDELBROT Navigation When MandelVroom starts up, it generates a picture of the Mandelbrot set. All the Mandelbrot pictures that you have ever seen, are magnified versions of small portions of this picture. There are an infinite number of unique pictures within this picture. Using a variable sized rectangular box called the Zoom Box, MandelVroom allows you to select what parts of some picture you want to be used as the basis of the next picture. The next two sections, somewhat more technical, are aimed at users interested in better understanding how MandelVroom navigation works. Other users can move directly to the section on Zooming in. Windows and complex plane In MandelVroom, a Mandelbrot picture window represents a region of the complex plane. Each pixel corresponds to a discrete location within that region. The horizontal axis within a picture window represents the real component of the complex plane. The vertical axis represents the imaginary component. Corner/Length coordinate system When you are navigating, MandelVroom keeps track of the location (in complex plane terms) of the upper left hand corner pixel, and the length of the imaginary side of your complex region. Given the size of your picture window, MandelVroom calculates the length of the real component of the region that your picture window represents. Zooming In The Mandelbrot picture that you get depends on the region in the complex plane that you have selected. Fortunately, MandelVroom does not force you to think about your picture in complex plane terms. It gives you a visual method for choosing new regions over which to calculate pictures. We will to start from an already calculated picture. Then we will use a rectangular box, called the Zoom Box, to select a region, within the existing picture, as the one used to calculate the next picture. We call this process of choosing smaller regions within larger regions "Zooming In". The steps in zooming in are simple: 1. Open a New Project for your new picture. 2. Open the Zoom Box in a previously calculated picture. 3. Position and size the Zoom Box as desired. 4. Generate the new picture in your new project. You already learned how to open a new project in the section titled "New Projects". The next few sections tell you how to open, position and size the Zoom Box as desired. Pressing the "G" button in the right hand margin of your new picture window causes MandelVroom to generate your new picture. The Zoom box The Zoom Box is a rectangular box that you can place in projects to delimit the area you want to be used for your next picture. Once you open the Zoom Box in a picture, it will look like a line drawing of an Intuition window. The controls are intended to be intuitive to Amiga owners. It has a drag bar, close gadget, and two resize gadgets. The next section tells you how to open the Zoom Box. Subsequent sections tell you how to use the Zoom Box gadgets. Opening and Closing The most convenient way of opening a Zoom Box is to press the "I" gadget in the right margin of your new project window. You should notice that your mouse cursor has changed so that it contains the word "TO" in it. This tells you that you are ready to open a Zoom Box in a picture window. To complete the opening of your Zoom Box, follow these steps: 1. Place the mouse cursor over a pixel in a previously generated picture 2. Press and hold the left mouse button 3. Slide the mouse down and to the right. 4. When the Zoom box is of the desired size, release the mouse button One of the things you will notice is that you get a magnified view of the area in the Zoom Box in your new project. This is the Lens Magnifier doing a bit map expansion, not MandelVroom doing any Mandelbrot calculation. It gives you a rough approximation of what your new project will look like when you press generate. You can disable the Magnifier using the Calculate menu's Magnifier Item. If you do not see the Zoom box within the picture, check to see if you are trying to open in within a Julia picture. Zooming into a Julia picture is not allowed in MandelVroom. Now that you have placed your Zoom Box, can you identify the Zoom Box gadgets? You can close the Zoom Box by pressing the close gadget in the upper left hand corner of the Zoom Box. Closing the Zoom Box eliminates the possibility of zooming in. So if you didn't mean to open a Zoom Box, or you have decided you don't want to zoom in, then press the Zoom Box close gadget. Dragging the Zoom Box The Zoom Box drag bar can be used to drag the Zoom Box around. This is handy in case you didn't place the Zoom Box quite where you wanted. The drag bar is the region to the right of the Zoom Box close gadget. Resizing the Zoom Box In the lower right hand corner of the Zoom Box, you will find the resize gadget. This allows you to resize the Zoom Box in much the same way you resize Amiga windows. Proportional Resize A Proportional Resize gadget can be found in the lower left hand corner of the Zoom Box. This resize gadget moves all the edges of the Zoom Box, when you resize the windows with it. When you resize the Zoom Box in this way, the Zoom Box always maintains the same aspect ratio as when you first touched the Proportional Resize gadget. Generating When you request MandelVroom to generate your new picture, it will use the upper left hand corner of the Zoom Box as the upper left hand corner of the new picture. The lower left hand corner of the Zoom Box will be used as the lower left hand corner of your new picture. Zooming Out There are times when you will want to perform the reverse of zooming in, called zooming out. You must use the Zoom Box to zoom out. Follow these simple steps to zoom out: 1. Press the "O" gadget in the left margin of your picture window. The program will open the Zoom Box at the boundaries of your project window. 2. Shrink the Zoom box to the size that you want your picture to shrink to after you press generate. 3. Place the Zoom box where you would like this small version of your picture to be located in the next picture. 4. Press the "G" button to generate your new picture. Zooming out is a good way to find out where the preset Mandelbrot pictures are located in the preset labeled "Big Brot". JULIA Navigation Julia Curve navigation is much like Mandelbrot plot navigation. As a matter of fact, the major tool you will use is our old friend the Zoom Box. There is one major difference between the two situations: there is only one Mandelbrot set. All the Mandelbrot pictures you generate are all just a subset of the entire Mandelbrot set. On the other hand, there are an infinite number of Julia sets. The Julia set that you get depends on a seed that you choose. You have an infinite number of seeds to choose from. These seeds are available to you in a nice orderly catalog called the Mandelbrot set. The picture you get when you calculate a Julia curve depends on a location you choose out of the Mandelbrot set. Setting Julia Curve Seed The first step in creating a Julia curve is to open a new Julia project. You do this by pulling down the JULIA sub-Item of the New Project Item in the Project menu. Once your new project is open, you should notice an extra gadget in the right hand margin. This new gadget is labeled "J" for Julia seed. To utilize this gadget, you must have a Mandelbrot project window already open and precalculated. Initially, we suggest you use the preset Mandelbrot picture named "Big Brot". To set the seed for your new Julia project, press the "J" gadget, and then place the mouse cursor on some pixel within your Mandelbrot project. When you press the left mouse button, you set the seed for your Julia project. Now start generating your picture by pressing the "G" button in your Julia project window. You must set a Julia seed from an existing Mandelbrot picture. If you try to set a seed from an existing Julia picture, all you will obtain is a copy that picture. We recommend you open many new Julia projects, and try choosing a number of different points within the "Big Brot" Mandelbrot project. Start generating each (or all) of them, and see how different points within the Mandelbrot set give you strikingly different Julia Curves. Zooming In and Out Once the Julia curve is generated, you can zoom in and out of it just like a Mandelbrot picture. Zooming in enlarges small parts of a Julia Curve. Zooming out shrinks them. PAN(orama) The Pan command allows you to scroll your project around in the complex plane. To use the command: 1. Pull down the Pan-Start sub-Item 2. Place cursor in current project 3. Press and hold the Left Mouse Button (LMB). 4. Slide the mouse to Pan around. 5. Release the LMB. 6. Pull down the Pan-Generate sub-Item to produce a new picture. Steps 1 through 5 set the scroll amount, while step 6 performs a scroll of the project's counts data and a generation of the pixel's height and color. Only the pixels that are left black due to the scroll will be regenerated. Note that, if the image does not slide, you do not have enough memory to pan with. NOW THE EASY STUFF Congratulations! You just made it through what we consider the most difficult part of this document. You have learned how to navigate and color Mandelbrot and Julia curves. If you are confused, play with the program until it starts to make some sense. If, after lots of playing, you still are confused, we recommend you go to the library and check out the August 1985 Scientific American magazine. Read the Computer Recreations column, for a simple and concise explanation of the Mandelbrot set and how to write a program to generate Mandelbrot pictures. This is how MandelVroom got started. Having made it so far, the remaining sections of this document are much simpler and less laborious to read and understand. The next 3 sections are the last ones directly related to Mandlebrot or Julia curves. The sections after them will talk about things that relate to the Amiga, not to abstract mathematical concepts. MAXIMUM ITERATION Very early in this document, we explained how Mandelbrot and Julia curves are based on iterating specific functions for a given pixel location in the complex plane. The program will stop iterating the function for one of two reasons: the result of the equation gets large or the program hits the maximum iteration value. Some points would iterate forever, if we didn't put a limit on the maximum number of iterations allowed. MandelVroom allows you to set the maximum number of iterations using the Max Iteration Item in the Calculate menu. When you pull this menu Item down, MandelVroom opens up the Max Iteration requester, allowing you to key in an integer number that is used as the maximum iteration for your current project. If you do this while the current project is generating, you need to restart generation for it to have effect. Beware that setting this number to its maximum value (1023) is a double edged sword. Your pictures will be more accurate, but, if lots of pixels in your picture are iterated to the maximum value, your pictures can take a very, very long time to generate. For low magnification pictures (not zoomed in too far), low iteration values are acceptable, but, as you zoom farther in (on smaller and smaller objects), you will need to increase the Max Iteration more and more. Another factor that seriously affects the calculation time of your projects (besides window size) is the data formats used to calculate the your pictures. For additional info, see below, section on Math Modes ORBIT An orbit, in the context of Mandelbrot set and Julian curves, is the sequence of all the values calculated in each step of the generating process (up to the chosen Max Orbit Iteration value). The orbit window will show a map of this sequence in the complex plane. To observe an orbital display, open the Orbit window using the Special Orbit menu Item. After the window is open, you are in orbit seed mode. Place the mouse cursor over a Mandelbrot or Julia picture window and press the left mouse button. When you press the left mouse button, MandelVroom draws an orbit picture based on the pixel that you pick within the Mandelbrot or Julia picture. If you slide the mouse around while you hold down the left mouse button, the orbit display will change to reflect movements of the mouse cursor. There are two related menu Items that can be used to affect the results of the orbit display: maximum orbit iteration and math mode. The maximum orbit iteration can be configured using the Special "Max Orbit" menu Item. The math mode can be configured using the Special "Orbit Mode" menu Item. STATISTICS When you select this Calculate menu Item, you will see a window providing you with detiled info for the current picture window. The info describes the location of the region shown in the picture within the complex plane, the size in pixels of the picture window, the gap between end and start, and the current magnification ratio. MATH MODES MandelVroom supports three data formats. The fastest and least accurate is a fractional integer format that is used for all the presets. The next fastest (much slower) is the Amiga Fast Floating Point data format. Both the frational integer and Amiga FFP formats keep data in thirty-two bit variables. The FFP is slightly more accurate with extremely small numbers because of its floating decimal point. The last data format is the IEEE 64 bit floating point format available on the Amiga. This is the most accurate math mode of the three supported by MandelVroom. Unless you have a floating point hardware in your Amy, it is also by far the slowest mode in which to calculate Mandelbrot or Julia pictures. The higher precision of the IEEE math allows you to zoom in much farther than is possible with either of the thirty-two bit math formats. A PLETHORA OF GENERATORS If you have a stock Amiga (500, 1000, or 2000), there are three different picture generators available to you for both Mandelbrot and Julia pictures. If you are are a power user and can afford a 68020/68881 board for your Amiga, then you can use two more Mandelbrot and Julia picture generators. This means you have a total of ten picture generators at your finger tips. This, combined with MandelVroom's multiple project support, and the Amiga's wonderful multitasking capabilities, allows you to generate as many projects as you want (using all the math modes) on your screen at the same time! You set the math mode you desire on a project-by-project basis. You can change the math mode for the current project by using the Math Mode Item in the Calculate menu. The Math Mode Item has five sub-Items. Their names and meaning are as follows: 68000 - 32 bit integer with 16 bit multiplies FFP - Amiga Fast Floating Point IEEE - 64 bit IEEE floating point software libraries 68020 - 32 bit integer with 32 bit multiplies 68881 - 64 bit IEEE floating point using 68881 (or 68882) hardware Note that, at the moment, the 68881 math mode will not work in conjunction with CMI type accelerator boards, due to design incompatibilities. The software provided with the CMI boards to-date has problems related to proper multitasking and saving/loading registers. LOADING AND SAVING PROJECTS Mandelbrot and Julia curves can take a very long time to generate, so MandelVroom allows you to save previously calculated projects on disk. Later you can reload them from disk and keep working on them, or use them as starting point for additional explorations. The Project menu has two Items that you can use to perform these functions. After generating your own project, you can save it to disk using the Save Project Item. When you pull it down, MandelVroom opens a file name requester that allows you to save your projects to disk. Later, after you are tired of playing your favorite game, you can start up MandelVroom, and reload your projects using the Load Project Item. In the Projects drawer on the Mandelbrot floppy, we have provided you with a number of pictures that we consider interesting and beautiful. SAVING SCREENS MandelVroom also allows you to save your screens as ILBM files, so you can create your own Mandelbrot and Julia slide shows. You can save ILBMs using the Save ILBM Item in the Project menu. BORDERLESS This Item, in the Display menu, lets you configure whether or not the current project has a border with associated gadgets in it. Borderless projects are nice when you want to use the "Save ILBM" menu Item. When making a window borderless, the following rules apply: If the window was smaller than the screen, the borderless window will be the same size as the image. If the window was the same size as the screen, the borderless window will have the same dimension as the screen, with a black border surrounding it. When you regenerate the picture, it will be expanded to occupy the entire screen. When a project becomes borderless, you must use: the CURRENT and CLOSE Items in the Project Menu to make it current or close it. the GENERATE sub-Items in the Calculate menu to Start, Stop and Resume generation of the picture. SCREEN CONFIGURATION The Amiga has powerful and flexible graphics hardware. MandelVroom supports easy changes from one graphics mode to another. At any time while you are working with MandelVroom you can change graphics modes. If you happen to have projects generating, MandelVroom pauses the projects long enough to close and reopen the screen and project windows. MandelVroom supports any valid combination of low resolution, high resolution, non-interlace, interlace and halfbrite graphics modes. It also allows you to choose the number of colors you have in your screen. The Color Palette always configures itself to the number of pens in your screen. You can change MandelVroom's screen configuration using the Display menu's View Modes Item. The View Modes Item allows three choises: HIRES, INTERLACE, and HALFBRITE. These sub-Items have a check mark in the right part of the selection box when they are active. If there is a check mark to the left of HIRES, then the screen is in HIRES mode. If you now select the HIRES sub-Item, the check mark will go away and the screen will change to reflect the new View Modes setting. The check mark is also used to indicate the state of the INTERLACE and HALFBRITE sub-Items. Please note that HIRES and HALFBRITE are mutually exclusive. The Amiga hardware makes it impossible to have them both on at the same time. Another thing to notice, is that MandelVroom automatically changes the screen configuration to match new presets and projects that are being loaded from disk. OVERSCAN AND PAL SUPPORT MandelVroom supports oversized (MoreRows) screens using the GetScreenData function provided by the Amiga operating system. The default mode of MandelVroom is to make its screen as wide and tall as your WorkBench screen (scaled depending on View Modes). You can override the WorkBench sizing aspects of the screen using the Screen Size Item of the Display menu. The Standard sub-Item gives you standard size screens (i.e. 320x200, 320x400, 640x200 and 640x400). The WorkBench sub-Item (which is the default) allows MandelVroom to scale its screen to match your WorkBench size. The Amiga operating system also provides a way for programs to know if they are running on PAL machines. MandelVroom takes advantage of this feature, and adjusts its standard screen sizes accordingly. ENOUGH IS ENOUGH Well, that is it. You have made it to the end. We hope you like and enjoy the program! Please send any comments to: Kevin Clague - USENET address: kevin@amdahl.uts.amdahl.com US MAIL address: 2691 Bon Bon Drive San Jose, CA 95148 (408)-270-0673