Date: Thu, 7 Dec 2000 12:20:14 +0200 (IST) From: Eli Zaretskii 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: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Precedence: bulk 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.