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

Date: Mon, 16 Feb 1998 16:39:05 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Anthony DOT Appleyard AT umist DOT ac DOT uk
cc: DJGPP AT delorie DOT com
Subject: Re: Hooking interrupt 9 clashing with new types of BIOS?
In-Reply-To: <10ABBB35FCB@fs2.mt.umist.ac.uk>
Message-ID: <Pine.SUN.3.91.980216162824.1589A-100000@is>
MIME-Version: 1.0

On Mon, 16 Feb 1998, Anthony.Appleyard wrote:

>   Eli Zaretski replied:-
> > This usually means that you don't unhook the keyboard interrupt at exit, and
> > it is left to point into the void.
> 
>   But I did unhook the keyboard interrupt at exit.

I don't doubt that you made provisions for unhooking it.  What I meant was
that somehow this unhooking isn't working right.  For example, if your
unhooking code is called by a function registered by `at_exit' or in some
destructor of a C++ object, it could interfere with the DJGPP's own
unhooking of the keyboard interrupt. 

> > What is happening? Is it some new misfeature that has been put into BIOSes?
> 
>   Eli Zaretski replied:-
> > This seems highly improbable.
> 
>   But WHY do I keep getting this fault on two new PC's with Pentiums in but
> not on an older PC with a 486 in, all under DOS 6.22?

I don't know.  One reason might be that the new machines are configured 
differently, so that the layout of memory used by DOS, BIOS and other 
resident software is different.  I have seen several cases where changing 
a machine sometimes revealed bugs that were lurking for years.

> I still suspect that there may be something in
> newer versions of BIOS or of DOS 6.22 which automatically changes interrupt
> 9's interrupt address as programs are running.

As I said, I don't believe this could be the reason, since it would break 
too many programs.  Since the DJGPP startup cod itselfe hooks the 
keyboard and unhooks it on exit, this would mean that you should have 
seen such problems with any normal DJGPP program as well.

> Or is this fault caused by running under a Pentium?

I don't believe a CPU has anything to do with the way interrupts are 
handled.

Did you try to not unhook your handler, as I suggested?

- Raw text -


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