📄 8010.h
字号:
#define TCBS_BUFFSIZE_64K 0x00000002#define TCBS_BUFFSIZE_128K 0x00000003#define TCBS_BUFFSIZE_256K 0x00000004#define TCBS_BUFFSIZE_512K 0x00000005#define TCBS_BUFFSIZE_1024K 0x00000006#define TCBS_BUFFSIZE_2048K 0x00000007#define MICBA 0x45 /* AC97 microphone buffer address register */#define MICBA_MASK 0xfffff000 /* 20 bit base address */#define ADCBA 0x46 /* ADC buffer address register */#define ADCBA_MASK 0xfffff000 /* 20 bit base address */#define FXBA 0x47 /* FX Buffer Address */#define FXBA_MASK 0xfffff000 /* 20 bit base address */#define MICBS 0x49 /* Microphone buffer size register */#define ADCBS 0x4a /* ADC buffer size register */#define FXBS 0x4b /* FX buffer size register *//* The following mask values define the size of the ADC, MIX and FX buffers in bytes */#define ADCBS_BUFSIZE_NONE 0x00000000#define ADCBS_BUFSIZE_384 0x00000001#define ADCBS_BUFSIZE_448 0x00000002#define ADCBS_BUFSIZE_512 0x00000003#define ADCBS_BUFSIZE_640 0x00000004#define ADCBS_BUFSIZE_768 0x00000005#define ADCBS_BUFSIZE_896 0x00000006#define ADCBS_BUFSIZE_1024 0x00000007#define ADCBS_BUFSIZE_1280 0x00000008#define ADCBS_BUFSIZE_1536 0x00000009#define ADCBS_BUFSIZE_1792 0x0000000a#define ADCBS_BUFSIZE_2048 0x0000000b#define ADCBS_BUFSIZE_2560 0x0000000c#define ADCBS_BUFSIZE_3072 0x0000000d#define ADCBS_BUFSIZE_3584 0x0000000e#define ADCBS_BUFSIZE_4096 0x0000000f#define ADCBS_BUFSIZE_5120 0x00000010#define ADCBS_BUFSIZE_6144 0x00000011#define ADCBS_BUFSIZE_7168 0x00000012#define ADCBS_BUFSIZE_8192 0x00000013#define ADCBS_BUFSIZE_10240 0x00000014#define ADCBS_BUFSIZE_12288 0x00000015#define ADCBS_BUFSIZE_14366 0x00000016#define ADCBS_BUFSIZE_16384 0x00000017#define ADCBS_BUFSIZE_20480 0x00000018#define ADCBS_BUFSIZE_24576 0x00000019#define ADCBS_BUFSIZE_28672 0x0000001a#define ADCBS_BUFSIZE_32768 0x0000001b#define ADCBS_BUFSIZE_40960 0x0000001c#define ADCBS_BUFSIZE_49152 0x0000001d#define ADCBS_BUFSIZE_57344 0x0000001e#define ADCBS_BUFSIZE_65536 0x0000001f#define CDCS 0x50 /* CD-ROM digital channel status register */#define GPSCS 0x51 /* General Purpose SPDIF channel status register*/#define DBG 0x52 /* DO NOT PROGRAM THIS REGISTER!!! MAY DESTROY CHIP *//* definitions for debug register - taken from the alsa drivers */#define DBG_ZC 0x80000000 /* zero tram counter */#define DBG_SATURATION_OCCURED 0x02000000 /* saturation control */#define DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */#define DBG_SINGLE_STEP 0x00008000 /* single step mode */#define DBG_STEP 0x00004000 /* start single step */#define DBG_CONDITION_CODE 0x00003e00 /* condition code */#define DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */#define REG53 0x53 /* DO NOT PROGRAM THIS REGISTER!!! MAY DESTROY CHIP */#define A_DBG 0x53#define A_DBG_SINGLE_STEP 0x00020000 /* Set to zero to start dsp */#define A_DBG_ZC 0x40000000 /* zero tram counter */#define A_DBG_STEP_ADDR 0x000003ff#define A_DBG_SATURATION_OCCURED 0x20000000#define A_DBG_SATURATION_ADDR 0x0ffc0000#define SPCS0 0x54 /* SPDIF output Channel Status 0 register */#define SPCS1 0x55 /* SPDIF output Channel Status 1 register */#define SPCS2 0x56 /* SPDIF output Channel Status 2 register */#define SPCS_CLKACCYMASK 0x30000000 /* Clock accuracy */#define SPCS_CLKACCY_1000PPM 0x00000000 /* 1000 parts per million */#define SPCS_CLKACCY_50PPM 0x10000000 /* 50 parts per million */#define SPCS_CLKACCY_VARIABLE 0x20000000 /* Variable accuracy */#define SPCS_SAMPLERATEMASK 0x0f000000 /* Sample rate */#define SPCS_SAMPLERATE_44 0x00000000 /* 44.1kHz sample rate */#define SPCS_SAMPLERATE_48 0x02000000 /* 48kHz sample rate */#define SPCS_SAMPLERATE_32 0x03000000 /* 32kHz sample rate */#define SPCS_CHANNELNUMMASK 0x00f00000 /* Channel number */#define SPCS_CHANNELNUM_UNSPEC 0x00000000 /* Unspecified channel number */#define SPCS_CHANNELNUM_LEFT 0x00100000 /* Left channel */#define SPCS_CHANNELNUM_RIGHT 0x00200000 /* Right channel */#define SPCS_SOURCENUMMASK 0x000f0000 /* Source number */#define SPCS_SOURCENUM_UNSPEC 0x00000000 /* Unspecified source number */#define SPCS_GENERATIONSTATUS 0x00008000 /* Originality flag (see IEC-958 spec) */#define SPCS_CATEGORYCODEMASK 0x00007f00 /* Category code (see IEC-958 spec) */#define SPCS_MODEMASK 0x000000c0 /* Mode (see IEC-958 spec) */#define SPCS_EMPHASISMASK 0x00000038 /* Emphasis */#define SPCS_EMPHASIS_NONE 0x00000000 /* No emphasis */#define SPCS_EMPHASIS_50_15 0x00000008 /* 50/15 usec 2 channel */#define SPCS_COPYRIGHT 0x00000004 /* Copyright asserted flag -- do not modify */#define SPCS_NOTAUDIODATA 0x00000002 /* 0 = Digital audio, 1 = not audio */#define SPCS_PROFESSIONAL 0x00000001 /* 0 = Consumer (IEC-958), 1 = pro (AES3-1992) *//* The 32-bit CLIx and SOLx registers all have one bit per channel control/status */#define CLIEL 0x58 /* Channel loop interrupt enable low register */#define CLIEH 0x59 /* Channel loop interrupt enable high register */#define CLIPL 0x5a /* Channel loop interrupt pending low register */#define CLIPH 0x5b /* Channel loop interrupt pending high register */#define SOLEL 0x5c /* Stop on loop enable low register */#define SOLEH 0x5d /* Stop on loop enable high register */#define SPBYPASS 0x5e /* SPDIF BYPASS mode register */#define SPBYPASS_ENABLE 0x00000001 /* Enable SPDIF bypass mode */#define AC97SLOT 0x5f /* additional AC97 slots enable bits */#define AC97SLOT_CNTR 0x10 /* Center enable */#define AC97SLOT_LFE 0x20 /* LFE enable */#define CDSRCS 0x60 /* CD-ROM Sample Rate Converter status register */#define GPSRCS 0x61 /* General Purpose SPDIF sample rate cvt status */#define ZVSRCS 0x62 /* ZVideo sample rate converter status */ /* NOTE: This one has no SPDIFLOCKED field */ /* Assumes sample lock *//* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */#define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */#define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */#define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. *//* Note that these values can vary +/- by a small amount */#define SRCS_SPDIFRATE_44 0x0003acd9#define SRCS_SPDIFRATE_48 0x00040000#define SRCS_SPDIFRATE_96 0x00080000#define MICIDX 0x63 /* Microphone recording buffer index register */#define MICIDX_MASK 0x0000ffff /* 16-bit value */#define MICIDX_IDX 0x10000063#define A_ADCIDX 0x63#define A_ADCIDX_IDX 0x10000063#define ADCIDX 0x64 /* ADC recording buffer index register */#define ADCIDX_MASK 0x0000ffff /* 16 bit index field */#define ADCIDX_IDX 0x10000064#define FXIDX 0x65 /* FX recording buffer index register */#define FXIDX_MASK 0x0000ffff /* 16-bit value */#define FXIDX_IDX 0x10000065/* This is the MPU port on the card (via the game port) */#define A_MUDATA1 0x70#define A_MUCMD1 0x71#define A_MUSTAT1 A_MUCMD1/* This is the MPU port on the Audigy Drive */#define A_MUDATA2 0x72#define A_MUCMD2 0x73#define A_MUSTAT2 A_MUCMD2 /* The next two are the Audigy equivalent of FXWC *//* the Audigy can record any output (16bit, 48kHz, up to 64 channel simultaneously) *//* Each bit selects a channel for recording */#define A_FXWC1 0x74 /* Selects 0x7f-0x60 for FX recording */#define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */#define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */#define A_SPDIF_48000 0x00000080#define A_SPDIF_44100 0x00000000#define A_SPDIF_96000 0x00000040#define A_FXRT2 0x7c#define A_FXRT_CHANNELE 0x0000003f /* Effects send bus number for channel's effects send E */#define A_FXRT_CHANNELF 0x00003f00 /* Effects send bus number for channel's effects send F */#define A_FXRT_CHANNELG 0x003f0000 /* Effects send bus number for channel's effects send G */#define A_FXRT_CHANNELH 0x3f000000 /* Effects send bus number for channel's effects send H */#define A_SENDAMOUNTS 0x7d#define A_FXSENDAMOUNT_E_MASK 0xff000000#define A_FXSENDAMOUNT_F_MASK 0x00ff0000#define A_FXSENDAMOUNT_G_MASK 0x0000ff00#define A_FXSENDAMOUNT_H_MASK 0x000000ff/* The send amounts for this one are the same as used with the emu10k1 */#define A_FXRT1 0x7e#define A_FXRT_CHANNELA 0x0000003f#define A_FXRT_CHANNELB 0x00003f00#define A_FXRT_CHANNELC 0x003f0000#define A_FXRT_CHANNELD 0x3f000000/* Each FX general purpose register is 32 bits in length, all bits are used */#define FXGPREGBASE 0x100 /* FX general purpose registers base */#define A_FXGPREGBASE 0x400 /* Audigy GPRs, 0x400 to 0x5ff *//* Tank audio data is logarithmically compressed down to 16 bits before writing to TRAM and is *//* decompressed back to 20 bits on a read. There are a total of 160 locations, the last 32 *//* locations are for external TRAM. */#define TANKMEMDATAREGBASE 0x200 /* Tank memory data registers base */#define TANKMEMDATAREG_MASK 0x000fffff /* 20 bit tank audio data field *//* Combined address field and memory opcode or flag field. 160 locations, last 32 are external */#define TANKMEMADDRREGBASE 0x300 /* Tank memory address registers base */#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */#define MICROCODEBASE 0x400 /* Microcode data base address *//* Each DSP microcode instruction is mapped into 2 doublewords *//* NOTE: When writing, always write the LO doubleword first. Reads can be in either order. */#define LOWORD_OPX_MASK 0x000ffc00 /* Instruction operand X */#define LOWORD_OPY_MASK 0x000003ff /* Instruction operand Y */#define HIWORD_OPCODE_MASK 0x00f00000 /* Instruction opcode */#define HIWORD_RESULT_MASK 0x000ffc00 /* Instruction result */#define HIWORD_OPA_MASK 0x000003ff /* Instruction operand A *//* Audigy Soundcard have a different instruction format */#define AUDIGY_CODEBASE 0x600#define A_LOWORD_OPY_MASK 0x000007ff #define A_LOWORD_OPX_MASK 0x007ff000#define A_HIWORD_OPCODE_MASK 0x0f000000#define A_HIWORD_RESULT_MASK 0x007ff000#define A_HIWORD_OPA_MASK 0x000007ff#endif /* _8010_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -