Mail Archives: djgpp/1997/03/25/05:48:14
On 21 Mar 1997, Jason M. Daniels wrote:
> never destructively read from the original handler. OK. So then I tried to
> follow the directions in the FAQ for using [...]_set_[...]. I saved the
> previous handler, allocated an iret wrapper, and set the handler. However,
> the interrupt will trigger once and then crash the computer. This did not
> happen with [...]_chain_[...]. Here's the source code:
Your handler doesn't send the EOI (End Of Interrupt) command to the
interrupt controller, so you only get the first interrupt, and then
further keyboard interrupts are blocked forever. In the chaining
version, the handler that you chained to (in the BIOS) did the EOI.
I'm not sure whether this also explains the crashes (keyboard
interrupt is special in DJGPP), but you will know after you
correct this problem ;-).
- Raw text -