ADLINK PCI-7300A User Manual
Page 70
 
62
• C/C++ Libraries
int W_7300_DO_DMA_Start (int card_number, HANDLE memID, U32
count)
Visual Basic (Windows 95)
W_7300_DO_DMA_Start (ByVal card_number As Long, ByVal memID As
Long, ByVal count As Long) As Long
C/C++ (DOS)
int _7300_DO_DMA_Start (int card_number, U32 *buff, U32 count,
int repeat, DMA_DSCR *dma_dscr_ptr)
@ Argument
card_number: The card number of the PCI-7300A card. 
memID (Win-95): the memory ID of the allocated system DMA memory. 
In Windows 95 environment, before calling 
W_7300_DO_DMA_Start, W_7300_Alloc_DMA_Mem must 
be called to allocate a DMA memory. 
W_7300_Alloc_DMA_Mem will return a memory ID for 
identifying the allocated DMA memory, as well as 
the linear address of the DMA memory for user to 
access the data. So you should write the output 
data to this memory before calling 
W_7300_DO_DMA_Start. 
buff (DOS):
If repeat is set as 0, this is the start address 
of the memory buffer to store the DO data. If 
repeat is set as 1, this argument is of no use. 
** This memory should be double-word alignment
count:
For non-chaining mode, this is the total number
of digital output data in double-words (4-byte). 
The value of count can not exceed 2^21 (about 2 
million). For chaining mode, please set this 
argument as 0. The number of digital output is 
determined by the information in DMA descriptor 
nodes. 
repeat (DOS): 0: Use non-chaining mode DMA transfer. The
digital output data is stored in buff.
1: Use chaining mode DMA transfer. The digital 
output data is stored in several buffers. The 
information of the buffers is stored in DMA 
description nodes. All description nodes are 
chained together.
dma_dscr_ptr (DOS):
the pointer to the first DMA
description node. Since the DMA description nodes 
are chained together, with giving this pointer, 
data in all buffers will be transferred. 
@ Return Code
NoError 
PCICardNumErr 
PCICardNotInit 
DMATransferNotAllowed 
InvalidDIOCount 
BufNotDWordAlign 
DMADscrBadAlign