
             Document describing the register mode paint program
        ------------------------------------------------------------
         Last updated for version v2r8: ------- November 26th, 1990
        ------------------------------------------------------------

=========================================================================
 See the end of this document for a blow by blow description of the
 changes for each individual revision of this paint software.  The main
 portion of this document is not organized to show those changes
 coherently; instead, it is intended as a users manual and an overall
 reference manual to the register paint software.
=========================================================================

Register paint software project credits:
========================================

Programming
-----------
Chris Genly ---- The font code portion.
Pete Patterson - The IFF, GIF and 24 bit loader code portions, and the
                 accompaning "convert" tool.
Hal Schwab ----- The color space code portions.
Ben Williams --- Remaining portions.

Documentation
-------------
Ben Williams

Funding
-------
Black Belt Systems - Support for the HAM-E project.

System and Environmental Requirements:
======================================
This paint software requires an Amiga computer equipped with one
megabyte or more or memory. Users with one megabyte will probably be
unable to use the interlace mode of this software. Although not
required for actual operation of the software, the Black Belt Systems
HAM-E device is required for viewing these images in their true colors.

You must have a stack of at least 35,000 set or paint will crash! In
the programs icon, you can set the stack by clicking on the icon once,
then selecting INFO from the main workbench menus. Fill in the little
box labelled STACK with 35000, press return, and then click on SAVE.
The icon on the release disk is already set to this value for you.

From the Shell, CLI, WSHell, or etc, you use a "stack" command to set
this value. At the prompt, before you start paint, type the following:

    stack 35000 <return>

You can make this permanent by placing it in various places, such as in
the startup-wshell file for Bill Hawes' wonderful WShell product. Refer
to the documentation that covers your shell for how to permanently set
your stack value. Until you do this, remember to set the stack each
time before you start paint!

Introduction:
=============
This paint program works in a fashion similar to most Amiga paint
programs. To be able to use it effectively, you need to know:

    (1) how to invoke the program,
    (2) what the tool icons mean,
    (3) what keystrokes are available in its screens and windows, and
    (4) what ARexx commands are available.

We suggest you take extra time to learn the keystroke commands, as they
are a very powerful portion of this software, and many operations can
only be done using the keyboard. Also, please read this document... it
can save you a lot of wasted time!

At the end of this document is a section called "User Notes" that
describes useful techniques that you can use to good advantage.

About updates to this software:
===============================
Upgrades to this program are free.

To obtain an upgrade, call the Black Belt Systems BBS at (406) 367-ABBS
and download the latest software at no charge (other than what you and
your long-distance phone company work out). This is the ONLY way to
obtain an upgrade. If you don't have a modem, you'll have to have
someone else obtain the upgrade for you - but we strongly suggest you
purchase a modem instead. It's a good investment and will provide you
with a great deal more capability for your Amiga. We truly believe that
this upgrade method provides a much better upgrade quality for our
users. For one thing, you can get upgrades as soon as we change
anything - instead of waiting months while we gather together enough
bug fixes and features to make a huge mailing worth doing.

NOTE: We can not, and will not, upgrade this software by mail or
      other physical means - so please don't ask us to. We don't have
      the personnel to handle such an upgrade procedure. Get a modem!


Starting the program
====================
From the command line, there are several "switches" that select what
screen modes are used by the paint program.  

    paint <c/r>             [ NTSC, non-interlace ]
    paint -i <c/r>          [ NTSC, interlace     ]
    paint -p <c/r>          [ PAL, non-interlace  ]
    paint -pi <c/r>         [ PAL, interlace      ]

From the WorkBench, just click on the programs ICON and choose
Interlace Mode and/or PAL Mode from the small window that opens on the
workbench screen.

The program will load a configure file, if it can find one, before it
presents you with the requester for PAL/Interlace, and it sets the
buttons as the default configure file specifies. You can override this,
of course, but it does provide an easy way to have the program start
up. The configure file also loads the default image and brush paths.
There are more details on the startup configure system later in this
document.

There is also a "text" window that opens on the workbench screen. Here,
you may see messages such as the revision of the version of the paint
program that you are currently running. You may also see error messages
here if the paint program has problems, such as not being able to
obtain enough memory and so on. You must go to the WorkBench screen in
order to view these messages, but it's generally not important to do so
as most of this information is only of use to the programmers when
trying to remove "bugs" from the program itself.


Some important issues concerning the editing of overscan images:
================================================================
The paint software can load HAM-E register mode images that are of any
arbitrary size larger than the editing screen, which is always either
320x200 or 320x400. Image editing can only occur on the portion of the
image that is visible on the screen. This means that area fills, brush
activities and so on are limited to the portion you can see at the
moment you are doing the action. This is a result of our keeping the
area of the image that is not being displayed in fast ram, a
consequence of the paint softwares ability to edit truly huge images.
If you have the grid on, it will become mis-registered as you move into
areas that were not visible on screen. You can use the "1" key to re-
register the grid when this happens.

Compatibility:
--------------
Although any IFF viewer worth a nickel should be able to show HAM-E
register mode images saved from the paint software with no trouble,
they have no idea what to do about our sophisticated color cycling
capabilities.  The careful design of our IFF formatted HAM-E images
should cause IFF readers (other than our own) to ignore the cycle and
glow information and just show the images in a static fashion. If not,
then it's time to find a new viewer program - almost every one we tried
worked fine. One thing that is in our image files on occasion are odd-
length data chunks. These are written in accordance with the IFF
specifications, but some viewers, notably SuperView, don't handle them
correctly and may crash as a result.


Functions for Icons in the main control panel:
=============================================

[Dotted Line] ---- Freehand unconnected draw with a single pixel
                   predefined brush or the custom brush. The left and
                   right mouse buttons respectively generate the
                   foreground and backround colors if the system is in
                   COLOR mode. If in CYCLE, and the color selected is
                   in the current cycle range, then colors move
                   accordingly. If in MATTE, the single pixel brush
                   acts the same as in COLOR mode, and the custom brush
                   takes on the exact appearance of the area it was cut
                   from. If in anti-alias mode, the pixel under the
                   pointer is convolved with the surrounding pixels in
                   order to create a smooth transition in the area.
 
[Connected Line] - Freehand Connected draw with one of 8 predefined
                   brushes or the custom brush The left and right mouse
                   buttons respectively generate the foreground and
                   backround colors if the system is in COLOR mode. If
                   in CYCLE, and the color selected is in the current
                   cycle range, then colors move accordingly. If in
                   MATTE, the single pixel brush acts the same as in
                   COLOR mode, and the custom brush takes on the exact
                   appearance of the area it was cut from. If in anti-
                   alias mode, the pixels in the freehand line are
                   convolved with the surrounding pixels in order to
                   create a smooth transition in the area.

[Straight Line] -- Draws straight line with one of 8 predefined brushes
                   or the custom brush. The left and right mouse
                   buttons respectively generate the foreground and
                   backround colors if the system is in COLOR mode. If
                   in CYCLE, and the color selected is in the current
                   cycle range, then colors move accordingly. If in
                   MATTE, the single pixel brush acts the same as in
                   COLOR mode, and the custom brush takes on the exact
                   appearance of the area it was cut from. If in anti-
                   alias mode, the pixels in the line are convolved
                   with the surrounding pixels in order to create a
                   smooth transition in the area.

[Curved Line] ---- Draws an ARC by helping you draw a straight line from
                   where you want the ARC to begin to where you want it
                   to end; then you can "pull" the center of the ARC to
                   the location you want it to hit. You can use any of
                   the predefined brushes or the custom brush. The left
                   and right mouse buttons respectively generate the
                   foreground and backround colors if the system is in
                   COLOR mode. If in CYCLE, and the color selected is
                   in the current cycle range, then colors move
                   accordingly. If in MATTE, the single pixel brush
                   acts the same as in COLOR mode, and the custom brush
                   takes on the exact appearance of the area it was cut
                   from. If in anti-alias mode, the pixels in the arc
                   are convolved with the surrounding pixels in order
                   to create a smooth transition in the area.

[Square] --------- Notice that this ICON has two portions, separated by
                   a diagonal line. The upper left portion will draw a
                   hollow rectangle, using predefined or custom
                   brushes. The bottom right portion will draw a filled
                   rectangle using predefined or custom brushes. The
                   left and right mouse buttons respectively generate
                   the foreground and backround colors if the system is
                   in COLOR mode. If in CYCLE, and the color selected
                   is in the current cycle range, then colors move
                   accordingly. If in MATTE, the single pixel brush
                   acts the same as in COLOR mode, and the custom brush
                   takes on the exact appearance of the area it was cut
                   from.  If in anti-alias mode, the pixels in the
                   square or in the filled rectangular region are
                   convolved with the surrounding pixels in order to
                   create a smooth transition in the area.If you select
                   a filled rectangle, then the rectangle uses the fill
                   mode(s) that are currently in effect - these are
                   defined in the system window, using the fill icon
                   located there.

[Oval] ----------- Notice that this ICON has two portions, separated by
                   a diagonal line. The upper left portion will draw a
                   hollow oval, using predefined or custom brushes. The
                   bottom right portion will draw a filled oval using
                   predefined or custom brushes. The left and right
                   mouse buttons respectively generate the foreground
                   and backround colors if the system is in COLOR mode.
                   If in CYCLE, and the color selected is in the
                   current cycle range, then colors move accordingly. 
                   If in MATTE, the single pixel brush acts the same as
                   in COLOR mode, and the custom brush takes on the
                   exact appearance of the area it was cut from.  If in
                   anti-alias mode, the pixels in the oval or filled
                   oval region are convolved with the surrounding
                   pixels in order to create a smooth transition in the
                   area. If you select a filled oval, then the oval uses
                   the fill mode(s) that are currently in effect -
                   these are defined in the system window, using the
                   fill icon located there.
                   
                   If you are attempting to fill an area, and it just
                   won't seem to even begin, odds are that the pixel
                   under the pointer is the same color as the mouse
                   button you're using. Try pressing the other mouse
                   button to start the fill.

[Paint Bucket] --- This generates an area fill. There are a number of
                   fill modes - the default fill mode is SOLID, where 
                   The left and right mouse buttons respectively
                   generate the foreground and backround colors. To
                   access the other fill modes, see Bucket Tools, next.
                   The Anti-alias mode is fully functional with the
                   fill tool, regardless of the fill method (solid,
                   range, etc) selected.

[Bucket Tools] --- This opens a new window with controls that allow you
                   to select various options to do with the area fill
                   functions. Fill modes available include horizontal
                   and vertical color range, H & V moving window color
                   range, solid, and brush TILE.
                   
                   With any of these fill modes, you may optionally
                   select "Outline" or "Std", where "Outline" will
                   outline the filled area with the backround (right
                   button) color, and you may also select "Fill to
                   Edge", where the fill operation also fills the edge
                   where the fill stopped.
                   
                   There is a 4-way/8-way control in the fill window
                   that affects the way edges are generated for area
                   fills. If in four way, then pixels to the left,
                   right, top and bottom of any pixel that was filled
                   by the normal proceedure are considered "edge"
                   pixels. If in eight way, then in addition to these,
                   any pixel that is above and left, below and left,
                   above and right, or below and right of a pixel that
                   was filled using the normal proceedure is also
                   considered an "edge" pixel.
                   
                   Briefly, four way edge generation is appropriate for
                   oval figure types, eight way edges are much better
                   for rectangular figures, or figures with "outside
                   corners" in the fill area.
                   
                   Brush TILE obeys the transparent control in the
                   brush control window.
                   
                   If both "Outline" and "Fill-to-Edge" are on, then
                   "Outline" takes priority.
                   
                   The ToEdge/Inside gadget controls how flood fill
                   operations operate. If set to "Inside" (the default)
                   then fills work by examining the color under the
                   pointer where the fill is started, and then filling
                   the entire region where this color exists, connected
                   to the original fill point. If set to "ToEdge", the
                   fill operates by filling from the location under the
                   pointer where the fill is started until it has
                   filled all areas up to regions that are drawn with
                   the backround color (the right button color at fill
                   time).
                   
                   If you begin a fill operation by mistake, then
                   simply press the space bar and the fill operation is
                   cancelled. If the actual drawing portion of the fill
                   operation has already commenced, then this will run
                   to completion (it doesn't take long) and then you
                   can eliminate the fill using the UNDO operation.

[Scissors] ------- These allow you to "cut out" a custom brush by
                   dragging a rectangle around an area of the image. If
                   the current brush setting is "Transparent" (see the
                   [Paint Arrow] icon for details) then any portion of
                   the area in the rectangle that is drawn with the
                   backround color will be transparent. If the current
                   brush setting is not transparent, then the entire
                   area is picked up as a rectangular custom brush.

[Page->] --------- This copies the current picture into the spare page,
                   where it can be recovered by simply clicking on the
                   [Page<->] icon. Pages maintain independant knowledge
                   of the following information:
                   
                        * The image itself (of course!)
                        * Overscan (yes/no, how much)
                        * Color palettes
                        * Color ranges - speed, direction, pong
                        * Glow ranges - speed, direction, pong, list
                   
                   This allows you to work on two completely different
                   images during one paint session, if you desire.
                   
                   NOTE: Changing from an interlace to a non-interlace
                         screen type, or vice-versa, deletes the spare
                         page contents; Be careful!

[Text] ----------- First this opens a "font" requester where you either
                   pick a new font (like the first time it opens -
                   there is no "default" font) or just hit the close
                   gadget to keep the last font you selected. Then it
                   opens a window where you type in a line of text.
                   
                   Text is generated as a custom brush, and it pays
                   attention to the Transparent flag. If it's
                   transparent, then it's text only, no backround,
                   rendered in the foreground color. If the transparent
                   gadget is off, then it's rendered as text of the
                   foreground color against the backround color. The
                   brush acts just like any other brush - you can save,
                   load, zoom, flip, and etc.
                   
                   You can also use a text brush (like any other brush)
                   as an anti-alias "template". For instance, you can
                   stamp down your text using matte or color etc, then
                   switch to anti-alias mode and (using the freehand
                   draw) position the text directly over or to the left
                   and down a bit, clicking once. This will anti-alias
                   the exact region taken up by the text, or the text
                   and a proposed shadow if you've offset the click
                   somewhat.

[Magnify] -------- Opens a magnify window on the right hand side of
                   the display. Most operations operate in a normal
                   fashion in either half of the screen. Use the cursor
                   keys to scroll around. Note that the cursor keys
                   will not bring you into the overscan regions of an
                   image while the magnify window is open. You get a
                   little "magnifying glass" pointer that you place
                   over the center of the area that you are interested
                   in. If you wish to cancel magnify at any time
                   (including before you click in the main screen) just
                   press on the magnify icon in the gadget window again.

[Palette] -------- This opens (or brings to the front, if already open)
                   the color palette. See the section on the color
                   palette for more information.

[Dot] ------------ The first icon is a predefined custom brush. This is
                   Simply a one pixel-dot.

[Pantogram] ------ This is the pantogram copy feature. A Pantogram is a
                   device that allows you to trace an object in one
                   portion of an area, as the device actually
                   reproduces the contours of the obect you are tracing
                   at another location. The pantogram tool in the paint
                   software does this in full color.

                   To use the pantogram tool, position the crosshairs
                   or pointer cross over the target location you want
                   to copy to. Then press the "M" key to mark this as
                   the target area.  Now move over the portion of the
                   image you wish to copy to the target area. Press and
                   hold a mousebutton and watch the two cursors to
                   control the pantogram copy operation.

[GRID] ----------- This turns the grid feature on. Default grid spacing
                   for the system before you custom size it is 8x8

[Sten/Norm] ------ Turns the stencil function on and off, if you have
                   defined a stencil from the SYS gadget. If no stencil
                   is defined, this gadget will be ghosted.

[Spray Nozzle] --- Turns on an Airbrush function for freehand draw
                   modes.

[Mode] ----------- Switches between Color, Matte, Anti-Alias and Cycle
                   modes for custom brushes, fill, and so on.
                   
                   * Color: This mode draws the single pixel brush or
                     the custom brush in either the foreground color or
                     the backround color, depending on whether you
                     press the left or right mouse buttons,
                     respectively, to start the operation.
                   
                   * Matte: For the single-pixel brush, this mode is
                     identical with Color. For the custom brush, the
                     brush is drawn with the original color(s) it was
                     when it was pciked up.
                   
                   * Anti-Alias: For any drawing operation, this causes
                     the area to be blended into the nearest pixels.
                     This operation is extremely compute-intensive due
                     the the register nature of the pixels, so be
                     patient.
                   
                   * Cycle: For any operation, this mode causes the
                     brush to be drawn with sequentially changing
                     colors from the current cycle range, if the start
                     color when you begin drawing is within the range
                     in the first place.

[Pick F-B] ------- Click on this, then click in the main paint window
                   with either button to set the current foreground
                   (left button) and backround (right button) colors.

[Colored Arrow] -- This is the custom brush icon. If you have cut out a
                   custom brush using the scissors, then clicking once
                   on this chooses the custom brush to be used with the
                   currently selected tool (freehand, line, arc, circle,
                   or rectangle).

[Brush Tools] ---- This brings up a window that has tools in it that
                   will allow you to perform various operations upon or
                   with custom brushes. Operations include:
                   
                        Reduce brush size by 50% overall (25% of area)
                        Reduce brush horizontal size by 50%
                        Reduce brush vertical size by 50%
                        Zoom brush to 200%
                        Stretch (and optionally flip) brush arbitrarily
                        Anti-Alias/Block modes for zoom, stretch, etc
                        Select transparency On or Off
                        Remap brush colors to current palette
                        Invert the brush mask (mini-stencils)
                        Flip brush horizontally
                        Flip brush vertically
                        Rotate brush 90 degrees
                        Rotate brush 180 degrees
                        Rotate brush 270 degrees
                        Load HAM-E reg-mode brush (256 color)
                        Load IFF brush (or image as brush)
                        Save HAM-E reg-mode brush (256 color)
                    
                   For details on each of these operations, see the
                   section headed "Functions for the gadgets in the
                   Brush Tools window"

[Page <->] ------- This icon swaps the current image with the one that
                   has been saved in the current page. If you have not
                   copyed any image to it from the current page, then
                   the spare page is blank; has the color palette that
                   is the default palette when the program starts; is
                   not overscan; has no color cycle or glow ranges
                   selected.

[SYS] ------------ Opens the system wide function window. This currently
                   includes:
                   
                        * CLS (Clear screen)
                        * Set program defaults   (new window)
                        * Specify Stencil colors (new window)
                        * Control how hi-res palette is calculated
                        * Turn mouse co-ordinates on/off
                        * Set mouse co-ordinates to relative during drag
                        * Print the current image via Preferences
                        * Create a new (empty) image of any size
                        * Change from Lace to Non-lace and back
                        * Exit program
                    
                   For more detail, see the section later in this
                   document headed "Functions for the gadgets in the
                   System window:"

[Undo] ----------- Clicking on this icon removes the last change you
                   made to your image, except for SWAP operations or
                   after shifting in and out of magnify, or panning
                   around an overscan image.

[Disk] ----------- Opens the DiskIO window where you can save or load
                   HAM-E or many other types of IFF images. See below
                   for details on types of IFF images which are known
                   to be compatible with our loader. When saving, you
                   have a choice of either HAM-E REG mode images which
                   will view immediately using any viewer, GIF images,
                   or 24 bit images (The CBM standard, R7-R0,G7-G0,B7-
                   B0, not the orphaned R7G7B7-R6G6B6...R1G1B1 format
                   generated by early Amiga products) which can be
                   loaded by most other Amiga software which can read
                   this file type, such as ASDG's "The Art Department".

Functions for the gadgets in the Disk I/o window:
=================================================

[Save] ----------- Used to save drawings or brushes. When invoked from
                   the main panel, you can choose 24 bit IFF, GIF, or
                   viewable HAM-E REG mode images by pressing the
                   appropriate icon.

[Load] ----------- Used to load a new HAM-E drawing, or HAM-E brushes,
                   or used to load a "standard" IFF image as a brush or
                   a picture. If as a picture, then Amiga register mode
                   images will be directly mapped to the color
                   registers, including half-bright (which gets 64
                   registers, naturally enough).
                   
                   If the picture being loaded is a HAM or 24 bit-IFF
                   picture, or any other type of image with more than
                   256 colors, then there will be a considerable delay
                   while the paint program figures out a reasonable
                   register color mapping scheme for it. This process
                   requires approximately 512k of additional memory
                   during the color assignment process, which is freed
                   when the color assignments are complete.
                   
                   For images which have 2-64 colors in them, the local
                   HAM-E palette places the new incoming colors across
                   the palette in a reasonable fashion, then performs a
                   "spread" so that there are as many colors available
                   between the incoming colors as possible. This sets
                   up a situation where editing of previously generated
                   images of less colors is most rewarding.
                   
                   If this explanation is confusing, just load a 2-64
                   color image and take a look at the HAM-E palette...
                   you'll have from 4 to 127 registers available
                   between those in the original image, depending on
                   how many colors it had in the first place.
                   
                   A special feature is available when loading images
                   that are "hi-res" horizontally. It is an option that
                   is set by a control in the system window. "Map
                   HiRes" causes the program to execute a procedure
                   that does a wonderful job of "trading" the original
                   image's higher spacial resolution for the HAM-E's
                   higher color resolution. If you don't want to use
                   this feature, turn it off in the system window. It's
                   off when the gadget reads "SPRD HiRes"; in that
                   case, the images 16 colors are spread just as lores
                   images colors are.
                   
                   Please note that the paint program is not intended
                   to be a renderer - you're advised to use our
                   "convert" program to read in any HAM images, save
                   them as 24 bit IFF, then render using our 'hame'
                   render software for optimum results.
                   
                   If the image is being loaded as a brush (not a full
                   pic) then the colors in the brush are kept around so
                   you can use the "remap" function if you like, but
                   the brush maps directly to the current colors. If
                   the brush being loaded is a HAM brush, then it gets
                   the color registers that are currently available,
                   and is rendered as best as possible, given those
                   registers.
                   
                   The image loader can handle these formats:
                   
                      - 2-16 color hi-res images      (rez trade palette)
                      - 2-16 color hi-res images          (regen palette)
                      - 2-32 color lo-res images          (regen palette)
                      - 64 color "half-bright" images     (regen palette)
                      - 256 color IFF images           (original palette)
                      - 256 color GIF images           (original palette)
                      - 4096 color photon paint images     (make palette)
                      - 4096 color DigiPaint images        (make palette)
                      - 4096 color Dynamic HiRes images    (make palette)
                      - 4096 color ARZ0 images ("TAD")     (make palette)
                      - 4096 color ARZ1 images ("TAD")     (make palette)
                      - 4096 color AHAM images ("TAD")     (make palette)
                      - 4096 color SHAM images ("info")    (make palette)
                      - 4,096 color RGBN images ("Silver") (make palette)
                      - 16 million color RGB8 ("Silver")   (make palette)
                      - 16 million color 24-bit IFF images (make palette)
                      - 16 million color QRT Trace files   (make palette)
                      - 16 million color DKB Trace files   (make palette)

                      - 16 million color RGB files (Sculpt)(make palette)
                        NOTE: These image files can only be loaded
                        using the "I" key from the main canvas screen.
                        This is beacuse there are multiple files
                        involved, and certain information has to be
                        fectched from you - the image x and y size, and
                        three file names. The normal loader doesn't
                        have any way to ask this of you.


Functions for the gadgets in the System window:
===============================================

[CLS] ------------ This clears the screen to the current backround color

[SETUP] ---------- This opens a configuration window where you can edit the
                   brush and image path defaults. You can also save
                   them to a file with the extension ".rpcfg"; if you
                   save to "Default.rpcfg" or "s:Default.rpcfg" then the
                   paint program will use these paths when it starts
                   operating. Note that the file requester is set to
                   add the ".rpcfg" extension to the file automatically,
                   and that it assumes the name of the file will be
                   "Default", which is usually the case.  If you wish
                   to save another configuration, just change the name,
                   and possibly the extension (although we STRONGLY
                   suggest you leave the extension so you will know
                   what type of file this is when you encounter it
                   later). Here you may also choose a default of
                   Interlace and/or PAL mode for WB startups. You are
                   still presented with the startup window, but the
                   defaults are set for you.

[Stencil] -------- This window appears very similar to the main palette
                   window - What you do here is select colors that you
                   either want to avoid drawing on, or that you
                   specifically DO want to draw on. Any color that has
                   a box around it cannot be drawn on using the custom
                   brushes.
                   
                   There are four basic ways to change the colors that
                   are selected here.
                   
                   (1) Click on a color with either the left or right
                       button. This will change the state of that
                       individual color - if selected, it unselects,
                       and vice-versa.
                    
                   (2) Define a range using one mouse button to mark
                       the start, the other to mark the end. Then press
                       the "S" key to "Set" all the colors in the
                       range to selected.
                   
                   (3) Define a range using one mouse button to mark
                       the start, the other to mark the end. Then press
                       the "C" key to "Clear" all the colors in the
                       range to not selected.
                   
                   (4) Define a range using one mouse button to mark
                       the start, the other to mark the end. Then press
                       the "F" key to "Flip" all selected colors in
                       the range to unselected, and all unselected
                       colors to selected.

                   Once you are satisfied with the color selections,
                   press the close gadget to the right of the palette
                   and the program will generate a stencil mask.
                   
                   Note that stencils are only valid for the currently
                   displayed portions of an overscan image, and also
                   become invalid when you SWAP to the alternate screen.

                   If the Obey Stencil gadget in the SYSTEM window is
                   deselected, then only custom brushes will obey the
                   stencil that is in effect.

[Obey Stencil] --- This gadget causes the tools to obey the stencil
                   when it is on. If this gadget is deselected, then
                   only the custom brush operations will obey the
                   stencil.

[spread] --------- This gadget causes any hi-res images that are loaded
                   to have a special palette calculated for them. This
                   technique literally exchanges the higher spacial
                   resolution in a hi-res image for the higher color
                   resolution in a HAM-E register mode image.

[X:Y cords] ------ Turns mouse co-ordinates on and off.

[Abs/Rel] -------- When set to Abs, if mouse co-ordinates are on, the
                   values shown in the status line always represent the
                   absolute position where the mouse is at the moment.
                   If set to Rel, the mouse co-ordinates change from
                   absolute values to ones that are relative to the
                   starting point when you pressed one of the mouse
                   buttons. This allows careful area measurement. If
                   mouse cords are off, this gadget has no effect.

[Set grid] ------- This returns you to the main painting screen, where you
                   size a rectangle. This is one element of a grid; the
                   program is sensitive to (1) the size of the
                   rectangle, which will be the grid spacing, and the
                   position of the top left corner of the rectangle,
                   which is the location on the screen that the grid
                   intersections will be registered to. See also the
                   "1" and "2" keys from the main canvas screen.

[Bru Corn/Ctr] --- This gadget controls where the handle on the brush is
                   maintained by the software. If you have grid on,
                   you'll almost certainly want to have this set to the
                   corner.

[printer] -------- This gadget attempts to print the current screen image
                   to your printer, using the values you have set in
                   the printer preferences. Due to serious shortcomings
                   in the Amiga printer.device, this rendering will
                   have a color resolution of 4096 colors, maximum.
                   Of course this assumes that you are using a color
                   printer. B&W renderings are limited to 16 grey
                   scales for the same reasons. If and when CBM
                   produces a better printer driver, we will support it
                   immediately.

[New Image] ------ This destroys the current image completely and
                   allows you to specify the screen size of the new
                   image. You may safely specify up to 1024 by 1024 at
                   the present time without problems. Keep in mind that
                   interlace mode images are intrinsically different
                   from non-interlace mode images. If you create a
                   384x480 image in non-interlace, for instance, then
                   it will NOT be an interlace image. You cannot create
                   an image smaller than 320 horizontally, or shorter
                   than 200 or 400 lines, depending on whether you're
                   in interlace or not.
                   
                   A Caution: New images are cleared to the current
                   backround color, and for overscan images, you are
                   positioned to the left side of the image. If the
                   backround color is zero, and you move the image to
                   the right using the cursor keys, the REG mode will
                   unlock unless there is something other than color
                   zero on every scan line. Easy cure; using the
                   palette, pick some other color than color zero as
                   the backround color before selecting CLS or New
                   Image in the System window. Not as easy cure: Draw a
                   line (which may be removed later, if you like) from
                   the top to the bottom of the image in other than
                   color zero. As long as ANY pixel is in a visible
                   portion of a line, the HAM-E will maintain a lock on
                   the register mode image.

[New Screen] ----- This allows you to change from an interlace screen to
                   a non interlace screen, or the other way. The image
                   in the current screen and the other buffers
                   (including the spare page) are lost.  This is very
                   similar to restarting the program, just more
                   convenient.

[Exit] ----------- This unconditionally causes the program to quit. No
                   warnings are given, so make SURE you've saved your
                   work!


The Palette window:
===================

General concepts:
-----------------
The palette is used for several purposes. It serves as an area where
you can choose any one of the 256 colors available. You can use tools
in the palette to adjust any one, or a range, of the 256 colors.  You
can also create "color ranges" and "glow ranges" in the palette window.

The palette display is an independant entity. The colors in it can be
manipulated independantly of the main image in the canvas screen. Once
changes in the palette are made, a single keystroke ("U") updates these
changes back to the source image. If you've made changes in the palette
screen, but wish to restore the original colors from the image, the "R"
key will restore them.

If you're using ARexx commands to set values in the palette screen,
they are not sent to the main canvas screen.  Likewise, if you're
sending them to the main canvas screen, they don't go to the palette
screen. Where they do go is determined by which screen is open at the
time the command is invoked.

Using ARexx or the color sliders, the palette can be directly
manipulated in the RGB, HSV, HSL, and CMY color spaces. Under ARexx
only, the palette may be additionally set to values in the CMYK color
space. See the ARexx command listing, and the supplied sample ARexx
macros for details on use from macros and scripts.

There are a number of keystrokes that are used within the palette
window which are listed in detail at the end of this manual for
reference. Here is a quick summary:

    "fkeys f1-f10" - These keys select an already defined register range.

"ALT-fkeys f1-f10" - These keys take the currently selected foreground
                     and backround colors and make them the ends of
                     the range for the fkey that was pressed. They
                     can also select a GLOW range.

        "\" Selects from four color spaces: RGB, HSV, HSL, CMY.

        "P" Opens the palette if closed, closes it if open.

        "V" In the palette, causes the palette colors to be sorted
            by their "value" (brightness).

        "O" In the palette, causes the palette colors to be sorted
            by their H, S and V components.

        "B" Causes the colors from an IFF brush to be mapped
            into a location in the palette that you specify with the
            foreground color.
    
        "S" Spread luma from foreground color selection to backround
            selection. This is similar to a standard palette "spread"
            function.

        "M" Mirror Spread. Copies first color to center of range, and
            then copies last color to first color. Then spreads from
            both ends to the center of the range.

        "H" Spread HSV from foreground to backround selection.
            
        "R" Restore palette from screen
        
        "U" Update palette back to screen
        
        "C" Copy from foreground to backround color
        
        "X" Exchange the foreground and backround colors

Area Overview:
--------------
The palette window contains the following major items:

    * A "close gadget" near the center of the screen
    * A 256 color "picking" area
    * 3 "slider" gadgets to adjust individual color space components
    * 11 gadgets that perform various functions
    * 3 "slices" of the color space where colors can be picked visually
    * A color "preview" box for visual color picking
    * One each foreground and backround color boxes

256 Color Pick Area:
--------------------
The 256 color pick area is used by simply pressing one of the mouse
buttons over the color you wish to become the foreground or backround
color.  Pressing either mouse button in this area will set the sliders
to the appropriate values, and update the slices of color space at the
bottom of the screen to intersect at the location of that particular
color in the color space. The left button selects the foreground and
the right button selects the backround color. There are eight rows of
32 colors, for a total of 256 colors. The color at the top left is
"color zero" and the color at the bottom right is color 255. Colors
proceed numerically left to right and top to bottom:

Row 1:   0- 31 [for genlocking, colors zero AND one are transparent]
Row 2:  32- 63
Row 3:  64- 95
Row 4:  96-127
Row 5: 128-159
Row 6: 160-191
Row 7: 192-223
Row 8: 224-255

Sliders:
--------
The sliders move a small amount each time you click in the container
for that particular slider. You can grab the "knob" and sweep thru a
range of colors. The numbers above the color space slices at the bottom
of the display represent the current value for the R, G and B portions
of the color you last picked, which may be either the foreground color
(left mouse button) or the backround color (right mouse button). Using
any slider will also update the slices of color space at the bottom of
the screen to intersect at the location of the new color in the color
space. The numbers at the right of the sliders represent the actual
value of the slider - the relationship to the RGB values below depends
upon the particular color space you are working in.

The sliders operate by default in the RGB color space when the paint
program is first invoked. This is indicated by the letters RGB at the
left edge of the three sliders. By pressing the "\" (backslash) key or
pressing the "Spac" gadget, you can cause the sliders to operate in
other color spaces. There are four available: RGB, HSV, HSL, and CMY.
RGB and HSV will be the most familiar to those who have already used
other paint software.

HSL is similar to HSV, except that the saturation of colors is highest
when the V slider is at it's center and the S slider is at the right,
unlike the HSV space, where saturation is highest when the S slider is
at the right, regardless of where the V slider is.

The CMY space is a space typically used when you are involved with
estimating colors for printer output. CMY stands for Cyan, Magenta,
Yellow. These are the three colors on a typical printer ribbon. Unlike
RGB on a monitor, where adding colors gets you a brighter color, adding
colors on a printer ribbon brings you towards black. This is because
printer inks are "absorbtive" - they absorb light. Monitor colors are
"emissive" - they emit light.

There is a fifth color space, the CMYK space. This space is used with
four color printer ribbons. The CMY stands for Cyan Magenta Yellow as
before, and the K stands for black. Having an actual black color in the
ribbon allows for very saturated black areas in an image that CMY
printer ribbons have trouble making. For our purposes, since we have
100% control over the colors on screen, we can get 100% saturated
blacks using just the CMY space. You can, if you like, manipulate the
CMYK space using ARexx macros. See the examples on the release disk to
see how this can be done.

Gadget Area:
------------

Sprd
----
"Spread" - this gadget performs a standard RGB color spread between the
current foreground color and the current backround color.

HSpr
----
"Hue Spread" - this gadget performs an HSV color spread between the
current foreground color and the current backround color.

Mirr
----
"Mirror" - this gadget performs a mirror RGB spread. The first color is
copied to the center of the range, the last color is copied to the
first color, and then both ends are RGB spread to the center color.

Brsh
----
"Brush" - this gadget takes the colors of the currently loaded brush
and inserts them into the palette at the location beginning where the
foreground color is located in the palette. If there are more colors to
insert then there are colors left in the palette (because the
foreground color is too close to the end of the palette) then the color
insertion is moved back until there is enough room.

Updt
----
"Update" - this gadget updates the colors in the palette back to the
image on the canvas screen.

Rstr
----
"Restore" - this gadget restores the colors from the canvas screen to
the palette screen. Similar to a global UNDO.

Copy
----
"Copy" - this gadget copies the foreground color to the backround color.

Xchg
----
"Exchange" - this gadget exchanges the foreground color with the
backround color.

Vsrt
----
"Value Sort" - this gadget sorts the colors by their value, or
brightness. Once sorted, the image on the main canvas screen is redrawn
to match.

Hsrt
----
"Hue saturation value sort" - this gadget sorts the colors by their
hue, then for all hues that are the same colors are sorted by
saturation, then for all hues that are the same where the saturations
are also the same, colors are sorted by value.  Once sorted, the image
on the main canvas screen is redrawn to match.

Spac
----
"Space" - this gadget allows you to change the color space that the
sliders operate in. You can choose from RGB, HSV, HSL, or CMY. THe
current color space is indicated to the left of the three sliders.

Color Space Slices:
-------------------
The slices of the color space are just that - try to think of the color
space as being a cube which is 256 grid locations on a side. For any
color in the palette, the R, G and B values are the same as a co-
ordinate in that color space. It's a simple 3 dimensional concept. What
the slices represent are the 3 flat planes of color space which
intersect the RGB co-ordinates of the currently selected color.

If you move the mouse pointer over these slices with the right mouse
button pressed, you'll see that the planes are movable - you can move
any two components at one time. If you press the left mouse button, not
only will the planes move, but the current color will be updated as you
do this. If you move the mouse pointer over a slice without pressing
any mouse button, then the planes will remain stationary in color
space, but the preview color will reflect the current location as
updated by your position in the slice you're working with.

This is a good bit easier to understand if you're looking and playing
with the color space slices while reading this.

The color slices are only drawn at a size of 64 by 64; this means that
the values you can pick from them are accurate only to 262144 colors.
For finer tuning, use the slider controls once the color is set as near
as you can get it with the slices. Odds are very good that the slices
will be able to get close enough for you. Space limitations on the
display prevent the slices being drawn at 256 by 256.

Color Preview Box:
------------------
This is the box that is closest horizontally to the color slices. This
box generally reflects the color that would be chosen if you were to
click the left mouse button over the current location on any slice. It
allows you to run thru a range of colors without actually modifying any
of the 256 register colors at all, so if you decide you actually liked
what you had, nothing has changed.

Fore and Back color boxes:
--------------------------
These boxes show the current front and back colors for reference
purposes. They are located to the right of the color preview box. The
one on the right is the backround (right mouse button) color, and the
one in the center is the foreground (left mouse button) color.

About Color Cycling:
====================
This software offers what may be the most sophisticated color cycling
capabilities in any Amiga software to date. If you take the time to
familiarize yourself with the options available to you, many
interesting results can be achieved with comparatively little effort.

Register Ranges:
----------------
There are 10 color register ranges available. A range can perform
operations on a continuous series of from 1 to 256 registers.

Range Functions:
----------------
We currently offer two functions for up to ten register ranges. Color
cycling, which everyone (hopefully) is familiar with; and Glow, which
takes one register and moves it thru an arbitrary series of colors over
time.

Range Function options:
-----------------------
For any function (Cycle, Glow) you may select a direction, a speed, and
you can engage "Pong" mode. For color cycling, direction reverses the
direction of the cycle, again just as has been standard in most paint
programs to date. For Glow, direction reverses the direction the series
of colors are processed thru. Pong causes any of these operations to
reverse (change direction) when it reaches the end of the range,
automatically.  Cycles go the other way, Glows do also. When Pong is
on, if the direction of an operation is reverse at the start, then that
controls how the operation starts - after that, the Pong takes over.

Using Ranges:
-------------
A range is defined by selecting the ends of the range as the foreground
and backround colors in the palette screen using the left and right
mouse buttons, and then pressing ALT+FKEY, where FKEY is one of the ten
function keys. This assigns those two colors as the ends of the range
on that FKEY, including all colors between them.

GLOW ranges are more complex to define, but are extremely flexible and
rewarding to use.

A GLOW range is defined by clicking the left, then the right mouse
button on the SAME color in the palette, then pressing ALT+FKEY.  Once
you have done this, there is another step - you must define the range
of colors that are to be assigned to this key. To do this, click the
left mouse button with the pointer over the color that starts the
range, and the right over the color that ends the range... you can use
spread functions, or define each color individually. When you are
satisified that the colors in the range are the ones you want assigned
to the GLOW register, press the "ENTER" key on the numeric keypad. At
this point, the GLOW register is all set up; you can restore the
palettes previous colors from the main image by using the "R" key.

To select a range as current in either the main screen or the palette
screen, hit the FKEY associated with that range without pressing ALT.

It is possible to mix GLOW ranges and color cycle ranges for unique
visual effects.

Functions for the gadgets in the Brush Tools window:
====================================================

[.5x] ------------ This gadget will take any brush that is larger than
                   1 pixel in both dimensions and "halve" it, which
                   produces a brush with 1/4 the original area. Pixels
                   are taken from all the even positions accross the
                   brush, and all the even lines of the brush.

[.5x h] ---------- This gadget will take any brush that is larger than
                   1 pixel horizontally and cut it in half, but only
                   horizontally. Pixels are taken from the even ones in
                   each line of the brush (0, 2, 4 etc).

[.5x v] ---------- This gadget will take any brush that is larger than
                   1 pixel vertically and cut it in half, but only
                   vertically. Pixels are taken from the even ones in
                   each column of the brush (0, 2, 4 etc).

[2x Zoom] -------- This gadget is unique among Amiga paint programs. It
                   takes any brush that is smaller than 1/2 the width
                   and smaller than 1/2 the height of the screen and
                   doubles it's size (four times the area). But unlike
                   other programs, this function does not just have to
                   replicate the pixels in the brush. If the Anti-alias or
                   Block gadget is set to Anti-alias, each pixel is
                   examined for it's color (from the registers) and the
                   new pixels are given new colors if (1) they are
                   available and (2) the proceedure determines that it
                   is appropriate. The function works to the best of
                   it's ability, but is rather "at your mercy" because
                   it utilizes the current palette settings to find the
                   nearest color matches for what it thinks should be
                   in a particular position. A palette with a lot of
                   colors near the ranges in the brush will yield the
                   best (smoothest) zoom quality. If you need the
                   standard "chunky" zoom, see the [2x Block] gadget,
                   next.

[Stretch] ------- This gadget allows you to drag out a rectangle on the
                  main painting area so that the currently defined
                  brush will match that new size. For a normal stretch,
                  drag down and right. If you drag up, left, or up and
                  left then the brush will be rotated as well as
                  resized. When resizing a brush to a larger size, some
                  "pixelization" is normal - that is, blocky looking
                  pixels. Often a good solution to this problem is to
                  run the anti-alias operation on the brush area(s)
                  once it has been stamped down. If the Anti-alias/block
                  gadget in the brush window is set to anti-alias, then
                  the stretch operation will be anti-aliased.
                  
                  NOTE: For best results with anti-alias, do not stretch 
                        a brush more than 100% up or 50% down. Either
                        use multiple stretches to get to your desired
                        size, or use a combination of 2x Zoom and
                        stretch. This creates the most accurate result.
                        If you are using the BLOCK method, any
                        arbitrary stretch will provide the same results
                        as multiple stretches.

[Trans] --------- This gadget controls whether a brush, when "cut" from
                  an image, is evaluated and processed for
                  "transparent" areas. Transparency for this program
                  occurs when (1) this gadget show "Trans" clearly, and
                  (2) a pixel in the brush is the same as the color
                  that is selected as the backround color (right
                  button) at the time that the brush is cut. Changing
                  the backround color after the brush is cut will not
                  affect the transparency of the brush; and brushes
                  save this transparent status with them. Clicking on
                  this gadget causes it to add a "not" circle over the
                  word "Trans" - when this is visible, brushes will
                  have no transparent area.

[ReMap] --------- This gadget causes the colors in the brush to be
                  replaced with colors from the current palette that
                  are closest to the original colors in the brush. This
                  function also is dependant upon just how many colors
                  in your palette are near those that the brush was
                  defined with. It's generally used or needed when a
                  brush is loaded from disk that was taken from an
                  image with an entirely different palette.

[<-->] ---------- Flip the brush horizontally

[v^] ------------ Flip the brush vertically

[first curve] --- Rotate 90 degrees

[2nd curve] ----- Rotate 180 degrees

[3rd curve] ----- Rotate 270 degrees

[Disk Icon] ----- This gadget opens a window with Save and Load gadgets
                  in it. Choose one, and you get the file requester.
                  Loading a brush completely wipes out the previous
                  brush at this time, so if you're going to need it,
                  save it to disk before loading a new brush.
                  Additionally, you should know that when you remap a
                  brush to a new palette, saving the brush saves the
                  new palette and map with it. This is unlikely to be
                  as high a quality an image as the original; the only
                  exception is when a remap has an artistic effect you
                  desire.


Keystroke command definitions:
==============================

    From the normal paint screen:
    -----------------------------
        On main keyboard:
        -----------------
            "TAB key" - This key turns color cycling on and off.

       "fkeys f1-f10" - These keys select a register range to be used
                        for area fills if the range fill option is
                        selected in the fill control window.

        "space bar"   - This will cancel any area fill that is in the
                        calculation phase (this is a pause before it
                        begins to actually draw the filled area and can
                        be quite long).

        "Cursor Keys" - these move you around when you are in
                        magnify mode. If you are NOT in magnify mode
                        and the image you are editing is an overscan
                        image, then these keys "pan" you around so that
                        you can access the edges of the image.

        "H" cross Hair on/off. (most often used with "T" key)
        
        "M" Mark the target location for the pantogram tool.

        "T" Toggles the crosshair pointer on and off. Useful for
            operations with custom brushes - the pointer pretty much
            just gets in the way then.

        "U" Same as undo icon.
        
        "S" Swaps the currrent and spare screens

        "B" Takes the Brush palette and makes them the image palette;
            if the brush has 32 colors, then the 32 color palette is
            duplicated 8 times throughout our 256 color palette. For a
            more sophisticated method of taking brush colors into the
            local palette, see the "B" key under the Palette
            operations. If the brush has 256 colors, then all are
            mapped into the palette.
        
        "G" pops the gadget control panel front and back.
        
        "P" pops the palette screen front and back.
        
        "R" remaps the brush colors to match those in the current
            palette, as nearly as possible. This is for situations
            where you have cut a brush from one image where the palette
            is different from that of the image you currently have in
            memory.
            
        "1" Locate Grid - This causes the current grid to be
            repositioned such that it will register a corner exactly
            where the crosshairs are positioned when this key is
            pressed. The grid size is not affected.
        
        "2" Grid From Brush - This causes the grid to be resized to
            the exact size of the current custom brush. The
            registration is not affected.

        "I" This invokes the 24 bit R,G,B file loader. This format is a
            very poor, very large "raw" data format generated by
            certain products such as the Sculpt series of ray tracing
            tools. The RGB data is contained in three separate files
            which have no identifying information in them whatsoever.
            As a result, you, the user, MUST know several things about
            them:
            
                * The three file names - might be any name at all.
                * Which file is red, which is green, which is blue.
                * What resolution the files are (320x400, etc).
            
          If you have all of this information, then the paint
          software can load the file for you. Pressing "I" once
          brings up the file requester three separate times. If you
          press it in error, then just cancel any one of the
          requesters and the operation will terminate. You need to
          select the red, green and blue files in that order. Then
          you are presented with a text requester, which you fill in
          with the "X" width (320, for instance). Then a Y size
          requester, which you fill in with the image height (400,
          for instance). If you get all of this right, and you have
          enough memory, the file will be loaded and converted. We
          suggest that you then save the file in REG mode, GIF, or 24
          bit IFF. Keep in mind that once loaded into the register
          paint software, the image will contain only 256 colors. You
          can use our "convert" utility to change from RGB files to
          24 bit IFF files with all 24 bits of data intact; once this
          is done, you can safely delete the original individual RGB
          files.
        
    On keypad: [Cycle Control Operations only]
    ------------------------------------------
        "8" increases the speed of the currently selected register range
        "2" decreases the speed of the currently selected register range
        "4" Restarts/Sets dir 1 for the currently selected range
        "6" Restarts/Sets dir 2 for the currently selected range
        "5" Stops off the currently selected register range
        "7" Turns PONG operation on for this register range
        "9" Turns PONG operation off for this register range

    From the Stencil Screen:
    ------------------------
    
    On main keyboard:
    -----------------
        S - Set all colors in range chosen by left/right mousebuttons
        C - Clear all colors in range
        F - Flip all colors in range

    From the Palette screen:
    ------------------------

    On main keyboard:
    -----------------

       "fkeys f1-f10" - These keys select a register range to be used
                        for area fills if the range fill option is
                        selected in the fill control window.

   "ALT-fkeys f1-f10" - These keys take the currently selected foreground
                        and backround colors and make them the ends of
                        the range for the fkey that was pressed.
                        
                        To select a "GLOW" range, make the foreground
                        color and the backround color the same - click
                        one mouse button after the other on the color
                        you want to have the glow attribute in the
                        palette. Now create a range of colors in the
                        palette that you wish the glow to cycle thru...
                        it can be any arbitrary sequence. Once you are
                        satisfied with the colors, click one button
                        over the start of the range, and the other over
                        the end. Now press the "Enter" key on the
                        keypad, and your glow range is set. Note that
                        you can now use "R" to restore your palette
                        colors from the main image, as the glow range
                        has memorized the colors you set and does not
                        need the palette information any more. This
                        allows unlimited glow range specification of up
                        to 256 colors in a glow range.

        "V" In the palette, the "V" key causes the palette colors to
            be sorted by their "value" (brightness) with the darkest
            colors placed earliest in the palette, and the brightest
            colors placed latest in the palette. The main image is
            redrawn to match the new palette ordering. See also the "O"
            key which does the same thing to all three components; H,
            S, and V.

        "O" In the palette, the "O" key causes the palette colors to
            be re-ordered, after which they are passed back to your
            original image. Keep in mind this will modify your image in
            some ways. This function is best used on images that have
            been rendered to 256 colors, which you wish to seriously
            paint in. The re-ordering of the palette makes it much
            easier to locate colors that are related to each other.

        "B" Here, the "B" key causes the colors from an IFF brush to be
            mapped into a location in the palette that you specify with
            the foreground color. Click on the color where you want the
            brushes palette to begin, and then press the "B" key. If
            there are more colors in the brush than will fit in the
            remaining space in the palette from where you select the
            start position, then the brush palette will start back at
            the nearest location to the end of the palette where it can
            fit. Other colors in the palette are not affected by this
            operation. If the result is not as you desire, use the "R"
            key to restore the palette from the source image and try
            again.
    
        "S" Spread luma from foreground color selection to backround
            selection. This is similar to a standard palette "spread"
            function.

        "M" Mirror Spread. Copies first color to center of range, and
            then copies last color to first color. Then spreads from
            both ends to the center of the range, resulting in a
            "mirror" spread: From:to:From.

        "H" Spread HSV from foreground to backround selection. This
            function is designed to spread the palette like the "S"
            function, but instead of using the RGB values to do the
            spreading, it spreads the HSV values.
            
        "R" Restore palette from screen
        
        "U" Update palette back to screen
        
        "C" Copy from foreground to backround color
        
        "X" Exchange the foreground and backround colors
        
        "P" Opens the palette, if closed, closes it if open.

ARexx commands available:
=========================

Without parameters:
    CLOSE       terminate program    
    GADOFF      close gadget window  
    GAD         open gadget window   
    PALOFF      close palette window 
    PAL         open/unhide palette  
    PALHIDE     hide palette         
    DOCOPY      create copy in undo  
    UNDO        restore copy frm undo
    SCLEAR      clear screen to backround color
    
    GETH        fetch (0-360.0) Hue   - can be used after READHSV or READHSL
    GETS        fetch (0-1.0) Sat     - can be used after READHSV or READHSL
    GETV        fetch (0-1.0) Value   - can be used after READHSV
    GETL        fetch (0-1.0) Luma    - can be used after READHSL
    GETC        fetch (0-1.0) Cyan    - can be used after READCMY or READCMYK
    GETM        fetch (0-1.0) Magenta - can be used after READCMY or READCMYK
    GETY        fetch (0-1.0) Yellow  - can be used after READCMY or READCMYK
    GETK        fetch (0-1.0) Black   - can be used after READCMYK
    GETR        fetch (0-255) Red     - can be used after READRGB
    GETG        fetch (0-255) Greeen  - can be used after READRGB
    GETB        fetch (0-255) Blue    - can be used after READRGB

With parameters:
    LINE x1 y2 x2 y2 - draws a line with current brush
    COLOR c          - sets current FOREGROUND color c 
    BACK c           - sets current BACKROUND color c
    CIRCLE x,y,r     - draw circle in current brush
    OVAL x,y,xr,yr   - draw oval in current brush
    PLACE x y code   - write x y code [code is brush, 1-8 predef, 9=custom]
    SAVEI filename   - save IFF image       
    LOADI filename   - load IFF image       
    SAVEB filename   - save 256 color brush IFF image       
    LOADB filename   - load 256 color brush IFF image       
    PREAD x y        - read a pixel
    MSG text string  - send text string to satus line (50 chars, max)
    
    READHSV reg      - calculate HSV value of register (see GETH,S,V)
    READHSL reg      - calculate HSL value of register (see GETH,S,L)
    READCMY reg      - calculate CMY value of register (see GETC,M,Y)
    READCMYK reg     - calculate CMYK value of register (see GETC,M,Y,K)
    READRGB reg      - calculate RGB value of register (see GETR,G,B)
    
    WRITEHSV reg     - set reg to HSV value (see PUTH,S,V)
    WRITEHSL reg     - set reg to HSL value (see PUTH,S,L)
    WRITECMY reg     - set reg to CMY value (see PUTC,M,Y)
    WRITECMYK reg    - set reg to CMYK value (see PUTC,M,Y,K)
    WRITERGB reg     - set reg to RGB value (see PUTR,G,B)
    
    PUTH value       - Set Hue to value     (0-1.0)  [HSV, HSL]
    PUTS value       - Set Sat to value     (0-1.0)  [HSV, HSL]
    PUTV value       - Set Value to value   (0-1.0)  [HSV]
    PUTL value       - Set Luma to value    (0-1.0)  [HSL]
    PUTC value       - Set Cyan to value    (0-1.0)  [CMY, CMYK]
    PUTM value       - Set Magenta to value (0-1.0)  [CMY, CMYK]
    PUTY value       - Set Yellow to value  (0-1.0)  [CMY, CMYK]
    PUTK value       - Set Black to value   (0-1.0)  [CMYK]
    PUTR value       - Set Red to value     (0-255)  [RGB]
    PUTG value       - Set Green to value   (0-255)  [RGB]
    PUTB value       - Set Blue to value    (0-255)  [RGB]


Functions of gadgets in the File Requester window:
==================================================

[Assigns] -------- A adds any "Assigns" in your system to the "Roots"
                   list. this makes it easy to get right to directories
                   that are of special interest to you. See the
                   AmigaDOS documentation on the CLI "Assign" command.

[Sort] ----------- Causes the lists to be sorted when selected

[Confirm] -------- Causes the file requester to request you to confirm
                   your selection when you save something and the file
                   with that name already exists.

[2 Clk] ---------- This allows you to make your selections in the FILE
                   list by double-clicking on the item, you won't have
                   to press the action button at the far right of the
                   file requester.

[Parent] --------- Changes to a directories parent, if it has one.

[Cancel] --------- Exits the file requester without making a selection.
                   This performs the same function as the close window
                   gadget at the upper left hand corner of the window.

[*Action*] ------- May be named "Load Pic", "Save Bru", etc. Always is
                   the button that will perform the intended function
                   the file requester was brought up for.



Lists in the File Requester:
============================

[Roots] ---------- This is a list of all devices in your system that
                   can support file saving and loading. It may,
                   depending on the state of the "Assign" button, also
                   show you all of the assigned volumes in your system.
                   Clicking on one of these changes the current path to
                   that place in your filesystem.

[Directories] ---- This is a list of all directories that exist in the
                   path position the file requester is now looking at.
                   All of these directories are "children" of the
                   directory you are now in.

[Files] ---------- All items in this list are actual files. If there is
                   an extension specified in the extension gadget, then
                   only files that have that extension are shown; all
                   others are hidden. If the "2 Clk" gadget is
                   selected, then double clicking on a file in this
                   list will select the file AND cause the action
                   specified in the Action button (top right button) to
                   be performed.





Text gadgets in the File Requester:
===================================

[File:] ---------- This gadget contains the name of the file to be
                   operated on. You can type right into it, or it will
                   load automatically when you click on a file in the
                   file list.

[Path:] ---------- This gadget contains the complete path to the
                   directory you are examining. You can type directly
                   into it; When you press return, the new directory is
                   scanned and all files and directories in it are
                   displayed for you.

[Ext:] ----------- This gadget is a "hide all but these files" gadget.
                   For instance, if you like the extension ".pic" on
                   your pictures, or ".iff", then setting this gadget
                   to one of those causes only those files to be
                   displayed in the file list. They are show without
                   their extensions, since we already know what they
                   must be if they are showing - they match the Ext:
                   gadget.


User Notes:
===========

Anti-Alias of complex objects
-----------------------------
If a complex object is located on any solid color backround and you'd
like to anti-alias it, this is easily done. First, go into the fill
tools window and select the "Edge" fill mode. This tells the fill
operation that it is to fill until it reaches a region which is the
backround color.

Now select the anti-alias mode with the gadget that chooses Matte,
Color, Cycle, and Anti.

Click on the F/B gadget, and select the color surrounding your complex
object as the backround color using the right button.

Now select the fill mode on and click somewhere on the object where you
want to fill, and the entire object will be anti-aliased.

If you'd line the backround color to be anti-aliased at the edges of
the object, the you simply select the "outline" gadget in the fill
window before you start the operation.


Preparing for best anti-alias effect:
-------------------------------------
In order to anti-alias (smooth) an area, the paint program replaces
certain pixels with others of a color that is in-between the colors
surrounding that pixel.

However, the paint program is in sense "at your mercy" because you have
complete control over what colors are available via the palette. If you
want anti aliasing to be it's most effective, you can help the software
easily. Here is an example.

Let's say that you have a white ball and you've placed it on a red
backround. Remember that the anti-alias procedure requires colors in
between those it is smoothing together. Before you attempt to anti-
alias this region, go into the palette and create a spread of colors
(using the "S" key in the palette) between the red in the backround
and the white in the ball. It does not matter where in the palette
these colors are located. Once you've created a range of colors (8 to
16 will usually be enough) use the "U" key to update the new colors
back to the main paint screen.

