Chris Rankin:
OK, here's a first draft at a patch. Created with reference to my old copies of Ralph Brown's Interrupt List.
Well, under DOS VGA text mode, mouse cursor is like "gpm" mouse cursor, a character cell which gets inverted or otherwise highlighted in order to show where mouse is currently located at. As far as I know, neither Wine nor Windows supports this and SetConsoleCursorInfo really has no effect on mouse cursor, anyway. So, under text mode, hide/show functions should do nothing.
However, under VGA graphics mode, show/hide cursor really should call ShowCursor. And, if mouse driver is reset, hide count must be reset to one and cursor must be hidden.
I have some more or less untested patch for show/hide somewhere but the last time I tried to get that working I had to fix IRQ handling, again, and after that I was too bored and too busy for doing DOS stuff. Anyway, it will take probably about half a week until I have time for digging out the patch, which I will do if this thing is not fixed before that. I guess I should also dig my other DOS related patches and submit them as well, I don't know if they really help much but at least I would not have pending stuff in my computer.
On Sunday 05 September 2004 03:09 pm, Jukka Heinonen wrote:
Well, under DOS VGA text mode, mouse cursor is like "gpm" mouse cursor, a character cell which gets inverted or otherwise highlighted in order to show where mouse is currently located at. As far as I know, neither Wine nor Windows supports this and SetConsoleCursorInfo really has no effect on mouse cursor, anyway. So, under text mode, hide/show functions should do nothing.
Windows does support this when mouse input is enabled on a console, and that console is in full screen mode (Hitting Alt-Enter under windows)
On Sun, Sep 05, 2004 at 10:09:26PM +0300, Jukka Heinonen wrote:
Well, under DOS VGA text mode, mouse cursor is like "gpm" mouse cursor, a character cell which gets inverted or otherwise
IIRC it's inverted.
highlighted in order to show where mouse is currently located at.
This is aproximate, since we're talking a console window here, right? Where each block is a character? And there are only so many characters in the console window?
As far as I know, neither Wine nor Windows supports this
Supported in Win9x (probably others) in console mode with mouse input enabled (properties box somewhere) and in full screen mode. It doesn't show that way under Windowed/Boxed mode on 9x, because it's pointless -- why should you have a block cursor in the console following an already existing, nice graphical pointer in Windows?
and SetConsoleCursorInfo really has no effect on mouse cursor, anyway. So, under text mode, hide/show functions should do nothing.
-- Jukka Heinonen http://www.iki.fi/jhei
On Mon, 6 Sep 2004 michael@cherryblossom.homelinux.com wrote:
On Sun, Sep 05, 2004 at 10:09:26PM +0300, Jukka Heinonen wrote:
Well, under DOS VGA text mode, mouse cursor is like "gpm" mouse cursor, a character cell which gets inverted or otherwise
IIRC it's inverted.
That depends. There is a call where you supply two 16-bit words, one is XOR'ed with the screen contents and the other AND'ed with it. That way you can set any char/attr bit, reset it, invert it, or leave it alone.
-Peter