                              Uncle Carl's Famous
                                  Mouse Maker
                                 Version  2.0

                                August 01, 1993

                                   SHAREWARE

   DISCLAIMER
   ----------
   The author cannot be responsible for any damage to your equipment, other
   software or hardware products, or physical or mental well being caused by
   the use, misuse, abuse or inability to use this program. The author also
   makes no guarantee as to the compatibility of this program with other
   software or hardware products. You the user, by using this program, are
   stating that you understand AND agree with these terms AND are agreeing
   to accept ALL responsibility for any and all events arising from the
   implementation of this program.

   If you do not understand AND agree with these terms, DO NOT use this
   program !


   DISTRIBUTION
   ------------
   You are free to copy and distribute this program as long as the files

   UNCLMAUS.PRG \ UNCLMAUS.TXT \ REGISTER.TXT \ READ_ME.1ST \ OTHERTTL.TXT
   NEWTERMS.TXT \ USERMICE.LST \ the files DEFMOUS(0-7).CUR and the files
   contained in DEFMICES.LZH* and ALPHACUR.LZH*

   are included, are NOT modified in ANY way and NO FEE of ANY type is
   incurred upon the recipient for these files _themselves_.

   * The full listings of the files DEFMICES.LZH and ALPHACUR.LZH are
     contained at the end of this text file. These files contain 60
     .CURsor files, which is why they have been compressed seperately !


   REGISTRATION
   ------------
   If you are a REGISTERED user of ANY "Uncle Carl" program, you are FREE
   to use UncleMouse versions 1.0a - 2.0 for FREE ! Thanks for your support
   and honesty !!!

   If you are NOT a registered user of ANY "Uncle Carl" program then I
   am asking that if you USE this program, that you register your copy.


   SHAREWARE
   ---------
   SHAREWARE software is NOT FREE !

   With Shareware software you are being given the opportunity to "test 
   drive" the software before deciding whether or not to purchase it.

   If you DO decide to keep and use the program you are expected to pay for
   the software just like you would any other piece of software.

   Continuing to use a Shareware program without paying for it constitutes
   theft and makes you a common criminal.

   Shareware authors are placing their trust in you and hoping that you will
   act responsibly. Please don't disappoint them.


   FILE TYPES
   ----------
   UncleMouse (referred to hereafter as UM) creates 2 types of files. The
   first is a .CUR file. This file contains the cursor data, mask, hot spots
   and colors. It is the file which is utilized by most "Uncle Carl" programs
   to load a custom mouse CURsor. Programmers can refer to the enclosed file
   USERMICE.LST or the "FILE" section near the end of this text to see how
   to utilize this cursor in their own programs.

   The second type of file created by UM is a GFA Basic .LST file. After
   creating your own custom mouse you can save it to this type of file and
   then merge it into your own GFA source code. The file USERMICE.LST
   explains how to do this.


   PROMPTS
   -------
   Helpful prompts will appear at the top of the screen and, if you have
   TOS 1.4 or newer, these same prompts will appear in the fileselector.


   THE GRIDS
   ---------
   You will see 2 grids. The grid on the LEFT is for the mouse DATA. The grid
   on the RIGHT is for the mouse MASK. For example; the black part of the GEM
   arrow is the DATA. The white part that surrounds the black arrow when you
   enter an area of the screen which is NOT white, is the MASK.

   Hold down the LEFT mouse button over the grid to DRAW. Hold down the RIGHT
   mouse button over the grid to ERASE.


   OPTIONS
   -------
   To the right of the grids are 2 areas used for manipulating the grid
   information. The boxes below the DATA heading manipulate the DATA grid.
   The boxes below the MASK heading manipulate the MASK grid.


   ARROWS - Move the corresponding grid information left, right, up or down.
            NOTE that once information moves OFF the grid, it's gone FOREVER.

   CLEAR  - Clears the corresponding information grid.

   FILL   - Fills the corresponding information grid.

   M to D - Presents an alert which allows you to either copy the MASK
            information to the DATA grid or to create an INVERSE copy of the
            MASK information on the DATA grid.

   D to M - Presents an alert which allows you to either copy the DATA
            information to the MASK grid or to create an INVERSE copy of the
            DATA information on the MASK grid.

   SWAP   - Swaps the information on the 2 grids.



   VERIFYING MOUSE INFORMATION
   ---------------------------
   On the TOP RIGHT of the PANEL are 2 boxes, one black and one white. These
   are merely there as a referent for your DATA and MASK information. You can
   move the mouse between these two boxes to make sure your mouse is visible
   on both light and dark backgrounds.
 

   VIEW MOUSE SHAPE
   ----------------
   Clicking on this button will transform the current mouse cursor into
   the new cursor shape specified on the grids. Click anywhere else to return
   the mouse to it's original state.


   NORMAL
   ------
   This sets the mouse cursor to "NOT XOR" mode. Perhaps we should look at
   XOR so that we know what this isn't  :-) .


   XOR
   --- 
   This sets the mouse to XOR mode. XOR checks if either of two logical
   expressions, x and y , is logical TRUE. XOR returns TRUE only when each
   bit of an argument of the corresponding bit is set. For example...


   x         y            x XOR y
   -------------------------------
   TRUE      TRUE          FALSE
   TRUE      FALSE         TRUE
   FALSE     TRUE          TRUE
   FALSE     FALSE         FALSE


   Sound confusing..? Use XOR mode.


   DATA COLOR
   ----------
   Click on the "number" with the RIGHT mouse button to increment this number.
   Use the LEFT mouse button to decrement this number.

   These numbers represent the available colors for the mouse DATA.

   On a color monitor the numbers will scroll from 0 to 15. ST medium 
   resolution will only recognize 0-2. Anything beyond that will appear
   black. ST low resolution supports the colors 0-15. ST high resolution
   will only support 0-1. These limitations are determined by The
   Operating System (TOS) and not UM.

   If you plan on using the cursor in low resolution you will need to refer
   to the control panels color palette to determine what color is assigned
   to what number. UM is too large to fit on a low resolution screen.

   If you're a GFA programmer you need only change the appropriate value
   within the .LST file. It IS clearly marked.


   MASK COLOR
   ----------
   This is the same as DATA COLOR except that it changes the color of the
   mask.


   X COORDINATE
   ------------
   This is the "x hot spot" or "x action point" for the cursor. The x
   coordinate and the y coordinate determine which part of the cursor must be
   placed on an object before a click is recognized. The x coordinate is set
   from left to right, 0 for far left, 15 for far right.

   For example, the GEM arrows x coordinate and y coordinate seem to be around
   "0" zero (each). x=0 and y=0 means that the upper left hand point of the
   cursor is the "action point", the point which must be over an object before
   a click is recognized. If x=15 and y=15, then the lower right hand corner
   of the arrow would have to be over an object before a click is recognized.


   Y COORDINATE
   ------------
   This is the "y hot spot" or "y action point". This coordinate is set from
   top to bottom. 0 is the very top, 15 is the very bottom.


   X and Y EXAMPLES
   ----------------

   x       y             location
   --------------------------------------
   0       0          top left corner
   0       15         lower left corner
   15      0          top right corner
   15      15         lower right corner


 * You may also check a "hot-spot" in the following manner...

   After creating a mouse shape, move it down over either the DATA button or
   the MASK button. When the "hot-spot" enters the button an alert will 
   appear !


   FILE
   ----
   Click on this button with the LEFT mouse button to SAVE either a .CUR
   file or a .LST file (an alert will prompt you).

   Click on this button with the RIGHT mouse button to LOAD a *.CUR file.

   The GFA .LST file which is saved is pretty self explanatory in and of
   itself. It is capable of running immediately ! If there's something you
   don't understand, either refer to your GFA manual, or drop me a note.
    
   The second type of file is a .CURsor file. This is the file which is read
   by UncleMouse. It is ALSO the file you can support within your OWN
   programs. The first 2 lines of this file are "cast in concrete". The
   information in these lines will never be changed.
 
   For GFA programmers (I don't think this mouse data will work with other
   languages, but I haven't tried). To incorporate this mouse data into your
   own program all you need do is to load it as such...

 IF EXIST(path$+"YOURNAME.CUR")
   @lode.cursor    
 ENDIF

 PROCEDURE lode.cursor
   OPEN "I",#1,path$+"FILENAME.CUR"
   INPUT #1,dummy$  <-| You don't NEED this line, but MUST load it. It's
   l$=INPUT$(1,#1)    | merely a file identifier for UNCLMAUS.PRG. You
   l%=ASC(l$)         | CAN of course use it as I do to verify that this
   m1$=INPUT$(l%,#1)  | IS a valid *.CUR file.
   DEFMOUSE m1$
   CLOSE #1 
 RETURN


   USERMICE.LST
   ------------
   You may also merge the enclosed file USERMICE.LST into your program to
   use any user defined *.CUR files. You are free, of course to modify
   USERMICE.LST to our own needs. The only section of this .LST file you
   REALLY need is the section which looks like the above "PROCEDURE".

   Now whenever you wish to have a custom mouse present all you need do is
   invoke it through DEFMOUSE m1$ . NOTE: If you call any other mouse shape
   (ie: DEFMOUSE 2 - the bee ) you will need to make sure that you recall
   DEFMOUSE m1$. Of course you can name the string ($) anything you like.


   CONFIRM OVERWRITES
   ------------------
   If you hold down BOTH mouse buttons over the Main Panel, an alert will
   appear. This alert will allow you to turn off the warnings which appear
   when you attempt to overwrite a file. This choice will only last for as
   long as you are in the program.


   I GUESS THAT'S IT
   -----------------
   That's about it folks ! As mentioned, this program IS Shareware. If you
   find it useful then please show your support by registering your copy.
   Your support will encourage and enable me to add new features and make
   those enhancements available to everyone.


   CREDITS
   -------
   Thanks to Larry D. Duke for TT compatibility and for his invaluable
   assistance in resolving the file compatibility issue.
   UncleMouse (C)Carl J. Hafner.
   GEM is a registered trademark of Digital Research.


    VERSION HISTORY
    ---------------
    2.0    -  Added buttons for scrolling,filling,clearing,swapping.

    1.05   -  OnScreen help prompts. Came up with work around which
              compensates for GFA bug. CHR$(10) now works.

    1.0a   -  GFA Basic has a bug which issues a "line feed" of sorts
              when you try to write CHR$(10) to a file. Until this is
              resolved, UncleMouse will convert this character in the
              .CURsor file to CHR$(11). This may or may not have an
              adverse affect on the final cursors appearance (I haven't
              noticed any). An alert will appear if this character is
              detected.

    1.0    -  Original version.


   *DEFMICES.LZH
    ------------
    The following .CURsors should appear within this file...

    ALERT1  .CUR    CROSHAIR.CUR    MOUSE2  .CUR    WRITER  .CUR
    APPLE   .CUR    DISK1   .CUR    NOTE1   .CUR
    ARROW1  .CUR    DISK2   .CUR    ORB     .CUR
    ARROW2  .CUR    DISK3   .CUR    PENCIL  .CUR
    ARROW3  .CUR    ELF     .CUR    QUESTION.CUR
    BELL    .CUR    EYEBALL .CUR    SCISSORS.CUR
    BOMB    .CUR    EYES    .CUR    SIDEBAR .CUR
    BRUSH1  .CUR    FUJI    .CUR    SKULL   .CUR
    BRUSH2  .CUR    KEYBOARD.CUR    SMILEY  .CUR
    BUCKET  .CUR    KNIFE   .CUR    SWORD   .CUR
    BUG1    .CUR    MOUSE1  .CUR    TEXTFILE.CUR

   *ALPHACUR.LZH
    ------------
    This file should contain the 26 CAPITAL letters of the alphabet in Dutch
    format.
