home *** CD-ROM | disk | FTP | other *** search
- MOUSEFIX - TSR to fix bugs in mouse drivers when used with Turbo
- Pascal 6.0
-
- Usage: Run MOUSEFIX after loading your mouse driver, before running
- the TP6 IDE. It's a 27K TSR; if it works, you'll probably
- want to rewrite it in assembler.
-
- A lot of people have had trouble with TP 6 losing their mouse
- cursor. I didn't have this problem, until I started using the IDE
- within Desqview: then using Alt-F5 to view the output screen, and
- Enter to get back to the editor would confuse Desqview, so that the
- next time I popped up the Desqview menu and got rid of it my mouse
- cursor would be lost.
-
- I recently got a copy of Schulman et al's Undocumented DOS (great
- book!) and the program Intrspy included with it, so I tried spying
- on the mouse interrupt to see what was going on. It looks as though
- the offending code goes something like this:
-
- ( You hit Alt-F5 )
- TP saves the mouse state
- TP turns off the mouse cursor
- ( You hit enter to get back to the editor )
- TP restores the mouse state.
-
- TP seems to assume that restoring the mouse state will restore the
- cursor, and it does: but Desqview doesn't know that it does, so it
- thinks the cursor is still hidden.
-
- I'd guess that similar problems happen with incompatible mouse
- drivers: they don't restore the cursor when the state gets restored.
-
- If that's true, then the program MOUSEFIX might fix it. What it does
- is to keep track of the cursor status between saves & restores, and
- enforce a balance of shows and hides. It seems to fix the problems
- within Desqview, so I'm hopeful it'll work elsewhere, too.
-
- I wrote it in TP using Object Professional's OPINT and OPTSR units
- for clarity; if you want to really use the thing, you'll probably
- want to rewrite it in assembler.
-
- I'd appreciate hearing from anyone who has had mouse problems about
- whether this fixes them.
-
- Duncan Murdoch
-
- dmurdoch@watstat.waterloo.edu (Internet)
- DJ Murdoch at 1:221/177.40 (Fidonet)
- 71631,122 (Compuserve)
-