Mail Archives: djgpp/2001/07/16/01:09:38
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 -