delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1997/09/01/11:22:58

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <9709011522.AA16650@clio.rice.edu>
Subject: Re: _dos_ds segment limit
To: Vik DOT Heyndrickx AT rug DOT ac DOT be (Vik Heyndrickx)
Date: Mon, 1 Sep 1997 10:22:11 -0600 (CDT)
Cc: dj AT delorie DOT com, djgpp-workers AT delorie DOT com
In-Reply-To: <340A8B25.5D44@rug.ac.be> from "Vik Heyndrickx" at Sep 1, 97 11:30:13 am

> I noticed that we can't set the limit with a granularity of 1. It once
> took me an hour to figure out why no program did run anymore when I
> changed _dos_ds's limit to 0xffff0+0xffff. Strange that DPMI hosts don't
> extend such a limit to the next 4K page (or 4M when appropriate) when
> such a limit is requested. At least that's what W95 does. I don't know
> what CS's CWSDPMI does.

The DPMI spec says limits greater than 1 meg MUST have the low 12 bits set.
This is actually an X86 hardware requirement.  If they aren't set - the 0.9
spec is fuzzy on what should happen.  It probably ought to fail the request.
What CWSDPMI does is ignore those bits (since they get shifted away) and
you effective get rounded up to the next 4K boundary.  If I remember right,
some program broke when the check was enforced - so it was removed.

- Raw text -


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