[comp.sys.ibm.pc.programmer] Help doing DMA

mike@focsys.uucp (Mike Walma) (06/04/90)

For an application my company is looking at doing, we need to develop
some expertise with DMA transfers on AT clones.  The problem at hand involves
putting a DMA device in a pipe that would take data in memory, pass it
through the DMA device, and back into memory, all without processor
involvement.  The amount of data involved is quite large, and local
buffers on the DMA device relatively small, so it would be a real pipe,
involving interleaved reads and writes, on different DMA channels.

What I would like from the net is pointers to good references on DMA
programming.  Thanks in advance.

-- 
Mike Walma   -- Focus Systems -- Waterloo, Ontario
               watmath!focsys!mike  (519) 746-4918

lawson@extro.ucc.su.OZ.AU (P Lawson) (06/06/90)

From article <1990Jun4.152523.10486@focsys.uucp>, by mike@focsys.uucp (Mike Walma):
> For an application my company is looking at doing, we need to develop
> some expertise with DMA transfers on AT clones.  The problem at hand involves
> putting a DMA device in a pipe that would take data in memory, pass it
> through the DMA device, and back into memory, all without processor
> involvement.  The amount of data involved is quite large, and local
> buffers on the DMA device relatively small, so it would be a real pipe,
> involving interleaved reads and writes, on different DMA channels.
> 
> What I would like from the net is pointers to good references on DMA
> programming.  Thanks in advance.
> 
> -- 
> Mike Walma   -- Focus Systems -- Waterloo, Ontario
>                watmath!focsys!mike  (519) 746-4918

  There is a very good article on DMA in the January 1990 issue of "Dr.
Dobb's Journal".  The article is titled `Real-Time Data Acquisition Using
DMA' by Tom Nolan.  The author does all of his coding in Microsoft C, and
gives a hardware example that will provide the DMA request and acknowledge.

  The example that Nolan gives is probably enough to get you started.  Once
you understand his code it should then be easy to get two channels going
at once in the same manner.

              Peter Lawson.

pipkins@qmsseq.imagen.com (Jeff Pipkins) (06/07/90)

In article <1990Jun4.152523.10486@focsys.uucp> mike@focsys.UUCP (Mike Walma) writes:
>What I would like from the net is pointers to good references on DMA
>programming.  Thanks in advance.

1. IBM AT Technical Reference Guide, #6139362 (800/IBM-PCTB)

2. Intel Microprocessor and Peripheral Handbook, Vol. 1 (1987)
   Order #230843-004 (800/548-4725)  This book has the data sheet
   for the 8237A DMA chip, as well as the 8259A interrupt controller.

3. "Real-Time Data Acquisition Using DMA", by Tom Nolan, _Dr._Dobb's_Journal_,
   January 1990, page 28.

I cannot E-mail to the addresses in your article.  I posted this anyway
because it seemed to be of general interest anyway.

-Jeff Pipkins
pipkins@imagen.com