delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/02/11:12:40

Date: Sun, 2 Apr 2000 09:46:40 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Jonathan Meunier <jonathanm AT corel DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: keyboard interrupt
In-Reply-To: <38DFBF98.8BEB44EB@corel.com>
Message-ID: <Pine.SUN.3.91.1000402094628.9367Q-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 Mon, 27 Mar 2000, Jonathan Meunier wrote:

> void install_keyboard() {
>   if(kb_installed == TRUE)
>     return;
> 
>   new_kb_seginfo.pm_offset = (int)new_keyboard_int;
>   new_kb_seginfo.pm_selector = _go32_my_cs();
> 
>   kb_installed = TRUE;
> 
>   _go32_dpmi_get_protected_mode_interrupt_vector(0x09, &old_kb_seginfo);
>   _go32_dpmi_allocate_iret_wrapper(&new_kb_seginfo);
>   _go32_dpmi_set_protected_mode_interrupt_vector(0x09, &new_kb_seginfo);
> }

Beware: this code doesn't lock the code and data used inside the
interrupt handler.  So it will most probably crash, especially on
memory-starved systems.

I suggest to read section 18.9 of the FAQ for more details.

- Raw text -


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