📄 w99av.h
字号:
#define W99AV_ADDR_ABUFF_LPCM 0x03F70357L // 40K DW
// For CDDA buffer size
#define W99AV_ADDR_VBUFF_PCM W99AV_ADDR_VBUFF // 120.5K DW
#define W99AV_ADDR_ABUFF_PCM W99AV_ADDR_ABUFF_LPCM // 40K DW
// LJY1.10, for CDG
#define W99AV_ADDR_VBUFF_CDG 0x00800050 //x00710050L // 18K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define W99AV_ADDR_ABUFF_CDG W99AV_ADDR_ABUFF_MP3 // 56.5K DW
//LJY1.26, It needs to set YUV buffer start address for new RISC code(20040521). It needs 158KDW for CDG YUV/RGB buffer.
#define W99AV_ADDR_CDG_YUV_START 0x545 // YUV start >> 8
// For CDROM-AC3 used.
#define W99AV_ADDR_ABUFF_AC3 W99AV_ADDR_ABUFF // 8K DW
// for NV buffer start address
// Micky0.83, from 20030514 risc codes, the NV addr will be decided by ucode
#define W99AV_ADDR_NVBUFF 0x9E00L
// Micky0.83b, use 13.25K for SP buffer.(why EPP can't use 13.5K??)
#define W99AV_ADDR_SPBUFF 0x009D0068L // Chuan2.80p, end>>8, start>>8
#define W99AV_ADDR_RTIBUFF 0x32A00L // Chuan2.80p
#define W99AV_ADDR_NV_RTI_BUFF (MAKELONG((W99AV_ADDR_RTIBUFF>>8),(W99AV_ADDR_NVBUFF>>8)))
// LLY.276p-4, define PCM buffer starting address
//#define W99AV_ADDR_PCMBUFF 0x3FE // 8K DW
//#define W99AV_ADDR_PCMBUFF 0x2E3 // 8K DW
// Brian1.22, re-arrange PCM buffer address to provide fixed position for F/W user data
#define W99AV_ADDR_PCMBUFF 0x30E // 8K DW
#define W99AV_ADDR_PCMBUFF2 0x32E // 10K DW, PCM Buffer 2 for Other Mode
//#define W99AV_ADDR_PCMBUFF_MP3 0x70 // 12K DW, (12K for WMA case, 6K for MP3 case)
// Brian1.22, re-aarange to add another F/W user data (2) for FM
#define W99AV_ADDR_PCMBUFF_MP3 0x318 // 12K DW, (12K for WMA case, 6K for MP3 case)
#define W99AV_ADDR_PCMBUFF_JPEG W99AV_ADDR_PCMBUFF_MP3 // JPEG case
// Micky0.86, the write pixel start must be the same bank w/ display buffer.
//#define W99AV_DRAM_ADDR_WPIXEL_START 0x172300L // 512 DW
// Brian1.21
// For BE version, fix digest issue ==> Write Pixel command can only work for Digest mode with this arrangement.
#define W99AV_DRAM_ADDR_WPIXEL_START 0x9900L // 512 DW, after
//#define W99AV_DRAM_ADDR_RESERVE_START 0x172500L // 25K DW, F/W user data
// Brian1.22, find a fixed position for F/W user data
#define W99AV_DRAM_ADDR_RESERVE_START 0x2CE00L // 16K DW, F/W user data
//#define W99AV_DRAM_ADDR_RESERVE_END 0x1063FFL // ** TCH1.61a; Size= 1A00h= 6656. 0x3C00 is KC Buffer
//#define W99AV_DRAM_ADDR_RESERVE_START_FM 0x32300L // 25K DW, F/W user data, for File Manager case
//#define W99AV_DRAM_ADDR_RESERVE_START_FM 0x2E300L // 25K DW, F/W user data, for File Manager case
// Brian1.22, find a fixed position for F/W user data
#define W99AV_DRAM_ADDR_RESERVE_START_FM W99AV_DRAM_ADDR_RESERVE_START // 16K DW, F/W user data, for File Manager case
// Brian1.22, add a new F/W user data 2 for FM
#define W99AV_DRAM_ADDR_RESERVE_START_FM_2 0x7000 // 12K DW, for FM mode use only (this area will use the SPU and Navigation area of DVD mode)
// LLY0.85, define A/V buffer size setting for CDROM decoding mode
// Notice: The ending address of Audio buffer 1 & 2 are relative to
// "reserved User Data DRAM space"
#define W99AV_ADDR_VBUFF_CDROM W99AV_ADDR_VBUFF
// Reserve size can store 150 sector data :
// (0x60000-0x4C400) DWORD * 4 = 0x4F000 BYTE
// 0x4F000 / 2352 = 137.57 sectors
// So, must take care the max sector NO within once CDROM decoding
//#define W99AV_ADDR_ABUFF_CDROM 0x060004C4L
#define W99AV_ADDR_ABUFF_CDROM 0x059B0464L // 135.4 Sectors
//**********************************************************************************
// LLY.046, define the base address for storing CDROM decoding data
#ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF) // SP buffer
#else // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS W99AV_ADDR_NVBUFF // NV buffer
#endif // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// LLY0.85, move ECCBASE to here
// Reserve size for ECC Done data = 0x38700 ~ 0x4C400
// 0x4C400 - 0x38700 = 0x13D00 (DWORD) = 0x4F400 (BYTE)
// 0x4F400 / 2352 = 138.01 sectors
//#define ECCBASE_REALCDROM 0x38700L // LLY0.85, ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)
#define ECCBASE_REALCDROM 0x32C00L // 135.8 Sectors
//#define W99AV_ADDR_UCODE_BACKUP 0x2E300L // 16K DW
#define W99AV_ADDR_UCODE_BACKUP 0x59C00L // 25K DW
//Kevin1.23, modify
//#define W99AV_ADDR_UCODE_END_BACKUP 0x5FF00L // Chuan1.21, give the end address.
#define W99AV_ADDR_UCODE_END_BACKUP 0x60000L
//LJY1.24-3, for DSP ucode backup in digest and CDG mode
#define W99AV_ADDR_UCODE_BACKUP_BUFFER 0x172500
//#else // #ifdef USE_32M_SDRAM
//#ifdef SUPPORT_ANTISHOCK
//-------------------------------------------------------//
#elif (SDRAM_CONFIGURATION == SDRAM_16M) //Kevin2.27, 16M
// FD solution
#define IRAM_ADDR 0x0300 // the start address of iram.inc
#define IRAM_END_ADDR 0x3000 // the end address of iram.inc //Kevin1.01, add
#define ERAM_ADDR 0x3000 // dsp eram's dram address
// Brian2.30
#define ERAM_END_ADDR 0x4000 //Brain2.35a //0x3C00 // 16M, ERAM is 3K
//Kevin2.35a, AC3 uses audio buffer 2 as swap buffer
// Brian2.30b
//#define W99AV_ADDR_SBUFF_DTS_AC3 0x7B001L // 6K, at continuous odd address
#define W99AV_ADDR_SBUFF_DTS 0x7B001L // 6K, at continuous odd address
#define W99AV_ADDR_SBUFF_MP3_WMA 0x6400 //0x53300L // 8K
#define W99AV_ADDR_SIDE_INFO_START 0x58300L // MP3 side information buffer start
#define W99AV_ADDR_SIDE_INFO_LENGTH 0x3C00L // 15K, MP3 side information buffer size
//**********************************************************************************
// For normal A/V buffer size
#define W99AV_ADDR_VBUFF 0x019A00B3L //57.75K DW // 0x01A600B3L //0x10F41001L //60.75K DW
// Brian2.33
#define W99AV_ADDR_VBUFF_NTSC 0x01EA00B3L // 77.75K
#define W99AV_ADDR_FRAMEBUFF_NTSC 0x1EA // frame buffer address for NTSC large video bitstream buffer case
#define W99AV_ADDR_ABUFF 0x00A90089L //8K DW
#define W99AV_ADDR_ABUFF2 0x00B200AAL //2K DW
// for MP3 A/V buffer size
#define W99AV_ADDR_VBUFF_MP3 0x01570127L //0x01DE01AEL // 12K DW
#define W99AV_ADDR_ABUFF_MP3 0x00E400A0L // 17K DW
#define W99AV_ADDR_ABUFF2_MP3 0x012600E5L // 16.25K DW
// Brian2.33, ***** must adjust side inform address if full OSD region address is change
// For MP3 and JPG, and share frame buffer 2
#define W99AV_ADDR_VBUFF_JPEG W99AV_ADDR_VBUFF_MP3 // 12K DW
#define W99AV_ADDR_ABUFF_JPEG W99AV_ADDR_ABUFF_MP3 // 17K DW
// W99AV_ADDR_VBUFF for DVD-AC3/-DTS/-LPCM should be the same
// For LPCM A/V buffer size
#define W99AV_ADDR_VBUFF_LPCM W99AV_ADDR_VBUFF //0x019A00DAL // 48K DW //0x01A6012AL // 31K DW
#define W99AV_ADDR_ABUFF_LPCM 0x00B20089L // 10.25K DW
// For CDDA buffer size
#define W99AV_ADDR_VBUFF_PCM 0x019A012A // 28K DW // Brian2.32
#define W99AV_ADDR_ABUFF_PCM 0x01290089L // 40K DW // Brian2.32
// LJY2.30a, LJY1.10, for CDG
#define W99AV_ADDR_VBUFF_CDG 0x00940064 // 12K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define W99AV_ADDR_ABUFF_CDG W99AV_ADDR_ABUFF_MP3 // 17K DW
//LJY1.26, It needs to set YUV buffer start address for new RISC code(20040521). It needs 158KDW for CDG YUV/RGB buffer.
#define W99AV_ADDR_CDG_YUV_START 0x157 // YUV start >> 8 //Brian2.32
// For CDROM-AC3 used.
#define W99AV_ADDR_ABUFF_AC3 0x00C000A0L // 8K DW //W99AV_ADDR_ABUFF_MP3 // 17K DW ??
// for NV buffer start address
// Micky0.83, from 20030514 risc codes, the NV addr will be decided by ucode
#define W99AV_ADDR_NVBUFF 0x4000L //Brain2.35a //0x3C00L
// Micky0.83b, use 13.25K for SP buffer.(why EPP can't use 13.5K??)
#define W99AV_ADDR_SPBUFF 0x00800070L // 4K DW //0x010200b3L // 13.25K DW
#define W99AV_ADDR_RTIBUFF 0x32A00L // ??? not used
#define W99AV_ADDR_NV_RTI_BUFF (MAKELONG((W99AV_ADDR_RTIBUFF>>8),(W99AV_ADDR_NVBUFF>>8)))
// Brian1.22, re-arrange PCM buffer address to provide fixed position for F/W user data
#define W99AV_ADDR_PCMBUFF 0x7E0 // 8K DW
#define W99AV_ADDR_PCMBUFF2 0x80 // DSP use 2.25K DW
// Brian1.22, re-aarange to add another F/W user data (2) for FM
#define W99AV_ADDR_PCMBUFF_MP3 0x7E0 // 8K DW
#define W99AV_ADDR_PCMBUFF_JPEG W99AV_ADDR_PCMBUFF_MP3 // JPEG case
// For BE version, fix digest issue ==> Write Pixel command can only work for Digest mode with this arrangement.
#define W99AV_DRAM_ADDR_WPIXEL_START 0x3C00L
#define W99AV_DRAM_ADDR_RESERVE_START 0x6400L // 3K DW, DVD F/W user data
#define W99AV_DRAM_ADDR_RESERVE_START_FM 0x15700L //0x1DE00L // 16.5K DW, F/W user data, for File Manager case
// Brian2.30b
#define W99AV_ADDR_VBUFF_CDROM 0x01A6017EL // 10K DW, W99AV_ADDR_VBUFF //??? not used
// Reserve size can store 28 sector data :
// (0xB100-0x7000) DWORD * 4 = 66560 BYTE
// 66560 / 2352 = 28 sectors
// So, must take care the max sector NO within once CDROM decoding
#define W99AV_ADDR_ABUFF_CDROM 0x00B10070L // 16.25K DW ==> 28 sectors
//**********************************************************************************
#ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS ((W99AV_ADDR_SPBUFF & 0x0000FFFF) << 8) // SP buffer
#else // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS W99AV_ADDR_NVBUFF // NV buffer
#endif // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_REALCDROM 0xB100L // 0xB100 ~ 0xF200 ==> 16.25K DW ==> 28 sectors
// Brian2.30b, 16M FD use runtime unzip, no DSP back area
/*
#ifdef DSP_BACKUP_TO_32M
#define W99AV_ADDR_UCODE_BACKUP 0x67C00L // barrow frame buffer as temp unzip buffer //0x16A00L // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP 0x6E000L // 0x1CE00L
#define W99AV_ADDR_UCODE_BACKUP_32M 0x110000L // 0x16E00L //0x16A00L // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP_32M 0x116400L //0x1D200L //0x1CE00L
#else
#define W99AV_ADDR_UCODE_BACKUP 0x16A00L // 0x16E00L //0x16A00L // 25K DW
#define W99AV_ADDR_UCODE_END_BACKUP 0x1CE00L //0x1D200L //0x1CE00L
#endif
*/
//#define W99AV_ADDR_UCODE_BACKUP 0x16A00L // 0x16E00L //0x16A00L // 25K DW
//#define W99AV_ADDR_UCODE_END_BACKUP 0x1CE00L //0x1D200L //0x1CE00L
#define W99AV_ADDR_UCODE_BACKUP_BUFFER 0x172500 //CoCo2.27, Don't care the address in 16M
//#define W99AV_ADDR_MPEG_FRAME_FOR_OS_T 0x40700L //OSD use frame buffer. //0x1A600+0x26100(LOGO)
// Brian2.33, frame buffer will be lower for 20K when NTSC bitstream, so we just fix it at a safe place for all cases
#define W99AV_ADDR_MPEG_FRAME_FOR_OS_T 0x45700L //OSD use frame buffer. //0x1A600+0x26100(LOGO)+20K DW
#define W99AV_ADDR_MPEG_FRAME_FOR_OS_B (W99AV_ADDR_MPEG_FRAME_FOR_OS_T + 0x9600) //OSD use frame buffer.
// Brian2.37
#ifndef SUPPORT_JPEG_3_FRAMES
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T 0x36C00L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B 0x40000L //OSD use JPEG temp buffer.
#else
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T 0x5D700L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B 0x66B00L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_T_DVD 0x51700L //OSD use JPEG temp buffer.
#define W99AV_ADDR_JPEG_FRAME_FOR_OS_B_DVD 0x5AB00L //OSD use JPEG temp buffer.
#endif
// Brian2.30b, for CRAM unzip temp buffer
#define W99AV_ADDR_UCODE_BACKUP 0x7E000L
#define W99AV_ADDR_UCODE_END_BACKUP 0x80000L
#endif //#if (SDRAM_CONFIGURATION == SDRAM_32M) || ( (SDRAM_CONFIGURATION == SDRAM_64M) && !defined(SUPPORT_ANTISHOCK) )
//Kevin2.31
#ifdef RUNTIME_UNZIP_DSP_UCODE
#define W99AV_ADDR_RUNTIME_UNZIP_DSP_UCODE ((DWORD)W99AV_ADDR_PCMBUFF<<8)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -