4 * $FreeBSD: src/sys/i386/isa/sound/sbcard.h,v 1.4 1999/12/27 04:37:19 tanimura Exp $
8 extern int sbc_major, sbc_minor ;
10 * sound blaster registers
14 #define DSP_RESET (sbc_base + 0x600)
15 #define DSP_READ (sbc_base + 0xA00)
16 #define DSP_WRITE (sbc_base + 0xC00)
17 #define DSP_COMMAND (sbc_base + 0xC00)
18 #define DSP_STATUS (sbc_base + 0xC00)
19 #define DSP_DATA_AVAIL (sbc_base + 0xE00)
20 #define DSP_DATA_AVL16 (sbc_base + 0xF00)
21 #define MIXER_ADDR (sbc_base + 0x400)
22 #define MIXER_DATA (sbc_base + 0x500)
23 #define OPL3_LEFT (sbc_base + 0x000)
24 #define OPL3_RIGHT (sbc_base + 0x200)
25 #define OPL3_BOTH (sbc_base + 0x800)
27 #define DSP_RESET (sbc_base + 0x6)
28 #define DSP_READ (sbc_base + 0xA)
29 #define DSP_WRITE (sbc_base + 0xC)
30 #define DSP_COMMAND (sbc_base + 0xC)
31 #define DSP_STATUS (sbc_base + 0xC)
32 #define DSP_DATA_AVAIL (sbc_base + 0xE)
33 #define DSP_DATA_AVL16 (sbc_base + 0xF)
34 #define MIXER_ADDR (sbc_base + 0x4)
35 #define MIXER_DATA (sbc_base + 0x5)
36 #define OPL3_LEFT (sbc_base + 0x0)
37 #define OPL3_RIGHT (sbc_base + 0x2)
38 #define OPL3_BOTH (sbc_base + 0x8)
42 * DSP Commands. There are many, and in many cases they are used explicitly
45 #define DSP_CMD_SPKON 0xD1
46 #define DSP_CMD_SPKOFF 0xD3
47 #define DSP_CMD_DMAON 0xD0 /* ??? the comment says Halt DMA */
48 #define DSP_CMD_DMAOFF 0xD4 /* ??? comment says continue dma */
50 #define DSP_CMD_DMAHALT 0xD0
51 #define DSP_CMD_TCONST 0x40 /* set time constant */
52 #define DSP_CMD_HSSIZE 0x48 /* high speed dma count */
53 #define DSP_CMD_HSDAC 0x91 /* high speed dac */
54 #define DSP_CMD_HSADC 0x99 /* high speed adc */
55 #define DSP_CMD_DAC8 0x14 /* 8-bit dac (dma count) */
56 #define DSP_CMD_ADC8 0x24 /* 8-bit adc (dma count) */
58 #define DSP_CMD_GETVER 0xE1
59 #define DSP_CMD_GETID 0xE7 /* return id bytes */
61 #if 0 /*** unknown ***/
66 #define IMODE_OUTPUT PCM_ENABLE_OUTPUT
67 #define IMODE_INPUT PCM_ENABLE_INPUT