delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/08/01/01:08:17

From: Charles Sandmann <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Mapping DOS base memory under 1 meg
Date: Thu, 31 Jul 2003 23:26:08 CDT
Organization: Rice University, Houston, TX
Lines: 18
Message-ID: <3f29ebe0.sandmann@clio.rice.edu>
References: <84e4e2a9 DOT 0307311826 DOT 6a107b0c AT posting DOT google DOT com>
NNTP-Posting-Host: clio.rice.edu
X-Trace: joe.rice.edu 1059713052 27066 128.42.105.3 (1 Aug 2003 04:44:12 GMT)
X-Complaints-To: abuse AT rice DOT edu
NNTP-Posting-Date: Fri, 1 Aug 2003 04:44:12 +0000 (UTC)
X-NewsEditor: ED-1.5.9
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

> I'm writting some SVGA code which uses banked modes if a linear mode
> is not availible.  Now, I had an idea of, when using _farpokeb instead
> of adding segment << 4 to the offset, which is usually A0000 + offset,
> I would make a selector for the A000 - AFFF graphics memory buffer. 

SNIP.  No need to map items in first megabyte.

> So, is there a reliable way to make a base memory selector other than
> just using the __djgpp_nearptr_enable() ?

First allocate an ldt descriptor (__dpmi_allocate_ldt_descriptors(1))
Set the size to be 64K.
Set the base to be A0000

You can now access it directly - no need to map the memory in 1st MB.

Alternately, you can call __dpmi_segment_to_descriptor which is easier.

- Raw text -


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