[comp.sys.ibm.pc.misc] Info on Microsoft Bus Mouse

delman@vax.oxford.ac.uk (06/07/91)

I have got a 2nd hand Microsoft bus mouse without a manual. I need to do some
low-level programming (hoping to write a device driver for Minix). Could
someone give me some details on the Microsoft bus mouse? Things like which
ports does it use for "control" and "status", and meaning of the control and
status bits.

Thanks in advance --- Delman.

Internet & BITNet: delman@sun.eng.ox.ac.uk
JANet: delman@uk.ac.ox.eng.sun

jeffhi@microsoft.UUCP (Jeff HINSCH) (06/12/91)

In article <1991Jun7.163946.633@vax.oxford.ac.uk> <delman@sun.eng.ox.ac.uk> writes:
>I have got a 2nd hand Microsoft bus mouse without a manual. I need to do some
>low-level programming (hoping to write a device driver for Minix). Could
>someone give me some details on the Microsoft bus mouse? Things like which
>ports does it use for "control" and "status", and meaning of the control and
>status bits.

This may sound shameless, but the "Microsoft Mouse Programmer's Ref."
(available in Dalton's, Walden's, etc.) is a what you need.

sorrow@oak.circa.ufl.edu (06/13/91)

In article <72870@microsoft.UUCP>, jeffhi@microsoft.UUCP (Jeff HINSCH) writes:
|>In article <1991Jun7.163946.633@vax.oxford.ac.uk> <delman@sun.eng.ox.ac.uk> writes:
|>>I have got a 2nd hand Microsoft bus mouse without a manual. I need to do some
|>>low-level programming (hoping to write a device driver for Minix). Could
|>>someone give me some details on the Microsoft bus mouse? Things like which
|>>ports does it use for "control" and "status", and meaning of the control and
|>>status bits.
|>
|>This may sound shameless, but the "Microsoft Mouse Programmer's Ref."
|>(available in Dalton's, Walden's, etc.) is a what you need.

Sorry, WRONG answer.  Do NOT get the Microsoft Mouse Programmer's Reference
since it is a pure rip off.  A lot of the code breaks in large memory model,
the code examples are compeletely inadequate (event-driven software, what's
that?), and over half the book is about how to use the mouse menus (does
anyone actually USE those?) and the other half you can obtain from Ralf
Brown's INT list.

Also, since you mentioned you wish to do a driver for Minix, you are going to
want the low level byte stream interface.  You can't even FIND the phrase 
"5 bit binary packed data" in the Microsoft book.

My recommendation is the Logitech Mouse Programmer's Reference.  It includes
.ASM source code (MASM and TASM compatible), .C source code (MSC 6.0) for
an example file, Mod-2 .DEF files, and .OBJ code for large and small model
in case you don't have TASM or MASM.  It also has the necessary include
files.

Get this, the .OBJ files with all functionality built in are around 2.9K.
Not bad, huh?

Also, the documentatino talks a lot about the low level stuff (not just INTs
here, like MS does -- we're talking byte streams and line levels).  This
is almost as much information as you could hope to get by disassembling
MOUSE.COM.  As a matter of fact, you should be able to WRITE a mouse driver
with the information.

Also, whereas Microsoft just says "Do this", the Logitech book says "Do this,
because....".  For example, the Microsoft manual says to "check int 33h to
make sure it exists before attempting to reset the mouse."  Of course, it
doesn't tell you WHY.  The Logitech manual states "...because before DOS
3.2, an interrupt would have 0000:0000 instead of an IRET if it was not
installed.  This would cause your machine to hang if you attempted to call
a NUL interrupt."

The documentation and tools are outstanding, the tech support is great,
and most of all, the PRICE is LOW!  25 dollars + shipping gets you the
libraries (source included), .C and .ASM example code, include files, and
reference manual.

I don't have the address on hand, but all this information was just posted
to comp.os.msdos.programmer a while ago (less than a week) and I would
recommend looking it up.  You can order it directly from Logitech Customer
Service.

Finally, I am in now way associated with Microsoft or Logitech.  I just think
that Microsoft has ripped off enough people by selling that schlock of a book
under the pretenses that it is a "programmer's reference".

Overall, the Logitech book does a better job of handholding if you are a
beginner, and does a better job at low level explanations if you are an 
expert.  Microsoft has more source examples of how to call the functions (
the MS book has .PAS, .C, .ASM, and BASIC routines), but this is not a 
major thing.  Any idiot can figure out how to generate an interrupt.  The
Microsoft book is also available in most stores, whereas you have to order
the Logitech book.  And the Microsoft book covers CPANEL and mouse menus.
This last stuff is handled in the Logitech User's Manual (where mouse
menus SHOULD be handled...sorry, but a programmer wants a PROGRAMMING book,
not some idiotic mouse menu reference).

Brian
/*
Brian Hook -- MS-DOS Programmer for Contract
-----------------------------------------------------------------
"I was in the kitchen, Seamus, that's my dog, was outside....and buried
ALIVE....fritter and waste...but this one goes to 11!....anymore of that
plutonium nyborg?...Little guitars..This is home...this is Mean Street..
*/