www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/12/07/05:28:04

Date: Thu, 7 Dec 2000 12:20:14 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: djgpp AT delorie DOT com
Subject: Re: djgpp and Win2k
In-Reply-To: <90lhsj$7dn$1@nnrp1.deja.com>
Message-ID: <Pine.SUN.3.91.1001207121938.26453J-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Wed, 6 Dec 2000, dsralich wrote:

> > Please post the exact text of these messages and any other relevant
> > information (registers, Dr Watson reports, etc.)
> 
> Windows critical-type message box.
> Title: "ntvdm.exe - Application Error".
> Message: "The instruction at '0x0f048d8a' referenced memory
> at '0x01d10ffc'. The memory could not be 'written'. Click on OK to
> terminate the program. Click on CANCEL to debug the program"

Yes, that's the problem we have with W2K's NTVDM.  The funny part is
that the instruction at the address they cite does not come from the
DJGPP application, it's some Windows' own code.

> > DJGPP doesn't use any ``DOS protected'' memory.  It uses the DPMI
> > interface to request memory from Windows.
> 
> You are correct. My understanding of DJGPP's memory management is very
> limited (I haven't studied it or anything). From what I understand
> though (which I could be/am totally wrong; feel very free to correct
> me), it constantly switches from REAL mode to PROTECTED mode, and vice
> versa depending on what instructions need what mode.

The switch to real mode and back happens only when a program issues a
DOS or BIOS call, e.g. to read or write a file, or access the
keyboard.

However, note that this switch is not done by the DJGPP application's
code, it is entirely inside the DPMI server built into Windows.  All
the DJGPP programs do is to issue Int 31h asking the DPMI server to
call a certain real-mode interrupt on behalf of them.  ALl the rest is
done by Windows.

> My apologies again, just taking my best guess. And, I didn't mean that
> the problem was necessarily DJGPP's. In fact, I am sure it was changes
> in Win2k (Microsoft's problem), however, I feel MS will really not care
> if DJGPP works or not in Win2K, they'll probably just recommend buying
> VC++ 6. So, I figure even though it's not DJGPP's problem, MS will make
> it so.

Probably.  Which means that if someone has motivation to dig into this
and try making DJGPP programs work on W2K, they are welcome.

- Raw text -


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