Mail Archives: djgpp-workers/2001/12/11/13:16:00
> From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
> Date: Tue, 11 Dec 2001 02:36:40 -0600 (CST)
> > >
> > > asm volatile("movb $0x51, %%ah
> > > int $0x21
> > > movb $0x50, %%ah
> > > int $0x21
> > >
> > > (so we don't pass the psp any more, we do a getpsp call to decide
> > > what to set it to).
> >
> > Won't this do harm if the PSP you get is zeroed (by the same NTVDM bug we
> > are trying to fix)?
>
> The PSP returned by DOSX (DPMI) is still correct, so when we do the set
> it cleans up the internal bogosity in NTVDM.
>
> It appears to work (at least most of the time ...). My patched gcc 2.8.1
> driver which uses this code would crash each 1-3 compiles without it, but
> only crashed once with it. I was going to see if that crash was
> reproducible. The old code might be more reliable, but I don't see
> how to have a child program know if it's run from a go32-v2.
Well, I'm paranoiac nonetheless, primarily because this code wasn't
tested except now, while the old code was tested by several users on
several different systems.
So I'd prefer a solution which just fixes the old code, so that when
it runs under go32-v2, it doesn't call PM Int 21h at all.
- Raw text -