Date: Thu, 3 Jun 93 13:02:49 EDT From: DJ Delorie 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.