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

📄 mstar.lst

📁 Maria2 CarTV 20060707 Tony
💻 LST
📖 第 1 页 / 共 5 页
字号:
 751   1              return tStandardMode[ucModeIdx].HTotal* 2;
 752   1          else
 753   1              return tStandardMode[ucModeIdx].HTotal;
 754   1      }
 755          
 756          
 757          WORD msCalculateHFreqX10( WORD wHPeriod )
 758          {
 759   1          return ((((DWORD)MST_CLOCK_KHZ * 10) + (wHPeriod / 2)) / wHPeriod); // kHz
 760   1      }
 761          
 762          
 763          BYTE msCalculateVSyncTime(void)
 764          {
 765   1          WORD wHFreqX10; // horizontal frequency
 766   1      
 767   1          wHFreqX10 = msCalculateHFreqX10( (WORD)msGetHorizontalPeriod() ); // calculate HSync frequency
 768   1          return (BYTE)((( (WORD)msGetVerticalTotal() * 10 ) + (wHFreqX10 / 2)) / wHFreqX10);
 769   1      }
 770          
 771          WORD msGetHorizontalPeriod(void)
 772          {
 773   1          WORD wHorizontalPeriod;
 774   1          BYTE ucBank;
 775   1      
 776   1          ucBank = msReadByte( BK0_00_REGBK);
 777   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER );
 778   1          wHorizontalPeriod = (msReadWord(BK0_EB_HSPRD_H) & MST_H_PERIOD_MASK);
 779   1          msWriteByte( BK0_00_REGBK, ucBank );
 780   1          return wHorizontalPeriod;
 781   1      }
 782          
 783          WORD msGetVerticalTotal(void)
 784          {
 785   1          WORD wVerticalTotal;
 786   1          BYTE ucBank = msReadByte( BK0_00_REGBK);
 787   1      
 788   1          msWriteByte( BK0_00_REGBK, REG_BANK_SCALER );
 789   1          wVerticalTotal = (msReadWord(BK0_ED_VTOTAL_H) & MST_V_TOTAL_MASK);
 790   1      
 791   1          msWriteByte( BK0_00_REGBK, ucBank );
 792   1          return wVerticalTotal;
 793   1      }
 794          
 795          void GetInputSignalHV(void)
 796          {
 797   1      #if VGA_ENABLE
C51 COMPILER V8.01   MSTAR                                                                 11/28/2006 08:08:06 PAGE 15  

 798   1          if( IsVGAInUse()) // PC/YPbPr
 799   1          {
 800   2              g_InOutCtl.inHPeriod = g_wHorizontalPeriod;
 801   2              g_InOutCtl.inVTotal = g_wVerticalTotal;
 802   2          }
 803   1          else // CVBS/SV/656
 804   1      #endif
 805   1          {
 806   2              g_InOutCtl.inHPeriod = msGetVideoHPeriod(2);
 807   2              g_InOutCtl.inVTotal = msVDGetVTotal();
 808   2          }
 809   1          g_InOutCtl.inHFreq = MST_CLOCK_HZ/g_InOutCtl.inHPeriod;
 810   1          g_InOutCtl.inOutVFreq = (g_InOutCtl.inHFreq+(g_InOutCtl.inVTotal/2))/g_InOutCtl.inVTotal;
 811   1      
 812   1          if( g_InOutCtl.bInterlace )
 813   1              g_InOutCtl.inOutVFreq *= 2;
 814   1      
 815   1          //printf("\r\n\r\ninHP=%d",g_InOutCtl.inHPeriod);
 816   1          //printf("\r\ninHF=%d",g_InOutCtl.inHFreq);
 817   1          //printf("\r\ninVT=%d",g_InOutCtl.inVTotal);
 818   1          //printf("\r\nInOutVFreq=%d", g_InOutCtl.inOutVFreq);
 819   1      }
 820          
 821          void msSetOutputSyncControl( BYTE ucOutputTimingCtl )
 822          {
 823   1          BYTE ucBk0_57;
 824   1      
 825   1          ucBk0_57 = _BIT6; // Frame lock mode 1
 826   1      
 827   1      #if (PANEL_SYNC_MODE_1)
*** WARNING C322 IN LINE 827 OF ..\..\kernal\mStar.c: unknown identifier
                  ucBk0_57 |= _BIT7; // Output v sync manually
              #endif
 830   1      
 831   1      #if (SCALING_FORMULA)
 832   1          ucBk0_57 |= _BIT2; // Scaling range add 1
 833   1      #endif
 834   1      
 835   1          if( ucOutputTimingCtl&OUTPUT_FREERUN )
 836   1          {
 837   2              #if(ENABLE_CHECK_AUTO_H_TOTAL)
*** WARNING C322 IN LINE 837 OF ..\..\kernal\mStar.c: unknown identifier
                      g_bEnableAutoHTotal = 0;
                      #endif
 840   2          }
 841   1          else
 842   1          {
 843   2              if( IsVGAInUse()) // PC/YPBPR
 844   2              {
 845   3                  ucBk0_57 |= _BIT1;
 846   3                  ucBk0_57 |= _BIT7;
 847   3              }
 848   2              else
 849   2              {
 850   3                  #if(ENABLE_CHECK_AUTO_H_TOTAL)
*** WARNING C322 IN LINE 850 OF ..\..\kernal\mStar.c: unknown identifier
                          g_bEnableAutoHTotal = 0;
                          #else
 853   3                  ucBk0_57 |= _BIT1;
 854   3                  #endif
 855   3              }
 856   2          }
C51 COMPILER V8.01   MSTAR                                                                 11/28/2006 08:08:06 PAGE 16  

 857   1      
 858   1          msWriteByte_Bank_BackupBank( REG_BANK_SCALER, BK0_57_OSCTRL1, ucBk0_57 );
 859   1      }
 860          
 861          void SetScalingRatio( BOOL bInterlace )
 862          {
 863   1          BYTE ucBank; // bank buffer
 864   1          DWORD dwTemp;
 865   1          WORD wInputVSize;
 866   1      
 867   1          ucBank = msReadByte(BK0_00_REGBK); // store bank
 868   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
 869   1      /*
 870   1              printf("\r\nSCALING_H_IN=%d", SCALING_H_IN);
 871   1              printf("\r\nSCALING_H_OUT=%d", SCALING_H_OUT);
 872   1          printf("\r\nSCALING_V_IN=%d", SCALING_V_IN);
 873   1          printf("\r\nSCALING_V_OUT=%d", SCALING_V_OUT);
 874   1      */
 875   1          #if VGA_ENABLE
 876   1          if(IsVGAInUse())
 877   1              g_WindowInfo.V_DisSize = PanelHeight;
*** ERROR C202 IN LINE 877 OF ..\..\KERNAL\MSTAR.C: 'PanelHeight': undefined identifier
 878   1          else
 879   1          #endif
 880   1          g_WindowInfo.V_DisSize=PanelVSiEnd;
*** ERROR C202 IN LINE 880 OF ..\..\KERNAL\MSTAR.C: 'PanelVSiEnd': undefined identifier
 881   1      
 882   1          // Horizontal
 883   1          if( SCALING_H_IN == SCALING_H_OUT )
*** ERROR C202 IN LINE 883 OF ..\..\KERNAL\MSTAR.C: 'PanelWidth': undefined identifier
 884   1          {
 885   2              dwTemp = 0;
 886   2              g_WindowInfo.H_SaclingRatioInfo = SCALING_RATIO_TYPE_NATIVE;
 887   2          }
 888   1          else
 889   1          {
 890   2              if( SCALING_H_IN < SCALING_H_OUT )
*** ERROR C202 IN LINE 890 OF ..\..\KERNAL\MSTAR.C: 'PanelWidth': undefined identifier
 891   2              {
 892   3                  g_WindowInfo.H_SaclingRatioInfo = SCALING_RATIO_TYPE_UP;
 893   3                  dwTemp = 0;
 894   3              }
 895   2              else // if( SCALING_H_IN > SCALING_H_OUT )
 896   2              {
 897   3                  g_WindowInfo.H_SaclingRatioInfo = SCALING_RATIO_TYPE_DOWN;
 898   3                  dwTemp = ScalingRatio_H( SCALING_H_IN, SCALING_H_OUT );
*** ERROR C202 IN LINE 898 OF ..\..\KERNAL\MSTAR.C: 'PanelWidth': undefined identifier
 899   3      
 900   3                              //printf("ScalingRatio_H===%x", dwTemp/0x100); //get high 2 bytes
 901   3                      if(IsVideoPortInUse())
 902   3                          dwTemp&=0xFFF000;
 903   3                  if( dwTemp > 0xFF000 )
 904   3                      dwTemp |= 0x800000;
 905   3                  else
 906   3                      dwTemp |= 0xC00000;
 907   3              }
 908   2          }
 909   1          msWrite3Bytes(BK0_32_SRH_H, dwTemp);
 910   1      
 911   1          // Vertical
 912   1          wInputVSize = SCALING_V_IN;
 913   1      
C51 COMPILER V8.01   MSTAR                                                                 11/28/2006 08:08:06 PAGE 17  

 914   1          if( bInterlace )
 915   1              wInputVSize = wInputVSize/2;
 916   1      
 917   1          if( wInputVSize == SCALING_V_OUT )
 918   1          {
 919   2              dwTemp = 0;
 920   2              g_WindowInfo.V_SaclingRatioInfo = SCALING_RATIO_TYPE_NATIVE;
 921   2          }
 922   1          else
 923   1          {
 924   2              if( wInputVSize < SCALING_V_OUT )
 925   2              {
 926   3                  g_WindowInfo.V_SaclingRatioInfo = SCALING_RATIO_TYPE_UP;
 927   3              }
 928   2              else // ( wInputVSize > SCALING_V_OUT ) // Scaling down
 929   2              {
 930   3                  g_WindowInfo.V_SaclingRatioInfo = SCALING_RATIO_TYPE_DOWN;
 931   3              #if(ENABLE_V_PRE_SCALING_DOWN)
 932   3                  g_WindowInfo.V_SaclingRatioInfo |= SCALING_RATIO_FLAG_PRE;
 933   3              #endif
 934   3              }
 935   2      
 936   2              #if (ENABLE_V_PRE_SCALING_DOWN)&&(!WidePanel)
*** WARNING C322 IN LINE 936 OF ..\..\kernal\mStar.c: unknown identifier
 937   2              if( g_WindowInfo.V_SaclingRatioInfo&SCALING_RATIO_FLAG_PRE )
 938   2              {
 939   3                  dwTemp = PRE_SCALING_RATIO_V( SCALING_V_IN, SCALING_V_OUT );
 940   3                  if( bInterlace )
 941   3                      dwTemp = dwTemp<<1;
 942   3                  dwTemp |= 0xC00000;
 943   3              }
 944   2              else
 945   2              #endif
 946   2              {
 947   3                  dwTemp = ScalingRatio_V( SCALING_V_IN, SCALING_V_OUT );
 948   3                  if( bInterlace )
 949   3                      dwTemp = (dwTemp+1)>>1;
 950   3      
 951   3                  if( dwTemp>0x3FFFFF)
 952   3                  {
 953   4                      dwTemp = 0x3FFFFF;
 954   4                  }
 955   3                  dwTemp &= 0x3FFFFF;
 956   3                  dwTemp |= 0x800000;
 957   3              }
 958   2          }
 959   1          //printf("\r\nVScaleRatio=0x%xXX", dwTemp>>8);
 960   1      
 961   1          msWrite3Bytes(BK0_35_SRV_H, dwTemp);
 962   1      
 963   1      #if(ENABLE_V_PRE_SCALING_DOWN)
 964   1          if ((g_WindowInfo.V_SaclingRatioInfo&SCALING_RATIO_FLAG_PRE) && (!bInterlace))
 965   1          {
 966   2              msWriteBit( BK0_C3, 1, _BIT6 );
 967   2          }
 968   1          else
 969   1          {
 970   2              msWriteBit( BK0_C3, 0, _BIT6 );
 971   2          }
 972   1      #endif
 973   1      
 974   1          msWriteByte(BK0_00_REGBK, ucBank); // recovery bank
C51 COMPILER V8.01   MSTAR                                                                 11/28/2006 08:08:06 PAGE 18  

 975   1      }
 976          
 977          void CalculateAspectRatio(void)
 978          {
 979   1      #if(ENABLE_OVER_SCAN)
*** WARNING C322 IN LINE 979 OF ..\..\kernal\mStar.c: unknown identifier
                  WORD wTemp;
                  BYTE ucOverScanH;
                  BYTE ucOverScanV;
              
                  // Get over scan ratio
                  ucOverScanH = g_ucOverScanH;
                  ucOverScanV = g_ucOverScanV;
              
                  // Cal Over scan
                  if( ucOverScanH )
                  {
                      wTemp = (DWORD)g_WindowInfo.H_CapSize * g_ucOverScanH / 1000;
                      //g_WindowInfo.H_CapStart += wTemp;
                      g_WindowInfo.H_CapSize = (g_WindowInfo.H_CapSize - 2 * wTemp);
                  }
              
                  if( ucOverScanV )
                  {
                      wTemp = (DWORD)g_WindowInfo.V_CapSize * g_ucOverScanV / 1000;
                      //g_WindowInfo.V_CapStart += wTemp;
                      g_WindowInfo.V_CapSize = (g_WindowInfo.V_CapSize - 2 * wTemp);
                  }
              #endif
1003   1      }
1004          
1005          void msSetupFreeRunMode( BYTE ucVFreq )
1006          {
1007   1          BYTE ucBank; // bank buffer
1008   1      
1009   1          ucBank = msReadByte(BK0_00_REGBK); // backup bank
1010   1          msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
1011   1          //printf("\r\nSetFreeRunMode(%d)", ucVFreq);
1012   1      
1013   1          g_InOutCtl.inOutVFreq = ucVFreq;
1014   1      
1015   1          SetDisplayWindow();

⌨️ 快捷键说明

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