User`s guide

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