Mail Archives: djgpp/1995/03/20/07:39:29
An update about my interrupt conflict problem:
The problem was that a redirected int 1C timer interrupt occurring
inside a call to int 16,1 (read keyboard buffer) was easily causing
a crash.
- With DPMI the problem does not occur.
- With some other calls to int 16, as int 16,2, there is no problem.
- There is no conflict with the GRX mouse functions (that apparently
use a different mechanism to access int 33). I didn't test to call
int 33 directly.
- To clear or not SS, SP, and FLAGS, don't make any difference.
- There is a not very elegant solution that works: Restore the int 1C
vector before any call to int 16,1, and redirect the vector again
after. Of course, some interruptions are lost.
Thanks to Charles Sandmann for the comments on my questions, but one
remains unanswered: Is it necessary to uninstall the timer handler
before the program exits? In Borland C, apparently it is.
Antonio Carlos M. de Queiroz
- Raw text -