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

📄 osd.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   OSD                                                                   03/18/2008 22:04:55 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE OSD
OBJECT MODULE PLACED IN .\BIN\OSD.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE SRC\OSD.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\OSD.lst) OBJECT(.\
                    -BIN\OSD.obj)

line level    source

   1          #include "OSD.H"
   2          #include "Scaler.H"
   3          #include "IIC.H"
   4          #include "MyDef.H"
   5          #include "RAM.H"
   6          #include "stdio.h"
   7          #include "UserAdj.H"
   8          #include "AutoAdj.H"
   9          #include "PANEL.H"
  10          #include "F63REG.H"
  11          #include "MCU.H"
  12          #include "OSD_TAB.H"
  13          #include "ModeHandle.H"
  14          #include "TUNER.H"
  15          
  16          /*==========================================
  17          ==========================================*/
  18          
  19          code unsigned char IconPosition[]={
  20                  3,0,7,0,11,0,15,0,19,0,22,2,22,4,19,6,15,6,11,6,7,6,3,6,0,4,0,2
  21          };
  22          code unsigned char AVIconPosition[]={
  23                  3,0,8,0,13,0,18,0,22,2,22,4,18,6,13,6,8,6,3,6,0,4,0,2
  24          };
  25          
  26          code unsigned char MainIconColor[]={
  27                  4,1,4,4,4,4,4,4,1,1,1,4,4,1,
  28                  4,4,4,4,4,4,4,4,4,4,4,1,1,1
  29          };
  30          
  31          code unsigned char VideoIconColor[]={
  32                  4,1,4,4,4,4,4,4,4,4,4,1,1,1,
  33                  4,4,4,4,4,4,4,4,4,4,4,1,1,1
  34          };
  35          
  36          code unsigned char SpaceLine20[]={
  37                  20,"                    "
  38          };
  39          
  40          code unsigned char Source1[]={
  41                  8,"  PC    "
  42          };
  43          code unsigned char Source2[]={
  44                  8,"  AV    "
  45          };
  46          code unsigned char Source3[]={
  47                  8,"S-VIDEO "
  48          };
  49          code unsigned char Source4[]={
  50                  8,"  TV    "
  51          };
  52          code unsigned char Source5[]={
  53                  8,"        "
  54          };
