#define GUS_IOH4_OFFSET 0x100
#define GUS_NPORT4 2
#define GUS_MIDI_CONTROL (0x100-GUS_IOH4_OFFSET)
#define GUS_MIDI_STATUS (0x100-GUS_IOH4_OFFSET)
#define GUS_MIDI_READ (0x101-GUS_IOH4_OFFSET)
#define GUS_MIDI_WRITE (0x101-GUS_IOH4_OFFSET)
#define GUS_JOYSTICK 0x201
#define GUS_MIX_CONTROL 0x000
#define GUS_IRQ_STATUS 0x006
#define GUS_TIMER_CONTROL 0x008
#define GUS_TIMER_DATA 0x009
#define GUS_REG_CONTROL 0x00f
#define GUS_REG_NORMAL 0x00
#define GUS_REG_IRQCTL 0x05
#define GUS_REG_JUMPER 0x06
#define GUS_JUMPER_MIDIEN 0x02
#define GUS_JUMPER_JOYEN 0x04
#define GUS_IRQ_CONTROL 0x00b
#define GUS_DMA_CONTROL 0x00b
#define GUS_IRQCTL_CONTROL 0x00b
#define GUS_JUMPER_CONTROL 0x00b
#define GUS_NPORT1 16
#define GUS_IOH2_OFFSET 0x102
#define GUS_VOICE_SELECT (0x102-GUS_IOH2_OFFSET)
#define GUS_REG_SELECT (0x103-GUS_IOH2_OFFSET)
#define GUS_DATA_LOW (0x104-GUS_IOH2_OFFSET)
#define GUS_DATA_HIGH (0x105-GUS_IOH2_OFFSET)
#define GUS_DRAM_DATA (0x107-GUS_IOH2_OFFSET)
#define GUS_NPORT2 6
#define GUSREG_DMA_CONTROL 0x41
#define GUSREG_DMA_START 0x42
#define GUSREG_DRAM_ADDR_LOW 0x43
#define GUSREG_DRAM_ADDR_HIGH 0x44
#define GUSREG_TIMER_CONTROL 0x45
#define GUSREG_TIMER1_COUNT 0x46
#define GUSREG_TIMER2_COUNT 0x47
#define GUSREG_SAMPLE_FREQ 0x48
#define GUSREG_SAMPLE_CONTROL 0x49
#define GUSREG_JOYSTICK_TRIM 0x4b
#define GUSREG_RESET 0x4c
#define GUSREG_READ 0x80
#define GUSREG_VOICE_CNTL 0x00
#define GUSREG_FREQ_CONTROL 0x01
#define GUSREG_START_ADDR_HIGH 0x02
#define GUSREG_START_ADDR_LOW 0x03
#define GUSREG_END_ADDR_HIGH 0x04
#define GUSREG_END_ADDR_LOW 0x05
#define GUSREG_VOLUME_RATE 0x06
#define GUSREG_START_VOLUME 0x07
#define GUSREG_END_VOLUME 0x08
#define GUSREG_CUR_VOLUME 0x09
#define GUSREG_CUR_ADDR_HIGH 0x0a
#define GUSREG_CUR_ADDR_LOW 0x0b
#define GUSREG_PAN_POS 0x0c
#define GUSREG_VOLUME_CONTROL 0x0d
#define GUSREG_ACTIVE_VOICES 0x0e
#define GUSREG_IRQ_STATUS 0x8f
#define GUS_PAN_FULL_LEFT 0x0
#define GUS_PAN_FULL_RIGHT 0xf
#define GUSMASK_MASTER_RESET 0x01
#define GUSMASK_DAC_ENABLE 0x02
#define GUSMASK_IRQ_ENABLE 0x04
#define GUSMASK_IRQ_MIDIXMIT 0x01
#define GUSMASK_IRQ_MIDIRCVR 0x02
#define GUSMASK_IRQ_TIMER1 0x04
#define GUSMASK_IRQ_TIMER2 0x08
#define GUSMASK_IRQ_RESERVED 0x10
#define GUSMASK_IRQ_VOICE 0x20
#define GUSMASK_IRQ_VOLUME 0x40
#define GUSMASK_IRQ_DMATC 0x80
#define GUSMASK_SAMPLE_START 0x01
#define GUSMASK_SAMPLE_STEREO 0x02
#define GUSMASK_SAMPLE_DATA16 0x04
#define GUSMASK_SAMPLE_IRQ 0x20
#define GUSMASK_SAMPLE_DMATC 0x40
#define GUSMASK_SAMPLE_INVBIT 0x80
#define GUSMASK_WIRQ_VOLUME 0x40
#define GUSMASK_WIRQ_VOICE 0x80
#define GUSMASK_WIRQ_VOICEMASK 0x1f
#define GUSMASK_LINE_IN 0x01
#define GUSMASK_LINE_OUT 0x02
#define GUSMASK_MIC_IN 0x04
#define GUSMASK_LATCHES 0x08
#define GUSMASK_COMBINE 0x10
#define GUSMASK_MIDI_LOOPBACK 0x20
#define GUSMASK_CONTROL_SEL 0x40
#define GUSMASK_BOTH_RQ 0x40
#define GUSMASK_DMA_ENABLE 0x01
#define GUSMASK_DMA_READ 0x02
#define GUSMASK_DMA_WRITE 0x00
#define GUSMASK_DMA_WIDTH 0x04
#define GUSMASK_DMA_R0 0x00
#define GUSMASK_DMA_R1 0x08
#define GUSMASK_DMA_R2 0x10
#define GUSMASK_DMA_R3 0x18
#define GUSMASK_DMA_IRQ 0x20
#define GUSMASK_DMA_IRQPEND 0x40
#define GUSMASK_DMA_DATA_SIZE 0x40
#define GUSMASK_DMA_INVBIT 0x80
#define GUSMASK_VOICE_STOPPED 0x01
#define GUSMASK_STOP_VOICE 0x02
#define GUSMASK_DATA_SIZE16 0x04
#define GUSMASK_LOOP_ENABLE 0x08
#define GUSMASK_VOICE_BIDIR 0x10
#define GUSMASK_VOICE_IRQ 0x20
#define GUSMASK_INCR_DIR 0x40
#define GUSMASK_VOICE_IRQPEND 0x80
#define GUSMASK_VOLUME_STOPPED 0x01
#define GUSMASK_STOP_VOLUME 0x02
#define GUSMASK_VOICE_ROLL 0x04
#define GUSMASK_VOLUME_LOOP 0x08
#define GUSMASK_VOLUME_BIDIR 0x10
#define GUSMASK_VOLUME_IRQ 0x20
#define GUSMASK_VOLUME_DIR 0x40
#define GUSMASK_VOLUME_IRQPEND 0x80
#define MIDI_RESET 0x03
#define GUS_IOH3_OFFSET 0x506
#define GUS_NPORT3 1
#define GUS_MIXER_SELECT (0x506-GUS_IOH3_OFFSET)
#define GUS_BOARD_REV (0x506-GUS_IOH3_OFFSET)
#define GUS_MIXER_DATA (0x106-GUS_IOH2_OFFSET)
#define GUSMIX_CHAN_MIC ICSMIX_CHAN_0
#define GUSMIX_CHAN_LINE ICSMIX_CHAN_1
#define GUSMIX_CHAN_CD ICSMIX_CHAN_2
#define GUSMIX_CHAN_DAC ICSMIX_CHAN_3
#define GUSMIX_CHAN_MASTER ICSMIX_CHAN_5
#define GUS_MAX_CODEC_BASE 0x10C
#define GUS_DAUGHTER_CODEC_BASE 0x530
#define GUS_DAUGHTER_CODEC_BASE2 0x604
#define GUS_DAUGHTER_CODEC_BASE3 0xE80
#define GUS_DAUGHTER_CODEC_BASE4 0xF40
#define GUS_CODEC_SELECT 0
#define GUS_CODEC_DATA 1
#define GUS_CODEC_STATUS 2
#define GUS_CODEC_PIO 3
#define GUS_MAX_CTRL 0x106
#define GUS_MAX_BASEBITS 0xf
#define GUS_MAX_RECCHAN16 0x10
#define GUS_MAX_PLAYCHAN16 0x20
#define GUS_MAX_CODEC_ENABLE 0x40