Date: Sun, 2 Apr 2000 09:46:40 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Jonathan Meunier cc: djgpp AT delorie DOT com Subject: Re: keyboard interrupt In-Reply-To: <38DFBF98.8BEB44EB@corel.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Precedence: bulk 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.