delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1998/11/15/13:30:05

X-Authentication-Warning: ieva01.lanet.lv: pavenis owned process doing -bs
Date: Sun, 15 Nov 1998 20:18:46 +0200 (WET)
From: Andris Pavenis <pavenis AT lanet DOT lv>
To: djgpp-workers AT delorie DOT com
Subject: Re: DPMI implementation related problem
In-Reply-To: <9811151608.AA14746@clio.rice.edu>
Message-ID: <Pine.A41.4.05.9811152010100.114510-100000@ieva01.lanet.lv>
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com


On Sun, 15 Nov 1998, Charles Sandmann wrote:

> > Seems that there is one DPMI related problem with debugging
> > DJGPP programs.
> > 
> > DOS session under Win95: no problems
> > 
> > plain MS-DOS 7.0 without Win95 loaded (with and without EMM386):
> > 	I found that some DPMI calls (first is fn 0Ah: creating alias
> > 	for descriptor) returns with interrupts disabled when
> > 	called from programs being debugged. It is in very begin
> >         crt0.S. There are another places where this happens, but 
> > 	currently I hadn't time to track them down. 
> > 
> > 	I tested this with DJGPP 2.02 beta. Seems that problem 
> > 	may be related with hooking int 31h in dbgcom.c as
> > 	it appears only when running program under debugger
> 
> dbgcom.c's hooking has always been a bit hairy - and it's been
> changed a few times, so I can believe this.  There are two 
> potential reasons which would explain the W95/DOS difference:
>   IOPL - which will change the ability to change the interrupt flag
>   W95 - has code to work around common bugs, like leaving interrupts disabled
> 
> Since DOS should have the more lenient IOPL - this tends to say we
> are doing an IRET with the disable flag on the stack.
> 
> By the way - it may depend on DOS version also - some versions like
> to clear the interrupt flag when they get a chance.
> 
> It might be some subtile bug with the hardware too.  Have fun...
> 

Did some more tests. For some interactive programs (DJGPP of course)
seeing interrupts disabled in debugger does not make any harm: I still can
get keyboard input in it (????). But some other simply ignores any input.
One of them shows time on screen and I see it no more changes. Puting
check and enabling interrupts in program helps, but interrupts are getting
disabled more than once sometimes.

Perhaps I'll do more detailed tests sometimes after one week (or later)

Andris

- Raw text -


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