www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/04/23/03:52:02

Date: Sun, 23 Apr 1995 09:33:00 +0300
From: eliz AT is DOT elta DOT co DOT il. (Eli Zaretskii)
To: s709 AT icslab DOT agh DOT edu DOT pl
Subject: Re: extended memory
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu

> 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 -


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