MANDBROT PROGRAM DOCUMENTATION ------------------------------ Execute the file MANDBROT.EXE. You will first be prompted for the type of video display that you have. Enter an E if you have a color EGA display with at least 128K of video RAM, or a C if you have a CGA display. You do not have to enter a carriage return when you enter the display type.If you don't have one of these displays, you are out of luck. If you have a CGA display, the program runs in the hi-res two color mode. You will not see very impressive displays, but you can get an idea of what the Mandelbrot displays look like. Also, the CGA mode does not have all the features that the EGA mode has. Also the CGA mode may produce errors if features which are really only supported in EGA mode are used. Sorry, I did not want to spend much time supporting CGA. Next, if you have an EGA display, you will be asked if you want to load a previously saved picture from disk. Enter a Y or N. You will not have to enter a carriage return. The picture is loaded VERY FAST. This is because BIOS routines are not used. The picture is loaded directly into the EGA RAM, so it only takes about 4 seconds to load a picture from a hard disk. It takes a few seconds longer from a floppy disk. If you entered a Y for the previous prompt, you will be asked to enter the filename for the saved picture. Enter the filename, but DO NOT enter the extension. When you enter a carriage return, the file will be loaded and displayed. If you answered N for loading a picture, you will next be prompted as to whether you want curvetrace or not. Curvetrace is a method used to greatly speed up the Mandelbrot computation process. It is one feature of this program that distinguishes it from all the other Mandelbrot programs you may have tried. It is possible (although rare) that the curvetrace may not produce an exact representation of the Mandelbrot set. This is why it is an option. Next you will be prompted for the maximum number of iterations to use in the computations. Enter a number from 25 to 1000. This number affects both the computation speed and the color distribution of the result. You will have to experiment. In general, use low counts if you are not zoomed in very much (30-60 for the overall Mandelbrot picture) and higher values when you are zoomed in a lot near Mandelbrot regions. Next you will be prompted for the X coordinate of the lower left corner of the area you wish to view. (This is really the real part of the complex number.) You can enter just a carriage return to get the default coordinate for the overall Mandelbrot picture. Next you will be prompted for the Y coordinate of the lower left corner of the area you wish to view. (This is really the imaginary part of the complex number.) Again, you can enter just a carriage return to get the default coordinate for the overall Mandelbrot picture. Last, you will be prompted for the length of the side of the region you wish to view. Again, you can enter just a carriage return to get the default for the overall Mandelbrot picture. After you enter this value, the program will switch to graphics mode and begin displaying the Mandelbrot picture. While the picture is being generated, you can press the Q key to quit. The quit may not take affect immediately. It will not take affect until a curvetrace or fill, which is in progress, completes. When it takes affect, you will see a menu of Key commands on the left margin of your screen. When the picture generation has completed, a menu of options and parameters will be displayed in the left margin of the screen. Also, a cursor in the shape of an arrow will be displayed near the upper left of the screen in the menu margin. If you don't have a mouse, you can move the cursor around by using the cursor keys on the keyboard as well as the PgUp, PgDn and CTRL left and right arrow keys for faster cursor movement. See the key definition table below, for details. If you have a mouse, the mouse will automatically be enabled after the picture plotting is completed. In this case you CAN NOT use the keyboard keys to move the cursor around the screen. The left mouse button can also be used instead of the ENTER key to select the same functions as the ENTER key would have. Zoom boxes can only be resized by using the keyboard keys F9 and F10 (see key definitions below). The following commands are available when the menu is displayed. Note that not all of the commands are displayed in the menu margin. This is because there was not enough room. They can still be used, however, whenever the menu is displayed. Some of the commands require user entry of parameters, such as a number or a file name. The prompt for the user entry will appear near the center of the menu margin, with the user entered data appearing on the next line. Keys which have an (E) following them are supported properly only in EGA mode. KEY FUNCTION --- -------- C Change the value of the maximum iteration count used in computing the Mandelbrot set. You will be prompted for the new value. Remember, the higher the maximum count value you select, the longer the picture will take to complete. When you are not zoomed in very much (side lengths approx. < 10 E -3) values in the 30 - 200 range are fine. For side lengths approx. less than 10 E -6, near the black Mandelbrot regions, you may have to use values between 500 and 1000 in order to not see just a big black picture. L (E) Load a saved picture from disk. You will be prompted for the filename to load. DO NOT enter the extension. Valid path names can be entered to load pictures from other directories or other disk drives. I Inspect. This command will compute the value of the mandelbrot function at the location that the cursor is pointing to, and display the result in the left margin as "xxxx iterations", where xxxx is the number of iterations the function was evaluated before it was known to diverge at that point. It is useful for determining an optimal value for the color offset variable (see command O). N New coordinates. You will be prompted for the coords. and side length of a new region to view. O Change color Offset. This is used to get more colors displayed on pictures where most or all of the colors correspond to relatively high iteration counts. The colors correspond to ranges of iteration counts, where the size of the range is equal to INT(max.count/15), since there are 15 colors not counting black. By using the inspect command (see command I), you can determine an optimal value for the offset as follows: Move the cursor to a color region in the displayed Mandelbrot picture that is the same color as the lowest numbered color in the displayed color palette. If this color palette number is already a 1, then the color offset value is already optimal. If it is not a 1 then issue the "I" command to inspect the value of Mandelbrot at that point. Try other points near the boundries of that color region to find the smallest iteration count in that color region. Use the smallest number you can find for the color offset value. You must then do a zoom operation over the entire Mandelbrot picture to get a new picture that will display all of the colors in the palette. Q Quit back one level. If the picture is being plotted, quit may not take place immediately. It will not take place until a curve trace and its fill operation have completed. Then it will quit to the mandbrot menu, at which point you can change any parameter. You can even do a zoom operation, including areas not yet plotted. When the menu is active, the quit option causes a quit back to DOS. You can also quit back to the mandbrot menu during a zoom operation, while the zoom box is being displayed. R (E) Rotate colors. The color values in the color palette will be rotated, creating a fascinating, flashy display. It is interesting to note how the colors seem to flow towards the black regions of the Mandelbrot set. Press the up or down arrow keys to change the rate of color rotation. Press any alpha-numeric key to stop rotation. S (E) Save a picture to disk. You will be prompted for a filename to save. DO NOT enter an extension. Valid path names can be entered to save pictures to other directories or other disk drives. Be sure to keep the path names short enough to not extend into the picture area, otherwise part of the name will become part of the saved picture. The picture will be saved in 5 files, as follows: filename.PRM Parameter values for picture filename.000 Color plane 0 picture data filename.001 Color plane 1 picture data filename.002 Color plane 2 picture data filename 003 Color plane 3 picture data T Toggle the curvetrace mode ON/OFF. The current status of the trace feature is displayed above the palette display. arrow The arrow keys are used to move the cursor around the keys screen at the rate of one pixel per key press. CTRL Fast cursor left and right move. left & right arrow PgUp Move cursor up fast. PgDn Move cursor down fast. F9 Make zoom box a little smaller. (see also, ENTER) Shift F9 Make zoom box a lot smaller. (see also, ENTER) F10 Make zoom box a little bigger. (see also, ENTER) Shift F10 Make zoom box a lot bigger. (see also, ENTER) ENTER Enter serves two functions. You may move the cursor to point to any of the numbers displayed in the palette table. When ENTER is pressed, the color being pointed to will be enabled for changing. Use the up/down or right/left keys to change that color. When you decide on a color, press ENTER to lock-in that color. You may then point to another color to change, in the same manner. The other function of ENTER is to zoom in on an area of the displayed picture. The cursor MUST be in the picture area for this function to work. When ENTER is pressed, a box with shifty borders will be drawn. You can now move the box around or resize it. Move it around fast or slow by use of the same keys that move the cursor fast or slow. Resize the box by using the F9 and F10 keys. F9 makes the box a little smaller, SHIFT F9 makes the box a lot smaller. F10 makes the box a little bigger, and SHIFT F10 makes the box a lot bigger. The size of the box is always properly scaled to show the exact area you will be zooming in on. When you are through selecting the area you want to zoom in on, press ENTER again. The new region will now be computed and drawn. If you wish to cancel the zoom operation and return to the menu, press Q instead of the second ENTER. Zooming is possible in CGA mode, but the box drawing function works different in CGA mode. In EGA mode the lines are XOR'd on the screen, thus making it possible to restore the original pixel values by just drawing the box again. In CGA mode however, the lines are not XOR'd on the screen. They are just put there, making it impossible to restore the original picture without additional programming. The result is that the zoom boxes are left on the screen in CGA mode. The zoom operation will still work though. Left Same as ENTER. mouse button mouse If a mouse is connected and the mouse driver is resident movement then the mouse can be used to move the cursor and zoom boxes around the screen.