From: kroe AT sbcs DOT sunysb DOT edu (KiYun Roe) Date: Tue, 4 Feb 92 21:33:20 EST To: haynes AT malta DOT island DOT com Subject: Re: Windows Cc: djgpp AT sun DOT soe DOT clarkson DOT edu Status: O The Windows memory model is fundamentally incompatible with go32. In 386 enhanced mode, Windows supports something called DPMI (DOS Protected Mode Interface, I think), version 0.9. Unfortunately, DPMI 0.9 does not provide a number of things that go32 needs, particularly paging. Everything in djgpp assumes a flat 32-bit memory model, but the DPMI 0.9 services are oriented to a segmented memory model. I imagine it might be possible to support a restricted subset of go32 by allocating a single large memory block from DPMI and put the go32 client program, data, and stack in it. That is, instead of the 640k ceiling we could support a 4096k ceiling. It's kind of gross, but maybe it's better than nothing. The djgpp readme file says that data usually starts at 0x400000 and the stack runs from 0x7ffffffc down. We'd have to find a way to change the address where data is linked. But I digress... Having a Windows go32 would still not let you write Windows programs with djgpp. Windows uses a new segmented executable format for its programs and DLLs (Dyna-Link Library -- a kind of shared library). It's also kind of impossible to generate a program without the right compiler libraries, because Windows routines aren't accessed by interrupts or system calls -- they're dynamically-linked at run-time.