delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/03/20/07:39:29

Date: Mon, 20 Mar 1995 08:39:58 -0300
From: acmq AT beta DOT coe DOT ufrj DOT br (Antonio Carlos Moreirao de Queiroz)
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Interrupt conflict

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 -


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