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

📄 ms_func.lst

📁 MST720-DEMO程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 9   

              void mstSetDCTI(BYTE DCTIValue)
              {
                      BYTE ucTemp;
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      ucTemp = mstReadByte(BK1_7D_CTI) & 0xE7;
                      ucTemp |= ((DCTIValue&0x03) << 3);
                      mstWriteByte(BK1_7D_CTI, ucTemp);
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
              }
              
              void mstSetBlackExtension(BYTE BEValue)
              {
                      BYTE ucTemp;
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      ucTemp = mstReadByte(BK1_7E_VIP_Y_CTRL) & 0xFE;
                      ucTemp |= (BEValue&0x01) ;
                      mstWriteByte(BK1_7E_VIP_Y_CTRL, ucTemp);
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
              
              }
              
              void mstSetWhiteExtension(BYTE WEValue)
              {
                      BYTE ucTemp;
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      ucTemp = mstReadByte(BK1_7E_VIP_Y_CTRL) & 0xFD;
                      ucTemp |= ((WEValue&0x01) << 1);
                      mstWriteByte(BK1_7E_VIP_Y_CTRL, ucTemp);
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
              }
              
              void mstSetFavorColor(BYTE FCValue)
              {
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      
                      if (FCValue != 0)
                              mstWriteByte(BK1_76_FCC_CTRL, 0xFF);  //Forte 0x5B
                      else
                              mstWriteByte(BK1_76_FCC_CTRL, 0x00);
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
              }
              
              #endif  //USE_ALLMACEOSD
 535          
 536          void mstSetMACE(BYTE MACEValue)
 537          {
 538   1              mstWriteByte(GEN_00_REGBK, REGBANKADC);
 539   1              
 540   1              if (MACEValue != 0)
 541   1              {
 542   2                      mstWriteByte(BK1_76_FCC_CTRL, 0x89);            //gan   0x4f to 0x89
 543   2                      mstWriteByte(BK1_77_APP_CTRL, 0x78);
 544   2                      //mstWriteByte(BK1_7E_VIP_Y_CTRL, 0x00);
 545   2              }
 546   1              else
 547   1              {
 548   2                      mstWriteByte(BK1_76_FCC_CTRL, 0x00);
 549   2                      mstWriteByte(BK1_77_APP_CTRL, 0x00);
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 10  

 550   2                      //mstWriteByte(BK1_7E_VIP_Y_CTRL, 0x00);
 551   2              }
 552   1              
 553   1              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
 554   1      }
 555          
 556          void mstSetScalingMode(BYTE ucScalingMode)
 557          {
 558   1      
 559   1      #if (PANEL_TYPE_SEL == PNL_HITACHI26_L)
                      BYTE  ucTemp;
                      ucTemp = ucScalingMode;
                      return;
              #else
 564   1      
 565   1      #if 0   //Not Ready
                      DWORD ulV_Scaling_Factor;
                      WORD  uwInput_V_Resol;
              #endif
 569   1              DWORD ulH_Scaling_Factor,ulNewHsize;
 570   1              WORD  uwInput_H_Resol,uwTemp,uwCutOffNum;
 571   1              BYTE  ucLace_status;
 572   1              DWORD  ulTemp;
 573   1              BYTE  ucTemp;
 574   1      
 575   1              if (tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)   // If VGA input HZOOM by table
 576   1                      return;
 577   1      
 578   1              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);      //Switch to Bank 0
 579   1              
 580   1              if( g_ucSyncStatus & INTERLANCE_MODE_B)
 581   1                      ucLace_status = 2;//Interlace
 582   1              else
 583   1                      ucLace_status = 1;//Progracive
 584   1              
 585   1              //Cal H scaling factor  
 586   1              uwInput_H_Resol = mstReadWord(BK0_0C_SPRHDC_H);//Get Input H resolution
 587   1              
 588   1              ulH_Scaling_Factor = (DWORD)PANEL_WIDTH <<20 ;// The max available panel H_resolution is 0xFFF(4095).
 589   1              
 590   1              uwCutOffNum =(uwInput_H_Resol*SCAL_CUTOFF_H_PER)/SCAL_CUTOFF_RESOL;
 591   1      
 592   1              mstWriteWord(BK0_08_SPRHST_H, g_uwHStar + uwCutOffNum/2);//Capture H Start //BK0_07_SPRHST_L,BK0_08_SPRHS
             -T_H
 593   1              
 594   1              if(ucScalingMode == FULL)               // 16:9
 595   1              {
 596   2                      mstWriteByte(BK0_38_NLDTI, 0x00);                               // Disable Nonlinear scaling function
 597   2                      ulH_Scaling_Factor /= uwInput_H_Resol- uwCutOffNum;
 598   2                      
 599   2                      //MsSetScalingHImage();
 600   2                      
 601   2                      mstWriteWord(BK0_49_SIHST_H,PANEL_HSTART);// Start      //BK0_48_SIHST_L, BK0_49_SIHST_H
 602   2                      mstWriteWord(BK0_4D_SIHEND_H,PANEL_HSTART+PANEL_WIDTH);// End //BK0_4C_SIHEND_L, BK0_4D_SIHEND_H
 603   2      //1 robbie fixed the parameter  only for the panasonic panel   2006-01-12
 604   2                      #if PANEL_TYPE_SEL==PNL_LTA07_AT
                              mstWriteWord(BK0_4D_SIHEND_H,0x02c6);// End //BK0_4C_SIHEND_L, BK0_4D_SIHEND_H
                              #endif//robbie added only for panasonic 2006-01-12
 607   2                      ulH_Scaling_Factor += 0xC00;//0xc00 get from fine tune
 608   2              
 609   2              }
 610   1              else if(ucScalingMode == LETTERBOX)                                     // 4:3
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 11  

 611   1              {
 612   2                      mstWriteByte(BK0_38_NLDTI, 0x00);                               // Disable Nonlinear scaling function
 613   2                      
 614   2                      // Get the new H image size
 615   2                      //ulNewHsize=(((PANEL_HEIGHT*Dot_H)/Dot_W*4)/3)/3;//X*4/3=>4:3,X/3=>3dot in 1 pixel
 616   2                      ulNewHsize=PANEL_DOT_HEIGHT;//X*4/3=>4:3,X/3=>3dot in 1 pixel
 617   2                      ulNewHsize=ulNewHsize*PANEL_HEIGHT;
 618   2                      ulNewHsize=ulNewHsize/PANEL_DOT_WIDTH;
 619   2                      ulNewHsize=(ulNewHsize*SCAL_RATIO_NUMERATOR)/(SCAL_RATIO_DENOMINATOR*3);
 620   2                      
 621   2                      //New start point
 622   2                      uwTemp = PANEL_HSTART + (PANEL_WIDTH - ulNewHsize )/2;
 623   2                      mstWriteWord(BK0_49_SIHST_H,uwTemp);//new Start //BK0_48_SIHST_L, BK0_49_SIHST_H
 624   2                      
 625   2                      // New end point
 626   2                      mstWriteWord(BK0_4D_SIHEND_H,uwTemp+ulNewHsize);//new End //BK0_4C_SIHEND_L, BK0_4D_SIHEND_H
 627   2                      
 628   2                      // Get new scaling factor
 629   2                      ulH_Scaling_Factor = (DWORD)ulNewHsize <<20 ;
 630   2                      ulTemp = (DWORD)uwInput_H_Resol*(SCAL_CUTOFF_RESOL - SCAL_CUTOFF_H_PER);
 631   2                      ulH_Scaling_Factor /= (ulTemp/SCAL_CUTOFF_RESOL);
 632   2                      
 633   2                      
 634   2                      // Mask the front and back block
 635   2                      mstWriteWord(BK0_5D_FRAME_COLOR_2,0);//BK0_5C_FRAME_COLOR_1, BK0_5D_FRAME_COLOR_2
 636   2      
 637   2                      ulH_Scaling_Factor += 0xC00;//0xc00 get from fine tune
 638   2              }
 639   1              else if(ucScalingMode == PARANOMA)                                      // Nonlinear 1 // Patten,Widerscreen Enhanced Circle Hatch 100 IRE
 640   1              {
 641   2                      // New H. scaling factor
 642   2                      ulH_Scaling_Factor /= SCAL_NON_LINEAR_RESOL;
 643   2                      ulH_Scaling_Factor *= SCAL_NON_LINEAR_RATIO;
 644   2                              
 645   2                      ulH_Scaling_Factor /= uwInput_H_Resol;                  //F0
 646   2                      ulH_Scaling_Factor += 0x1a00;
 647   2                      // Size of the count0,count1 and count2         
 648   2                      uwTemp = uwInput_H_Resol /10 ;
 649   2                      ucTemp = (BYTE)uwTemp/2;
 650   2                      mstWriteByte(BK0_3B_NLDC0, ucTemp*2);                           // Counter0
 651   2                      mstWriteByte(BK0_3C_NLDC1, ucTemp*2);                   // Counter1
 652   2                      mstWriteByte(BK0_3D_NLDC2, (uwInput_H_Resol/4)-ucTemp*4 );      // Counter2
 653   2                      // Enable nonlinear scaling,C0:C1:C2=2:2:1
 654   2                      //Offset=5*(Pan_H/In_H)*((1/2)-(a/2b))
 655   2                      ulTemp=5*PANEL_WIDTH;
 656   2                      ulTemp *= (SCAL_NON_LINEAR_RESOL - SCAL_NON_LINEAR_RATIO)>>1;
 657   2                      ulTemp /= SCAL_NON_LINEAR_RESOL;
 658   2                      ulTemp = (ulTemp<<7) / uwInput_H_Resol;
 659   2                      mstWriteByte(BK0_38_NLDTI, 0x80 + (BYTE)ulTemp);        //[7]Nonlinear enable/disable.[6:0]Offset Initial 
 660   2                      
 661   2                      // To get Delta
 662   2                      ulTemp = ulTemp<< 8;
 663   2                      ulTemp /= (4*2*ucTemp) ;
 664   2                      
 665   2                      mstWriteByte(BK0_39_NLDT0, (BYTE)ulTemp);               //Deltar0.[7]sign of the offset initial value,[6:0]Delta valu
             -e
 666   2                      mstWriteByte(BK0_3A_NLDT1, (BYTE)ulTemp);               //Delta1
 667   2                      
 668   2                      // Set Display H image size End and Start
 669   2                      mstWriteWord(BK0_49_SIHST_H,PANEL_HSTART);              //Start //BK0_48_SIHST_L, BK0_49_SIHST_H
 670   2                      mstWriteWord(BK0_4D_SIHEND_H,PANEL_HSTART+PANEL_WIDTH);//End //BK0_4C_SIHEND_L, BK0_4D_SIHEND_H
 671   2                      
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 12  

 672   2                      ulH_Scaling_Factor += 0x800;//0xc00 get from fine tune
 673   2      
 674   2              }
 675   1              if((uwInput_H_Resol-uwCutOffNum) > PANEL_WIDTH)
 676   1              {
 677   2                      sysWriteString("H-Scaling Rate:");
 678   2                      sysWriteUartHex4((WORD)(ulH_Scaling_Factor>>16),0);
 679   2                      sysWriteUartHex4((WORD)(ulH_Scaling_Factor),0);
 680   2                      sysWriteString(tChangeLine);
 681   2      
 682   2              #if 0 //(MARIA_TYPE_SEL == MARIA_2)
                              mstWriteWord(BK0_31_SRH_M,(unsigned int)(ulH_Scaling_Factor) );//BK0_30_SRH_L,BK0_31_SRH_M
                              mstWriteByte(BK0_32_SRH_H,(unsigned char)((ulH_Scaling_Factor&0x0F0000)>>16)+0xC0);
                      #else
 686   2                      mstWriteWord(BK0_31_SRH_M,(unsigned int)(ulH_Scaling_Factor&0xFFF000) );//BK0_30_SRH_L,BK0_31_SRH_M
 687   2                      mstWriteByte(BK0_32_SRH_H,(unsigned char)((ulH_Scaling_Factor&0x0F0000)>>16)+0xC0);
 688   2              #endif
 689   2              }
 690   1              else
 691   1              {
 692   2                      mstWriteWord(BK0_08_SPRHST_H, g_uwHStar);
 693   2                      mstWriteByte(BK0_32_SRH_H, 0x00);
 694   2              }
 695   1                      
 696   1              
 697   1              
 698   1      #if 0   //Not Ready
                      //Cal V scaling factor          
                      uwInput_V_Resol = mstReadWord(BK0_0A_SPRVDC_H)-SCAL_CUTOFF_V_NUM;//Get Input V resolution       
                      
                      if((uwInput_V_Resol / PANEL_HEIGHT)>1)
                      {
                              ulV_Scaling_Factor = (DWORD)uwInput_V_Resol  <<20;                      // The max available panel H_resolution is 0xFFF(4
             -095).
                              ulV_Scaling_Factor /= PANEL_HEIGHT*ucLace_status;//*2=>interlace
                              
                              mstWriteWord(BK0_34_SRV_M,(unsigned int)ulV_Scaling_Factor);
                              *((BYTE pdata*) BK0_35_SRV_H) = (unsigned char)((ulV_Scaling_Factor&0x3F0000)>>16)+0x80;
                      }
                      else
                              *((BYTE pdata*) BK0_35_SRV_H) = 0x00;
              
              #endif
 714   1                      //1 robbie fixed the parameter  only for the panasonic panel   2006-01-12
 715   1              #if PANEL_TYPE_SEL==PNL_LTA07_AT
                              if((g_ucSyncStatus & PAL_MODE_B) != 0)
                              {
                              mstWriteWord(BK0_31_SRH_M,0x6000);//
                              mstWriteByte(BK0_32_SRH_H,0xCB);
                              }//
                      #endif//robbie added only for panasonic 2006-01-12
 722   1      #endif
 723   1      }
 724          
 725          /*void mstSetScalingHImage(void)
 726          {
 727                  //mstWriteByte(BK0_48_SIHST_L, IMAGE_HSTAR);                    //Start
 728                  mstWriteByte(BK0_48_SIHST_L, PANEL_HSTART);                             // Start
 729                  mstWriteByte(BK0_49_SIHST_H, 0);
 730                  mstWriteByte(BK0_4C_SIHEND_L, PANEL_HSTART+PANEL_WIDTH);                // End
 731                  mstWriteByte(BK0_4D_SIHEND_H, ((PANEL_HSTART+PANEL_WIDTH)&0xFF00)>>8);
 732          }*/

⌨️ 快捷键说明

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