delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/02/01/15:31:00

From: "Peter Remmers" <pitti AT tfh-berlin DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Using Vitual DMA Services...help !
Date: Mon, 1 Feb 1999 19:54:14 +0100
Organization: TFH-Berlin (Berlin, Germany)
Lines: 37
Message-ID: <794tbi$a0d$1@idy05.tfh-berlin.de>
References: <01be4dfb$0d10fde0$f2cfea81 AT secom144 DOT dur DOT ac DOT uk>
NNTP-Posting-Host: ip099167.tfh-berlin.de
X-Newsreader: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

James Deuchar schrieb in Nachricht
<01be4dfb$0d10fde0$f2cfea81 AT secom144 DOT dur DOT ac DOT uk>...
>Help.....! I'm still trying to get my DMA to work so I need to get the
>actual phy mem address. The VDS method is preferable to copying data into a
>buffer below the 1M mark and dmaing that because speed is a factor. What's
>wrong with my code (or right with it)........I always get some sort of
>error code back...often in reserved registers...please help!


I had the same problem. I couldn't get VDS to return the physical address of
a malloc'd buffer (not coninuous or so), allocating one with VDS didn't work
either,
I needed a buffer of about 2MB which was too big for VDS.
Then the problem was that it worked under plain DOS but not in a W95 DOS
box.

Then someone told me I should use XMS, which solved my problems.
Allocate your buffer with XMS use the XMS lock handle function to get the
physical
address. Then you can either build a selector for that physical address or
use
the XMS moving functions to access that buffer.

> //check for VDS at bit 5 of mem 0x0040:007b  ----   HOW CAN I CHECK THIS
>BIT????


That would be something like
  _farpeekb(__dos_ds, 0x4007) & 0x20

good luck!

Peter Remmers



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019