From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: Thoughts on physical address and DMA Date: Mon, 20 Aug 2001 16:58:13 Organization: Aspen Technology, Inc. Lines: 12 Message-ID: <3b8141a5.sandmann@clio.rice.edu> References: NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 998344964 13302 10.32.115.107 (20 Aug 2001 22:02:44 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 20 Aug 2001 22:02:44 GMT X-NewsEditor: ED-1.5.8 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > Since you add `__djgpp_conventional_base' to a physical address to > convert it to a linear address, could you possibly _subtract_ it from > a linear address to convert it to a physical address? If so, could the > physical address be used for DMA? Doing DMA under DPMI is a somewhat specialized operation. To make this note short, you would need to know what platforms you plan to support (DOS/CWSDPMI, Windows, etc). The traditional way is to allocate a DOS memory buffer which has 1:1 address mapping. If you need a large buffer, and run only under CWSDPMI, you can grab a work in progress http://clio.rice.edu/djgpp/cwsdma2.zip for an example of how to get the real address mapping.