Mail Archives: djgpp/1997/05/12/06:34:11
From: | boylesgj AT lion DOT cs DOT latrobe DOT edu DOT au (Gregary J Boyles)
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Call back wrappers.
|
Date: | 12 May 1997 07:12:13 GMT
|
Organization: | Comp.Sci & Comp.Eng, La Trobe Uni, Australia
|
Lines: | 26
|
Distribution: | world
|
Message-ID: | <5l6fsd$rl9@lion.cs.latrobe.edu.au>
|
NNTP-Posting-Host: | lion.cs.latrobe.edu.au
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
I have 3 problems I need solved.
1) How do you uninstall a mouse driver call back function.
I have tried mouse service function 0 (reset driver), function 14
(exchange call back function) with the call mask and function address
zeroed, and function C (install call back function) with the call mask
and function address zeroed. In all cases a divide overflow error
results and the system hangs. If I don't bother uninstalling it then
as soon as I touch the mouse after my program exits I get a protection
fault and the system hangs. RB int list doesn't explicitly tell me
how to uninstall a call back.
2) I can't figure out any way to hook int 1C without getting a general
protection fault and system hangup when I try to install the original
ISR. I tried disabling interrupts while I restored the old ISR but that
doesn't work. I don't actually need to hook it now but it would be nice
to know how to do it for future projects.
3) Is dosmemget appropriate for obtaining the 'timer ticks since
midnight'. I actually tried it in a loop but the value it returns does
not change. So either it is not located in DOS memory, it is not
located at 0x0040:0x006C or 0x0040 * 16 + 0x006C is not the correct
offset into DOS memory. That's point I haven't tried using just the
0x0040 as the offset.
- Raw text -