delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/02/22/07:24:24

Message-ID: <8D53104ECD0CD211AF4000A0C9D60AE357935A@probe-2.acclaim-euro.net>
From: Shawn Hargreaves <ShawnH AT Probe DOT co DOT uk>
To: djgpp AT delorie DOT com
Subject: Re: Mouse in SVGA Mode
Date: Mon, 22 Feb 1999 12:22:31 -0000
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.0.1460.8)
Reply-To: djgpp AT delorie DOT com

> > The solution is a little bit hairy.
> 
> Addendum: I forgot to mention this, but it is important. You will find
> that most mouse drivers are too stupid to report smooth movement in
> SVGA modes: instead they will make the cursor move in jerks of 8 pixels
> at a time. This is not good, and must be worked around.
> 
> The simple fix is to use int 0x33 functions 7 and 8 to scale up the
> mouse range by a factor of 8, and function 15 to make it move eight
> times faster than usual, after which you can divide the resulting
> coordinates by 8 to get smooth pixel movement in sensible units.
> This works great except for with Logitech drivers, which don't bother
> to implement the speed adjustment routine, so your cursor will move
> incredibly slowly on systems with a Logitech mouse.
> 
> What seems to be a more reliable solution is to ditch all the int 0x33
> position tracking code as well as the cursor display, writing your own 
> version that uses the mickey motion deltas (these are available in the
> %si and %di parameters to the movement callback).
> 
> Again, see the Allegro mouse.c source. It uses my own position 
> tracking when mickeymode is set, and the int 0x33 stuff otherwise.
> 
> 
> 	Shawn Hargreaves.
> 
> 

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019