home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DoomWare Developers Network
/
DoomwareDevelopersNetworkCd-OccurrenceI1994cytechCodehouse3c66710c.iso
/
occurenc
/
other1
/
other
/
dmouse.txt
< prev
next >
Wrap
Text File
|
1994-10-20
|
4KB
|
106 lines
================================================================
Title : Doom Mouse Spinner (DMS) v0.12 beta
Filename : DMS.COM
Authors : Tom Klok and Dave 'Zoid' Kirsch
Email Address : a344@mindlink.bc.ca
Description : Ever had the problem of a monster or
deathmatch opponent sneaking up behind
you? Ever needed to turn around *now*?
With DMS, you can rotate your player
180 degrees with a click of the mouse!
Release note : This is a *BETA* release. DMS has been
tested with Logitech 3-button and
Microsoft 2-button mice. It should work
with others without problems. I don't
know what it would do with a CyberMan.
Construction : TASM 3.1, TLINK 5.1
================================================================
What it is
~~~~~~~~~~
DMS is a tiny TSR (384 bytes resident) that intercepts Doom's
calls to the mouse driver. By clicking the mouse buttons that you
define, it will instantly turn you 180 degrees -- facing the opposite
direction.
It supports mouse "chords". For example, if you have a 2-button
mouse you can set it up to spin you only when you press the left and
right mouse button at the same time. 3-button mice permit even more
combinations. I prefer the Middle+Right button chord on my Logitech.
Does it work for Deathmatch?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You're not very nice, are you? :)
How it works
~~~~~~~~~~~~
Doom uses two standard Mouse API services:
function AX=0003h - mouse button status
function AX=000Bh - mouse delta mickey counts
A 'mickey' is the smallest unit of mouse movement... sort of like
a pixel on the screen. Every time Doom requests the new delta mickey
counts, the mouse driver returns the number of mickeys (X and Y,
positive and negative) the mouse has moved since the last request.
DMS hooks interrupt 33h, the mouse driver interrupt, and watches
for those two function requests. Whenever Doom asks for the latest
button status, DMS passes the request on to the mouse driver and then
checks to see if the special button(s) have been pressed. If they
have, it masks them out (tells Doom they never happened) and adds 180
degrees to the X-axis mickeys the next time Doom asks for them.
DMS was written in assembly language for small size. Source code
is included.
How to install it
~~~~~~~~~~~~~~~~~
Put DMS.COM in your Doom directory, or some other directory in your
DOS path. Simply type 'DMS' to load it. Be sure you load it AFTER your
mouse driver, not before, or it won't work.
'dms -?' or 'dms -h' will display some simple usage help. To
configure your own button preferences, run DMS with a parameter
indicating which buttons you want. The default is the right mouse
button. For example, if you prefer the Left+Right buttons to spin
you, enter 'dms -lr'. Since I like Middle and Right, I use 'dms -mr'.
You can change your button definitions by running DMS again. It
will detect that it is already loaded and just update the buttons.
DMS may be loaded into conventional memory, or high memory (UMB's).
There really isn't any point in loading it high, however, as Doom doesn't
need much conventional memory and DMS only consumes 384 bytes resident.
How to uninstall it
~~~~~~~~~~~~~~~~~~~
DMS doesn't include software to release itself. Sorry. Go
download the MARK/RELEASE tools, or just reboot after you're done.
Legal stuff
~~~~~~~~~~~
DMS is Copyright (c) 1994 Tom Klok and Dave Kirsch. Permission
is granted to distribute it via any media (Internet, BBS, CDROM, etc)
as long as full attributions are maintained and the source code is
included. If you modify the source and build something new with it,
please have the courtesy of leaving our names on it as well and
mailing us a copy. If you are a CDROM producer and include this
package with your distribution, we expect a free copy of your disk as
compensation. Write to Tom Klok at a344@mindlink.bc.ca to notify
us and get a shipping address.
-- tk 11Aug94Th