📄 sync.lst
字号:
652 3 #if RS232DBG
653 3 sysWriteString("VD Status change !\x0d\x0a");
654 3 sysWriteString("BK3_72: ");
655 3 sysWriteHex(ucTemp_VDStatus, 1);
656 3 sysWriteString(tChangeLine);
657 3 #endif //RS232DBG
658 3 }
659 2 }
660 1 else
661 1 {
662 2 mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
663 2
664 2 ucTemp0_1E = mstReadByte(BK0_1E_INTSTD);
665 2 if(((ucTemp0_1E & 0x1F)!=0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
666 2 {
667 3 mstEnableMute();
668 3 g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
669 3 g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
670 3 g_ucSyncStableCounter = 0;
671 3
C51 COMPILER V7.50 SYNC 03/18/2008 22:29:09 PAGE 12
672 3 #if RS232DBG
673 3 sysWriteString("Sync change flag set \x0d\x0a ");
674 3 sysWriteString("BK0_1E_INTSTD: ");
675 3 sysWriteHex(ucTemp0_1E, 1);
676 3 sysWriteString(tChangeLine);
677 3 #endif //RS232DBG
678 3 }
679 2 }
680 1
681 1 mstWriteByte(GEN_00_REGBK, ucBank);
682 1
683 1 #else
BYTE ucTemp0_18 = 0;
BYTE ucTemp0_1E = 0;
BYTE ucTemp3_72 = 0;
ucTemp0_1E = mstReadByte(BK0_1E_INTSTD);
ucTemp0_18 = mstReadByte(BK0_18_INTSTA);
if(((ucTemp0_1E & 0x1F)!=0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
{
if(g_bVCRMode && (ucTemp0_1E & 0x1C)) //20050921 for VCR
return;
mstEnableMute();
#if (MARIA_TYPE_SEL == MARIA_2)
mstWriteByte(GEN_00_REGBK, REGBANKVCF);
ucTemp3_72 = mstReadByte(BK3_72_COMB_STSC);
mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
if((g_ucSystemFlag & NO_INPUT_SIGNAL_FLAG) && (ucTemp3_72 & _BIT3))
{
return;
}
#endif
g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
g_ucSyncStableCounter = 0;
#if 0 //(MARIA_TYPE_SEL == MARIA_2)
mstResetVedioDecoder();
#endif
#if RS232DBG
sysWriteString("Sync change flag set \x0d\x0a ");
sysWriteString("BK0_1E_INTSTD: ");
sysWriteHex(ucTemp0_1E, 1);
sysWriteString(tChangeLine);
#endif //RS232DBG
}
//else if((( ucTemp0_18 & 0xCD) != 0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))
else if((( ucTemp0_18 & 0xCC) != 0) && ((g_ucSystemFlag&INPUT_TIMING_CHANGE_FLAG) == 0))//20050905
{
if((g_ucSystemFlag & NO_INPUT_SIGNAL_FLAG) == 0) // have signal input
{
mstEnableMute();
g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
g_ucSyncStableCounter = 0;
#if RS232DBG
sysWriteString("Sync change flag set \x0d\x0a ");
sysWriteString("BK0_18_INTSTA_L: ");
C51 COMPILER V7.50 SYNC 03/18/2008 22:29:09 PAGE 13
sysWriteHex(ucTemp0_18, 1);
sysWriteString(tChangeLine);
#endif //RS232DBG
}
else // no signal input
{
if((ucTemp0_18 & 0xC0)!=0)
{
g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
g_ucSyncStableCounter = 0;
#if RS232DBG
sysWriteString("Sync change flag set \x0d\x0a ");
sysWriteString("BK0_18_INTSTA_H: ");
sysWriteHex(ucTemp0_18, 1);
sysWriteString(tChangeLine);
#endif //RS232DBG
}
}
}
if( (g_ucSystemFlag & INPUT_TIMING_CHANGE_FLAG) != 0)
return;
// 20050823 Antony for (check sync. status for full odd field)
if((g_ucSyncStatus & INTERLANCE_MODE_B) != (mstReadByte(BK0_EF_STATUS2) & INTERLANCE_MODE_B))
{
mstEnableMute();
g_ucSystemFlag |= INPUT_TIMING_CHANGE_FLAG;
g_ucSystemFlag &= ~INPUT_SIGNAL_STABLE_FLAG;
g_ucSyncStableCounter = 0;
}
#endif
770 1 }
771
772 BYTE mstSyncDetect(void)
773 {
774 1 WORD uwHFreq, uwVFreq, uwFreqTemp;
775 1 BYTE ucSyncStatus, ucSyncTemp;
776 1 #if ((MARIA_TYPE_SEL == MARIA_2) && ENABLE_NEW_SYNC)
777 1 BYTE ucBank;
778 1 BYTE ucTempBK3_72;
779 1 #endif
780 1
781 1 ucSyncStatus = 0;
782 1
783 1 #if ((MARIA_TYPE_SEL == MARIA_2) && ENABLE_NEW_SYNC)
784 1 ucBank = mstReadByte(GEN_00_REGBK);
785 1
786 1 if(tOSDSourcSELSequence[Display.ucSourceSEL] < VGA)
787 1 {
788 2 mstWriteByte(GEN_00_REGBK, REGBANKVCF); // Switch bank3 VCF
789 2 ucTempBK3_72 = mstReadByte(BK3_72_COMB_STSC);
790 2 if((ucTempBK3_72 & _BIT3) != 0)
791 2 {
792 3 ucSyncStatus |= SYNC_LOSS_MASK;
793 3 }
794 2 if((ucTempBK3_72 & 0xF0) == 0)
795 2 {
C51 COMPILER V7.50 SYNC 03/18/2008 22:29:09 PAGE 14
796 3 ucSyncStatus |= SYNC_LOSS_MASK;
797 3 }
798 2
799 2 if(ucTempBK3_72 != g_ucVDStatus)
800 2 {
801 3 ucSyncStatus |= SYNC_LOSS_MASK;
802 3 g_ucVDStatus = ucTempBK3_72;
803 3 }
804 2 mstWriteByte(GEN_00_REGBK, REGBANKSCALER); // Switch bank0 Scaler
805 2 //if(ucSyncStatus & SYNC_LOSS_MASK)
806 2 //mstResetVedioDecoder();
807 2 }
808 1
809 1 #endif
810 1
811 1 mstWriteByte(BK0_18_INTSTA, 0x00); // 20050809 Antony
812 1
813 1 uwHFreq = mstReadWord(BK0_EB_HSPRD_H) & 0x1FFF; // Get H Period count
814 1 if ((uwHFreq == 0x1FFF) || (uwHFreq < 10))
815 1 ucSyncStatus |= NO_HSYNC_B;
816 1
817 1 uwVFreq = mstReadWord(BK0_ED_VTOTAL_H) & 0x7FF; // Get V period count
818 1 if ((uwVFreq == 0x7FF) || (uwVFreq < 10))
819 1 ucSyncStatus |= NO_VSYNC_B;
820 1
821 1 ucSyncTemp = mstReadByte(BK0_EF_STATUS2); // Get SYNC status
822 1
823 1 ucSyncStatus |= (ucSyncTemp & (PAL_MODE_B+CSYNC_MODE_B+INTERLANCE_MODE_B+HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_
-B));
824 1
825 1 #if !DEMODULELATOR_MODE
mstWriteByte(GEN_00_REGBK, REGBANKVCF); // Switch bank3 VCF
mstWriteByte(BK3_70_COMB_STSA, 0xFF); // clear CF status
mstWriteByte(GEN_00_REGBK, REGBANKSCALER); // Switch bank0 Scaler
#endif //DEMODULELATOR_MODE
832 1
833 1 miscDelay1ms(30);
834 1
835 1 ucSyncTemp = mstReadByte(BK0_EF_STATUS2);
836 1
837 1 if ((ucSyncStatus&(HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_B)) != (ucSyncTemp&(HSYNC_NEGATIVE_B+VSYNC_NEGATIVE_B)
-))
838 1 ucSyncStatus |= SYNC_LOSS_MASK;
839 1 #if 0 //RS232DBG
sysWriteString("sd1: ");
sysWriteHex(ucSyncStatus, 1);
sysWriteString(tChangeLine);
#endif //RS232DBG
844 1
845 1 if (!g_bVCRMode)
846 1 {
847 2
848 2 if (!g_bAllOddFiled)
849 2 {
850 3 uwFreqTemp = mstReadWord(BK0_EB_HSPRD_H) & 0x1FFF;
851 3
852 3 if (((uwHFreq-uwFreqTemp)>4)||((uwFreqTemp-uwHFreq)>4))
853 3 ucSyncStatus |= SYNC_LOSS_MASK;
854 3
855 3 }
C51 COMPILER V7.50 SYNC 03/18/2008 22:29:09 PAGE 15
856 2
857 2 uwFreqTemp = mstReadWord(BK0_ED_VTOTAL_H) & 0x7FF;
858 2
859 2 if (((uwVFreq-uwFreqTemp)>2)||((uwFreqTemp-uwVFreq)>2))
860 2 ucSyncStatus |= SYNC_LOSS_MASK;
861 2
862 2 }
863 1
864 1 #if 0 //RS232DBG
sysWriteString("sd2: ");
sysWriteHex(ucSyncStatus, 1);
sysWriteString(tChangeLine);
#endif //RS232DBG
869 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -