www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/17/03:30:44

From: "Steve Ball" <s DOT ball AT xtra DOT co DOT nz>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: longjmp() from interrupt handler
Date: Fri, 17 Jul 1998 19:08:38 +1200
Organization: Customer of Telecom Internet Services
Lines: 19
Message-ID: <6omtlb$9gs$1@wolfman.xtra.co.nz>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 980716155410 DOT 18013E-100000 AT is>
NNTP-Posting-Host: p38-m8-mdr1.dialup.xtra.co.nz
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Thanks for your help to my tricky problem. I couldn't agree more that
forcefully bombing the BIOS out of a hung call is a dangerous idea. But what
can you do?

The call in question is Int 13h/AX=41h/BX=55AAh which checks to see which
extended Int 13h disk i/o services are available. Trying the services to
find out if they are available can itself hang the BIOS. The only way is to
try Int 13h/AX=41h, and for those very few BIOSes that hang on that call,
recover from the hang and assume that no extended Int 13h services are
provided.

Josh Turpen, the author of the LWP multi-threading library, has suggested
using an illegal instruction trap to recover. This sounds like a promising
idea. Even better would be to use the threading library and just run the
call in a separate thread. I'll be looking into this... I'm not sure if it
will work with PMODE/DJ.



- Raw text -


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