/* This file includes all the internal equates and prototypes for the Soundscape digital audio driver. */ #include "driver.h" /* Ensoniq gate-array chip defines ... */ #define ODIE 0 /* ODIE gate array */ #define OPUS 1 /* OPUS gate array */ #define MMIC 2 /* MiMIC gate array */ /* relevant direct register defines - offsets from base address */ #define GA_HOSTCTL_OFF 2 /* host port ctrl/stat reg */ #define GA_ADDR_OFF 4 /* indirect address reg */ #define GA_DATA_OFF 5 /* indirect data reg */ #define GA_CODEC_OFF 8 /* for some boards CoDec is fixed from base */ /* relevant indirect register defines */ #define GA_DMAB_REG 3 /* DMA chan B assign reg */ #define GA_INTCFG_REG 4 /* interrupt configuration reg */ #define GA_DMACFG_REG 5 /* DMA configuration reg */ #define GA_CDCFG_REG 6 /* CD-ROM/CoDec config reg */ #define GA_HMCTL_REG 9 /* host master control reg */ /* AD-1848 or compatible CoDec defines ... */ /* relevant direct register defines - offsets from base */ #define CD_ADDR_OFF 0 /* indirect address reg */ #define CD_DATA_OFF 1 /* indirect data reg */ #define CD_STATUS_OFF 2 /* status register */ /* relevant indirect register defines */ #define CD_ADCL_REG 0 /* left DAC input control reg */ #define CD_ADCR_REG 1 /* right DAC input control reg */ #define CD_CDAUXL_REG 2 /* left DAC output control reg */ #define CD_CDAUXR_REG 3 /* right DAC output control reg */ #define CD_DACL_REG 6 /* left DAC output control reg */ #define CD_DACR_REG 7 /* right DAC output control reg */ #define CD_FORMAT_REG 8 /* clock and data format reg */ #define CD_CONFIG_REG 9 /* interface config register */ #define CD_PINCTL_REG 10 /* external pin control reg */ #define CD_UCOUNT_REG 14 /* upper count reg */ #define CD_LCOUNT_REG 15 /* lower count reg */ #define CD_MODE_CHANGE 0x40 /* mode change mask for addr reg */ /* some miscellaneous defines ... */ #define DMAC_SINGLE_OUT 0x48 /* DMA controller mode - single buffer, out */ #define DMAC_AUTO_OUT 0x58 /* DMA controller mode - auto-restart, out */ #define DMAC_SINGLE_IN 0x44 /* DMA controller mode - single buffer, in */ #define DMAC_AUTO_IN 0x54 /* DMA controller mode - auto-restart, in */ /* Some TypeDefs ... */ typedef struct { /* DMA controller registers ... */ int addr; /* address register, lower/upper */ int count; /* address register, lower/upper */ int status; /* status register */ int mask; /* single channel mask register */ int mode; /* mode register */ int clrff; /* clear flip-flop register */ int page; /* fixed page register */ } DMAC_REGS; /* prototypes for internal driver functions */ int GaRead(WORD); void GaWrite(WORD, int); int CdRead(WORD); void CdWrite(WORD, int); int SetFormat(WORD, int, int); int GetConfigEntry(char *, char *, FILE *); void interrupt far WaveIsr();