From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: XMS with HIMEM? (and DMA) Date: Wed, 28 Nov 2001 23:48:46 Organization: Aspen Technology, Inc. Lines: 27 Message-ID: <3c0577de.sandmann@clio.rice.edu> References: <3C03AFFB DOT 543A5BDB AT pq DOT fta-berlin_dot_de> <3c039812 DOT sandmann AT clio DOT rice DOT edu> <3C04D3B4 DOT 9B3BD2A6 AT pq DOT fta-berlin_dot_de> NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 1007013294 15732 10.32.115.107 (29 Nov 2001 05:54:54 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 29 Nov 2001 05:54:54 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 > I am happy to share my code but I must note that what I use was > originally posted by Neil Jarvis and at this point I have not > substantially added to it. > I am also trying to build some large buffer DMA code handling as many > environments as possible. In this context I noticed that this is not so > simple under Windows (only considering 9x DOS box). Having allocated > some XMS it seems impossible to lock it in Windows. I noticed this also in testing. You are limited to DOS memory or trying to use the VDS functions. > I have not even been lucky > with DOS memory. It seems that Windows does not map it over the first > physical MB. Makes sense insofar that there can be multiple dos boxes, > VMs that could not possibly all be in the first MB. If I remember correctly it captures the pokes to the DMA I/O ports and re-maps it for you for each DOS machine. But last time I messed with it was under Win95 beta when we were prototyping stuff for Quake. You might look at a lot of code which has been written since then for examples. > Nevertheless, what about the DMPI spec? DPMI says nothing about physical addresses or DMA - you have to use the VDS spec for that. It turns out that most VDS implementations are next to useless, but you can see what's available.