www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/01/13/15:18:30

Date: Fri, 13 Jan 1995 14:35:50 -0500
From: jab AT netrix DOT com
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: PC memory access with DJGPP

I have been tasked with writing a function that will determine
if a specified address is valid when using the go32 extender.
I have been able to examine the GDT and the paging tables, but
I'm a little puzzled by what I have found.

The CS and DS registers point to descriptors in the GDT that specify
segments that start at address 0x10000000 with a size of 0xEFFFFFFF
bytes.

The page table contains entries for 16 megabytes at 0 and at 0xF0000000.

So my question is:  what are the mechanics that happen when an address
with an offset of 0xE0000000 is specified?  Is there a better way to
write a function to determine if an address is actually implemented
by a physical address?  The solution should not cause any exception
conditions.  We are not allowing memory paging in our implementation.

Thanks in advance for any help.

-Jim.
----
James A. Babcock, Software Engineer     Email:  jab AT netrix DOT com
Netrix Corporation                      '92 Honda Accord
13595 Dulles Technology Drive           '76 Triumph TR7
Herndon VA  22071  USA     Give Blood -- It's a great feeling!

- Raw text -


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