/***** dma.h ********************************************************* * (c) 2010 CTA Systems Inc. All rights reserved. Glory To God * * * * Direct Memory Access (DMA) Routines * * =================================== * * * ************************************************************ cta os */ #ifndef __DMA__H__ #define __DMA__H__ enum DMA_MODE_REG_MASK { DMA_MODE_MASK_SEL = 3, DMA_MODE_MASK_TRA = 0xc, DMA_MODE_SELF_TEST = 0, DMA_MODE_READ_TRANSFER = 4, DMA_MODE_WRITE_TRANSFER = 8, DMA_MODE_MASK_AUTO = 0x10, DMA_MODE_MASK_IDEC = 0x20, DMA_MODE_MASK = 0xc0, DMA_MODE_TRANSFER_ON_DEMAND = 0, DMA_MODE_TRANSFER_SINGLE = 0x40, DMA_MODE_TRANSFER_BLOCK = 0x80, DMA_MODE_TRANSFER_CASCADE = 0xC0 }; extern void i86_dma_set_address(unsigned short channel, unsigned char low, unsigned char high); extern void i86_dma_set_count (unsigned short channel, unsigned char low, unsigned char high); extern void i86_dma_set_external_page_registers (unsigned char channel, unsigned char val); extern void i86_dma_mask_channel (unsigned char channel); extern void i86_dma_unmask_channel (unsigned char channel); extern void i86_dma_unmask_all(); extern void i86_dma_reset_flipflop (unsigned char dma); extern void i86_dma_reset (); extern void i86_dma_set_mode(unsigned char channel, unsigned char mode); extern void i86_dma_set_read (unsigned char channel); extern void i86_dma_set_write (unsigned char channel); #endif