#ifndef ZZ9KREG_H
#define ZZ9KREG_H
#define ZZ9K_HW_VER (0x0000)
#define ZZ9K_FW_VER (0x010D)
#define ZZ9K_FW_VER_MIN (0x010D)
#define ZZ9K_MANID (0x6D6E)
#define ZZ9K_PRODID_Z2 (0x0003)
#define ZZ9K_PRODID_Z3 (0x0004)
#define ZZ9K_REG_BASE (0x00000000)
#define ZZ9K_REG_SIZE (0x00002000)
#define ZZ9K_FB_BASE (0x00010000)
#define ZZ9K_FB_SIZE (0x02FF0000)
#define ZZ9K_RX_BASE (0x00002000)
#define ZZ9K_RX_SIZE (0x00002000)
#define ZZ9K_TX_BASE (0x00008000)
#define ZZ9K_TX_SIZE (0x00002000)
#define ZZ9K_COLOR_8BIT (0)
#define ZZ9K_COLOR_16BIT (1)
#define ZZ9K_COLOR_32BIT (2)
#define ZZ9K_COLOR_15BIT (3)
#define ZZ9K_MODE_1280x720 (0)
#define ZZ9K_MODE_800x600 (1)
#define ZZ9K_MODE_640x480 (2)
#define ZZ9K_MODE_1024x768 (3)
#define ZZ9K_MODE_1280x1024 (4)
#define ZZ9K_MODE_1920x1080 (5)
#define ZZ9K_MODE_720x576p50 (6)
#define ZZ9K_MODE_1920x1080p50 (7)
#define ZZ9K_MODE_720x480 (8)
#define ZZ9K_MODE_640x512 (9)
#define ZZ9K_MODE_1600x1200 (10)
#define ZZ9K_MODE_2560x1440p30 (11)
#define ZZ9K_MODE_720x576p50_NS_PAL (12)
#define ZZ9K_MODE_720x480_NS_PAL (13)
#define ZZ9K_MODE_720x576p50_NS_NTSC (14)
#define ZZ9K_MODE_720x480_NS_NTSC (15)
#define ZZ9K_MODE_640x400 (16)
#define ZZ9K_MODE_1920x800 (17)
#define ZZ9K_MODE_COLOR_8BIT (ZZ9K_COLOR_8BIT << 8)
#define ZZ9K_MODE_COLOR_16BIT (ZZ9K_COLOR_16BIT << 8)
#define ZZ9K_MODE_COLOR_32BIT (ZZ9K_COLOR_32BIT << 8)
#define ZZ9K_MODE_COLOR_15BIT (ZZ9K_COLOR_15BIT << 8)
#define ZZ9K_MODE_SCALE_0 (0 << 12)
#define ZZ9K_MODE_SCALE_1 (1 << 12)
#define ZZ9K_MODE_SCALE_2 (2 << 12)
#define ZZ9K_MODE_SCALE_3 (3 << 12)
#define ZZ9K_FEATURE_NONE (0)
#define ZZ9K_FEATURE_SECONDARY_PALETTE (1)
#define ZZ9K_FEATURE_NONSTANDARD_VSYNC (2)
#define ZZ9K_CAPTURE_PAN_NTSC (0x00E00000)
#define ZZ9K_CAPTURE_PAN_PAL (0x00E00000)
#define ZZ9K_CAPTURE_PAN_VGA (0x00DFF2F8)
#define ZZ9K_CAPTURE_OFF (0)
#define ZZ9K_CAPTURE_ON (1)
#define ZZ9K_OP_NOP (0)
#define ZZ9K_OP_PALETTE (3)
#define ZZ9K_OP_VSYNC (5)
#define ZZ9K_PALETTE_SIZE (256)
#define ZZ9K_OPT_REGULAR (1)
#define ZZ90_OPT_NOMASK (2)
#define ZZ9K_VIDEO_CTRL_DATA_HI (0x1000)
#define ZZ9K_VIDEO_CTRL_DATA_LO (0x1002)
#define ZZ9K_VIDEO_CTRL_OP (0x1004)
#define ZZ9K_VIDEO_CAPTURE_MODE (0x1006)
#define ZZ9K_VIDEO_BLANK_STATUS (0x1600)
#define ZZ9K_CONFIG_INT_ETH (1 << 0)
#define ZZ9K_CONFIG_INT_AUDIO (1 << 1)
#define ZZ9K_CONFIG_INT_ACK (1 << 3)
#define ZZ9K_CONFIG_INT_ACK_ETH (1 << 4)
#define ZZ9K_CONFIG_INT_ACK_AUDIO (1 << 5)
#define ZZ9K_AUDIO_CONFIG_INT_AUDIO (1 << 0)
#define ZZ9K_AP_TX_BUF_OFFS_HI (0)
#define ZZ9K_AP_TX_BUF_OFFS_LO (1)
#define ZZ9K_AP_RX_BUF_OFFS_HI (2)
#define ZZ9K_AP_RX_BUF_OFFS_LO (3)
#define ZZ9K_AP_DSP_PROG_OFFS_HI (4)
#define ZZ9K_AP_DSP_PROG_OFFS_LO (5)
#define ZZ9K_AP_DSP_PARAM_OFFS_HI (6)
#define ZZ9K_AP_DSP_PARAM_OFFS_LO (7)
#define ZZ9K_AP_DSP_UPLOAD (8)
#define ZZ9K_AP_DSP_SET_LOWPASS (9)
#define ZZ9K_AP_DSP_SET_VOLUMES (10)
#define ZZ9K_AP_DSP_SET_PREFACTOR (11)
#define ZZ9K_AP_DSP_SET_EQ_BAND1 (12)
#define ZZ9K_AP_DSP_SET_EQ_BAND2 (13)
#define ZZ9K_AP_DSP_SET_EQ_BAND3 (14)
#define ZZ9K_AP_DSP_SET_EQ_BAND4 (15)
#define ZZ9K_AP_DSP_SET_EQ_BAND5 (16)
#define ZZ9K_AP_DSP_SET_EQ_BAND6 (17)
#define ZZ9K_AP_DSP_SET_EQ_BAND7 (18)
#define ZZ9K_AP_DSP_SET_EQ_BAND8 (29)
#define ZZ9K_AP_DSP_SET_EQ_BAND9 (20)
#define ZZ9K_AP_DSP_SET_EQ_BAND10 (21)
#define ZZ9K_AP_DSP_SET_STEREO_VOLUME (22)
#define ZZ9K_DP_DECODE_CLEAR (0)
#define ZZ9K_DP_DECODE_INIT (1)
#define ZZ9K_DP_DECODE_RUN (2)
#define ZZ9K_HW_VERSION 0x00
#define ZZ9K_MODE 0x02
#define ZZ9K_CONFIG 0x04
#define ZZ9K_SPRITE_X 0x06
#define ZZ9K_SPRITE_Y 0x08
#define ZZ9K_PAN_PTR_HI 0x0A
#define ZZ9K_PAN_PTR_LO 0x0C
#define ZZ9K_VIDEOCAP_VMODE 0x0E
#define ZZ9K_BLITTER_X1 0x10
#define ZZ9K_BLITTER_Y1 0x12
#define ZZ9K_BLITTER_X2 0x14
#define ZZ9K_BLITTER_Y2 0x16
#define ZZ9K_BLITTER_ROW_PITCH 0x18
#define ZZ9K_BLITTER_X3 0x1A
#define ZZ9K_BLITTER_Y3 0x1C
#define ZZ9K_BLITTER_RGB_HI 0x1E
#define ZZ9K_BLITTER_RGB_LO 0x20
#define ZZ9K_BLITTER_OP_FILLRECT 0x22
#define ZZ9K_BLITTER_OP_COPYRECT 0x24
#define ZZ9K_BLITTER_OP_FILLTEMPLATE 0x26
#define ZZ9K_BLITTER_SRC_HI 0x28
#define ZZ9K_BLITTER_SRC_LO 0x2A
#define ZZ9K_BLITTER_DST_HI 0x2C
#define ZZ9K_BLITTER_DST_LO 0x2E
#define ZZ9K_BLITTER_COLORMODE 0x30
#define ZZ9K_BLITTER_SRC_PITCH 0x32
#define ZZ9K_BLITTER_RGB2_HI 0x34
#define ZZ9K_BLITTER_RGB2_LO 0x36
#define ZZ9K_BLITTER_OP_P2C 0x38
#define ZZ9K_BLITTER_OP_DRAW_LINE 0x3A
#define ZZ9K_BLITTER_OP_P2D 0x3C
#define ZZ9K_BLITTER_OP_INVERTRECT 0x3E
#define ZZ9K_BLITTER_USER1 0x40
#define ZZ9K_BLITTER_USER2 0x42
#define ZZ9K_BLITTER_USER3 0x44
#define ZZ9K_BLITTER_USER4 0x46
#define ZZ9K_SPRITE_BITMAP 0x48
#define ZZ9K_SPRITE_COLORS 0x4A
#define ZZ9K_VBLANK_STATUS 0x4C
#define ZZ9K_SCRATCH_COPY 0x50
#define ZZ9K_CVMODE_PARAM 0x52
#define ZZ9K_CVMODE_VAL 0x54
#define ZZ9K_CVMODE_SEL 0x56
#define ZZ9K_CVMODE 0x58
#define ZZ9K_BLITTER_OP_DMA 0x5A
#define ZZ9K_BLITTER_OP_ACC 0x5C
#define ZZ9K_BLITTER_SPLIT_POS 0x5E
#define ZZ9K_SET_FEATURE 0x60
#define ZZ9K_AUDIO_SWAB 0x70
#define ZZ9K_DECODER_FIFO 0x72
#define ZZ9K_AUDIO_SCALE 0x74
#define ZZ9K_AUDIO_PARAM 0x76
#define ZZ9K_AUDIO_VAL 0x78
#define ZZ9K_DECODER_PARAM 0x7A
#define ZZ9K_DECODER_VAL 0x7C
#define ZZ9K_DECODE 0x7E
#define ZZ9K_ETH_TX 0x80
#define ZZ9K_ETH_RX 0x82
#define ZZ9K_ETH_MAC_HI 0x84
#define ZZ9K_ETH_MAC_MD 0x86
#define ZZ9K_ETH_MAC_LO 0x88
#define ZZ9K_ARM_RUN_HI 0x90
#define ZZ9K_ARM_RUN_LO 0x92
#define ZZ9K_ARM_ARGC 0x94
#define ZZ9K_ARM_ARGV0 0x96
#define ZZ9K_ARM_ARGV1 0x98
#define ZZ9K_ARM_ARGV2 0x9A
#define ZZ9K_ARM_ARGV3 0x9C
#define ZZ9K_ARM_ARGV4 0x9E
#define ZZ9K_ARM_ARGV5 0xA0
#define ZZ9K_ARM_ARGV6 0xA2
#define ZZ9K_ARM_ARGV7 0xA4
#define ZZ9K_ARM_EVENT_SERIAL 0xB0
#define ZZ9K_ARM_EVENT_CODE 0xB2
#define ZZ9K_FW_VERSION 0xC0
#define ZZ9K_USB_TX_HI 0xD0
#define ZZ9K_USB_TX_LO 0xD2
#define ZZ9K_USB_RX_HI 0xD4
#define ZZ9K_USB_RX_LO 0xD6
#define ZZ9K_USB_STATUS 0xD8
#define ZZ9K_USB_BUFSEL 0xDA
#define ZZ9K_USB_CAPACITY 0xDC
#define ZZ9K_TEMPERATURE 0xE0
#define ZZ9K_VOLTAGE_AUX 0xE2
#define ZZ9K_VOLTAGE_CORE 0xE4
#define ZZ9K_PRINT_CHR 0xF0
#define ZZ9K_PRINT_HEX 0xF2
#define ZZ9K_AUDIO_CONFIG 0xF4
#define ZZ9K_DEBUG 0xFC
#define ZZ9K_DEBUG_TIMER 0xFE
#endif