⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msvd.lst

📁 Maria2 CarTV 20060707 Tony
💻 LST
📖 第 1 页 / 共 5 页
字号:
 552          
 553          
 554          
 555          void msVDColorKill( BOOL bColorKill )
 556          {
 557   1      
 558   1              msWriteByte( BK0_00_REGBK, REG_BANK2_VD);
 559   1      
 560   1          if( bColorKill ) // COLOR_OFF
 561   1          {
 562   2              printMsg("color kill");
 563   2      
 564   2              msWriteByteMask( BK2_55_COLOR_OFF, 0xC0, 0xC0 );
 565   2              msWriteByte( BK0_00_REGBK, REG_BANK3_COMB);
 566   2              msWriteByteMask( BK3_60_IMGCTRL, 0x00, 0x30 ); // Disable Auto Chrom Gain
 567   2      
 568   2      
 569   2              if( msDSP_Std_GetNoiseMag() < 10 )
 570   2                  msWriteByteMask(BK3_21_COMB2DCFGB, 0x30, 0x70); // Notch mode of Y
 571   2              else
 572   2                  msWriteByteMask(BK3_21_COMB2DCFGB, 0x20, 0x70); // Notch mode of Y
 573   2      
 574   2          }
 575   1          else // COLOR return
 576   1          {
 577   2              printMsg("color return");
 578   2              msWriteByteMask( BK2_55_COLOR_OFF, 0x80, 0xC0 );
 579   2              msWriteByte( BK0_00_REGBK, REG_BANK3_COMB);
 580   2              msWriteByteMask(BK3_21_COMB2DCFGB, 0x60, 0x70); // Notch mode of Y
 581   2      
 582   2              msWriteByteMask( BK3_60_IMGCTRL, 0x10, 0x30 ); // Enable HW Auto Chrom Gain
 583   2          }
 584   1      
 585   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
 586   1      }
 587          
 588          void msVDLineLockCtl( BOOL bLock )
 589          {
 590   1          BYTE ucBank;
 591   1      
 592   1          ucBank = msReadByte( BK0_00_REGBK );
 593   1          msWriteByte(BK0_00_REGBK, REG_BANK2_VD);
 594   1      
 595   1          if( bLock )
 596   1          {
 597   2              msVDDSPWriteByte( DSP_20, 0x00 );
 598   2              msVDDSPWriteByte( DSP_21, 0x80 );
 599   2              //if( (g_VdInfo.wVideoStatus&VD_FSC_TYPE) != VD_FSC_4XXX ) // NTSC
 600   2              {
 601   3                  msWriteBit( BK2_23_APLL_TRANGE, 1, _BIT0 ); // 20060103.Daniel
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 11  

 602   3                  msWriteByte( BK2_26_APL_K1_NORMAL, 0x04 ); // APL_K1: 20060328.CY.Ko
 603   3                  msWriteByte( BK2_27_APL_K2_NORMAL, 0 ); // APL_K2
 604   3              }
 605   2              g_bVDCurLineLockStatus = 1;
 606   2              putstr("\r\nLine Lock");
 607   2          }
 608   1          else
 609   1          {
 610   2              msVDDSPWriteByte( DSP_20, 0x00 );
 611   2              msVDDSPWriteByte( DSP_21, 0x00 );
 612   2              msWriteBit( BK2_23_APLL_TRANGE, 0, _BIT0 ); // 20060103.Daniel
 613   2              msWriteByte( BK2_26_APL_K1_NORMAL, 0x10 ); // APL_K1: 20060328.CY.Ko
 614   2              msWriteByte( BK2_27_APL_K2_NORMAL, 0x08 ); // APL_K2
 615   2              g_bVDCurLineLockStatus = 0;
 616   2              putstr("\r\nNo Line Lock");
 617   2          }
 618   1          msVDCombLineBufferCtl( MSVD_COMB_LINE_BUFFER_CTL_SW );
 619   1      
 620   1          msWriteByte( BK0_00_REGBK, ucBank );
 621   1      }
 622          
 623          void msVDColorBurstHandler(BYTE ucFlag)
 624          {
 625   1          bit bCurColorBurstStatus;
 626   1      
 627   1          if( ucFlag&VD_COLOR_BURST_HANDLER_RESET )
 628   1          {
 629   2              msVDColorKill(FALSE);
 630   2              msVDLineLockCtl( _DISABLE );
 631   2              msDSP_Std_Init(); // ???
 632   2      
 633   2              msVD_FSC_ResetColorBurstStatus();
 634   2      
 635   2              bCurColorBurstStatus = 1;
 636   2              g_bVDColorBurstHandler_LastColorBurstStatus = 1;
 637   2              g_ucVDColorBurstHandlerStableCounter = 0;
 638   2      
 639   2              g_wVDColorBurstHandlerTimer = 400;
 640   2      
 641   2          }
 642   1          else if( 0 == g_wVDColorBurstHandlerTimer )
 643   1          {
 644   2              if( g_VdInfo.ucVideoSystem == SIG_SECAM )
 645   2              {
 646   3                  return;
 647   3              }
 648   2      
 649   2              g_wVDColorBurstHandlerTimer = 20;
 650   2      
 651   2              bCurColorBurstStatus = msVDGetColorLockBit();
 652   2      
 653   2              if( bCurColorBurstStatus != g_bVDColorBurstHandler_LastColorBurstStatus )
 654   2              {
 655   3                  ++ g_ucVDColorBurstHandlerStableCounter;
 656   3                  if(g_ucVDColorBurstHandlerStableCounter >= 5)
 657   3                  {
 658   4                      g_ucVDColorBurstHandlerStableCounter = 0;
 659   4                      g_bVDColorBurstHandler_LastColorBurstStatus = bCurColorBurstStatus;
 660   4                      if( bCurColorBurstStatus ) // Has color
 661   4                          {
 662   5                              msVDColorKill(FALSE);
 663   5                      }
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 12  

 664   4                      else // No color
 665   4                              {
 666   5                                  msVDColorKill(TRUE);
 667   5                              }
 668   4                          g_wVDColorBurstHandlerTimer = 100;
 669   4                  }
 670   3              }
 671   2              else
 672   2              {
 673   3                  g_ucVDColorBurstHandlerStableCounter = 0;
 674   3              }
 675   2      
 676   2      
 677   2              // Line lock handler
 678   2              {
 679   3                  bit bForceLineLock = 0;
 680   3      
 681   3      
 682   3                  // Detect if should line lock
 683   3                  if( ( g_bVDColorBurstHandler_LastColorBurstStatus == 0 ) // Color kill
 684   3                    &&( ( msDSP_Std_GetBurstMag() < 0x23 ) ))// No burst pattern
 685   3                      bForceLineLock = 1;
 686   3      
 687   3                  if( bForceLineLock != g_bVDCurLineLockStatus )
 688   3                  {
 689   4                      g_ucMSVDSwitchLineLockCnt ++;
 690   4                      if( g_ucMSVDSwitchLineLockCnt >= 5 )
 691   4                      {
 692   5                          g_ucMSVDSwitchLineLockCnt = 0;
 693   5                          if( bForceLineLock )
 694   5                          {
 695   6                              msVDLineLockCtl(_ENABLE); // Switch to line lock
 696   6                              //putstr("\r\nLine lock");
 697   6                          }
 698   5                          else
 699   5                          {
 700   6                              msVDLineLockCtl(_DISABLE); // Switch to no line lock
 701   6                              //putstr("\r\nNo Line lock");
 702   6                          }
 703   5                      }
 704   4                  }
 705   3                  else
 706   3                  {
 707   4                      g_ucMSVDSwitchLineLockCnt = 0;
 708   4                  }
 709   3              }
 710   2          }
 711   1          //else
 712   1              //msVD_FSC_Detect();
 713   1      }
 714          
 715          
 716          code StuVideoSystemInfo tVideoSystemInfo[SIG_NUMS] =
 717          {
 718              { MSVD_HTOTAL_NTSC,     MSVD_HACTIVE_NTSC     },// SIG_NTSC, // M
*** ERROR C202 IN LINE 718 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_NTSC': undefined identifier
*** ERROR C202 IN LINE 718 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_NTSC': undefined identifier
 719              { MSVD_HTOTAL_PAL,      MSVD_HACTIVE_PAL      },// SIG_PAL, // B/G, D/K, I, H, N
*** ERROR C202 IN LINE 719 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_PAL': undefined identifier
*** ERROR C202 IN LINE 719 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_PAL': undefined identifier
 720              { MSVD_HTOTAL_SECAM,    MSVD_HACTIVE_SECAM    },// SIG_SECAM,
*** ERROR C202 IN LINE 720 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_SECAM': undefined identifier
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 13  

*** ERROR C202 IN LINE 720 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_SECAM': undefined identifier
 721              { MSVD_HTOTAL_NTSC_443, MSVD_HACTIVE_NTSC_443 },// SIG_NTSC_443,
*** ERROR C202 IN LINE 721 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_NTSC_443': undefined identifier
*** ERROR C202 IN LINE 721 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_NTSC_443': undefined identifier
 722              { MSVD_HTOTAL_PAL_60,   MSVD_HACTIVE_PAL_60   },// SIG_PAL_60,
*** ERROR C202 IN LINE 722 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_NTSC_443': undefined identifier
*** ERROR C202 IN LINE 722 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_NTSC_443': undefined identifier
 723              { MSVD_HTOTAL_PAL_M,    MSVD_HACTIVE_PAL_M    },// SIG_PAL_M,
*** ERROR C202 IN LINE 723 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_PAL_M': undefined identifier
*** ERROR C202 IN LINE 723 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_PAL_M': undefined identifier
 724              { MSVD_HTOTAL_PAL_NC,   MSVD_HACTIVE_PAL_NC   },// SIG_PAL_NC,
*** ERROR C202 IN LINE 724 OF ..\..\TV\MSVD.C: 'MSVD_HTOTAL_PAL_NC': undefined identifier
*** ERROR C202 IN LINE 724 OF ..\..\TV\MSVD.C: 'MSVD_HACTIVE_PAL_NC': undefined identifier
 725          };
 726          
 727          void msVDSetupMode( WORD wStatus, BYTE ucSignalType)
 728          {
 729   1          BYTE ucBank;
 730   1      
 731   1          ucBank = msReadByte( BK0_00_REGBK);
 732   1      
 733   1          msVDColorBurstHandler( VD_COLOR_BURST_HANDLER_RESET );
 734   1      
 735   1          //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
 736   1              msVDNoiseHandlerReset();
 737   1      
 738   1      #if(ENABLE_VCR_HANDLER)
                  if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_VCR )
                      msVDVCRHandlerReset();
              #endif
 742   1      
 743   1          //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_AGC_PROCESSOR )
 744   1          {
 745   2              if( wStatus&VD_HSYNC_LOCKED )
 746   2                  VD_AGC_SetFscThreshold(wStatus&VD_VSYNC_50HZ);
 747   2          }
 748   1      
 749   1      #if( ENABLE_HSYNC_HANDLER )
 750   1          //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_HSYNC )
 751   1          {
 752   2              msVDHSyncHandlerReset();
 753   2          }
 754   1      #endif
 755   1      
 756   1          // Setup VD H total and DE width
 757   1          {
 758   2              WORD wHTotal;
 759   2              WORD wHActive;
 760   2      
 761   2              if( wStatus&VD_HSYNC_LOCKED )
 762   2              {
 763   3                  wHTotal = tVideoSystemInfo[ucSignalType]._wHTotal;
 764   3                  wHActive = tVideoSystemInfo[ucSignalType]._wHActive;
 765   3              }
 766   2              else
 767   2              {
 768   3                  if( wStatus&VD_VSYNC_50HZ )
 769   3                  {
 770   4                      wHTotal = tVideoSystemInfo[SIG_PAL]._wHTotal;
 771   4                      wHActive = tVideoSystemInfo[SIG_PAL]._wHActive;
 772   4                  }
 773   3                  else
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 14  

 774   3                  {
 775   4                      wHTotal = tVideoSystemInfo[SIG_NTSC]._wHTotal;
 776   4                      wHActive = tVideoSystemInfo[SIG_NTSC]._wHActive;
 777   4                  }
 778   3              }
 779   2              wHActive += 24;
 780   2              msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 781   2      
 782   2              if( wHActive > 1024 )
 783   2                  msWriteByte( BK2_7B_656_HDEW, 0 ); // 656_HDEW
 784   2              else
 785   2                  {
 786   3                  #if(PANEL_ANALOG_TCON)
 787   3                  msWriteByte( BK2_7B_656_HDEW, ((((wHActive)-4)/4)+0x20) ); // 656_HDEW
 788   3                  #else
                          msWriteByte( BK2_7B_656_HDEW, (((wHActive)-4)/4)); // 656_HDEW
                          #endif
 791   3                  }
 792   2      
 793   2              #if(PANEL_TYPE==PanelPVI030_AT)
                      msWriteByte( BK2_9D_DPL_NSPL_HIGH, _656_PLL_VALUE );     // bit3~10
                      msWriteByte( BK2_9E_DPL_NSPL_LOW, (wHTotal&7)<<5 );  // bit0~2
                      #else
 797   2              wHTotal -= 1;
 798   2              msWriteByte( BK2_9D_DPL_NSPL_HIGH, (wHTotal/8) );     // bit3~10
 799   2              msWriteByte( BK2_9E_DPL_NSPL_LOW, (wHTotal&7)<<5 );  // bit0~2
 800   2              #endif
 801   2          }
 802   1      
 803   1          msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 804   1      
 805   1          msWriteByte( BK0_00_REGBK, REG_BANK3_COMB );
 806   1      
 807   1      //    if( wStatus&VD_VSYNC_50HZ ) // 50 Hz
 808   1      //    {
 809   1      //        msWriteByteMask(BK3_40, 0x03, 0x03); // Force 625 lines
 810   1      //    }
 811   1      //    else // 60 Hz
 812   1      //    {
 813   1      //        msWriteByteMask(BK3_40, 0x02, 0x03); // Force 525 lines
 814   1      //    }
 815   1      
 816   1          if( VD_Type == MARIA2_D )
 817   1          {
 818   2              if( ucSignalType == SIG_SECAM )
 819   2                  msWriteByte( BK3_6F_MAX_CRMA, 0x0F );
 820   2              else
 821   2                  msWriteByte( BK3_6F_MAX_CRMA, 0x04 );
 822   2          }
 823   1      
 824   1          if( IsCVBSInUse())

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -