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

📄 msvd.lst

📁 Maria2 CarTV 20060707 Tony
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MSVD
OBJECT MODULE PLACED IN ..\..\1out\msVD.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\tv\msVD.c BROWSE INCDIR(..\..\inc;..\..\mslib;..\..\Device;..\..\kern
                    -al;..\..\msFunc;..\..\pc;..\..\tv) DEBUG OBJECTEXTEND PRINT(..\..\1out\msVD.lst) OBJECT(..\..\1out\msVD.obj)

line level    source

   1          #include "board.h"
   2          
   3          #include <math.h>
   4          
   5          #define _MSVD_C_
   6          
   7          #include <math.h>
   8          #include "types.h"
   9          #include "ms_reg.h"
  10          #include "board.h"
  11          #include "global.h"
  12          #include "DEBUG.h"
  13          #include "ms_rwreg.h"
  14          #include "misc.h"
  15          #include "userpref.h"
  16          #include "power.h"
  17          #include "panel.h"
  18          #include "mstar.h"
*** WARNING C322 IN LINE 93 OF ..\..\INC\MSTAR.H: unknown identifier
  19          #include "tv.h"
  20          #include "DevVD.h"
  21          #include "Detect.h"
  22          #include "DEVTuner.h"
  23          #include "adjust.h"
  24          #include "Maria2_FSC_Lib.h"
  25          #include "Maria2_ACC_Lib.h"
  26          #include "M2_VD_Std_Lib.h"
  27          #include "DevVD_User.h"
*** WARNING C322 IN LINE 2 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 17 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 32 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 47 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 62 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 77 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 92 OF ..\..\INC\DEVVD_USER.H: unknown identifier
*** WARNING C322 IN LINE 106 OF ..\..\INC\DEVVD_USER.H: unknown identifier
  28          #include "menu.h"
  29          #include "msvd.h"
  30          
  31          #include "M2_VD_AGC_Lib.h"
  32          #include "msVDField.h"
  33          
  34          #if(ENABLE_VD_DSP)
  35          #include "Maria2_dsp_lib.h"
  36          #endif
  37          
  38          ///////////////////////////////////////////////////////////////////////////////
  39          // h sync lock  :   DspReg[14.1] or DspReg[0x25]7:4(CTRL_STATE[3:0]) >= 6
  40          // color lock   :   DspReg[0x25]7:4(CTRL_STATE[3:0]) == 8
  41          // 50Hz         :   by DSP
  42          // interlace    :   by scaler.
  43          //
  44          // BK2_01[2:0] => FREQ_FSC[2:0] ==> Detect Signal type
  45          //  000: 4.43361875MHz.
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 2   

  46          //  010: 3.579545MHz.
  47          //  100: 3.57561149MHz.
  48          //  110: 3.58205625MHz
  49          //
  50          // BK2_01[7:4] => APLL_TRK_MD[3:0]
  51          //  1000: APLL in tracking mode
  52          //  0110: APLL in free run mode(no color)
  53          //
  54          // BK2_02[7:6] => APLL_LCK_STATE[1:0]
  55          //  01: APLL in lock state(color on)
  56          //  xx: APLL not in lock yet(color off)
  57          //
  58          // BK2_02[5:4] => FRM_LNS[1:0]
  59          //  00: Unknown
  60          //  10: Above 575 lines
  61          //  01: Below 575 lines
  62          //
  63          // BK2_02[3:2] => Lock color burst
  64          //  01: Lock
  65          //  10: No lock
  66          //
  67          // BK2_02[1:0] => TV_SYSTEM[1:0]
  68          //  01: NTSC system
  69          //  10: PAL system
  70          //
  71          // BK2_03[7] ==> VCR_MD ==> VCR mode detect
  72          // ------------------------------------------------------------------
  73          // When Bk2_04 = 0x04, Bk2_02 ==> Noise level
  74          // When Bk2_04 = 0x08, Bk2_01 ==> Gain level
  75          // ------------------------------------------------------------------
  76          // How to judge these situation:
  77          //  VCR - Stop(OSD): Non-interlace
  78          //  VCR - Pause: Vtotal is different with normal play
  79          //  VCR : Vtotal is always change
  80          ///////////////////////////////////////////////////////////////////////////////
  81          // BK3_72[2:0]
  82          // 000: NTSC(M)
  83          // 001: NTSC(443)
  84          // 010: PAL(M)
  85          // 011: PAL(BDGHIN)
  86          // 100: PAL(Nc)
  87          // 111: Unknow => No signal
  88          ///////////////////////////////////////////////////////////////////////////////
  89          //              Htotal*Vtotal
  90          // NTSC(M)      910*525
  91          // NTSC-443     1127.1*525
  92          // PAL(M)       909*525
  93          // PAL(BDGHIN)  1135*625+4
  94          // PAL(Nc)      917*625+4
  95          //
  96          // NTSC(M) New capture = 720*910/858
  97          ///////////////////////////////////////////////////////////////////////////////
  98          ///////////////////////////////////////////////////////////////////////////////
  99          // 3.58: 910    NTSC-M  525 NTSC
 100          //       909    PAL-M   525 PAL
 101          //       917    PAL-Nc  625
 102          // 4.43:
 103          //       1135   PAL-BDGHIN  625
 104          //       1127   NTSC-443    525
 105          ///////////////////////////////////////////////////////////////////////////////
 106          // Use ShibaSoku TG35CX get some info:
 107          // NTSC:
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 3   

 108          // FH=15.735KHz ==> HP=0x2FB
 109          // FV=59.94Hz   ==> VT=525
 110          //-------------------------------------
 111          // PAL:
 112          // FH=15.625KHz ==> HP=0x334
 113          // FV=50        ==> VT=625
 114          ////////////////////////////////////////////////////////////////////////////
 115          
 116          WORD code tVideoSystemStdHTotal[SIG_NUMS] =
 117          {
 118              910, // SIG_NTSC, // M
 119              1135, // SIG_PAL, // B/G, D/K, I, H, N
 120              1097, // SIG_SECAM,
 121              1127, // SIG_NTSC_443,
 122              1127, // SIG_PAL_60,
 123              909, // SIG_PAL_M,
 124              917, // SIG_PAL_NC,
 125          };
 126          void msVDDSPWriteByte( BYTE ucAddr, BYTE ucData )
 127          {
 128   1          BYTE ucBk2_07 = msReadByte( BK2_07 );
 129   1      
 130   1          msWriteByte( BK2_07, ucAddr );
 131   1          msWriteByte( BK2_08, ucData );
 132   1          msWriteByte( BK2_07, ucBk2_07 );
 133   1      }
 134          
 135          BYTE msVDDSPReadByte( BYTE ucAddr )
 136          {
 137   1          BYTE ucTmp;
 138   1          BYTE ucBk2_07 = msReadByte( BK2_07 );
 139   1          msWriteByte( BK2_07, ucAddr );
 140   1          ucTmp = msReadByte( BK2_09 );
 141   1          msWriteByte( BK2_07, ucBk2_07 );
 142   1          return ucTmp;
 143   1      }
 144          
 145          WORD msVDDSPRead2Bytes( BYTE ucAddr )
 146          {
 147   1          return (msVDDSPReadByte(ucAddr) + (msVDDSPReadByte(ucAddr+1)<<8));
 148   1      }
 149          
 150          BYTE msVDSpecialRead( BYTE ucMux, BYTE ucAddr )
 151          {
 152   1          BYTE ucBank;
 153   1          BYTE ucBackupBK2_04;
 154   1          BYTE ucTmp;
 155   1      
 156   1          ucBank = msReadByte( BK0_00_REGBK);
 157   1          msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 158   1          ucBackupBK2_04 = msReadByte( BK2_04 );
 159   1          msWriteByte( BK2_04, ucMux );
 160   1          ucTmp = msReadByte( ucAddr );
 161   1          msWriteByte( BK2_04, ucBackupBK2_04 );
 162   1          msWriteByte( BK0_00_REGBK, ucBank );
 163   1          return ucTmp;
 164   1      }
 165          
 166          void msVDReset(void)
 167          {
 168   1          BYTE ucBank = msReadByte( BK0_00_REGBK );
 169   1      
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 4   

 170   1          putstr("\r\n[Reset VD]");
 171   1          msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 172   1      
 173   1          #if( ENABLE_PAL_SWITCH_HANDLER )
 174   1          //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_PAL_SWITCH )
 175   1              msVDPalSwitchHandlerReset(); // Auto detect PAL/NTSC
 176   1          #endif
 177   1      
 178   1          msWriteByteMask(BK2_21_APLL_CTRL2, 0x00, 0x06); // Auto detect PAL/NTSC
 179   1      
 180   1          msWriteBit( BK2_14_SOFT_RST, 1, _BIT7 );
 181   1          Delay1ms(1);
 182   1          msWriteBit( BK2_14_SOFT_RST, 0, _BIT7 );
 183   1          Delay1ms(1);
 184   1      
 185   1      
 186   1          //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_AGC_PROCESSOR )
 187   1              VD_AGC_Ctl( VD_AGC_CTL_ENABLE );
 188   1      
 189   1      #if(ENABLE_VD_DSP)
 190   1          //if( g_ucmsVDCtl&MSVD_CTL_FLAG_VSYNC )
 191   1          {
 192   2              BYTE ucVSyncCtl = VD_DSP_CTL_ENABLE;
 193   2      
 194   2              #if(ENABLE_VSYNC_CTL_AUTO_H_TOTAL)
*** WARNING C322 IN LINE 194 OF ..\..\tv\msVD.c: unknown identifier
                      ucVSyncCtl |= VD_DSP_CTL_DISABLE_AUTO_H_TOTAL;
                      #endif
 197   2      
 198   2              #if( TV_SYSTEM == TV_NTSC )
                      VD_DSP_Ctl( ucVSyncCtl, 525 ); // Enable DSP, 60Hz
                      #else
 201   2              VD_DSP_Ctl( ucVSyncCtl, 625 ); // Enable DSP, 50Hz
 202   2              #endif
 203   2          }
 204   1      #elif( ENABLE_SW_FILED )
                  msVDDSPWriteByte( DSP_0F, 0x04 );
              #endif
 207   1      
 208   1          //if( g_ucmsVDCtl&MSVD_CTL_FLAG_NOISE_HANDLER )
 209   1              msVDNoiseHandlerInit();
 210   1      
 211   1      //yurian for VD Reset DSP10 error
 212   1          {
 213   2            BYTE DSP10_Value=msVDDSPReadByte( 0x10 );
 214   2            while(DSP10_Value!=0x85)
 215   2              {
 216   3                  Delay1ms(2);
 217   3                  msVDDSPWriteByte(DSP_10, 0x85);
 218   3                  msVDDSPWriteByte(DSP_11, 0x00);
 219   3                  Delay1ms(1);
 220   3                  DSP10_Value=msVDDSPReadByte( 0x10 );
 221   3              }
 222   2          }
 223   1      
 224   1          msWriteByte( BK0_00_REGBK, ucBank );
 225   1      }
 226          
 227          void msVD_FSM_Reset(void)
 228          {
 229   1          BYTE ucBank = msReadByte( BK0_00_REGBK);
 230   1          putstr("\r\n[Reset FSM]");
C51 COMPILER V8.01   MSVD                                                                  11/28/2006 08:08:13 PAGE 5   

 231   1      
 232   1          #if ( ENABLE_PAL_SWITCH_HANDLER )
 233   1          //if( g_ucmsVDCtl2&MSVD_CTL2_FLAG_PAL_SWITCH )
 234   1              msVDPalSwitchHandlerReset(); // Auto detect PAL/NTSC
 235   1          #endif
 236   1          msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 237   1          msWriteBit( BK2_14_SOFT_RST, 1, _BIT6 );
 238   1          Delay1ms(1);
 239   1          msWriteBit( BK2_14_SOFT_RST, 0, _BIT6 );
 240   1          Delay1ms(1);
 241   1          msWriteByte( BK0_00_REGBK, ucBank );
 242   1      }
 243          
 244          WORD msVDGetVTotal(void)
 245          {
 246   1          BYTE ucBank;
 247   1          WORD wVTotal;
 248   1      
 249   1          ucBank = msReadByte( BK0_00_REGBK);
 250   1          msWriteByte( BK0_00_REGBK, REG_BANK2_VD );
 251   1          wVTotal = msVDDSPRead2Bytes(0);
 252   1          msWriteByte( BK0_00_REGBK, ucBank );
 253   1          return wVTotal;
 254   1      }
 255          // ucFlag:
 256          // [1:0]: 1 -> Always return a valid h freq
 257          //        2 -> Return virtual H period
 258          WORD msGetVideoHPeriod( BYTE ucFlag )
 259          {
 260   1          BYTE i;
 261   1          WORD wInHP;
 262   1          WORD wInHF;
 263   1      
 264   1          if( (ucFlag&3) != 2 )
 265   1          {
 266   2              for( i = 0; i < 10; ++ i )
 267   2              {

⌨️ 快捷键说明

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