From: Derrick C. Cole (cole@concert.net)
Date: 08/29/92


From: cole@concert.net (Derrick C. Cole)
Subject: Re: Microsoft Bus mouse works, sorta
Date: 29 Aug 1992 14:35:02 GMT

In article <67043@hydra.gatech.EDU> gt6698a@prism.gatech.EDU (Andrew Hobson) writes:
>
>Greets!
>
>I have an ATI VGA Wonder XL and I have a microsoft mouse plugged in the
>bus port. (It is on the VGA card) Rik Faith (faith@cs.unc.edu) has
>written a X386 for ATI cards and it works great, I think.
>
>I received mail from Derrick C. Cole <cole@concert.net> when I posted
>previously about getting the microsoft bus mouse to work. He mailed
>me a patch by Frank ten Wolde (franky@duteca.et.tudelft.nl).
>I have modified this patch and the existing mouse.c by
>James Banks, David Giller, and Nathan Laredo (Thanks for the help,
>Nathan!!!)
>
>I have made modifications to mouse.c so that a microsoft mouse will
>work. Essentially, these changes were only to the mouse_interrupt
>function and should not have affected anything else. If I run X, then
>my mouse will not work, even though I am pretty sure that the mouse
>driver works. (I put printk's inside the driver, and I modified the
>mouse test program that comes with X for use with a bus mouse and it
>works) If I run a program that does an ioperm(port,1,1) for all
>four of the port addresses, and then run X, I can use the mouse
>until the xterm comes up. Then, as long as I hold down a key
>(on the keyboard), the mouse works. If I do not hold down a key,
>then move the mouse, and then press a key, the mouse will jump
>to a new location, about where it should have moved. (I have no
>way of telling exactly where it should have moved.) If I get
>rid of the Xterm and Xclock, I still cannot use the mouse,
>except by pressing down a key. Pressing a mouse button does not
>register, unless the mouse is moved. Using the mouse program that came with X, if I press a button, then new information
>is printed on the screen, but is is the same information as before until
>I move the mouse.
>
>I guess I need some testers to see if the problem is with the ATI
>X or with my code.
>
>I have sent mail to Rik Faith about this, as well, so hopefully this
>can be resolved. I would really like to not have to press a key
>to use my mouse in X!!
>
>Thanks alot for any help you can give me. I will include copies of my
>/usr/src/linux/kernel/chr_drv/mouse.c and
>/usr/src/linux/include/linux/mouse.h files. I don't think that I have
>changed mouse.h. I can't post a patch because
>I am not sure I have the original I have done so many changes!!
>
>Andrew Hobson

I may have some good news (for a change :) !)

Teemu Rantanen (tvr@cs.hut.fi) posted some code that he says works with a
Microsoft busmouse to nic.funet.fi (see his article.) I patched it in, but
nothing happened (not even a keypress would induce anything.)

I then proceeded to look at Teemu's code, the kernel-supplied driver, and the
Frank ten Wolde patch mentioned above and after about 30 minutes of hacking
and chopping, I managed to get the mouse to work (no keypress required!)

I like the way Teemu folded the Microsoft driver into the scheme of the kernel.
I've got just about got everything cleaned up, and I'll post my version on
tsx-11 and nic.funet.fi probably this afternoon. Please test it out and let
me/the net know how/if it works!

I appreciate all (Frank, Andrew, Teemu, and everybody else) who has worked on
this. I hope this code at least gets us closer to a working driver, if not the
driver itself!

Thanks,
Derrick

P.S. The only thing I've no clue on is how do you detect a bus mouse? The
      ideal driver should generically check for one (if defined.)

--