Listing 8 (dma.h) Header File Containing Basic Number defs and Function Prototypes for Working with the DMA Controller

/*****************************************************

       Copyright Don Bradley, 1991.

       Permission is granted for used of these routines
       in any manner as long as this copyright notice is
       included.

       Tested using Quick C 2.5 and MSC 6.0 on a
       Toshiba T5200.

*****************************************************/

#define TRUE       1
#define FALSE      0

/* mask defines */
#define DMA_ENABLE              0x00
#define DMA_DISABLE             0x04
#define DMA_DEMAND_MODE         0x00
#define DMA_SINGLE_MODE         0x40
#define DMA_ADDRESS_INC         0x00
#define DMA_ADDRESS_DEC         0x20
#define DMA_CONTINUOUS_ENABLE   0x10
#define DMA_CONTINUOUS_DISABLE  0x00
#define DMA_ADC_TRANSFER        0x04
#define DMA_DAC_TRANSFER        0x08

int dma(int dma_channel, int mode, int far *buffer,
       unsigned int buffer_len);
void disable_dma(int chan);
void enable_dma(int chan);
int far *alloc_dma_buffer(int dma_chn,
       unsigned int size);
void free_dma_buffer(int dma_chn);

/* End of File */