[DOSEMU Logo]
DOSEMU.org

| Home | | Developer Releases | | Stable Releases | | Documentation |

Home
README
Technical README
HOWTO
DANG  - 0.99
EMUfailure
Misc
Next Previous Contents

10. The Mouse group of Modules

All of the Mouse handling code is in the "mouse" subdirectory.

There are only 2 main files, mouse.c and mouseint.c.

10.1 base/mouse/mouse.c Information

10.2 Functions in base/mouse/mouse.c

These are the functions defined in base/mouse/mouse.c.

mouse_init

Initialize internal mouse.

10.3 Remarks in base/mouse/mouse.c

I have not properly tested this INT74 - JES 96/10/20 I have removed it. INT74 is irq 12. Which I suppose is the proper irq for a ps2 mouse. It appears initial support was planned to support irq 12 and at Mouse_ROUTINE_OFF is a routine that acknowledges an irq. That routine is probably what should be acknowledging irq12, and what int 0x74 should point to. I have disabled int0x74 support for now. --EB 29 Oct 1997

-----

Whoever wrote the dos mouse driver spec was brain dead... For some video modes the mouse driver appears to randomly pick a shift factor, possibly to keep at least a 640x200 resolution.

The general programming documentation doesn't make this clear. And says that in text modes it is safe to divide the resolution by 8 to get the coordinates in characters.

The only safe way to handle the mouse driver is to call function 0x26 Get max x & max y coordinates and scale whatever the driver returns yourself.

To handle programs written by programmers who weren't so cautious a doctrine of least suprise has been implemented.

As much as possible do the same as a standard dos mouse driver in the original vga modes 0,1,2,3,4,5,6,7,13,14,15,16,17,18,19.

For other text modes allow the divide by 8 technique to work. For other graphics modes return x & y in screen coordinates. Except when those modes are either 40x?? or 320x??? and then handle the x resolution as in 40x25 and 320x200 modes.

320x200 modes are slightly controversial as I have indications that not all mouse drivers do the same thing. So I have taken the simplest, and most common route, which is also long standing dosemu practice of always shifting by 1.

-- Eric Biederman 19 August 1998


Next Previous Contents
 
The DOSEMU team