Board index » delphi » DMA transfers / memory

DMA transfers / memory

Hi,

I want to port a program written in Turbo Pascal V. 7.0 to Delphi 2.0.  The
program reads data from a custom built logging card through DMA channel 1.  
Has anybody programmed a DMA transfer in Delphi 2.0 (Win 95)?

The way the Pascal program works is that it writes the base address of the
buffer used to record the data to the DMA controller.  The buffer's
base address is the actual location in memory where it is stored.

As I understand, each program running in Windows 95 has its own 4 GB address
space, meaning that the address written to the DMA controller would not
necessarily be the base address of the buffer.  Is this correct?

Is it at all possible to do this type of low level coding in Delphi 2.0 for
Win 95?  Any comments would be appreciated, as I have not yet purchased
Delphi 2.0 and the decision rests on whether I can use it to do this type of
programming.

Thanks in advance,

Darren Hennigar

henni...@ug.cs.dal.ca

 

Re:DMA transfers / memory


Quote
DARREN JOHN HENNIGAR wrote:

> Hi,

> I want to port a program written in Turbo Pascal V. 7.0 to Delphi 2.0.  The
> program reads data from a custom built logging card through DMA channel 1.
> Has anybody programmed a DMA transfer in Delphi 2.0 (Win 95)?
> ...

Windows applications run at ring 3 of the processor, so attempting what
you describe will only work if you can tolerate lots of latency.  Also,
there are loads of issues with Windows virtualizing the dma controller,
copies from your buffer to a system qualified buffer, etc.

Other Threads