From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: DPMI problem Date: Sat, 30 Jun 2001 13:47:29 Organization: Aspen Technology, Inc. Lines: 31 Message-ID: <3b3dd871.sandmann@clio.rice.edu> References: <3b3d0f21 DOT sandmann AT clio DOT rice DOT edu> NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 993927967 27248 10.32.115.107 (30 Jun 2001 19:06:07 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 30 Jun 2001 19:06:07 GMT X-NewsEditor: ED-1.5.8 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > Well *sigh* I am exasperated. I spent a day or two working on that, and > after I took out the __dpmi_allocate_linear_memory call as you suggested, it > worked. Thank you. Glad to help. > ....and now my little rant > I can't figure out why DPMI will not support the allocate_linear_memory > call, especially when the implementation is so trivial. It might even be > acceptable for cwsdpmi to not support this, but the DPMI server in Win9x > doesn't support this call when the OS makes it available to Win32 apps via > VirtualAlloc. (?!!?!) > ....Go figure. CWSDPMI doesn't support 0x504 since it's not a full 1.0 implementation and the primary feature of 0x504 you might want over 0x501 (specifying the desired address location) turns out to be a can of worms to implement. I considered adding 0x504 as a 0x501 wrapper (failing if EBX was nonzero) but it seemed not such a good idea because of some other DPMI compatibility issues (some code checked to see if 0x504 worked and if so assumed all sorts of other things worked). Sorry if this mis-feature caused you grief. The DPMI 1.0 API does specifically say you need the 0x504 call to use the map conventional (or set page attributes) calls. All of the DPMI providers which I tested that supported these calls also supported them on 0x501 handles - so thus the strange, poorly documented behavior. Windows has never supported any features beyond DPMI 0.9 except the coprocessor emulation calls (needed if an FPU was not present). Does anyone even remember when Intel made chips without FPUs? Microsoft's goal since Windows 3.1 was to stop all enhancements for DOS program API's (DPMI) to encourage developer migration to the Windows APIs.