From: rri!potter AT vtserf DOT cc DOT vt DOT edu (Mark Allen 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: Tue, 1 Feb 1994 13:42:50 -0500 (EST) Reply-To: rri!potter AT vtserf DOT cc DOT vt DOT edu > > 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.