📄 theatrereg.h
字号:
/******************************************************************************// File: Theater.cpp// Description: ATI Rage Theater Video Decoder interface.// Copyright 2001, Carlos Hasan/*******************************************************************************/#ifndef _THEATRE_REG_H#define _THEATRE_REG_Henum theater_register { // TVOut Front End Datapath VIP_RGB_CNTL = 0x0048, RGB_IS_888_PACK = BITS(0:0), // Select 24/16 bit (888/565) RGB mode UV_DITHER_EN = BITS(3:2), // Select dithering mode for U/V data SWITCH_TO_BLUE = BITS(4:4), // Replace input video with blue screen VIP_TVO_SYNC_PAT_ACCUM = 0x0108, H_PATTERN_ACCUM = BITS(10:0), SCAN_REF_OFFSET = BITS(15:11), BYTE0 = BITS(23:16), BYTE1 = BITS(31:24), VIP_TV0_SYNC_THRESHOLD = 0x010c, MAX_H_PATTERNS = BITS(10:0), MIN_H_PATTERNS = BITS(27:16), VIP_TVO_SYNC_PAT_EXPECT = 0x0110, SYNC_PAT_EXPECT_W0 = BITS(15:0), SYNC_PAT_EXPECT_W1 = BITS(23:16), VIP_DELAY_ONE_MAP_A = 0x0114, DELAY_ONE_MAP_W0 = BITS(15:0), DELAY_ONE_MAP_W1 = BITS(31:16), VIP_DELAY_ONE_MAP_B = 0x0118, DELAY_ONE_MAP_W2 = BITS(15:0), VIP_DELAY_ZERO_MAP_A = 0x011c, DELAY_ZERO_MAP_W0 = BITS(15:0), DELAY_ZERO_MAP_W1 = BITS(31:16), VIP_DELAY_ZERO_MAP_B = 0x0120, DELAY_ZERO_MAP_W2 = BITS(15:0), VIP_TVO_DATA_DELAY_A = 0x0140, TVO_DATA0_DELAY = BITS(5:0), TVO_DATA1_DELAY = BITS(13:8), TVO_DATA2_DELAY = BITS(21:16), TVO_DATA3_DELAY = BITS(29:24), VIP_TVO_DATA_DELAY_B = 0x0144, TVO_DATA4_DELAY = BITS(5:0), TVO_DATA5_DELAY = BITS(13:8), TVO_DATA6_DELAY = BITS(21:16), TVO_DATA7_DELAY = BITS(29:24), VIP_VSCALER_CNTL1 = 0x01c0, UV_INC = BITS(15:0), // Vertical scaling of CRTC UV data UV_THINNER = BITS(22:16), // Number of lines in the UV data that // are not blended to create a line on TV Y_W_EN = BITS(24:24), Y_DEL_W_SIG = BITS(27:26), VIP_VSCALER_CNTL2 = 0x01c8, DITHER_MODE = BITS(0:0), // Select dithering mode Y_OUTPUT_DITHER_EN = BITS(1:1), UV_OUTPUT_DITHER_EN = BITS(2:2), UV_TO_BUF_DITHER_EN = BITS(3:3), UV_ACCUM_INIT = BITS(31:24), VIP_Y_FALL_CNTL = 0x01cc, Y_FALL_ACCUM_INIT = BITS(15:0), Y_FALL_PING_PONG = BITS(16:16), Y_COEF_EN = BITS(17:17), Y_COEF_VALUE = BITS(31:24), VIP_Y_RISE_CNTL = 0x01d0, Y_RISE_ACCUM_INIT = BITS(15:0), Y_RISE_PING_PONG = BITS(16:16), VIP_Y_SAW_TOOTH_CNTL = 0x01d4, Y_SAW_TOOTH_MAP = BITS(15:0), Y_SAW_TOOTH_SLOPE = BITS(31:16), // TVOut Shadow CRTC VIP_HTOTAL = 0x0080, D_HTOTAL = BITS(10:0), // Number of clocks per line (-1) VIP_HDISP = 0x0084, D_HDISP = BITS(9:0), // Number of active pixels per line (-1) VIP_HSIZE = 0x0088, D_HSIZE = BITS(9:0), // Unused in Rage Theater A21 and later VIP_HSTART = 0x008c, D_HSTART = BITS(10:0), VIP_HCOUNT = 0x0090, // Current horizontal CRT pixel within D_HCOUNT = BITS(10:0), // a line being processed VIP_VTOTAL = 0x0094, // Number of lines per frame (-1) D_VTOTAL = BITS(9:0), VIP_VDISP = 0x0098, // Number of active lines (-1) D_VDISP = BITS(9:0), VIP_VCOUNT = 0x009c, // Current vertical CRT line being processed D_VCOUNT = BITS(9:0), VIP_VFTOTAL = 0x00a0, // Number of CRT frames that occur during D_FTOTAL = BITS(3:0), // one complete cycle of the TV timing (-1) VIP_DFCOUNT = 0x00a4, // Current CRT frame count, equivalent to the D_FCOUNT = BITS(3:0), // field number in a complete TV cycle VIP_DFRESTART = 0x00a8, // The frame/field during which a restart D_FRESTART = BITS(3:0), // will be generated when TV_MASTER is 0 VIP_DHRESTART = 0x00ac, // Horizontal pixel during which a restart D_HRESTART = BITS(10:0), // will be generated when TV_MASTER is 0 VIP_DVRESTART = 0x00b0, // Vertical line during which a restart D_VRESTART = BITS(9:0), // will be generated when TV_MASTER is 0 VIP_SYNC_SIZE = 0x00b4, // Number of pixels expected in the D_SYNC_SIZE = BITS(9:0), // synchronization line VIP_FRAME_LOCK_CNTL = 0x0100, MAX_LOCK_STR = BITS(3:0), FIELD_SYNC_EN = BITS(4:4), FIELD_SYNC_TRIGGER = BITS(5:5), ACTUAL_LOCK_STR = BITS(11:8), AVG_MISSED_SYNC = BITS(15:12), VIP_SYNC_LOCK_CNTL = 0x0104, PRI_TVO_DATA_LINE_SEL = BITS(2:0), SEC_SYNC_CHECK_DEL = BITS(13:8), MPP_ACTIVE_AS_MASK = BITS(14:14), MPP_ACTIVE_DS_MASK = BITS(15:15), SYNC_COMMAND = BITS(18:16), SYNC_LOCK_TRIGGER = BITS(21:21), DETECT_EN = BITS(24:24), SELF_LOCK_EN = BITS(25:25), MAN_LOCK_EN = BITS(26:26), MAX_REF_OFFSET = BITS(31:27), // TVOut Up Sampling Filter VIP_UPSAMP_COEFF0_0 = 0x0340, COEFF0_0 = BITS(5:0), COEFF0_1 = BITS(14:8), COEFF0_2 = BITS(22:16), COEFF0_3 = BITS(29:24), VIP_UPSAMP_COEFF0_1 = 0x0344, COEFF0_4 = BITS(7:0), COEFF0_5 = BITS(15:8), COEFF0_6 = BITS(21:16), COEFF0_7 = BITS(30:24), VIP_UPSAMP_COEFF0_2 = 0x0348, COEFF0_8 = BITS(6:0), COEFF0_9 = BITS(13:8), VIP_UPSAMP_COEFF1_0 = 0x034c, COEFF1_0 = BITS(5:0), COEFF1_1 = BITS(14:8), COEFF1_2 = BITS(22:16), COEFF1_3 = BITS(29:24), VIP_UPSAMP_COEFF1_1 = 0x0350, COEFF1_4 = BITS(7:0), COEFF1_5 = BITS(15:8), COEFF1_6 = BITS(21:16), COEFF1_7 = BITS(30:24), VIP_UPSAMP_COEFF1_2 = 0x0354, COEFF1_8 = BITS(6:0), COEFF1_9 = BITS(13:8), VIP_UPSAMP_COEFF2_0 = 0x0358, COEFF2_0 = BITS(5:0), COEFF2_1 = BITS(14:8), COEFF2_2 = BITS(22:16), COEFF2_3 = BITS(29:24), VIP_UPSAMP_COEFF2_1 = 0x035c, COEFF2_4 = BITS(7:0), COEFF2_5 = BITS(15:8), COEFF2_6 = BITS(21:16), COEFF2_7 = BITS(30:24), VIP_UPSAMP_COEFF2_2 = 0x0360, COEFF2_8 = BITS(6:0), COEFF2_9 = BITS(13:8), VIP_UPSAMP_COEFF3_0 = 0x0364, COEFF3_0 = BITS(5:0), COEFF3_1 = BITS(14:8), COEFF3_2 = BITS(22:16), COEFF3_3 = BITS(29:24), VIP_UPSAMP_COEFF3_1 = 0x0368, COEFF3_4 = BITS(7:0), COEFF3_5 = BITS(15:8), COEFF3_6 = BITS(21:16), COEFF3_7 = BITS(30:24), VIP_UPSAMP_COEFF3_2 = 0x036c, COEFF3_8 = BITS(6:0), COEFF3_9 = BITS(13:8), VIP_UPSAMP_COEFF4_0 = 0x0370, COEFF4_0 = BITS(5:0), COEFF4_1 = BITS(14:8), COEFF4_2 = BITS(22:16), COEFF4_3 = BITS(29:24), VIP_UPSAMP_COEFF4_1 = 0x0374, COEFF4_4 = BITS(7:0), COEFF4_5 = BITS(15:8), COEFF4_6 = BITS(21:16), COEFF4_7 = BITS(30:24), VIP_UPSAMP_COEFF4_2 = 0x0378, COEFF4_8 = BITS(6:0), COEFF4_9 = BITS(13:8), // TVOut Encoder VIP_SYNC_CNTL = 0x0050, SYNC_OE = BITS(0:0), // Sync output enable SYNC_OUT = BITS(1:1), // Sync output data SYNC_IN = BITS(2:2), // Sync input data SYNC_PUB = BITS(3:3), // Sync pull-up enable SYNC_PD = BITS(4:4), // Sync pull-down enable SYNC_DRV = BITS(5:5), // Sync drive select SYNC_MX = BITS(11:8), // Sync mux VIP_HOST_READ_DATA = 0x0180, HOST_RD_DATA_W0 = BITS(15:0), HOST_RD_DATA_W1 = BITS(27:16), VIP_HOST_WRITE_DATA = 0x0184, HOST_WR_DATA_W0 = BITS(15:0), HOST_WR_DATA_W1 = BITS(27:16), VIP_HOST_RD_WT_CNTL = 0x0188, HOST_ADR = BITS(8:0), HOST_FIFO_RD = BITS(12:12), HOST_FIFO_RD_ACK = BITS(13:13), HOST_FIFO_WT = BITS(14:14), HOST_FIFO_WT_ACK = BITS(15:15), VIP_TIMING_CNTL = 0x01c4, H_INC = BITS(11:0), // Horizontal scaling of the TV image REQ_DELAY = BITS(18:16), REQ_Y_FIRST = BITS(19:19), FORCE_BURST_ALWAYS = BITS(21:21), UV_POST_SCALE_BYPASS = BITS(23:23), UV_OUTPUT_POST_SCALE = BITS(31:24), VIP_UPSAMP_AND_GAIN_CNTL = 0x01e0, YUPSAMP_EN = BITS(0:0), // Enable Y upsampling filter YUPSAMP_FLAT = BITS(1:1), // Force Y upsampling to use centre tap UVUPSAMP_EN = BITS(2:2), // Enable U/V upsampling filters UVUPSAMP_FLAT = BITS(3:3), // Force U/V upsampling to use centre tap Y_BREAK_EN = BITS(8:8), // Enable Y break point UV_BREAK_EN = BITS(10:10), // Enable U/V break point VIP_GAIN_LIMIT_SETTINGS = 0x01e4, Y_GAIN_LIMIT = BITS(10:0), // Gain limit for the luminance (Y) UV_GAIN_LIMIT = BITS(24:16), // Gain limit for the chrominance (U/V) VIP_LINEAR_GAIN_SETTINGS = 0x01e8, Y_GAIN = BITS(8:0), // Gain for the luminance (1.8 fixed point) UV_GAIN = BITS(24:16), // Gain for the chrominance (1.8 fixed point) VIP_MODULATOR_CNTL1 = 0x0200, YFLT_EN = BITS(2:2), // Enable Composite/SVideo Y filter UVFLT_EN = BITS(3:3), // Enable U/V filters ALT_PHASE_EN = BITS(6:6), // Phase alternating line (0=NTSC, 1=PAL) SYNC_TIP_LEVEL = BITS(7:7), // Composite Y sync tip level SET_UP_LEVEL = BITS(14:8), // Video setup level BLANK_LEVEL = BITS(22:16), // Video blank level SLEW_RATE_LIMIT = BITS(23:23), FORCE_BLACK_WHITE = BITS(24:24), // Force B&W video Y_FILT_BLEND = BITS(31:28), // Sharpness of Y filters VIP_MODULATOR_CNTL2 = 0x0204, U_BURST_LEVEL = BITS(8:0), V_BUST_LEVEL = BITS(24:16), VIP_PRE_DAC_MUX_CNTL = 0x0240, Y_RED_EN = BITS(0:0), C_GRN_EN = BITS(1:1), CMP_BLU_EN = BITS(2:2), DAC_DITHER_EN = BITS(3:3), RED_MX = BITS(7:4), GRN_MX = BITS(11:8), BLU_MX = BITS(15:12), FORCE_DAC_DATA = BITS(25:16), YUPFILT_DISABLE = BITS(26:26), CVUPFILT_DISABLE = BITS(27:27), UUPFILT_DISABLE = BITS(28:28), VIP_TV_DAC_CNTL = 0x0280, NBLANK = BITS(0:0), NHOLD = BITS(1:1), PEDESTAL = BITS(2:2), DASLEEP = BITS(3:3), DETECT = BITS(4:4), CMPOUT = BITS(5:5), BGSLEEP = BITS(6:6), STD = BITS(9:8), MON = BITS(15:12), VIP_CRC_CNTL = 0x02c0, V_COMP_DATA_EN = BITS(1:0), V_COMP_GATE = BITS(2:2), V_COMP_EN = BITS(3:3), RST_SUBC_ONRSTRT = BITS(4:4), CRC_TV_RSTRT_SEL = BITS(5:5), VIP_VIDEO_PORT_SIG = 0x02c4, CRC_SIG = BITS(29:0), VIP_UV_ADR = 0x0300, MAX_UV_ADDR = BITS(7:0), TABLE1_BOT_ADR = BITS(15:8), TABLE3_TOP_ADR = BITS(23:16), HCODE_TABLE_SEL = BITS(26:25), VCODE_TABLE_SEL = BITS(28:27), SWITCH_TABLE_REQ = BITS(31:31), // TVOut VBI Control VIP_VBI_CC_CNTL = 0x02c8, VBI_CC_DATA = BITS(15:0), // VBI data for CC VBI_CC_WT = BITS(24:24), // Initiates a write cycle using VBI_CC_DATA VBI_CC_WT_ACK = BITS(25:25), VBI_CC_HOLD = BITS(26:26), VBI_DECODE_EN = BITS(31:31), VIP_VBI_EDS_CNTL = 0x02cc, VBI_EDS_DATA = BITS(15:0), VBI_EDS_WT = BITS(24:24), VBI_EDS_WT_ACK = BITS(25:25), VBI_EDS_HOLD = BITS(26:26), VIP_VBI_20BIT_CNTL = 0x02d0, VBI_20BIT_DATA0 = BITS(15:0), VBI_20BIT_DATA1 = BITS(19:16), VBI_20BIT_WT = BITS(24:24), VBI_20BIT_WT_ACK = BITS(25:25), VBI_20BIT_HOLD = BITS(26:26), VIP_VBI_DTO_CNTL = 0x02d4, VBI_CC_DTO_P = BITS(15:0), VBI_20BIT_DTO_P = BITS(31:16), VIP_VBI_LEVEL_CNTL = 0x02d8, VBI_CC_LEVEL = BITS(6:0), VBI_20BIT_LEVEL = BITS(14:8), VBI_CLK_RUNIN_GAIN = BITS(24:16), // Video Decoder Horizontal Sync PLL Control VIP_HS_PLINE = 0x0480, // Pixels per line (910) HS_LINE_TOTAL = BITS(10:0), VIP_HS_DTOINC = 0x0484, // ??? HS_DTO_INC = BITS(19:0), VIP_HS_PLLGAIN = 0x0488, HS_PLL_SGAIN = BITS(3:0), HS_PLL_FGAIN = BITS(7:4), VIP_HS_MINMAXWIDTH = 0x048c, MIN_PULSE_WIDTH = BITS(7:0), MAX_PULSE_WIDTH = BITS(15:8), VIP_HS_GENLOCKDELAY = 0x0490, GEN_LOCK_DELAY = BITS(7:0), VIP_HS_WINDOW_LIMIT = 0x0494, WIN_CLOSE_LIMIT = BITS(10:0), WIN_OPEN_LIMIT = BITS(26:16), VIP_HS_WINDOW_OC_SPEED = 0x0498, WIN_CLOSE_SPEED = BITS(3:0), WIN_OPEN_SPEED = BITS(7:4), VIP_HS_PULSE_WIDTH = 0x049c, H_SYNC_PULSE_WIDTH = BITS(7:0), HS_GENLOCKED = BITS(8:8), // HPLL is locked? HS_SYNC_IN_WIN = BITS(9:9), // Sync in Hwindow? VIP_HS_PLL_ERROR = 0x04a0, HS_PLL_ERROR = BITS(14:0), VIP_HS_PLL_FS_PATH = 0x04a4, HS_PLL_FAST_PATH = BITS(14:0), HS_PLL_SLOW_PATH = BITS(30:16), // Video Decoder Comb Filter VIP_COMB_CNTL0 = 0x0440, COMB_HCK = BITS(7:0), COMB_VCK = BITS(15:8), COMB_FILTER_EN = BITS(16:16), // 0=fast AGC, CLAMP, and Chroma AGC loops (A41 ASIC only) COMB_ADAPTIVE_EN = BITS(17:17), COMB_BPFMUXSEL = BITS(20:18),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -