www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/25/05:48:14

Date: Tue, 25 Mar 1997 13:31:53 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "Jason M. Daniels" <bd733 AT rgfn DOT epcc DOT edu>
cc: djgpp AT delorie DOT com
Subject: Re: set vs. chain
In-Reply-To: <5gskl9$mjj@news.epcc.edu>
Message-ID: <Pine.SUN.3.91.970325133108.3988N-100000@is>
MIME-Version: 1.0

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 -


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