home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
mouse_ut
/
mouseaid.lha
/
MouseAide.Doc
< prev
next >
Wrap
Text File
|
1992-08-19
|
20KB
|
504 lines
MouseAide v5.02a.07.30.92
Copyright (c) 1992 by Thomas J. Czarnecki
All Rights Reserved
"MouseAide" is a 100% assembly language program that helps the Mouse
& Keyboard do a whole lot more, with a lot less work by the user!
MouseAide Features:
o An adjustable acceleration of the mouse, with a adjustable threshold
for fast, and easy precision work.
o Auto-Activation (SunMouse) of the window that the mouse pointer is
over.
o Auto-Key-Activation of the window that the mouse pointer is
under, when a key is pressed. Nice feature to have if you use
the keyboard with multiple windows. Just point and type!
o Blanking of the mouse pointer if a key is pressed. No more trying
to read behind the mouse pointer, Nice eh?
o Blanking of the mouse pointer if user input is idle for a set
number of seconds.
As of this version the mouse blanking is done by switching the pointer's
'Sprite' with an invisible 'Sprite' which will NOT affect any of the
other 'Sprites' being used.
o To save your monitor from image burning: blanking of the screen
if the user input is idle for a set number of minutes. Nice
feature for those of us that take a one minute break that runs
into....
o Clicking a Window under the mouse pointer to the front (if need be)
with a adjustable number of left mouse button clicks, that are
within the time you have set in preferrences. The clicks to front
count is reset when the mouse pointer is moved to a new window, making
unwanted 'Clicks To Front' less likely when using a click count of two
or more.
o Clicking a Window under the mouse pointer to the back, by holding the
left mouse button down while clicking and releasing the right mouse
button!
o Clicking the Screen to the back, by doing a doing a Window to back
sequence, but with the mouse pointer NOT over a Window!
o Middle Mouse Button (MMB) Window & Screen turning! Pressing the
middle mouse button while the pointer is over a Window will bring
that Window to the front, unless the Window is already in the front,
in which case, the Window will be sent to the back, nice eh?
To get even more power out of the middle mouse button (MMB) if the
pointer is NOT over a Window that can be depth arranged "MouseAide"
will send the front Screen to the back and make the top Window the
active one! I wrote this function after replacing my original mouse
(which did NOT last very long!) with a new third party mouse, which
had a third button (in the middle of course) Well, after finding
that the Amiga did NOT support the middle button in anyway I set out
and wrote this small GEM of a function! After using this function
for just a couple of weeks I would never buy a mouse/trackball
without the extra button!
o Turning the windows with the 'Left Amiga-J', & 'Left Amiga-K' keyboard
sequences. The top window will become the active one!
o Turning the screens with the 'Left Amiga-N', & 'Left Amiga-M' keyboard
sequences. The top screen will become the active one!
o If any conflicts arise "MouseAide" can be suspended by the keyboard
sequence: Left-Amiga-Right-Shift And restarted with the same sequence!
This allows you to enter any key/mouse input that "MouseAide" may use,
without getting the action (Click-to-front, Window/Screen turning...)
o Can execute a default ('NewShell') or a user defined command with the
'Left Amiga-Esc' keyboard sequence. Nice for a quick-pop-up program,
or a easy CLI/Shell startup.
o Multi-Icon-Select with just the mouse, No more shift key! By pressing
and holding the left mouse button, then pressing and holding the right
mouse button, and then releasing the left mouse button, you enter the
Multi-Icon-Select (M.I.S.) mode! To select multiple Icons just click
on them with the left mouse button while still holding down the right
mouse button! You can enter the M.I.S. mode while selecting your first
Icon, or, as I find easier, you can enter M.I.S. mode by doing the above
sequence without an Icon! It makes it easier to select the first Icon
without moving it!
o Better keyboard feedback by producing a 'Clicking' sound when a 'Key'
is pressed! This function is handy when you are entering data into
the computer without looking at the screen much. I allocate a 'Audio'
channel at a low enough priority that you can run a music type playing
program which will steal the channel to play the music and when done
playing 'MouseAide' will recover its channel for use again! Nice eh?
I also let the user set the 'Clicking' volume level and Priority of
the Key Clicking's audio channel!
o Automated date generation! With just a few keystrokes "MouseAide"
will get the current date, build it to a default, or user format,
and than output it by the same method that is used when you type
on the keyboard! To generate the default formated date all the
user has to do is press hold down the 'Left-Amiga' key and press
the 'd' key, easy eh? To generate the users formated date you do
the same key-sequence as above, but you also hold down the 'Shift'
key! The 'users format' is defined by a string that you pass to
"MouseAide" at startup that tells the program how you want your
date to be generated. The format is quite simple and is explained
below in the options sections.
o A simple keyboard 'String' macro function to allow the user to
assign user defined strings to user defined keys! When the
user types a defined 'Key' it will be replaced with their 'String'
by the same method that is used when you type on the keyboard!
This program saves the user from the tedious process of hand
entering commonly typed 'Strings' I find it useful in all types
of computing from working in the CLI/Shell to using it for text
short cuts in editors! How to define your 'Macros' is explained
below in the options sections.
o Closing Windows & Shells/CLIs from the keyboard with the 'ESC' key.
I close 'Windows' by the same method as if you clicked on the 'Close'
gadget. Shells are closed by sending a user defined "String" to the
'Shell' which would then end the shell. The default "String" is
"EndCLI\n" which would close a normal Shell/CLI. The user can define
their own 'String' in the 'MA.Keys' file by including a line with the
following format:
CLIEndString = "String"
Where the "String" is the user definable string that is to send to the
Shell/CLI to close it! I made the closing string user definable because
of programs such as "ParM" which will NOT close if "EndCLI" is used!
o You can switch which port (1 or 2) that the mouse uses with the key
sequence: 'Left Amiga-P' Did you buy a TrackBall for your favorite
graphics program, but prefer to use the mouse for your non-graphics
work, well plug the TrackBall in Port2 and switch between the mouse
and TrackBall on the fly with a few keys!
As of this version the 'Middle Mouse Button' is also switched when you
swap mouse ports!
o Workbench Window to Front with the 'Left Amiga-W' (The default for this
function is: Off, so to use this fuction you must enable with the '+w'
switch when installing "MouseAide") I created this function because
with just a few open windows on the 'Workbench Screen' I could NOT get
at the disk icons! When you activate this function the 'Workbench'
Window will come to the front, allowing you to open a disk/volume
icon. When you open a window or use the 'Left Amiga-W' sequence again
the 'Workbench' Window will pop back!
o Freezing of the mouse and keyboard of all input, which if you live with
small children or a keyboard climbing critter, can be a real life-
saver! Just use the 'Left Amiga-Right Amiga-Z' keyboard sequence to
toggle in/out of the input freezing mode. When you enter the input
freezing mode all mouse and keyboard input (except for the key sequence
to toggle you back) will be frozen, also the mouse and screen will
blank until you leave this mode. This fuction is great for those long
running programs, that you start up and leave alone for a long period
of time!
o Can switch the right & left mouse buttons when installed for those left
handed people out there! (Use the '+l' option listed below)
o Any Selected-To-Be-Dragged-Icons will be released, when any window
manipulation (Window to back, Window to front, Keyboard window cycling)
is required to prevent a system lockup! This gets around a Intuition
bug in the in the 'WindoToFront' and 'WindowToBack' functions.
o As of this version "MouseAide" will now remember the 'Path' for the
process that has started it and if that process does NOT have a 'Path'
will search for a process that has one that it can use! What all that
means is that a process started by "MouseAide" (by command execute)
will also have that 'Path' Nice eh?
o "MouseAide" will try opening the "NULL:" device first, and the "NIL:"
device only if the "NULL:" is NOT mounted. This make system which have
the "NULL:" device installed much more reliable when you use the
'Command' function!
o Adjustable priority of the 'Input Handler' The default is: 57, and
should be fine for most of you. But if you are using another program
that also uses a 'Input Handler' than this option maybe nice to have!
o Easy WorkBench & CLI startup and shutdown!
o Releases every byte of memory on shutdown. No dead data, or code is
left in the system! Did you ever notice, after running some programs,
how your free memory seems less? Well it is! But, NOT after running
"MouseAide" It cleans up after itself!
o The options can be user defined by Workbench or CLI/Shell
o Very small in size, about 12K in size, and even smaller with your
favorite executable compressor (Turbo Imploder, PowerPacker...)
o Self-detaching, for ease of startup!
o Uses advanced (Semaphore locked) static & dynamic memory management
techniques to reduce memory thrashing, while also keeping memory
demands low!
o Uses "good" programing practices!, Not like most of the "Mouse"
programs floating around! No "Intuition" calls are made from the
high-priority 'Input Handler', a very bad practice that most of the
"Mouse" programs use!
o The 'Input Handler' runs at a high priority, but the time wasting
part of the program run at a low priority
o The one-shot data & code (start-up, shut-down, etc...) is release
after start-up to further reduce memory overhead!
To startup "MouseAide" from WorkBench just double-click on "MouseAide" Icon!
From CLI type: MouseAide<RETURN>
(Note: That the program is self-detaching, do NOT Run it!
It also sets the correct stack-size and priority, don't
waste time adjusting them!)
To remove "MouseAide" just start up the program again.
All options (switchable, value & command) have a default setting. The value
defaults are set as following:
Acceleration Factor - 3
Threshold Factor - 2
Clicks to Front - 1
Mouse Blanking - 5 Seconds
Screen Blaking - 5 Minutes
Input Handler Priority - 57
'Clicking' Volume - 48
'Clicking' Priority - 80
The default options can be changed by the user by using the option line.
By using the '+' & '-' switches, the user can turn ON or OFF any option.
All the switchable options, but, Left-Handed-Swap and the Workbench
window to front, are by default: On.
The switchable options are:
"a" - Auto-Activate
"f" - Click to Front
"b" - Click to Back
"m" - Mouse Blanking
"s" - Screen Blanking
"t" - Key Turning
"e" - Key-Activte
"k" - Key-Mouse Blanking
"i" - Multi-Icon-Select
"p" - Port swapping for the Mouse
"l" - Left-Handed-Swap (Off by default)
"w" - Workbench Window to Front (Off by default)
"d" - Auto-Date generation
"c" - Keyboard 'Clicking'
"u" - MMB Window/Screen Turning
"y" - Key Closing
Value options are set by an integer number following the Option to be set.
The value is auto-ranged (limited) to a default value.
The value options are:
"A" - Acceleration Factor (range:1-11)
"T" - Threshold Factor (range:1-11)
"F" - Click(s) need for window to Front (range:1-9)
"M" - Mouse Blanking time in seconds (range:1-59)
"S" - Screen Blanking time in minutes (range:1-59)
"P" - Priority of the 'Input Handler' (range: 50-127)
"V" - Volume level of the keyboard 'Clicking' (range: 1-64)
"K" - Key Clicking's audio channel Priority (range: 1-127)
------------------------------------------------------------------------
When 'MouseAide' is started up it will look for a file named 'MA.Keys'
in the current directory (CD) and if NOT found will search the path of
the process that started 'MouseAide' up! The file 'MA.Keys' will define
the users 'Keys' and their 'Strings' The format of the files is simply
a line of text that first lists the 'Qualifiers' that have to be held
down, followed by the 'Key' to be defined, followed by a '=' and then a
quoted 'String' to be generated!
The 'Qualifiers' defined as:
LSHIFT for 'Left Shift'
LALT for 'Left Alt'
LAMIGA for 'Left Amiga'
CTRL for 'Ctrl'
RSHIFT for 'Right Shift'
RALT for 'Right Alt'
RAMIGA for 'Right Amiga'
The NON-ASC 'Keys' are defined by these tokens:
TAB
ESC
SPACE
RETURN
ENTER
DEL
BACKSPACE
HELP
LEFT
RIGHT
UP
DOWN
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
CLIEndString (Used to define the 'Keyclosing' string!)
To include a 'Return' in a defined string use the '\n' sequence a
quote is defined by the '\"' sequence, and the '\' charactor is
the '\\' sequence, simple eh?
Do I here 'what about a few exmaples?' O.K. by me, the line:
ralt lshift e="End\n"
Would generate the string:
End<Return>
When the 'Right Alt', 'Left Shift' keys are held down, and the 'e'
key is pressed! The next line:
lamiga f3="MouseAide +w U\".sy\""
Would generate the string:
MouseAide +w U".sy"
When the 'Left Amiga' key is held down and the 'F3' key is pressed!
This last example is my favorite:
; This is it!
Because it does nothing, being a comment line! A comment may start at
any point on a line and it runs until the end of that line, use it well!
As you can tell by the above examples the user format is very easy to
learn and use! If you need more examples take a look at the 'MA.Keys'
file I have included, and try them out!
------------------------------------------------------------------------
The 'Automated Date' generation part of "MouseAide" allows the user to
design their own formated date generation with the 'U' option string,
just use the following information to build your own format string:
"d" or "D" - Stands for DAY
"y" or "Y" - Stands for YEAR
"m" - Stands for MONTH as a number
"M" - Stands for MONTH in writing
"w" or "W" - Stands for day of the WEEK
"l" or "L" - Stands for switch to the LONG type, until changed
"s" or "S" - Stands for switch to the SHORT type, until changed
"'" - Is to allow any of the above characters to be
used as itself
Any character that does NOT match the above ones are used to
fill in between the ones that are use! Confused? Lets try a few
examples:
- Assume that the date is: June 7, 1992
U"sm.sd.sy" - Will generate: 06.07.92
U"lm.ld.ly" - Will generate: 6.7.1992
U"lM ld, ly" - Will generate: June 7, 1992
U"ld-sM-sy" - Will generate: 7-Jun-92
U"sm/sd/sy" - Will generate: 06/07/92
U"sm/d/y" - Will generate: 06/07/92
U"lm/d/y" - Will generate: 6/7/1992
U"lm/d/sy" - Will generate: 6/7/92
U"sd-sm-sy (sw)" - Will generate: 07-06-92 (Sun)
U"sd-sM-sy (sw)" - Will generate: 07-Jun-92 (Sun)
U"lM sd (lw)" - Will generate: June 07 (Sunday)
U"lM ld (lw)" - Will generate: June 7 (Sunday)
U"'Date: sm/sy" - Will generate: Date: 06/92
As you can tell by the above examples the user format is very
flexible, and easy for anybody to use!
The 'Automated-Date' function also allows the user to use a different
language then English! By creating a file name ".DateInfo" that is made
up of the names of the months followed by the names of the days of the
week, each on one line, for a total of 19 lines. When this file is
then placed in the same directory at startup of "MouseAide", they will
be used instead of the default English names! For an example I have
placed a sample '.DateInfo' file in the directory named 'MiscFiles'
The last option is the 'C' (command) option. This option must be the last
option to be set on the option line! The syntax is:
C <User defined string>
If you do NOT define a command string the default 'c:NewCLI' will be used!
So, a few examples are now in order:
For: No Auto-Activate, Mouse Blanking set to 7 seconds, a Acceleration
Factor set to 5, the Threshold Factor set to 3, do Key-Activate and
Key-Mouse Blanking we would use this option line:
-a M7 A5 T3 +ek
For: No clicking to front, and No Key-Turning, and the command string
'AShell...' we would use this option line:
-fe CAShell CON:0/11/0/0/MouseAideShell
For: An Acceleration of 2, and a Threshold of 1, with 3 Clicks for a
Window to front, and the Workbench Window to Front option, we would
use this option line:
A2 T1 F3 +w
To use the option line in the CLI, just add it to the end of the line
on startup. For example:
MouseAide +mstkef A4 T2 F3 M3 S1 CGShell
To use the option line from WorkBench, you can do it two ways:
1: Writing "OPTIONS=option line" in the "Tool Types" field of
"MouseAide" Tool Icon.
2: Writing "OPTIONS=option line" in the "Tool Types" field of
a Project Icon and 'MouseAide' in the "Default Tool" field.
You can get good examples by Info(ing) the Icons included
Hint: A console window with a lot of output may delay some "MouseAide"
functions! A good trick is to hit the shift-key when this delay
happens. The Shift key will be like a electric shock to the
system, breaking the delay.
Tempus Fugit,
Czar
If you have any ideas, comments, bugs to report, write me:
Thomas J. Czarnecki
3526 Republic Avenue
Racine, WI 53405-3856