Date: Thu, 16 Jul 1998 16:01:18 +0300 (IDT) From: Eli Zaretskii To: Steve Ball cc: djgpp AT delorie DOT com Subject: Re: longjmp() from interrupt handler In-Reply-To: <6okp9j$7p6$1@wolfman.xtra.co.nz> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Thu, 16 Jul 1998, Steve Ball wrote: > Some of the BIOS calls we use hang on some machines. To recover from this, > before executing the BIOS call, we set up a handler for the timer tick. If > the handler is not removed before its countdown reaches zero, it longjmp()s > the execution back to a known point which gets it out of the hung BIOS call. > > None of this works in protected mode of course. Has anybody got any smart > ideas about how to recover from hung BIOS calls? I don't think you can. From what I understand, you want to jump out of a mode switch (calling a BIOS function requires the DPMI server to switch to real mode and reissue the call, then switch back when the BIOS call returns). This will probably wreak havoc on the DPMI server. It is better to try to prevent the BIOS calls from hanging in the first place. Which calls hang and why?