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!