Mail Archives: djgpp/1995/04/23/03:52:02
> How can I access the particular addresses of extended memory (above 1MB) ?
> I know the first 1MB is mapped to 0xE0000000 in the program's address space
> but how is it with above 1MB memory ?
This is explained in the DJGPP FAQ list:
18.9 Q: How can I access memory-mapped peripheral devices (or any other
absolute address) above 1 MByte mark?
A: Currently, you can do this in one of two ways:
* Under a true DPMI host (such as Windows or QDPMI) use DPMI
function 0x0800 (i.e., Int 31h/AX=0800h). It returns a
linear address which can be used to access a given absolute
physical address. You can then use the functions from
<sys/farptr.h> to access that linear address. This will be
the *only* way to access physical memory locations in DJGPP
v2.0.
* In non-DPMI mode, add 0xe0000000 to the physical address and
use that as a pointer. This feature will disappear in v2.0.
You can find the FAQ list as faqNNN.zip at the same site you get DJGPP
(NNN is the version number).
- Raw text -