www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/06/03/13:26:47

Date: Thu, 3 Jun 93 13:02:49 EDT
From: DJ Delorie <dj AT ctron DOT com>
To: a_tucker AT paul DOT spu DOT edu
Cc: karna AT pobox DOT upenn DOT edu, djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: DPMI support

> OK, time for a "basic" question.  What is "0xE0000000 remapping"? 
> According to my calculations, 0xE0000000 = 3.5 gigabytes, which is .5
> gigabytes less than the 32-bit max.  Are all addresses above 0xE0000000
> always remapped?  If so, why?  Is this regardless of the amount of physical
> RAM available?  Thanks!!

Due to the linear nature of go32's environment, it was necessary to
make the 0-1M memory region appear somewhere in the program's address
space so that you could do things like write to the screen or access
BIOS data.  This memory is linearly mapped beginning at virtual
address 0xe0000000.  For example, if you read 0xe00b8000, you would be
reading the text screen memory (B800:0000).  Under DPMI 0.9, go32 is
not able to perform this virtual mapping, so programs that relied on
the memory appearing at that address will no longer work.  Instead,
there are some new functions in pc.h that perform the function of
reading and writing to physical memory for you.

- Raw text -


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