delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/01/24/04:02:23

Date: Sun, 24 Jan 1999 10:59:36 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: James Deuchar <J DOT A DOT Deuchar AT dur DOT ac DOT uk>
cc: djgpp AT delorie DOT com
Subject: Re: Getting physical addresses for DMA
In-Reply-To: <01be45f3$55dbf300$f2cfea81@secom144.dur.ac.uk>
Message-ID: <Pine.SUN.3.91.990124105918.4501Q-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com

On 22 Jan 1999, James Deuchar wrote:

> I'm trying to setup the DMA controller on a PCI ATM Network card so that I
> can transfer some data from system memory onto the cards ram. The djgpp FAQ
> suggests either allocating a buffer within the fist MB using a
> __dpmi_allocate_dos_memory call or using a software interrupt INT 4Bh to
> access the Virtual DPMI Services. I have Ralf Browns interrupt list but I'm
> not entirely sure which of the INT 4B calls to make

You should be able to find the relevant functions by searching the
Interrupt List e.g. for "DMA" or "VDS".  (Btw, the FAQ talks about
"Virtual DMA Services", not "DPMI Services".)

The VDS functions are those where AX is loaded with values 8102h to
810Ch. 

But I really would suggest to try the DOS memory method first.  It is
usually easier and more portable.

> ....as far as I'm
> concerned I just want to get the physical address of a variable - I don't
> know anything about dma buffers and locking regions...

You cannot mess with DMA without at least some understanding of these
issues.

- Raw text -


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