[comp.os.msdos.programmer] Microsoft mouse.sys and Super VGA graphics

colburn@handel.cs.colostate.edu (Alex Colburn) (02/07/91)

	I have an interesting problem when I'm in a super vga mode
and am trying to use my mouse.  The mouse will not appear or track
all of the screen.  I'm putting my machine into a 640x480x256 mode
using turbo C++ and Turbo Pascal.  My mouse routines are from two
sources   Ezzel- Turbo C++ programming and O'brien Advanced programmers
guide.  The mouse works fine in standard vga modes (ie 640x480x16)
and also in other apps in Svga modes (windows).
	OK, anybody have any ideas?  I'm wondering if its either
my mouse routines, or perhaps the mouse.sys.  My mouse.sys is
kindof old (microsoft serial mouse: v 6.24 ?).  Any way I'd appreciate
any ideas, and does anyone know how to get in touch with microsoft
for updated drivers?  I couldn't find their phone number in any of
the documentation.
					thanks, Alex

yow@magic.Berkeley.EDU (Billy Yow 283-4009) (02/07/91)

The Mouse Driver does not know how to display the cursor for the
SuperVGA modes.  You will have to write your own code for displaying the
mouse cursor.  I don't have any examples that show this. Does anyone
else have examples for the different SuperVGA modes?  

                                   Bill Yow
                                   yow@sweetpea.jsc.nasa.gov 

joe@proto.com (Joe Huffman) (02/08/91)

colburn@handel.cs.colostate.edu (Alex Colburn) writes:

>	I have an interesting problem when I'm in a super vga mode
>and am trying to use my mouse.  The mouse will not appear or track
>all of the screen.  I'm putting my machine into a 640x480x256 mode

The problem is that the mouse driver (mouse.sys or mouse.com usually)
does not recognize all of the different graphics modes on all the 
graphics cards.  If it doesn't know about the graphics mode then it can't
draw a cursor.  Most mouse drivers only know about standard CGA, EGA, and
VGA modes.  And some (most?) are even unaware of some of those modes --
like VGA mode 0x13.

It was for this reason that I finally (about a year ago) put mouse support
directly in the graphics library for the Zortech compiler.  The graphics
package being aware of Hercules, SVGA, 8514A, etc can draw the cursor and
avoid dependence on the driver installed by the user.  It still uses the
standard Microsoft driver but only for generating the event interrupts and
reporting the button status and mouse position -- a minimal subset that all
mouse drivers support.

If you are writing your own graphics routines (rather than buying ours) then
use mouse function 12 to have the mouse driver call your routine to draw the
cursor.  Be sure to take care of reentrancy problems (what if you are
in the middle of a another graphics operation and the mouse is moved?) and 
cleaning up (tell the driver not to call your service routine) for all
exit pathes (normal exit, asserts, Ctrl C, Ctrl Break, etc).

Source code for my library is available (~$200.00) from Zortech if you are
determined to do it your way and need some additional help.

---
Zortech mailing list: send email to 'ztc-list-request@uunet.uu.net' with:
Add: your-user-name@your-machine-name
In the body of the message.
---
Send Zortech bug reports to 'zortech-bugs@proto.com'
Send requests for educational discounts to 'zortech-ed@proto.com'
---
Zortech is my major source of income.  Statements about them or their 
competitors cannot be totally without bias.  
-- 
joe@proto.com