From: Charles Sandmann 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.