Date: Thu, 6 Jun 1996 09:20:01 +0200 (IST) From: Eli Zaretskii To: Jean-Pierre Cc: djgpp AT delorie DOT com Subject: Re: Help about Critical Error Irq Handler In-Reply-To: <4p4q52$ic4@teaser.fr> Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 5 Jun 1996, Jean-Pierre wrote: > // Install Critical Error handler > > addr.pm_offset=(int)(Int24Handler); > addr.pm_selector=_go32_my_cs(); > > _go32_dpmi_get_protected_mode_interrupt_vector(0x24,&old_int24_handler); > _go32_dpmi_set_protected_mode_interrupt_vector(0x24,&addr); You didn't wrap your function with code that pushes all the registers on entry, then restores tham on exit and does an IRET. Without this, your function is not a valid interrupt handler. Please read section 18.8 in the DJGPP FAQ list (available as v2/faq200b.zip from the same place you get DJGPP). It explains how to do these things correctly, which might save you a lot of grief (and a wiped-out disk).