Contents of the JMOUSE.DOC file
Joystick Mouse Driver
Copyright 1989 by
Bruce M. Terry Jr.
The joystick mouse driver, JMOUSE.COM, serves as a driver that
allows a connected joystick to be used in place of the Microsoft Mouse
for most existing applications. It can be used in place of the
Microsoft Mouse when used with the Microsoft QuickC Compiler, with
Tandy's DeskMate, or with most games use a mouse. For example, if you
use JMOUSE.COM with Mindscape's "Gauntlet II", you can control two
characters at the same time, one recognized as being controlled by a
joystick and the other by a mouse. JMOUSE.COM cannot, however, be
used with Microsoft Windows. This is due, I believe, to Windows
performing some sort of hardware detection of a mouse.
JMOUSE.COM is a TSR that installs in much the same way as
MOUSE.COM installs. Because a joystick is being used, however, there
are some additional steps.
The first thing JMOUSE.COM does is use BIOS to determine if a game
adapter (joystick) is present. If it detects a joystick, installation
continues. If, however, a joystick is not detected, JMOUSE.COM first
asks the user if a joystick is installed. This is because BIOS does
not detect all types of joysticks. The additional option of
overriding this joystick detection allows joysticks that are not
detected by BIOS to be used with the joystick mouse driver.
The next thing JMOUSE.COM does, is check to see if a mouse driver
is already installed. If there is a mouse driver installed,
JMOUSE.COM will not install. To remove the Microsoft Mouse driver, it
must have been installed as MOUSE.COM and have been installed after
all other TSR's. If this is the case, then it can be removed by
typing MOUSE OFF. The Microsoft Mouse driver will report that the
driver was removed from memory if successful; otherwise, it will only
be disabled and JMOUSE.COM cannot be loaded. If JMOUSE.COM determines
that it is safe to continue installation, it asks which joystick -
left or right - will be used. If you have only one joystick port,
choose the left joystick.
Next comes the most important step, the joystick tracking rate.
the joystick tracking rate represents how many timer ticks must elapse
before the joystick coordinates are checked. If you choose a joystick
tracking rate of 0, the joystick will be tracked on every timer tick
(18.2 times per second). If you choose a joystick tracking rate of
255, the joystick will be tracked only about every 14 seconds. As a
general rule, multiply the joystick tracking rate by 0.0549 to
determine how many seconds between each joystick tracking.
If all goes well, the driver will prompt you for joystick
calibration. Follow the simple directions and the joystick driver
will be installed. You are then ready to use it.
Use of Joystick Driver:
Using this driver, I have used my joystick in place of the
Microsoft Mouse. All that is required is that the driver be installed
and that the application program supports a mouse. There are,
however, some programs that do not work properly. One example is the
Music and Sound applications for Tandy 1000 TL/SL DeskMate. Why this
occurs is still being researched and may be patched in future versions
of the driver.
In applications that work with the driver, the joystick simply
replaces the mouse. Clicks, double clicks, etc. function the same on
the joystick as on the mouse. Moving the joystick around will move
the cursor around. There is one note of interest, however.
Applications that make use of the Microsoft Mouse can change the
position of the cursor through software. This, however, is not the
case with the joystick driver. This is due to the fact that there is
an physical limit as to how far the joystick may be moved while the
mouse may continue to roll forever. This shortcoming of joysticks
usually will not cause much of a problem with the driver.
Programming for the joystick driver is the same as programming for
the Microsoft Mouse except for the fact that not all Microsoft Mouse
functions have been implemented by the joystick driver. Any
implemented function retains as much compatibility as possible with
the information detailed in "The Microsoft Mouse Programmer's
Reference", Microsoft Press, 1989. The functions that have been
implemented are functions 1-12, 15, 20, 29, 30, 31, 32. There are
some special circumstances regarding the implementation of some of the
functions. These functions are:
Function 0: Mouse Reset and Status
Added: To set to left or right joystick and change the joystick
tracking rate, set the following entry conditions along
with the standard entry conditions:
BX = 0ABCDh
CX = 0DCBAh
DH = Stick (0 = left, 1 = right)
DL = Joystick tracking rate (0 - 255)
Function 11: Read Mouse Motion Counters
Function does not return a true mickey count in the sense that
mickeys are units of distance. Rather, the mickey count is determined
as the difference between the mouse position at the last call to
function 11 multiplied by the mickey/pixel ratio.
Function 15: Set Mickey/Pixel Ratio
See function 12.
Function 31: Disable Mouse Driver
This function only disables joystick tracking and button press/
release detection and does not remove the driver from memory. It is
intended to be used when an application requires as much CPU attention
as possible and cannot afford to be slowed down by joystick tracking.
Function 32: Enable Mouse Driver
This function simply enables joystick tracking and button press/
release information that may have been disabled by function 31.
Any feedback regarding the use of this driver would be greatly
appreciated. Please send your questions, comments, and/or suggestions
P.O. Box 325
Ocean View, NJ 08230