From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: DPMI features [was Re: Peculiar behavior of program.] Date: Fri, 29 Jun 2001 0:43:10 Organization: Aspen Technology, Inc. Lines: 53 Message-ID: <3b3bcf1e.sandmann@clio.rice.edu> References: <3b3bc134 DOT sandmann AT clio DOT rice DOT edu NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 993794048 9716 10.32.115.107 (29 Jun 2001 05:54:08 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 29 Jun 2001 05:54:08 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 > >Commercial software has shipped using DJGPP as the compiler and run-time. > >If you pay for something, you expect it to work on your platform. > > Yeah, it was called Quake and it also shipped with CWSDPMI. Quite a bit more than Quake, actually. And some additional major packages to come in the future. > You're joking, right? [supressing null page detection] is not a feature, > it's the absence of a bug. Any host that doesn't trap errors like those > has a bug, rather than lacks a feature, IMHO. It could be argued that Windows is the most successful software ... and people keep buying it, even though it lacks this feature :-) It's there because of this scenario (real). Someone writes an application and ONLY tests it under Windows. It touches null pointers (buggy) but works. Until you run with CWSDPMI, it crashes. Original author for whatever reason did not release source and is unavailable, but someone wants to run the application. Absence of feature [above] in their mind is a good thing :-) > Actually, what was under discussion was its use in auto-detecting the > host vendor and version. See other note on how to enhance debugging - hacking CWSDPMI or customizing it isn't needed. And if someone has set the above flag - detection of CWSDPMI would fail... > >A signature was added to r5 of CWSDPMI (0x401 - a DPMI 1.0 function) at > >Eli's request. However r4 did not support this, and there are hundreds > >of thousands of copies of CWSDPMI r4 and earlier out there. > > And anyone who needs the ident code can get this feature for the > all-time low price of ... $0.00! And the source if they don't like it - and rebuild it ... > >But if anyone really needs CWSDPMI ident code, the page table locating > >code is very specific to CWSDPMI, and works since early betas. However, > >this is a very bad thing to do unless you know exactly why you are doing > >it... > > It wasn't for end programmers to mess with; I was considering the idea > of a CWSDPMI with some extra features to add debugging abilities, and > DJGPP startup code changes to detect and activate/support those > features, after it got mentioned that DPMI proper is rather limited > when it comes to debugging support. If you are serious about spending time on enhancements, more bullet proof ways to fix it using read only sections and non-mapped memory sections.