📄 emu10k1.h
字号:
#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) *//* 0x57: Not used *//* 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_SPDIF0_MASK 0x00000003 /* SPDIF 0 bypass mode */#define SPBYPASS_SPDIF1_MASK 0x0000000c /* SPDIF 1 bypass mode *//* bypass mode: 0 - DSP; 1 - SPDIF A, 2 - SPDIF B, 3 - SPDIF C */#define SPBYPASS_FORMAT 0x00000f00 /* If 1, SPDIF XX uses 24 bit, if 0 - 20 bit */#define AC97SLOT 0x5f /* additional AC97 slots enable bits */#define AC97SLOT_REAR_RIGHT 0x01 /* Rear left */#define AC97SLOT_REAR_LEFT 0x02 /* Rear right */#define AC97SLOT_CNTR 0x10 /* Center enable */#define AC97SLOT_LFE 0x20 /* LFE enable *//* PCB Revision */#define A_PCB 0x5f// NOTE: 0x60,61,62: 64-bit#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_SPDIFVALID 0x04000000 /* SPDIF stream valid */#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 ADCIDX 0x64 /* ADC recording buffer index register */#define ADCIDX_MASK 0x0000ffff /* 16 bit index field */#define ADCIDX_IDX 0x10000064#define A_ADCIDX 0x63#define A_ADCIDX_IDX 0x10000063#define A_MICIDX 0x64#define A_MICIDX_IDX 0x10000064#define FXIDX 0x65 /* FX recording buffer index register */#define FXIDX_MASK 0x0000ffff /* 16-bit value */#define FXIDX_IDX 0x10000065/* The 32-bit HLIx and HLIPx registers all have one bit per channel control/status */#define HLIEL 0x66 /* Channel half loop interrupt enable low register */#define HLIEH 0x67 /* Channel half loop interrupt enable high register */#define HLIPL 0x68 /* Channel half loop interrupt pending low register */#define HLIPH 0x69 /* Channel half loop interrupt pending high register *//* S/PDIF Host Record Index (bypasses SRC) */#define A_SPRI 0x6a/* S/PDIF Host Record Address */#define A_SPRA 0x6b/* S/PDIF Host Record Control */#define A_SPRC 0x6c/* Delayed Interrupt Counter & Enable */#define A_DICE 0x6d/* Tank Table Base */#define A_TTB 0x6e/* Tank Delay Offset */#define A_TDOF 0x6f/* 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 *//* Extended Hardware Control */#define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */#define A_SAMPLE_RATE 0x76 /* Various sample rate settings. */#define A_SAMPLE_RATE_NOT_USED 0x0ffc111e /* Bits that are not used and cannot be set. */#define A_SAMPLE_RATE_UNKNOWN 0xf0030001 /* Bits that can be set, but have unknown use. */#define A_SPDIF_RATE_MASK 0x000000e0 /* Any other values for rates, just use 48000 */#define A_SPDIF_48000 0x00000000#define A_SPDIF_192000 0x00000020#define A_SPDIF_96000 0x00000040#define A_SPDIF_44100 0x00000080#define A_I2S_CAPTURE_RATE_MASK 0x00000e00 /* This sets the capture PCM rate, but it is */#define A_I2S_CAPTURE_48000 0x00000000 /* unclear if this sets the ADC rate as well. */#define A_I2S_CAPTURE_192000 0x00000200#define A_I2S_CAPTURE_96000 0x00000400#define A_I2S_CAPTURE_44100 0x00000800#define A_PCM_RATE_MASK 0x0000e000 /* This sets the playback PCM rate on the P16V */#define A_PCM_48000 0x00000000#define A_PCM_192000 0x00002000#define A_PCM_96000 0x00004000#define A_PCM_44100 0x00008000/* I2S0 Sample Rate Tracker Status */#define A_SRT3 0x77/* I2S1 Sample Rate Tracker Status */#define A_SRT4 0x78/* I2S2 Sample Rate Tracker Status */#define A_SRT5 0x79/* - default to 0x01080000 on my audigy 2 ZS --rlrevell *//* Tank Table DMA Address */#define A_TTDA 0x7a/* Tank Table DMA Data */#define A_TTDD 0x7b#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/* 0x7c, 0x7e "high bit is used for filtering" */ /* 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/* 0x7f: Not used *//* 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 */#define A_TANKMEMCTLREGBASE 0x100 /* Tank memory control registers base - only for Audigy */#define A_TANKMEMCTLREG_MASK 0x1f /* only 5 bits used - only for Audigy *//* 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 A_MICROCODEBASE 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/************************************************************************************************//* EMU1010m HANA FPGA registers *//************************************************************************************************/#define EMU_HANA_DESTHI 0x00 /* 0000xxx 3 bits Link Destination */#define EMU_HANA_DESTLO 0x01 /* 00xxxxx 5 bits */#define EMU_HANA_SRCHI 0x02 /* 0000xxx 3 bits Link Source */#define EMU_HANA_SRCLO 0x03 /* 00xxxxx 5 bits */#define EMU_HANA_DOCK_PWR 0x04 /* 000000x 1 bits Audio Dock power */#define EMU_HANA_DOCK_PWR_ON 0x01 /* Audio Dock power on */#define EMU_HANA_WCLOCK 0x05 /* 0000xxx 3 bits Word Clock source select */ /* Must be written after power on to reset DLL */ /* One is unable to detect the Audio dock without this */#define EMU_HANA_WCLOCK_SRC_MASK 0x07#define EMU_HANA_WCLOCK_INT_48K 0x00#define EMU_HANA_WCLOCK_INT_44_1K 0x01#define EMU_HANA_WCLOCK_HANA_SPDIF_IN 0x02#define EMU_HANA_WCLOCK_HANA_ADAT_IN 0x03#define EMU_HANA_WCLOCK_SYNC_BNCN 0x04#define EMU_HANA_WCLOCK_2ND_HANA 0x05#define EMU_HANA_WCLOCK_SRC_RESERVED 0x06#define EMU_HANA_WCLOCK_OFF 0x07 /* For testing, forces fallback to DEFCLOCK */#define EMU_HANA_WCLOCK_MULT_MASK 0x18#define EMU_HANA_WCLOCK_1X 0x00#define EMU_HANA_WCLOCK_2X 0x08#define EMU_HANA_WCLOCK_4X 0x10#define EMU_HANA_WCLOCK_MULT_RESERVED 0x18#define EMU_HANA_DEFCLOCK 0x06 /* 000000x 1 bits Default Word Clock */#define EMU_HANA_DEFCLOCK_48K 0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -