
                *------------------------------------*
                |           Flying Shapes            |
                |                                    |
                | An Extend-O-Save Module for Warp 9 |
                |                                    |
                |            Version 1.2             |
                |                                    |
                |     1993 CodeHead Technologies    |
                |       by Charles F. Johnson        |
                *------------------------------------*


Flying Shapes simulates the movement of a line, box, polygon or triangle
around your screen.  Many aspects of this module can be altered, for an
almost infinite range of animated graphic effects.  Flying Shapes requires
Warp 9 v3.70 or later, works in all ST and TT resolutions, and is freeware
from CodeHead Technologies. 

Version 1.1
-----------
Version 1.1 was primarily a bug fix release, but there were several changes
from the first version.

Version 1.2
-----------
This version fixes a bug that caused Flying Shapes to fail to deallocate
its screen memory when it was removed or reloaded.


                    *** CONFIGURATION OPTIONS ***

Shape
-----
At the top of the configuration dialog box are six buttons that let you
choose which type of shape you want Flying Shapes to draw.  The choices
are: one line, two lines, one box, two boxes, four-sided polygon, or
triangle.

In addition to the six shape buttons, there are two buttons labeled
"Random" and "Cycle."  Here's how they work:

  Random
  ------
  If this button is selected, then every time Flying Shapes kicks
  in (by timing out, by moving to the "Fade Now" corner, or by clicking
  the "Test" button) it will choose a random shape from among the six
  possibilities.

  Cycle
  -----
  This button works in conjunction with "Cycle Time" (see below), and it
  is also affected by the "Random" button described above.  If the cycle
  time is non-zero and this button is selected, then whenever the cycle
  time expires Flying Shapes will advance in order to the next shape. 
  (The order is not the same as the onscreen buttons.)  If the "Random"
  button described above is also selected, then a new shape will be chosen
  at random when the cycle time expires.  If "Cycle" is not selected but
  "Random" is, then a random shape will be chosen when Flying Shapes kicks
  in, but not at every cycle.

If this sounds confusing, don't worry.  Just play with the settings and it
should begin to make sense.


Speed
-----
You can choose one of four speeds ("1" is the slowest speed, "4" the
fastest) to control the rate at which the shapes are drawn.  There is also
a "Random" button for the speed; if this button is selected, a random
speed will be chosen every time Flying Shapes kicks in (or cycles).


Length
------
This number determines the length of the shape's "trail."  The maximum
length is 500; if you enter a number larger than this, Flying Shapes will
set it to 500.  Of course, there's also a "Random" button for the length;
if this button is selected, a random length from 1 to 90 will be chosen
whenever Flying Shapes kicks in (or cycles).


Delta Values
------------
Shapes are determined by either one or two lines; single lines and boxes
require one line, while double boxes/lines, polygons, and triangles
require two lines.  A line is described by a pair of X/Y coordinates,
defining the start and end points of the line.  To move shapes around the
screen, Flying Shapes adds "delta values" to these coordinates. 
Specifically, the value in "Left Delta" is added to the starting X
coordinate, "Top Delta" is added to the starting Y coordinate, "Right
Delta" is added to the ending X coordinate, and "Bottom Delta" is added to
the ending Y coordinate.  By changing these values, you change the
movement of shapes around your screen. 

Note: when the "RANDOM" buttons are not selected, the SECOND number in the
delta value fields is used.  The first number is used to set the range of
random numbers (see below); when the "RANDOM" buttons are not selected,
the first number is ignored. 


Random Buttons
--------------
To the right of each delta value is a button labeled "RANDOM."  When this
button is selected, Flying Shapes will choose a new random number for the
delta value every time the object hits a screen border.  The lowest and
highest possible random numbers are set by the first and second numbers
(respectively) in the delta value fields.  The lower limit cannot be set
to zero; Flying Shapes will reset it to one if you try.  The upper limit,
however, can be set to zero; if this is done, the settings of the "RANDOM"
buttons are ignored.


Cycle Time
----------
This value determines how many seconds Flying Shapes will wait before
clearing the screen and restarting with a different shape.  To turn off
cycling, set Cycle Time to 0.


Use Alternate Screen
--------------------
This button determines whether Flying Shapes will change the "physical"
screen address when it kicks in, or use the existing screen.  Changing the
screen address may solve some display problems with programs that write
directly to the screen; this is the default setting.

(If you have a Moniterm big-screen monitor, the setting of this button is
ignored; in this case the existing screen is always used, since changing
the screen address does not affect the Moniterm.)


Test
----
This button lets you see how the current settings look.  Click on it to
start up Flying Lines in "test mode."  When you want to exit test mode,
click the left mouse button.  (You may have to hold the mouse button down
for a second to get Flying Shapes to see it.)

Note: when you enter test mode, the current settings are saved into
FLYSHAPE.EXT just as if you had clicked the OK button (see below).


Cancel/OK
---------
Click the Cancel button if you wish to exit the configuration dialog
without saving the current settings.  When you click the OK button, the
current settings are automatically saved into the FLYSHAPE.EXT file; don't
rename the module, or you will be unable to save your settings.


                *** OTHER CHANGES FROM VERSION 1.0 ***

The first release of Flying Shapes used a special technique to call Warp
9's VDI line drawing routines directly.  Unfortunately, this technique has
proven unreliable at present; a future version of Warp 9 may make this
possible again.  Flying Shapes now uses Line A for graphics output, which
does have a positive side: the earlier version would not work if Warp 9's
screen acceleration was turned off, but this limitation is removed in
version 1.1.  Flying Shapes will now kick in and work properly under all
conditions.


                       *** KNOWN PROBLEMS ***

At present, there are none; all known problems with the earlier release of
Flying Shapes are fixed in version 1.2.


                        *** PLEASE NOTE! ***

Just in case you missed it in the Warp 9 release notes, please remember
that you should only load and unload EOS modules from the GEM desktop or
from HotWire (if you use HotWire).  It's not safe to load/unload modules
while a program is running, because of limitations in TOS's memory
management systems.

We recommend using MultiDesk Deluxe to load the Warp 9 Control Panel as
the last resident desk accessory, for the highest speed and
compatibility.

For more information about Warp 9 (or about MultiDesk Deluxe), please
contact us at:

  CodeHead Technologies
  P.O. Box 74090
  Los Angeles, CA 90004

  Tel 213-386-5735 (9am to 1pm Pacific)
  Fax 213-386-5789
