?? mstar.lst
字號:
if(IsVideoPortInUse())
{
msWriteRegsTbl(tVideoFCC); // Nelson 2006-03-25 Add
if(PortSwitch==Input_TV)
msWriteRegsTbl(t_TVInitializeFCC);
else
msWriteRegsTbl(t_AVInitializeFCC);
}
if (bk1_2F_value==PORT_CVBS_SV1C)
bk1_90_mask=_BIT3;
msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
msWriteByte(BK1_2F, bk1_2F_value);
bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
bk1_2F_value&=~_BIT3;
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 6
msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
}
#elif (MST_CHIP==MST720A)
void SwitchInputPort(InputPortType PortSwitch)
{
BYTE bk1_2F_value;
BYTE bk1_90_mask=0;
switch(PortSwitch)
{
case Input_TV:
bk1_2F_value=TV_RealPortSet;
break;
case Input_CVBS1:
bk1_2F_value=CVBS1_RealPortSet;
//bk1_90_mask=_BIT3;
break;
case Input_SVIDEO1:
bk1_2F_value=SVIDEO1_RealPortSet;
break;
}
if(IsVideoPortInUse())
{
msWriteRegsTbl(tVideoFCC); // Nelson 2006-03-25 Add
if(PortSwitch==Input_TV)
msWriteRegsTbl(t_TVInitializeFCC);
else
msWriteRegsTbl(t_AVInitializeFCC);
}
msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
msWriteByte(BK1_2F, bk1_2F_value);
bk1_2F_value=msReadByte(BK1_90_SARADC_CTRL);
bk1_2F_value&=~_BIT3;
msWriteByte(BK1_90_SARADC_CTRL, bk1_2F_value|bk1_90_mask);
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
}
#endif
346
347
348 void SetChromaMode(void)
349 {
350 1 BYTE uctemp, temp2;
351 1
352 1 #if TV_ENABLE
353 1 if(IsTVInUse())
354 1 {
355 2 uctemp=((g_TVChSetting.TvCurChannelMisc&ColorSysMask)>>4)%CHROMA_NUMS;
356 2 devSetSWF(((g_TVChSetting.TvCurChannelMisc&SoundSysMask)%TV_SOUND_NUMS));
357 2 }
358 1 else
359 1 #endif
360 1
361 1 uctemp=g_VideoSetting.VideoColorSys%CHROMA_NUMS;
362 1 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
363 1
364 1 switch (uctemp)
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 7
365 1 {
366 2 case CHROMA_SECAM:
367 2 case CHROMA_AUTO:
368 2 temp2=0;
369 2 break;
370 2 case CHROMA_PAL:
371 2 temp2=0x02;
372 2 break;
373 2 case CHROMA_NTSC:
374 2 temp2=0x01;
375 2 break;
376 2 }
377 1 msWriteByteMask(BK3_1C_CTRLSWCH, temp2, 0x03);
378 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
379 1 }
380
381 void msLineBufferDelayCtl( BOOL bInterlace )
382 {
383 1 BYTE ucTmp = 0;
384 1 bInterlace=bInterlace;
385 1 ucTmp = 0x20;
386 1 msWriteByte(BK0_0F_ASCTRL, ucTmp );
387 1 }
388
389 ///////////////////////////////////////////////////////////////////////////////
390 // <Function>: msSetInterrupt
391 //
392 // <Description>: Set chip interrrupt.
393 //
394 // <Parameter>: - <Flow> - <Description>
395 //-----------------------------------------------------------------------------
396 // IntSel - In - interrupt setting
397 ///////////////////////////////////////////////////////////////////////////////
398 void msSetInterrupt(msInterruptType IntSel)
399 {
400 1 BYTE ucBank;
401 1
402 1 ucBank = msReadByte( BK0_00_REGBK);
403 1
404 1 msWriteByte(BK0_00_REGBK,REG_BANK_SCALER);
405 1
406 1 msWriteByte(BK0_1D_INTENC, 0x00); // Interrupt enable control byte C
407 1 msWriteByte(BK0_1F_INTEND, 0x00); // Interrupt enable control byte D
408 1 switch( IntSel )
409 1 {
410 2 case INTERRUPT_PC:
411 2 msWriteByte(BK0_1F_INTEND, 0x0E); // V change,H loss,V loss
412 2 break;
413 2 case INTERRUPT_YPBPR:
414 2 msWriteByte(BK0_1F_INTEND, 0x06); // H loss,V loss
415 2 break;
416 2 case INTERRUPT_INPUT_VSYNC:
417 2 msWriteByte(BK0_1D_INTENC, 0x40); // H loss,V loss
418 2 break;
419 2 }
420 1
421 1 msWriteByte(BK0_00_REGBK, ucBank);
422 1 }
423
424 void ChipPowerUpcontrol(void)
425 {
426 1 BYTE vbk0_e0,vbk0_e1,vbk1_31,vbk1_32;
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 8
427 1
428 1 if( IsCVBSInUse())
429 1 {
430 2 vbk0_e0=0x80;
431 2 vbk0_e1=0x1C;
432 2 vbk1_31=0x24;
433 2 vbk1_32=0x76;
434 2 }
435 1 else if(IsSVideoInUse())
436 1 {
437 2 vbk0_e0=0x90;
438 2 vbk0_e1=0x18;
439 2 vbk1_31=0x20;
440 2 vbk1_32=0x34;
441 2 }
442 1 #if VGA_ENABLE
443 1 else if(IsVGAInUse())
444 1 {
445 2 vbk0_e0=0xb0;
446 2 vbk0_e1=0x11;
447 2 vbk1_31=0x00;
448 2 vbk1_32=0x04;
449 2 }
450 1 #endif
451 1
452 1 msWriteByte(BK0_E0_PDMD0, vbk0_e0);
453 1 msWriteByte(BK0_E1_PDMD1, vbk0_e1);
454 1 Delay1ms(5);//(50);
455 1 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU); // switch to Bank 1
456 1 msWriteByte(BK1_31, vbk1_31);
457 1 msWriteByte(BK1_32, vbk1_32);
458 1
459 1 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER); // switch to Bank 0
460 1 }
461
462 void msSetupInputPort(void)
463 {
464 1 SwitchInputPort(g_VideoSetting.InputType);
465 1
466 1 ChipPowerUpcontrol();
467 1
468 1 #if VGA_ENABLE
469 1 if( IsVGAInUse()) // PC
470 1 {
471 2 msWriteByte(BK0_0D_LYL, 0x00);
472 2 msAdjustPCRGB(0x80, 0x80, 0x80);
473 2 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU );
474 2 msWriteByte( BK1_24, 0x50 );
475 2 msWriteByte( BK1_25, 0 ); // FPLL_DIVN => Divide by 1
476 2 msWriteByte( BK1_29, 0x18 ); // 20051007
477 2 msWriteByte( BK1_2C, 0x00 ); // I clamp
478 2 msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
479 2 //msWriteByte( BK0_37, 0 ); // 20051004 Lizst: Disable D-Edge
480 2 msWriteByte( BK0_83_DELTA_L, 0 );
481 2 msWriteByte( BK0_84_DELTA_H, 0 );
482 2 //should turn off in VGA mode,we don't support YPBPR here
483 2 //msLPFCtl(LPF_CTL_ANALOG_PORT);
484 2 msLPFCtl(LPF_CTL_TURN_OFF);
485 2 msWriteRegsTbl(tProgVGAPort); // program VGA port
486 2 }
487 1 else // CVBS/SV/CCIR656
488 1 #endif
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 9
489 1 {
490 2 msWriteByte(BK0_0D_LYL, 0x07);
491 2
492 2 msWriteByte(BK0_10_COCTRL1,COCTRL1_VALUE);
493 2 if( IsVideoPortInUse())
494 2 {
495 3 //msWriteByte( BK0_00_REGBK, REG_BANK3_COMB );
496 3 //msWriteBit( BK3_11_COMBCFGB, 1, _BIT5 ); // Patch IC
497 3
498 3 msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU );
499 3 msWriteByte( BK1_24, 0x40 );
500 3 msWriteByte( BK1_25, 0x01 ); // FPLL_DIVN => Divide by 2
501 3 msWriteByte( BK1_29, 0x1F ); // 20051007
502 3 msWriteByte( BK1_2C, 0xF0 ); // 20050624 David.Shen: I clamp
503 3
504 3 // Reset ADC register for internal VD
505 3 msWriteByte( BK1_04_RGAIN_ADC, 0x80);
506 3 msWriteByte( BK1_05_GGAIN_ADC, 0x80);
507 3 msWriteByte( BK1_06_BGAIN_ADC, 0x80);
508 3 msWriteByte( BK1_07_ROFFS_ADC, 0x80);
509 3 msWriteByte( BK1_08_GOFFS_ADC, 0x80);
510 3 msWriteByte( BK1_09_BOFFS_ADC, 0x80);
511 3 msWriteByte( BK1_18_CALEN, 0);
512 3
513 3 //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
514 3 msVDNoiseHandlerReset();
515 3
516 3 if( IsCVBSInUse())
517 3 {
518 4 msWriteRegsTbl(tProgMsAvPort); // program CVBS port
519 4 msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
520 4 msWriteByteMask(BK2_1A_SVD_EN, 0x00, 0xC0); // Disable SV
521 4 msWriteBit(BK2_1F, 0, _BIT7); // Disable clamp C
522 4 msWriteByte(BK2_7F,0x63);
523 4 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
524 4 msWriteBit(BK3_10_COMBCFGA, 0, _BIT7); // Enable comb filter
525 4 msWriteBit(BK3_A1_SCM_IDSET1, 0, _BIT3); // Disable Secam-SV
526 4 }
527 3 else if( IsSVideoInUse())
528 3 {
529 4 msWriteRegsTbl(tProgMsSvPort); // program SV port
530 4 msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
531 4 msWriteByteMask(BK2_1A_SVD_EN, 0xC0, 0xC0); // Enable SV
532 4 msWriteBit(BK2_1F, 1, _BIT7); // Enable clamp C
533 4 msWriteByte(BK2_7F,0x62);
534 4 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
535 4 msWriteBit(BK3_10_COMBCFGA, 1, _BIT7); // Bypass comb
536 4 msWriteBit(BK3_A1_SCM_IDSET1, 1, _BIT3); // Disable Secam-SV
537 4 }
538 3 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
539 3
540 3 msVDCombLineBufferCtl( MSVD_COMB_LINE_BUFFER_CTL_HW_AUTO );
541 3
542 3 #if TV_ENABLE
543 3 if( IsTVInUse() )
544 3 {
545 4 hw_SetTunerOn();
546 4 #if(!ENABLE_VCR_HANDLER)
547 4 msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
548 4 msWriteByteMask(BK2_6A_VCR_DETECT1, 0x80, 0xC0); // 20051128.Eric.Lin: Force non-VCR mode
549 4 #endif
550 4
C51 COMPILER V8.18 MSTAR 09/29/2009 23:58:02 PAGE 10
551 4 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
552 4 //msWriteByte( BK3_2F, 0x00 ); // IF_COEF for tuner input
553 4 msWriteByte(BK3_24_TH2DHOR, 0x0A); // C-Trap disable: For PAL-DEM
554 4 msWriteByteMask(BK3_21_COMB2DCFGB, 0x00, 0x08); //
555 4 }
556 3 else
557 3 #endif
558 3 {
559 4 hw_SetTunerOff();
560 4 #if(!ENABLE_VCR_HANDLER)
561 4 msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
562 4 msWriteByteMask(BK2_6A_VCR_DETECT1, 0x40, 0xC0); // 20051128.Eric.Lin: Auto VCR mode
563 4 #endif
564 4 msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
565 4 //msWriteByte( BK3_2F, 0x00 );
566 4 msWriteByte(BK3_24_TH2DHOR, 0x20); // C-Trap disable: For PAL-DEM
567 4 msWriteByteMask(BK3_21_COMB2DCFGB, 0x08, 0x08); //
568 4 }
569 3 msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
570 3 }
571 2 }
572 1
573 1 msLineBufferDelayCtl( 0 ); // For Change source
574 1
575 1 /*
576 1 if(!IsVGAInUse())
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -