www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/01/09/19:24:51

From: Charles Sandmann <sandmann AT new-orleans DOT NeoSoft DOT com>
Subject: Re: Accessing absolute addresses in memory (>1M) and ports.
To: hvb AT netrix DOT com
Date: Mon, 9 Jan 1995 17:28:28 -0600 (CST)
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu

> We have a number of memory mapped devices. Some of them are mapped
> to the 0xd000 page of the low 1MB, some of them are mapped to the
> area above 12MB of the physical memory addressing space. Will the call
> to the DPMI (0x0800) function allow me:
> 
>  - to map to the whole 16MB of the physical memory addressing space
> in one call, so effectively I will be able to obtain an equivalent
> offset to the 0xe0000000 offset that I have today?

No.  You can only map the memory which have devices.  It must be 
outside the range of the DPMI's managed memory, and cannot include
anything in the 1Mb region.  You will end up with a separate memory
offset for each device potentially.  I haven't tried this; maybe 
the providers out there will give the same values each time.  Try it.
The free DPMI will always return the same values each time.

>  - or there is a limit to each region that I need to map to, so I have
> to call DPMI for each area?

A separate call to each area is needed unless they are very close together.
Since 12Mb to 16Mb is a single page directory, you might be able to map
this with a single call.  Once again, experimentation is recommended, 
since I don't know of anyone with mapped hardware who has tried it.

- Raw text -


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