www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/16/09:02:07

Date: Thu, 16 Jul 1998 16:01:18 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Steve Ball <s DOT ball AT xtra DOT co DOT nz>
cc: djgpp AT delorie DOT com
Subject: Re: longjmp() from interrupt handler
In-Reply-To: <6okp9j$7p6$1@wolfman.xtra.co.nz>
Message-ID: <Pine.SUN.3.91.980716155410.18013E-100000@is>
MIME-Version: 1.0

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?

- Raw text -


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