From: Thomas Demmer Newsgroups: comp.os.msdos.djgpp Subject: Re: Physical Memory Addresses Date: Wed, 18 Sep 1996 14:32:31 +0100 Organization: Lehrstuhl fuer Stroemungsmechanik Lines: 38 Message-ID: <323FF9EF.59E2@LSTM.Ruhr-UNI-Bochum.De> References: <9609180832 DOT AA26846 AT leopard DOT proteon DOT com> NNTP-Posting-Host: bvb.lstm.ruhr-uni-bochum.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Neil Jarvis wrote: [...lots of interesting stuff deleted...] > * Requirement to allocate large amounts of memory for the DMA > > Things get a lot trickier when you need a lot of memory. But here is a > solution. The virtToPhys() routine shown below can be used to > calculate the physical address of any malloced address. > > NOTE: You must run your program with protecton level 0, i.e. use > CWSDPR0.EXE or PMODETSR.EXE as your DPMI servers. This disables > virtual memory, and prevents malloced data from being swapped to > disk. > [...] Alaric Williams (I think) wrote an extension for djgpp to lock memory without using a ring 0 server. So you can have virtual memory and a physical memory address for your buffers. The buffer will not be below 640kB, thus will not eat up precious DOS memory. -- Ciao Tom ************************************************************* * Thomas Demmer * * Lehrstuhl fuer Stroemungsmechanik * * Ruhr-Uni-Bochum * * Universitaetsstr. 150 * * D-44780 Bochum * * Tel: +49 234 700 6434 * * Fax: +49 234 709 4162 * * Voice/Fax Box: +49 2561 91371 2056 * * http://www.lstm.ruhr-uni-bochum.de/~demmer * *************************************************************