C51 COMPILER V7.50   OSD                                                                   03/18/2008 22:04:55 PAGE 2   

  55          code unsigned char Source6[]={
  56                  6,"        "
  57          };
  58          code unsigned char *SourceTab[]={
  59                  Source1,Source2,Source3,Source4,Source5,Source6
  60          };
  61          
  62          code unsigned char ClearLine1[]={
  63                  20,"                    "
  64          };
  65          code unsigned char ClearLine2[]={
  66                  5,"     "
  67          };
  68          code unsigned char ClearLine3[]={
  69                  5,0x82,0x82,0x82,0x82,0x82
  70          };
  71          
  72          code unsigned char MenuItem[]={
  73                  7,3,4,5
  74          };
  75          
  76          void OsdInit(void)
  77          {
  78   1      //unsigned char g;
  79   1      //OSD
  80   1              OSD_Control = Read24C16(0xce);
  81   1              WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);  //Disable OSD
  82   1              WriteIIC_HW(Scaler_Addr,0xa9,0x55);  //OSD FONT ZOOM Range
  83   1              SetPosition();
  84   1              ClearOSD();
  85   1              ClearText();
  86   1              OSD_Point1 = 0;
  87   1              OSD_Point2 = 0;
  88   1              SavePointer = 0;
  89   1              if(PowerStatus > 0x80){
  90   2                      ShowVideoMenu();
  91   2                      ShowVideoSubMenu();
  92   2              }
  93   1              else{
  94   2                      ShowMainMenu();
  95   2                      ShowSubMenu();
  96   2              }
  97   1      }
  98          
  99          void Osd4Init(void)
 100          {
 101   1              OSD_Control &= ~BIT_0;
 102   1              WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
 103   1              WriteWordIIC_HW(Scaler_Addr,0x96,OSD2_CCx);
 104   1              WriteWordIIC_HW(Scaler_Addr,0x99,OSD2_CCy);
 105   1              WriteIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
 106   1              WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
 107   1              WriteIIC_HW(Scaler_Addr,0xa4,0x00);
 108   1              WaitSetup(40);
 109   1              ClearOSD();
 110   1              FillLineAttr(1,1,20,TextColor); //add by Anbbdy
 111   1              FillLineAttr(1,2,20,TextColor);
 112   1              FillLineAttr(1,3,20,TextColor);
 113   1              MoveX = OSD2_CCx / 6;
 114   1              MoveY = OSD2_CCy / 6;
 115   1              if((flag3 & BIT_2) != 0x00){
 116   2                      printf("OSD X = %d\r\n",OSD2_CCx);
C51 COMPILER V7.50   OSD                                                                   03/18/2008 22:04:55 PAGE 3   

 117   2                      printf("OSD Y = %d\r\n",OSD2_CCy);
 118   2              }
 119   1      }
 120          
 121          void Osd3Init(void)
 122          {
 123   1              OSD_Control &= ~BIT_0;
 124   1              WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
 125   1              WriteWordIIC_HW(Scaler_Addr,0x96,OSD3_Px);
 126   1              WriteWordIIC_HW(Scaler_Addr,0x99,OSD3_Py);
 127   1              WriteIIC_HW(Scaler_Addr,0x98,OSD3_WIDTH-1);
 128   1              WriteIIC_HW(Scaler_Addr,0x9b,OSD3_HIGHT-1);
 129   1              WriteIIC_HW(Scaler_Addr,0xa4,0x03);
 130   1              WaitSetup(40);
 131   1              ClearOSD();
 132   1              if((flag3 & BIT_2) != 0x00){
 133   2                      printf("OSD3 X = %d\r\n",OSD3_Px);
 134   2                      printf("OSD3 Y = %d\r\n",OSD3_Py);
 135   2              }
 136   1      }
 137          
 138          void LoadFont(void)
 139          {
 140   1      code unsigned char PaletteTab[]={
 141   1              67,0,0xd0,0x00,0x00,
 142   1      //
 143   1              (unsigned char)BLACK,(unsigned char)(BLACK>>8),
 144   1              (unsigned char)RED,(unsigned char)(RED>>8),
 145   1              (unsigned char)GREEN,(unsigned char)(GREEN>>8),
 146   1              (unsigned char)BLUE,(unsigned char)(BLUE>>8),
 147   1              (unsigned char)CYAN,(unsigned char)(CYAN>>8),
 148   1              (unsigned char)MAGENTA,(unsigned char)(MAGENTA>>8),
 149   1              (unsigned char)YELLOW,(unsigned char)(YELLOW>>8),
 150   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 151   1              (unsigned char)TBLACK,(unsigned char)(TBLACK>>8),
 152   1              (unsigned char)TRED,(unsigned char)(TRED>>8),
 153   1              (unsigned char)TGREEN,(unsigned char)(TGREEN>>8),
 154   1              (unsigned char)TBLUE,(unsigned char)(TBLUE>>8),
 155   1              (unsigned char)TCYAN,(unsigned char)(TCYAN>>8),
 156   1              (unsigned char)TMAGENTA,(unsigned char)(TMAGENTA>>8),
 157   1              (unsigned char)TYELLOW,(unsigned char)(TYELLOW>>8),
 158   1              (unsigned char)GRAY,(unsigned char)(GRAY>>8),
 159   1      //
 160   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 161   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 162   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 163   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 164   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 165   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 166   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 167   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 168   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 169   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 170   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 171   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 172   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 173   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 174   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 175   1              (unsigned char)WHITE,(unsigned char)(WHITE>>8),
 176   1      };
 177   1              WriteWordIIC_HW(Scaler_Addr,0x9c,640);          //one bit
 178   1              WriteWordIIC_HW(Scaler_Addr,0xa0,2296);         //four bit
C51 COMPILER V7.50   OSD                                                                   03/18/2008 22:04:55 PAGE 4   

 179   1              
 180   1              WriteSequenceScaler(0xe0,PaletteTab);
 181   1              WriteSequenceScaler(0xe0,OneBitFont);
 182   1              WriteSequenceScaler(0xe0,FourBitFont);
 183   1      }
 184          
 185          void SetPosition(void)
 186          {
 187   1      unsigned short xy;
 188   1              if((OSD_Control & BIT_7) == 0){
 189   2                      if(OSD_Type == 0x02){
 190   3                              xy = (unsigned long)OSD2_CCx * OSD_X / 100;
 191   3                              WriteWordIIC_HW(Scaler_Addr,0x96,xy);
 192   3                              if((flag3 & BIT_2) != 0x00)
 193   3                                      printf("OSD2 X = %d\r\n",xy);
 194   3                              WriteWordIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
 195   3                              xy = (unsigned long)OSD2_CCy * (100 - OSD_Y) / 100;
 196   3                              WriteWordIIC_HW(Scaler_Addr,0x99,xy);
 197   3                              WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
 198   3                              if((flag3 & BIT_2) != 0x00)
 199   3                                      printf("OSD2 Y = %d\r\n",xy);
 200   3                      }
 201   2                      else{
 202   3                              xy = (unsigned long)OSD_RBx * OSD_X / 100;
 203   3                              WriteWordIIC_HW(Scaler_Addr,0x96,xy);
 204   3                              if((flag3 & BIT_2) != 0x00)
 205   3                                      printf("OSD1 X = %d\r\n",xy);
 206   3                              WriteWordIIC_HW(Scaler_Addr,0x98,OSD_WIDTH-1);
 207   3                              xy = (unsigned long)OSD_RBy * (100 - OSD_Y) / 100;
 208   3                              WriteWordIIC_HW(Scaler_Addr,0x99,xy);
 209   3                              WriteIIC_HW(Scaler_Addr,0x9b,OSD_HIGHT-1);
 210   3                              if((flag3 & BIT_2) != 0x00)
 211   3                                      printf("OSD1 Y = %d\r\n",xy);
 212   3                      }
 213   2              }
 214   1              else{
 215   2                      if(OSD_Type == 0x02){
 216   3                              xy = (unsigned long)OSD2_CCx1 * OSD_X / 100;
 217   3                              WriteWordIIC_HW(Scaler_Addr,0x96,xy);
 218   3                              if((flag3 & BIT_2) != 0x00)
 219   3                                      printf("OSD2 X = %d\r\n",xy);
 220   3                              WriteWordIIC_HW(Scaler_Addr,0x98,OSD2_WIDTH-1);
 221   3                              xy = (unsigned long)OSD2_CCy1 * (100 - OSD_Y) / 100;
 222   3                              WriteWordIIC_HW(Scaler_Addr,0x99,xy);
 223   3                              WriteIIC_HW(Scaler_Addr,0x9b,OSD2_HIGHT-1);
 224   3                              if((flag3 & BIT_2) != 0x00)
 225   3                                      printf("OSD2 Y = %d\r\n",xy);
 226   3                      }
 227   2                      else{
 228   3                              xy = (unsigned long)OSD_RBx1 * OSD_X / 100;
 229   3                              WriteWordIIC_HW(Scaler_Addr,0x96,xy);
 230   3                              if((flag3 & BIT_2) != 0x00)
 231   3                                      printf("OSD1 X = %d\r\n",xy);
 232   3                              WriteWordIIC_HW(Scaler_Addr,0x98,OSD_WIDTH-1);
 233   3                              xy = (unsigned long)OSD_RBy1 * (100 - OSD_Y) / 100;
 234   3                              WriteWordIIC_HW(Scaler_Addr,0x99,xy);
 235   3                              WriteIIC_HW(Scaler_Addr,0x9b,OSD_HIGHT-1);
 236   3                              if((flag3 & BIT_2) != 0x00)
 237   3                                      printf("OSD1 Y = %d\r\n",xy);
 238   3                      }
 239   2              }
 240   1              WriteIIC_HW(Scaler_Addr,0xa4,0x00);
C51 COMPILER V7.50   OSD                                                                   03/18/2008 22:04:55 PAGE 5   

 241   1              WaitSetup(40);
 242   1      }
 243          
 244          void ClearOSD(void)
 245          {
 246   1      // Clear osd ram
 247   1              if(OSD_Type < 2){
 248   2                      if((flag3 & BIT_0) == 0x00)
 249   2                              WriteWordIIC_HW(Scaler_Addr,0xcc,FrameColor);
 250   2                      else
 251   2                              WriteWordIIC_HW(Scaler_Addr,0xcc,FactoryColor);
 252   2              }
 253   1              else{
 254   2                      WriteWordIIC_HW(Scaler_Addr,0xcc,RedFrameColor);
 255   2              }
 256   1              WriteIIC_HW(Scaler_Addr,0xce,0x20);

⌨️ 快捷键说明

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