QMouse 1.5 Copyright 1989 by Lyman Epp Another "Mouse Accelerator???" What for? It seems that all the other mouse accelerators have been written in "C". This is okay, but the programs are 10-30K. This mouse accelerator is written in assembler and contains most of the features of the others, but the program size is less than 4K bytes! QMouse stands for "Quick Mouse." This is being distributed as ShareWare. If you think that QMouse is useful, please send $10. Your response will insure the release of more quality programs for your Amiga! Be sure to check out the latest shareware version of QView. The latest version of QMouse can always be found first on the Wind Dragon Inn BBS, (402)-291-8053 or Larry's Hot Tub BBS, (402)-571-4316. Lyman R. Epp 10072 Wirt Plaza #15 Omaha, Nebraska 68134 THANKS TO THESE REGISTERED USERS! D. J. James Ted Michelse Scott Brickner Paul O'Keefe Elliott Hammett Robert Gregory David Cole Jeremy Farrance Ken Rahmoeller Bill Hogsett Eric Schwertfeger John Robertson Peter Sawko Richard Lindzen Michael Cowperthwaite W. Carl Day Richard Glanzer Mark Kenne Kurt Wessels Donald Clark Frank De Francesco Michael Sawyer Jack R. Smith Bryan Pinette James Zulliger Ed Vishoot Keith Burton Vince Marco Scott Michael David Shriver Rich Falconburg THANKS TO THESE BETA TESTERS! Clete Baker Vince Marco 1 QMOUSE FEATURES o Screen blanks if keyboard or mouse is idle for a while. This will prevent an image "burning" onto your monitor while left unattended. o The mouse pointer blanks if mouse is idle for a while. The mouse pointer will also blank when the first keystroke is typed. o Mouse accelerator with configurable threshold to allow for precise mouse pointer positioning. o Automatic window activation (i.e. Sun Mouse). Makes the window under the mouse pointer the active window. Sun Mouse will not activate windows if either mouse button is depressed--this will allow you to move WorkBench icons between windows. o Multiple configurable hot keys, ala PopCli, activated with the combination. The combination is preset to execute NEWCLI. The RUN command must be in your C: directory. o Keyboard record/playback. toggles the keystroke recorder on and off. Press to playback the previously recorded keystrokes. o Window to front. Left Mouse Button click(s) in window will bring it to the front. Won't try to bring the window to the front if it is already in the front. The number of clicks required is configurable. The time between clicks is determined by Preferences. o Window to back. Hold down the Left Mouse Button in a window and click the Right Mouse Button to send that window to the back. o Screen shuffle. Press to send the front screen to the back. The screen that comes to the front will have its previously active window made active. o The smallest clock yet! Can be turned off if you don't like clocks. The amount of available memory can optionally be displayed. Starting column is also configurable. The clock window will be brought to the front (of the WorkBench screen) whenever it becomes obscured. o Every option can be turned off or modified. Options can be entered from the command line (e.g. Startup-Sequence) or from a user specifiable configuration file. 2 o Uses a background CLI. Programs like DMouse and PopCLI3 don't use a background CLI, and therefore any NewCLI's spawned by them will have no default directory, no default path, etc. You can now set the stack size for any spawned CLI's. This will allow you to set a lower stack size before starting QMouse, but insure an adequate stack size for spawned CLI's. 3 COMMAND LINE ARGUMENTS Arguments can be typed in upper or lower case. Arguments can be enclosed in quotes, e.g. "-A3". Quotes are required if the argument contains spaces, otherwise they are optional. Commands can also be in a configuration file and used with the -F option. -A# Set acceleration to #. Can be in the range of 0 to 65,535. Mouse movement events that have X or Y motion greater than the acceleration threshold (see option -T) will be accelerated by this factor. The default acceleration value is 3. To disable this feature, specify 0 or 1. -B Enable click to back feature. -C[E][M][#] Activate clock. To display clock in 24 hour format (European), specify an "E" after the "C". To display available memory, specify an "M" after the "C" (e.g. -CM). If both "E" and "M" are used, the "E" must come before the "M". You can also specify an optional column where the clock will be displayed. The width of the clock is 44 pixels (92 if available memory is displayed.) The column number must be in the range of 0 to [screen width - clock width]. To place the clock next to the front/back gadgets, use a value of [screen width - clock width - 53]. With a screen width of 640 and with available memory displayed, this would be a column value of 495 (-CM495). The default column value is 280. -Ecommand Set command to execute when is pressed. If the command contains spaces, then the entire command must be enclosed in quotes. The default command is NEWCLI. The RUN command must be in your C: directory. The RUN command MUST precede any commands other than NEWCLI (e.g. "-eRun ed".) -Fname Read configuration information from the specified file. The -F option can be nested any number of levels (or until the stack overflows.) The format for the configuration file is identical to the command line format. Each option can be entered on a separate line. Anything between a semi- colon character ";" and the end of the line will be considered a comment. A sample configuration file is included. 4 -Hxx=command Set the command to execute when this hot key is invoked. The 'xx' parameter defines the raw key code for this hot key. Whenever this key is pressed in combination with the , the command will be executed. The raw key values are printed later in this documentation. For more information, see option -E. -K# Set number of clicks required to bring a window to the front. The default value is 2 clicks. To disable this feature, specify 0 clicks. Can be in the range of 0 to 65,535 clicks. -M Deactivate the screen shuffler. The combination will revert to Intuition pushing the WorkBench screen to the back. To deactivate the screen shuffler completely, specify -M. -P# Set the number of seconds to wait after a mouse event before blanking the mouse pointer. Just move the mouse again and the pointer will reappear. The default value is 10 seconds. To disable this feature, specify 0 seconds. Can be in the range of 0 to 65,535 seconds. -R Enable automatic window activation. -S# Set the number of seconds to wait after any user event (keyboard, mouse or disk changed) before blanking the screen. Just move the mouse, type a key or insert a disk and the screen will be restored. The default value is 600 seconds. To disable this feature, specify 0 seconds. Can be in the range of 0 to 65,535 seconds. -T# Set mouse acceleration threshold in pixels per event (see option -A). This option provides a way to position the mouse pointer precisely, without the acceleration factor "getting in the way." The default value is 3. Can be in the range of 0 to 65,535 pixels per event. -V# Set the stack size for any spawned CLI's. This allows the stack size for the QMouse's CLI to be set to a minimum. The default value is obtained from the CLI that QMouse was run from. Can be in the range of 1800 to 655,360 bytes. 5 HOW TO USE QMouse must be executed from a CLI (or from a Startup-Sequence.) It can't be run from WorkBench. It is recommended that you set the stack size to 2000 before starting QMouse. It is also recommended that you use the -V option of QMouse to set the stack size for any spawned CLI's to at least 20000. 1> STACK 2000 1> RUN >NIL: QMouse -B -CEM543 -R -V20000 -FS:QMouse.cfg 1> STACK 20000 TO REMOVE QMOUSE Press (all at the same time.) SOURCE CODE Due to the large size of the source code for QMouse (over 50K), it will no longer be distributed. If you desire the source code, please send an SASE and a disk with your QMouse donation. Please feel free to send the disk with public domain programs. CREDITS This program has been inspired by PopCLI, MachII, DMouse, and others. Thanks to the authors of these programs for providing good examples of how to make the Amiga "do its thing!" 6 RAW KEY DEFINITIONS Raw Key Raw Key Number Key Number Key 00 ` 30 Undefined 01 1 31 Z 02 2 32 X 03 3 33 C 04 4 34 V 05 5 35 B 06 6 36 N 07 7 37 M 08 8 38 < 09 9 39 > 0A 0 3A / 0B - 3B Undefined 0C = 3C NK. 0D \ 3D NK7 0E Undefined 3E NK8 0F NK0 3F NK9 10 Q 40 Space 11 W 41 Back Space 12 E 42 Tab 13 R 43 Enter 14 T 44 Return 15 Y 45 Escape 16 U 46 Del 17 I 47 Undefined 18 O 48 Undefined 19 P 49 Undefined 1A { 4A NK- 1B } 4B Undefined 1C Undefined 4C UP 1D NK1 4D DOWN 1E NK2 4E RIGHT 1F NK3 4F LEFT 20 A 50 F1 21 S 51 F2 22 D 52 F3 23 F 53 F4 24 G 54 F5 25 H 55 F6 26 J 56 F7 27 K 57 F8 28 L 58 F9 29 ; 59 F10 2A " 5A Undefined 2B Undefined 5B Undefined 2C Undefined 5C Undefined 2D NK4 5D Undefined 2E NK5 5E Undefined 2F NK6 5F Help 7 RELEASE 1.1 NOTES 08-Jul-1988 o Made the clock come to the front whenever its been obscured, rather than every 10 seconds. This was bothering some programs. Thanks to D. J. James for this idea. o The manual incorrectly documented the method of terminating QMouse. This should have read , but I changed the program to work as documented. o Intuition will restore the mouse pointer occasionally. I changed QMouse to re-blank the mouse pointer quicker than before. RELEASE 1.2 NOTES 30-Aug-1988 o Modified to assemble with the Manx assembler. The Manx assembler creates about 5-10% smaller code. See the included makefile for assembling with the Manx assembler. Source will still assemble with the Metacomco assembler as before! o Intuition calls are now made from the QMouse task, rather than from the input handler. This should resolve any Intuition lockups. o WindowToFront() not called for BACKDROP type windows. This should help eliminate the possibility of WorkBench locking up. o Added automatic window activation (i.e. Sun Mouse). Specify option -R to activate Sun Mouse (-S was already used.) o Added click to back feature. Specify option -B to activate click to back. o Added stack size feature. Allows QMouse to run with a smaller stack while insuring adequate stack size for spawned CLI's. Specify option -V to change the default stack size. o Fixed bug with clicking to front a window on a screen that is in the background. No one had reported this bug yet. ;-) o Cleaned up documentation and fixed any inaccuracies that I found. Documentation for option -M now reads to "deactivate" the screen shuffler. Actually, the -M option was ignored until release 1.2. 8 RELEASE 1.3 NOTES 6-Oct-1988 o Added multiple hot key support. Specify option -H to define multiple hot key commands. Thanks to Clete Baker for this idea. o Added keyboard record/playback support. toggles the recorder on and off. activates the keyboard playback. o Added ability to read commands from a configuration file. This was needed to support multiple hot key definitions. Specify option -F to read commands from a file. o Added option to display the amount of available memory with the clock. Add the "M" modifier to option -C to display the amount of available memory (e.g. -CM). o Added option to display the time in 24 hour format. This option was added at the request of Jim Cooper. o When pointer blanking is enabled, the pointer will be blanked immediately when a key is typed. Thanks to Eric Schwertfeger for this idea. o Changed the method of screen blanking. Previously, QMouse opened an Intuition screen and changed it's colors, now QMouse turns off DMA for the COPPER. This shaved off 88 bytes from QMouse. o General code cleanup. Tried to make the code more reliable in certain situations. The code size grew several hundred bytes on account of this effort. 9 RELEASE 1.4 NOTES 29-Oct-1988 o Restored the method of screen blanking to version 1.2. The screen blanker in version 1.3 could sometimes lock up the display. Thanks to Elliott Hammett for reporting this bug! o Changed the method of pointer blanking. This takes care of the problem of Intuition restoring the pointer occasionally. This makes pointer blanking usable with WordPerfect. o Changed the screen shuffler to automatically activate the new front screen's previously active window. This may conflict with programs that use the screen's UserData field. Thanks to Eric Schwertfeger and Jeremy Farrance for this idea. o Made QMouse look like a process rather than a CLI. You still need to use Run, but it will not appear as a CLI. This frees up this CLI for other uses. Thanks to Jim Cooper for this idea. o Changed the -F option to allow control characters in the configuration file. This allows the TAB character to be treated like a space. Thanks to Jim Cooper for this idea. o Changed the recommended stack size for QMouse from 4000 bytes to 2000 bytes. It is not recommended to use any value less than 2000 bytes. 10 RELEASE 1.5 NOTES 14-Mar-1989 o Changed the screen shuffler to automatically activate the first window on a screen if the previously active window has been closed. Also, the screen's UserData field will be undisturbed if screen shuffling is disabled. o Restored the method of screen blanking to version 1.3. Some minor changes were also made. o Changed the method of pointer blanking (again!) Version 1.4 conflicted with Phasar V3.0. Thanks to Elliott Hammett for reporting this bug. o Allowed the screen shuffler and playback keys to repeat normally. o Added memory management functions. This should eliminate any memory fragmentation by QMouse. All memory will be allocated in 1K blocks and sub-allocated. o Removed code that made QMouse look like a process. Why look like a process when you are really a CLI? o Fixed a bug in the record/playback keys. It would trash four bytes at memory location $0. Thanks to Michael Groshart for reporting this bug. 11