Now, if you anti-alias this area using any tool in anti-alias mode, the
software will locate those colors you made in the palette and use them
to smooth the area.

Smooth (Anti-aliased) brush re-sizing:
--------------------------------------
For anti-aliased brush re-sizing to operate most effectively, you
should have additional colors in the palette that are near those that
were originallyy in the brush. For instance, if you want to zoom a 16
grey level brush, it's worth your time to go into the palette and
create (for instance) 32 grey levels. These are used to create new
pixels that are of a brightness "in-between" the original pixels, which
is where they are physically placed as well.

Revisions, by revision number
=============================
 *
 * v2,r8: November 24th, 1990 - BW (sure - we work saturdays... :^)
 * ----------------------------------------------------------------
 * - Added "Colors from brush" gadget in palette
 * - Fixed bug where stencil and sometimes palette screens would "drop"
 *   56 lines too low. This bug only appeared in v2r6 thru v2r7.
 * - Changed HAM color space slice area to an Intuition image, so that
 *   it is rendered by the blitter instead of the CPU. Much faster! Here's
 *   one more example of why the HAM-E system can be so much faster than
 *   DCTV or ColourBurst... they can't use the blitter on sub-local
 *   regions. :^)
 *
 * v2,r7: November 21st, 1990 - BW
 * -------------------------------
 * - Fixed bug where old palette would come up over the new palette
 * - Added "normal" gadgets for all palette keystroke functions
 *
 * v2,r6: November 19th, 1990 - BW
 * -------------------------------
 * - Fixed potentially serious bug that could occur when loading an image
 *   and selecting a new screen type.
 * - Added '\' key to select from four color spaces in the palette display:
 *      * - RGB - [    Red, Green, Blue    ]
 *      * - HSV - [ Hue, Saturation, Value ]
 *      * - HSL - [  Hue, Saturation, Luma ]
 *      * - CMY - [  Cyan, Magenta, Yellow ]
 * - Moved the RGB color level indicators to above the slices of color
 *   space, and annotated them for clarity.
 *
 * v2,r5: November 19th, 1990 - BW
 * -------------------------------
 * - Changed Palette requester some more... re-arranged color locations,
 *   size... some other things.
 *
 * v2,r4: November 17th, 1990 - BW
 * -------------------------------
 * - Added standard palette tools, removed old stuff.
 *
 * v2,r3: November 14th, 1990 - BW
 * -------------------------------
 * - Added 'v' key to sort palette on value (luma)
 * - Added 'x' key to exchange fore and back colors in palette
 * - IFF24 save bug fixed, on occasion would save odd-byte-length scanlines
 *   which would cause smarter IFF24 loaders to have problems.
 * - Changed default palette to write pure white to the last few color
 *   registers (253,254,255). This will help the exclusive-or tool
 *   preview operations to work better in the default palette.
 *
 * v2,r2: November 1st, 1990 - BW
 * -------------------------------
 * - Crashing bug in "newscreen" involved with Stencils fixed. Ooops. :^(
 * - Added crosshairs ("H" key)
 * - Added "pantogram" tool
 * - Removed old rectangular anti-alias tool
 * - Fixed bug in anti-alias using custom brush shapes
 * - Added "I" key to load Sculpt-style separate RGB files.
 * - Added "1" (on main kbd) key to register grid where xhairs are now
 * - Added "2" (on main kbd) key to size grid to current custom brush size.
 *
 * v2,r1: October 22nd, 1990 - BW
 * -------------------------------
 * - Implemented accelleration for generalized anti-alias mode
 * - Fixed bug in GIF loader that caused "interlaced" images to load
 *   incorrectly
 * - 24 bit IFF loader modified to recognize RGB "CLUT" chunks written
 *   by ASDG's "Art Department" for gamma and etc mapping.
 *
 * v2,r0: October 20th, 1990 - BW
 * -------------------------------
 * - Added ability to change from interlace to nonlace and back
 * - Added ability to choose whether lines are modified when you
 *   load a non-conformant image.
 * - Revised >256 color IFF loader for greater speed in analysis
 *
 * v1,r18: October 19th, 1990 - BW
 * -------------------------------
 * - Added AntiAlias mode to all drawing operations
 * - Added support for direct loading of QRT (Quick Ray Trace) files
 * - Added support for direct loading of DKB Trace files
 * - Fixed r17 bug where images less than 320 wide loaded "funny"
 * - Added "define new image" operation in System window
 *
 * v1,r17: October 15th, 1990 - BW
 * -------------------------------
 * - All loaders now handle full overscan
 * - Increased the built-in renderer's color space resolution so that
 *   >8bit images which are loaded directly would be of better quality.
 *   images can take much longer to load; but as was pointed out to us,
 *   what's the point of having all this nice color if the loaded images
 *   look like 4096 color HAM?
 * - Added Block/Anti-alias gadget in brush tools which affects
 *   the Zoom and Stretch operations. Removed duplicate 2X gadgets
 * - Added CMYK color space handling; New ARexx commands for:
 *   value=GETK, PUTK [value], READCMYK [reg], WRITECMYK [reg]
 * - Added SHAM (sliced ham) image load capability
 * - Added Dynamic HiRes load capability
 * - Added ASDG ARZ1 - (Similar to Dynamic HiRes) load capability
 * - Added ASDG ARZ0 - (Similar to Dynamic HiRes) load capability
 * - Added ASDG AHAM - (Similar to sliced HAM) load capability
 *
 * v1,r16: October 12th, 1990 - BW
 * -------------------------------
 * - Added ability to save images in GIF mode
 * - Changed loaders to load non-conformant x:y images better.
 *
 * v1,r15: October 12th, 1990 - BW
 * -------------------------------
 * - changed load proceedures for non-conformant std IFF sizes in load
 * - Added 24 bit IFF file saves
 * - Added save of 24 bit IFF images, loadable by other software
 * - Changed internal definition of color conversion structures
 *   to additionally handle HSL and CMY color spaces.
 * - HUGE change to the way the REXX scripting handles color
 *   space commands. Old HSV and RGB setting commands removed.
 *   Old HSV and RGB reading commands changed. Two new color space
 *   types added, HSL and CMY. New method of handling is to:
 *
 *      1 - use a READxxx[reg] command to preset info on a register
 *              a - READHSV n
 *              b - READHSL n
 *              c - READCMY n
 *              d - READRGB n
 *
 *      2 - then use GETx and PUTx cmds to manipulate the fetched data
 *              GETH, PUTH x, GETS, PUTS x, GETV, PUTV x, GETL, PUTL x
 *              GETC, PUTC x, GETM, PUTM x, GETY, PUTY x,
 *              GETR, PUTR x, GETG, PUTG x, GETB, PUTB x
 *
 *      3 - then use WRITExxx[reg] command to update a register
 *              a - WRITEHSV n
 *              b - WRITEHSL n
 *              c - WRITECMY n
 *              d - WRITERGB n
 *
 *   Note that the old macros that handled HSV operations will no
 *   longer function correctly. This is unfortunate, but the old
 *   methodology was not particularly expandable, while this means
 *   can be expanded to any number of various and peculiar color
 *   spaces. The goal here is to make the paint program general enough
 *   to allow you to do _anything_ with color manipulations in _any_
 *   color space.
 *
 * v1,r14: October 12th, 1990 - BW
 * -------------------------------
 * - Fixed inability to load certain 8 bit file types from TAD
 *
 * v1,r13: October 11th, 1990 - BW
 * -------------------------------
 * - Fixed one phase of the magnify/pan UNDO bug.
 * - Added getcH, getcS, getcV ARexx macro commands. See 'dim25.rexx'.
 *
 * v1,r12: October 1st, 1990 - BW
 * ------------------------------
 * - Fixed (Finally! <grin> the bug in the HSV value generator; Now we'll
 *   be able to add HSV gadgets.
 * - Added "ObeyStencil" for non-custom brush operations
 * - Added ability to load GIF images directly
 * - Fixed some bugs associated with stencils & magnify mode
 * - Fixed bug in drawing custom brushes that was causing a significant
 *   extra slowdown when magnify window was open. Also when it was
 *   not, but you probably didn't notice except in magnify.
 *
 * v1,r11: October 1st, 1990 - BW
 * ------------------------------
 * - Refined pointer type handling; r10 introduced loss of clear ptr, etc.
 * - Added mouse co-ordinates (and char generator to go along with 'em)
 * - fixed fill mode gadget setting bug (harmless but annoying)
 * - Added ARexx command "msg" to send messages to status line
 * - Added GRID-snap feature - size and position, on and off.
 * - Moved Brush tools and Fill tools to main window
 *
 * v1,r10: September 30th, 1990 - BW
 * ---------------------------------
 * - made it so that file requesters remember last file name for
 *   both brushes and images.
 * - Added "busy" indicator for filled box/oval operations. These take a
 *   few moments on a 68k machine.
 * - Added "busy" indicator for any keystroke operation; many of these would
 *   take quite a while also, now you'll know when things are ready.
 * - Fixed bug that caused a cycle range to be completely cancelled if
 *   you used the "5" key on the keypad, which was supposed to stop
 *   the cycling, but not _destroy_ it. The direction keys now restart
 *   the range, as was originally intended.
 * - Fixed bug that caused hi-res images to be offset by 1/2 the image size
 *   when the spacial->color conversion option was set in the SYSTEM window.
 *
 * v1,r9 - BW
 * ----------
 * - Fixed bug which caused images to be somewhat scrambled after an "O"
 *   re-order command was issued in the palette, IF the image was larger than
 *   the screen (overscan). At the same time, the renderer has been modified
 *   so that it will create images of any size, given enough memory.
 * - print output has been modified so that it can print images that are
 *   larger than the screen (overscan)
 * - Added "stretch brush" operation in brush window
 *
 * v1,r8 - BW
 * ----------
 * - Repaired VERY unfortunate bug that prevented loading of images with
 *   color GLOW ranges in them. Sorry about that!
 *
 * v1,r7 - BW
 * ----------
 * - Added ARexx commands to read R, G or B component of a particular
 *   color register.
 * - Added load of RGBN (12 bit Silver) files
 * - Fixed custom brush icon not coming on after load of brush
 * - removed load iff gadgets, consolidated all load ops brush/pic
 * - Added anti-Alias rectangular area operation
 * - Removed "circle" operation, oval will do for all ops.
 * - Fixed bug where loading of HAM images caused lockups.
 * - Fixed bug that prevented correct load of 7 bitplane iff as image
 *
 * v1,r6 - BW
 * ----------
 * - Fixed situation where clear screen to zero would unlock us. If the user
 *   attempts to clear to creg zero now, the paint program will locate the
 *   color register that contrasts LEAST with the C0 register, and draw a
 *   line down the left side of the screen which prevents us from unlocking.
 * - Fixed dissapearing closebox in stencil requester - now color is
 *   calculated before drawing so that there is maximum contrast.
 * - Fixed bug in HAM, 24 bit IFF, and RGB8 loads where color allocator
 *   had major troubles when image was != screen size; images should now
 *   load correctly regardless of source image size.
 * - Added option for paint software to generate pallete values that are
 *   specifically designed to *replace* spacial resolution with color
 *   resolution when loading hi-res images. Switch is in the SYSTEM window.
 * - Added new vertical window fill mode, similar to old horizontal window.
 * - Improved auto-line generation at the left edge after image loads; same
 *   kind of problems that the CLS function had.
 * - Added Intuituion printer driver support. Screen dumps. Resolution
 *   limited to 4096 colors/16 greys by printer drivers. Fooey! :^(
 *
 * v1,r5 - BW
 * ----------
 * - Added RGB8 (Turbo Silver) image loading capability
 * - Added PAL capability via startup-requester and config file & requester
 * - Changed the way IFF 2-64 color images load up our palette. Mucho Nice now.
 * - Added "O" keystroke in palette to sort colors - for digitized images
 * - Fixed bug where palette values didn't update when you picked from main.
 * - Accellerated palette draw considerably.
 * - Added "Color" mode for custom brushes, back and foreground colors.
 * - Accellerated custom brush, removed transparent artifacts
 * - Added "stencil" gadget, function and control window
 * - "C","S","F" Clear, Set and Flip Stencil ranges set w r-l MouseButtons
 * - Added right button brush cut, zap to backround (lift-n-cut)
 * - Fixed undo bug that occured after overscan panning
 * - Added front-back color choice gadget, removed predefined brush #8
 * - Added Cycle-Matte-Color gadget, removed predefined brush #7
 * - Added AirBrush gadget, removed pre-defined brush #6
 * - Added "mask" operation for brushes - It's a cookie-cutter
 * - Fixed palette so that it can recover to show current colors in 1 click
 *
 * v1,r4 - BW
 * ----------
 * - Added routine to find contrasting color in palette. Better "picks"
 * - Fixed "lost crosshair" bug after opening fill window
 * - Added WorkBench ICON and WB-startup resolution choice window
 * - Added color cycling via tab key; ten ranges, page independant
 * - Added overscan load, save, page swap, and pan support
 * - Changed revision text to be short so it fits in the little WB window
 * - Added path configuration WB window, save, load from 'cd' or 's:'
 * - Loads 24 bit IFF as brushes or images.
 * - Load DigiPaint brushes
 * - Added "space bar" cancel operation for area fill
 * - Fills obey oval, rectangle and circle operations.
 * - Changed the way the "fill-to-edge" is calculated. Better ranges.
 * - Added 4-way/8-way gadget for better edge filling/outlining capability.
 * - Added ToEdge/Interior fill mode gadget. ToEdge fills to backround color.
 * - G got rid of "forever" key handling for color up-down in palette
 * - Added ALT-key accellerate to color up-down in palette
 * - Moved brush and fill operation windows to SYSTEM gadget.
 * - Added arbitrary creg "glow" capability
 * - Added "pong" capability for register ranges
 * - Enhanced the circle sizing method (see X pointer position now)
 *
 * v1,r3 - BW
 * ----------
 * - Added "moving window" fill type
 *
 * v1,r2 - BW
 * ----------
 * - Added New fill mode window
 * - Added Brush Tile fill mode
 * - Added horizontal CRANGE fill mode
 * - Added vertical CRANGE fill mode
 * - Added CRANGE variables - to be set (F1) from Palette. Default=1:255
 * - Added Outline fill modifier
 * - Added Include Edge fill modifier
 *
 * v1,r1 - BW - Source Released!
 * -----------------------------
 * - Fixed bug in HUE spread generator. Still not perfect, but better.
 * - Fixed bug in loading Photon Paint brushes where edges messed up.
 *
 * v1,r0 - BW
 * -----------
 * - Changed Magnify button to allow user to select area and cancel
 * - Added "Magnifying Glass" pointer during position selection
 * - Fixed bug where the predefined brushes didn't show in MAG window
 * - Fixed bug in loading half-bright brushes - DPaint doesn't save
 *   the 1/2 bright color registers, so we calculate them.
 * - Added "B" key in palette to do user-selected target of brush remap
 *
 * v0,r19 - BW
 * -----------
 * - Added "Magnify mode"
 * - Added "T" key to toggle hide of crosshair sprite at users choice.
 * - Added the ability to load IFF brushes: std, half-bright, HAM
 * - Added ability to load IFF images: std, half-bright, & HAM.
 * - For oversize IFF brushes & pics, clipped them appropriately to fit.
 *
 * v0,r18 - BW
 * -----------
 * - Added font requester for text generation
 * - Changed crosshair sprite to be "on the nose" and one pixel wide/thick
 *
 * v0,r17 - BW
 * -----------
 * - Gave the brush save and load functions their own path "memory"
 * - Made the default paths NULL, rather than the ":" that was in there.
 * - Added text generation to brush function
 * - Fixed serious bug in memory handling related to brush color remapping
 * - Fixed yet another memory bug, cleanup on exit wasn't getting all of brush
 *
 * v0,r16 - BW
 * -----------
 * - Added new SCLEAR to backround for ARexx
 * - Added LOADB for load brush from ARexx
 * - Added SAVEB for save brush from ARexx
 *
 * v0,r15 - BW
 * -----------
 * - Added auto-quit to system/CLS operation
 * - Added 'U' key - causes "undo"
 * - Fixed bug in 'S'wap key, would leave goop around if brush was active
 *
 * v0,r14 - BW
 * -----------
 * - Added 1/2 brush sizing.
 * - Added 1/2 "H" brush sizing
 * - Added 1/2 "V" brush sizing
 * - Added standard brush doubling (2x Block)
 * - Added smooooth brush doubling (2x Zoom)
 * - Added 90 degree brush rotation
 * - Added 180 degree brush rotation
 * - Added 270 degree brush rotation
 * - Added brush color remap ICON (additional to "R" keystroke)
 * - Added save & load of 256 color brushes w/transparency. :^)
 * - Added "B" key - take pictures color palette from current brush.
 *
 * v0,r13 - BW
 * -----------
 * - Added interlace (-i) switch on command line, added support thruout
 * - program for interlace. Things remaining to be cleaned up are the
 * - predefined brushes, which are now oblate spheroids instead of circles.
 * - Added brush color remapping
 *
 * Pre v0,r13 (no id when starting up) - BW
 * ----------------------------------------
 * - This is beta software - should not be running around.

