From: Jerzy Klejnowski Newsgroups: comp.os.msdos.djgpp Subject: Buffers and physical addresses Date: Sun, 05 Nov 2000 01:28:07 +0100 Organization: samotnik w swoim zamku Lines: 26 Message-ID: <3A04A997.D8194D69@polbox.com> NNTP-Posting-Host: pc101.wroclaw.ppp.tpnet.pl Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.tpi.pl 973380490 6870 212.160.40.101 (4 Nov 2000 23:28:10 GMT) X-Complaints-To: usenet AT tpi DOT pl NNTP-Posting-Date: 4 Nov 2000 23:28:10 GMT X-Mailer: Mozilla 4.07 [en] (X11; I; Linux 2.0.36 i686) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi I have a PCI card that does DMA to a buffer in memory at given physical location (anywhere in 32-bit address space). This buffer should hold multiple TV images, so it's too large to be located in memory below 1MB. As DPMI "hides" physical locations entirely, I've tried to use locked XMS memory. But when I call 'himem.sys' from djgpp program, it says: "I am here, but I have 0 bytes of memory available". At present I use real mode program to allocate and lock buffer in memory via XMS interface and pass buffer's address, size and handle to protected mode program, that uses it, but I hope that there is better method to accomplish this task. Could anybody help? The program will be run under plain DOS, under DPMI server of my choice, so I think I can also express the above question as follows: is it possible to tell cwsdpmi or pmode/dj: "leave x MB of memory, take the rest"? Thanks in advance. HARY