delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/02/01/14:36:39

From: rri!potter AT vtserf DOT cc DOT vt DOT edu (Mark Potter)
Subject: GO32 paging in interrupt handlers, was: Multitasking under djgpp
To: djgpp AT sun DOT soe DOT clarkson DOT edu (DJ G++ Mailing List )
Date: Mon, 31 Jan 1994 08:59:42 -0500 (EST)
Reply-To: rri!potter AT vtserf DOT cc DOT vt DOT edu

Sorry if this message is a repeat.  This is about the third time I've sent it.
It seams to never get through (I never recieve it back from the news feed, nor
do I see any replys).

> > 4. I've heard that there is a problem locking down the pages for the
> > interrupt handlers right now.  Is there a workaround?  Can I just
> > disable paging for now?  If so, how?
> 
> No problem; I just forgot to tell people to do it.  It's only needed
> in DPMI mode, as go32 can handle paging in interrupt handlers.  Just
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> do the appropriate DPMI call to lock them.

Even if DOS is in a non-reentrent state?  My example would be while in a DOS
critical error interrupt handler (Interrupt 24h).  While in such a handler only
a very few DOS calls a valid, and none of those involve the disk.

The reason I'm asking is that I've been working on (on and off) the Borland &
Microsoft style harderr() functions.  In the program that I originally wrote
these for, I was having a problem with the computer hanging on any critical
error that occured after I did a system().  Originally I thought that system()
wasn't quit right, that it was lossing the interrupt vectors that I had set
before the system() call (I found that recalling my harderr() function to reset
the vector solved the problem).  Now I realize that the real problem was that
the harderr catch functions was swapped out and calling harderr() caused it to
be swapped back in. (Actually I probably sould release the interrupt before the
system() call and then rehook it on return.)  This then reopens the question
the original poster asked of, How to lock down pages?  I know I could use the
DPMI call, however my current program does not work under DPMI, and I don't
remember seeing that one listed as one of the DPMI calls GO32 supports.
 

- Raw text -


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