delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/07/16/01:09:38

Date: Mon, 16 Jul 2001 08:08:12 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Matthew Conte <matt AT conte DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: '9x and raise in interrupt service routines
In-Reply-To: <001701c10d68$074978e0$e33e1d18@nycap.rr.com>
Message-ID: <Pine.SUN.3.91.1010716075833.10108A-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Sun, 15 Jul 2001, Matthew Conte wrote:

> perhaps i'm being thick here, but i haven't seen a mechanism to
> selectively chain to a previous interrupt handler anywhere, the FAQ or
> otherwise.  i've always either set up the interrupt handler via
> _go32_dpmi_[set/chain]_protected_mode_interrupt_vector, and that's
> all.
> 
> how does one chain to the previous handler from C code, especially in
> the middle of an already-executing interrupt handler?  should i be
> accessing ___djgpp_hwint_flags?

You mean, your handler is written in C?  I never assumed that, I thought 
it was in assembly.  Did I say you didn't post enough info about your 
code?

You _are_ aware that with a C handler you will have 
to lock most, if not all of the code and data, and will have other 
complications, as the FAQ explains?

Hm... one possibility to solve the keyboard buffer overflow would be to 
call `getkey' or similar function in your main program (not in the 
keyboard handler).  That would remove the keys from the keyboard buffer 
and prevent BIOS from beeping.

Another possibility is to remove the keys from the keyboard controller, 
unless you see the Ctrl-C or Ctrl-BREAK keypress.  You remove the key by 
sending a suitable command to the keyboard controller (sorry, I don't 
remember the details and don't have a good reference book nearby to look 
it up).

- Raw text -


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