From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: DMA and DJGPP Date: Sat, 18 Jan 2003 10:59:47 CST Organization: Rice University, Houston TX Lines: 18 Message-ID: <3e298803.sandmann@clio.rice.edu> References: <3E298416 DOT 3A565C4C AT worldnet DOT att DOT net> NNTP-Posting-Host: clio.rice.edu X-Trace: joe.rice.edu 1042909592 4797 128.42.105.3 (18 Jan 2003 17:06:32 GMT) X-Complaints-To: abuse AT rice DOT edu NNTP-Posting-Date: 18 Jan 2003 17:06:32 GMT X-NewsEditor: ED-1.5.9 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > I'm building a data aquisition board that uses a PLX PCI chip to > communicate with the PCI bus. I need to set it up to use DMA to transfer > the data. I how to do I find the address and set up the memory in DJGPP > to get at the data? This all depends on the environment, and how big a DMA buffer you need. The typical way of handling this is using a 64K to 256K buffer and placing it in the conventional memory memory area. This memory is mapped 1:1 in DOS - and Windows 9x does virtualization to make it look like it's 1:1. I'm not sure on WinNT/2K/XP how well it virtualizes this. If you need a big DMA buffer (>256K) it depends on the environment. Under pure DOS and CWSDPMI there is example code available to examine the page tables and get the physical addresses of the memory: http://clio.rice.edu/djgpp/cwsdma2.zip There are also methods described in the FAQ to handle this, check it also.