📄 cc1.c
字号:
{
printf("Right ,Addr,O->value,D->value,%lx,%lx,%lx\n", ((_dwStart_Address+dwTemp1)+CATCH_DRAM_RANGE*dwTemp2), dwTemp0, __dwBuff[dwTemp1]);
}
//
}
} //for(dwTemp1=0; dwTemp1<CATCH_DRAM_RANGE; dwTemp1++)
}
} // for(j=0;j<CATCH_LOOP_TIME;j++)
END:
printf("\nRead ok and finish at %lx times\n",dwTemp3);
}// for (k=0;k<1;k++)
}
// *********************************************************************
// Function : _CC_Test_Single_Muti_RW_All
// Description :
// Arguments : DWORD dwTestByte1 First Bank Test Bytes
// : DWORD dwTestByte2 Second Bank Test Bytes
// Return :
// *********************************************************************
void _CC_Test_Single_Muti_RW_All( DWORD dwTestByte1,DWORD dwTestByte2)
{
BYTE bTemp;
for (bTemp=1;bTemp<=4;bTemp++)
{
_CC_Test_Single_Muti_RW(0x41E00,bTemp,0x87654321,dwTestByte1);
}
for (bTemp=1;bTemp<=4;bTemp++)
{
_CC_Test_Single_Muti_RW(0x100000,bTemp,0x87654321,dwTestByte2);
}
}
#endif //#ifdef (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK)
#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON) ////alex908
// *********************************************************************
// Function : CC_ScnbDramPowerOn
// Description : Scan Dram with risc ,bank0 , bank2
// : use single /muti , read / write test bank0 , bank2
// Arguments : None_dwStart_Address,
// Return :
// *********************************************************************
void CC_ScanDramPowerOn (void)
{
if ( __btDramScan==TRUE)
{
BYTE bTemp;
BYTE bTemp1;
//alex1.26-2,Initial Osd and set fg/bg Color
OSD_Initial();
GDI_SetTextColor(TEXT_FG_COLOR, GDI_ENTRY_4B_COLOR_WHITE);
GDI_SetTextColor(TEXT_BG_COLOR, GDI_ENTRY_4B_COLOR_BLACK);
#ifdef SUPPORT_DRAM_SORT
_CC_DrawString( "BANK0",150,380);
_CC_DrawString( "BANK1",250,380);
_CC_DrawString( "BANK2",350,380);
_CC_DrawString( "BANK3",450,380);
_CC_DrawString( "SPEED120",0,410);
#else //#ifdef SUPPORT_DRAM_SORT
_CC_DrawString( "BANK0",150,320);
_CC_DrawString( "BANK1",250,320);
_CC_DrawString( "SPEED133",0,350);
_CC_DrawString( "SPEED100",0,380);
_CC_DrawString( "SPEED120",0,410);
#endif //#ifdef SUPPORT_DRAM_SORT
for (bTemp=0;bTemp<SPEED_NUM ;bTemp++)
{
#ifdef SUPPORT_DRAM_SORT
if (bTemp!= 2 ) continue;
#endif //#ifdef SUPPORT_DRAM_SORT
for (bTemp1=0;bTemp1<BANK_NUM ;bTemp1++)
{
#ifndef SUPPORT_DRAM_SORT
if (bTemp1 > 1 ) continue;
#endif //#ifdef SUPPORT_DRAM_SORT
_CC_DrawString( ( (__bRiscTestResult[bTemp][bTemp1]==TRUE)?"OK":"FAIL"),
( 150+(bTemp1) * 100 ),
350+(bTemp) * 30 );
}
}
#ifdef SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK
W99AV_WriteRegDW(MCCR,0x6c00, 0x1010); // 133mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF7;
#endif
_CC_DrawString( "SPEED",550,000);
_CC_DrawString( "133" ,550,030);
_CC_Test_Single_Muti_RW_All( 1000,1000);
W99AV_WriteRegDW(MCCR,0x6d00, 0x1010); // 100mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF7;
#endif
_CC_DrawString( "SPEED",550,000);
_CC_DrawString( "100" ,550,030);
_CC_Test_Single_Muti_RW_All(1000,1000);
W99AV_WriteRegDW(MCCR,0xcc00, 0x100e); // 120mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF8;
#endif
_CC_DrawString( "SPEED",550,000);
_CC_DrawString( "120" ,550,030);
_CC_Test_Single_Muti_RW_All(1000,1000);
#endif //#ifdef SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK
__btDramScan=FALSE;
RCAP2L=R2LV;//alex2.34 restore the default value
//alex1.26-2,let wrong bank dram stop and wait.
// LLY2.37p, assign KEY_OPEN_CLOSE from F/W
// To avoid IR and F/W key conflict issue
//__bISRKey = KEY_OPEN_CLOSE;
__bFWKey = KEY_OPEN_CLOSE;
}
}
#ifdef SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK
void _CC_ProcessDRAMScanKey()
{
switch(__bKey)
{
case KEY_KEYUP:
W99AV_WriteRegDW(MCCR,0x6c00, 0x1010); // 133mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF7;
#endif
_CC_DrawString( "SPEED_133",450,400);
break;
case KEY_KEYDOWN:
W99AV_WriteRegDW(MCCR,0x6d00, 0x1010); // 100mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF7;
#endif
_CC_DrawString( "SPEED_100",450,400);
break;
case KEY_KEYNORMAL:
W99AV_WriteRegDW(MCCR,0xcc00, 0x100e); // 120mode
#ifdef SERIAL_DEBUG
RCAP2L=0xF8;
#endif
_CC_DrawString( "SPEED_120",450,400);
break;
case KEY_N3:
_CC_Test_Single_Muti_RW(0x41E00,1,0x87654321,25446);
break;
case KEY_N4:
_CC_Test_Single_Muti_RW(0x41E00,2,0x87654321,25446);
break;
case KEY_N5:
_CC_Test_Single_Muti_RW(0x41E00,3,0x87654321,25446);
break;
case KEY_N6:
_CC_Test_Single_Muti_RW(0x41E00,4,0x87654321,25446);
break;
case KEY_N7:
_CC_Test_Single_Muti_RW(0x100000,1,0x87654321,52428);
break;
case KEY_N8:
_CC_Test_Single_Muti_RW(0x100000,2,0x87654321,52428);
break;
case KEY_N9:
_CC_Test_Single_Muti_RW(0x100000,3,0x87654321,52428);
break;
case KEY_N0:
_CC_Test_Single_Muti_RW(0x100000,4,0x87654321,52428);
break;
case KEY_ZOOM:
{
BYTE bTemp;
for (bTemp=0;bTemp<100;bTemp++)
{
_CC_Test_Single_Muti_RW_All(25446,52428);
}
}
break;
default:
break;
}
RCAP2L=R2LV;//alex2.34 restore the default value
}
#endif //#ifdef SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK
#endif //#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON) ////alex908
//=================================================================/
//alex_end
// LLY2.37p create for integate GoTime action ...
// ********************************************************************************
// Function : _CC_GoTimeAction
// Description : Issue GoTime related action: execute, calculate value
// Argument : bAction, GOTIME_EXECUTE, GOTTIME_CALCULATE
// Return : INVALID_KEY, the key is invalid
// : TRUE, the key is valid
// ********************************************************************************
BYTE _CC_GoTimeAction(BYTE bAction)
{
switch(bAction)
{
case GOTIME_CALCULATE:
// __dwGoToTime, for DVD, it's hh:mm:ss format
// for other, it's sector format.
// calculate __dwGoToTime value for DVD title
if(__wDiscType & BOOK_DVD)
{
__dwGoToTime=MAKE_TMSF(__bTimeHour, __bTimeMin, __bTimeSec, 0x0);
}
else
{
__dwGoToTime= UTL_MStoSectors (__bTimeHour, __bTimeMin, __bTimeSec );
// For playing mode, the time must relative to the track begin
// DVD_099bMicky, always use absolute time for GOTOTIME when defined.
#ifndef ABSOLUTE_GOTOTIME
if ( ( __bShowTimeType == MSG_RELTIME ) && (__btPlaying || __btPause) )
{
__dwGoToTime+=__dwTimeBegin;
if (__dwGoToTime > __dwTimeEnd) // over current track range
__dwGoToTime=__dwTimeDiscEnd;
}
else
#endif // #ifndef ABSOLUTE_GOTITUME
__dwGoToTime+=__dwTimeDiscBegin;
}
break;
case GOTIME_EXECUTE:
// Process DVD's goto time play
if(__wDiscType & BOOK_DVD)
{
// Micky1.25-2, fix VCD-> gototime out of range will hang
// as SERVO_Seek will break current read command
UTL_PreStartServo( __dwTimeNow);
//DVD_049Micky
// remove it, as now don't disable IR
// EX0= 1; // ***LLY.039, forget to enable IR interrupt
//alex1.23,20040218 combine gototime , search, so remove __btGoToTime variable
//__btGoToTime= FALSE; // clear input mode flag for goto time
__bSearchMode=SEARCH_MODE_OFF; //xuli0106
// DVD.039-1, check if out of range
if( NV_TimePlay(__bTitle, __dwGoToTime) )
{
OSD_OUTPUT_MACRO(MSG_SETGOTOTIME, OSD_COMPLETE_TIME, 0x1);
// Micky1.07, fix GoTOTIme-> will hear audio mute then play->after that play new A/V data.
// must reset audio first.(Can be heard when SPDIF output)
HAL_Reset(HAL_RESET_AUDIO);
HAL_Reset(HAL_RESET_VIDEO); //CoCo.050
// DVD_103Micky, fix GoToTime will hang issue
// need restore the pla command
UTL_TransferCommandID(__bModeCmd);
}
else
{
OSD_OUTPUT_MACRO(MSG_SETGOTOTIME, OSD_CANCEL_TIME, 0x0);
return INVALID_KEY;
}
// DVD.039-1 end..
}
else
{
// Micky1.25-2, fix VCD-> gototime out of range will hang
// as SERVO_Seek will break current read command
// check the range first, only withn range will do pre-start servo
if ( __dwGoToTime >= (__dwTimeDiscEnd) )
{
__bSearchMode=SEARCH_MODE_OFF;//alex1.23,20040218 combine gototime , search,bookmark
OSD_OUTPUT_MACRO ( MSG_SETGOTOTIME, OSD_CANCEL_TIME, 0 );
return INVALID_KEY;
}
else
{
UTL_PreStartServo( __dwTimeNow);
if ( ! LINEAR_Action(KEY_GOTOTIME_PLAY, __dwGoToTime) )
return INVALID_KEY;
}
}
break;
default:
return INVALID_KEY;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -