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

📄 vbi_parser.lst

📁 terawin的t103 LCD驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   VBI_PARSER                                                            10/30/2006 16:14:44 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE VBI_PARSER
OBJECT MODULE PLACED IN .\Obj\VBI_Parser.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\VDD\VBI_Parser.c LARGE OPTIMIZE(6,SPEED) BROWSE INCDIR(.\Include\;.\
                    -Source\;.\Include\Panel\;.\Include\GammaTable\;.\Include\tuner\) DEFINE(T103) DEBUG OBJECTEXTEND PRINT(.\VBI_Parser.lst)
                    - OBJECT(.\Obj\VBI_Parser.obj)

line level    source

   1          #include "VBI_Parser.h"
   2          #include "reg51.h"
   3          #include "TW803Reg.h"
   4          #include "twowire.h"
   5          #include "OSDDRAW.h"
   6          #include "T803OSD.h"
   7          #ifdef VBI_CC
              CC_Content idata cc_char;// kenny 20060315
               
              BOOL VBI_Init(void)
              {
                      cc_char.preByte = 0;
                      cc_char.Column = 0;
                      cc_char.Row = 1;
                      cc_char.Line = 0;
                      I2CWriteByte(TW803_P0+4, 0x40, 0x05);
                      I2CWriteByte(TW803_P0+4, 0x51, 0x01);
                      return 1; 
              }
              
              BOOL CC_Parsing(void)
              {
                      uCHAR iptByte1, iptByte2;
              
              //      iptByte1 = I2CReadByte(TW101+4, 0x61);
              //      iptByte2 = I2CReadByte(TW101+4, 0x62);
              //      if ( iptByte1 == 0xC2 || iptByte2 == 0xC2)
              //              iptByte1 = iptByte2;
              
                      if( !(I2CReadByte(TW803_P0+4, 0x65) & 0x01) ) 
                              return FALSE;
              
                      iptByte1 = I2CReadByte(TW803_P0+4, 0x61);
                      iptByte2 = I2CReadByte(TW803_P0+4, 0x62);
              
                      if ( iptByte1 == 0x42 || iptByte2 == 0x42)
                              iptByte1 = iptByte2;
              
                      if ( iptByte1 & 0x80 )
                              iptByte1 -= 0x80;
                      
                      if ( iptByte2 & 0x80 )
                              iptByte2 -= 0x80;       
              
                      if ( iptByte1 >= 0x20 )
                      {
                              if ( cc_char.preByte == 0 )
                              {
                                      if ( iptByte2 >=0x20 )  // one-byte char, one-byte char
                                      {
                                              OSDShowCCData(iptByte1,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                              OSDShowCCData(iptByte2,cc_char.Column+1,cc_char.Row,cc_char.TextAttr); 
                                              cc_char.Column += 2;
C51 COMPILER V7.50   VBI_PARSER                                                            10/30/2006 16:14:44 PAGE 2   

                                      }
                                      else // one-byte char, 1st byte of two-byte data
                                      {                                
                                              OSDShowCCData(iptByte1,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                              cc_char.Column++;
                                              cc_char.preByte = iptByte2;
                                      }
                              }
                              else
                              {
                                      if ( ( cc_char.preByte == 0x11 && iptByte1 < 0x40 && iptByte1 >= 0x30 ) 
                                        || ( cc_char.preByte == 0x19 && iptByte1 < 0x40 && iptByte1 >= 0x30 ) )
                                      {               
                                              if ( iptByte2 < 0x20 )
                                              {
                                                      cc_char.preByte = 0x0F + (iptByte1 - 0x30 + 1 );
                                                      OSDShowCCData(cc_char.preByte,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
              
                                                      cc_char.Column++;
                                                      cc_char.preByte = iptByte2;
                                              }
                                              else
                                              {
                                                      cc_char.preByte = 0x0F + (iptByte1 - 0x30 + 1 );
                                                      OSDShowCCData(cc_char.preByte,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                                      OSDShowCCData(iptByte2,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                                      cc_char.Column += 2;
                                                      cc_char.preByte = 0;
                                              }
              
                                      }
                                      else if ( ( cc_char.preByte == 0x11 && iptByte1 < 0x30 && iptByte1 >= 0x20 ) 
                                                 || ( cc_char.preByte == 0x19 && iptByte1 < 0x30 && iptByte1 >= 0x20 ) )
                                      {
                                              if ( iptByte2 < 0x20 )
                                              {
                                                      if ( iptByte1 >= 0x20 && iptByte1 < 0x30 )
                                                              cc_char.TextAttr = iptByte1 - 0x20;
              
                                                      cc_char.preByte = iptByte2;
                                              }
                                              else
                                              {
                                                      OSDShowCCData(iptByte2,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                                      cc_char.Column++;
                                                      cc_char.preByte = 0;
              
                                              } // end of [if ( iptByte2 < 0x20 )]
              
                                      }// end of [else if ( ( cc_char.preByte == 0x11 && iptByte1 < 0x30 && iptByte1 >= 0x20 )...]
                                      else if ( cc_char.preByte == 0x14 || cc_char.preByte == 0x1C )
                                      {
                                              if ( iptByte2 < 0x20 )
                                              {
                                                      switch ( iptByte1 )
                                                      {
                                                              case 0x20: // pop-on mode
                                                                      break;
                                                              case 0x21: //BS
                                                                      cc_char.Column--;
                                                                      break;
                                                              case 0x22:
C51 COMPILER V7.50   VBI_PARSER                                                            10/30/2006 16:14:44 PAGE 3   

                                                                      break;
                                                              case 0x23:
                                                                      break;
                                                              case 0x24:
                                                                      break;
                                                              case 0x25: // 2-rows roll-up mode
                                                                      cc_char.Line = 1*FONT_HEIGHT;
                                                                      break;
                                                              case 0x26: // 3-rows roll-up mode
                                                                      cc_char.Line = 2*FONT_HEIGHT;
                                                                      break;
                                                              case 0x27: // 4-rows roll-up mode
                                                                      cc_char.Line = 3*FONT_HEIGHT;
                                                                      break;
                                                              case 0x28:
                                                                      break;
                                                              case 0x29: // paint-on mode
                                                                      break;
                                                              case 0x2A:
                                                                      break;
                                                              case 0x2B: // text mode
                                                                      break;
                                                              case 0x2C:
                                                                      cc_char.Line = 12*FONT_HEIGHT;
                                                                      cc_char.Column = 0;
                                                                      cc_char.Row = 1;
                                                                      break;
                                                              case 0x2D: //CR
                                                                      if ( cc_char.Line > 0 )
                                                                      {
                                                                              cc_char.Line -= FONT_HEIGHT;
                                                                              OSDCfgWr(CHAR_DLY_2,cc_char.Line);  //v[7:0]    //00
                                                                      }
              
                                                                      cc_char.Column = 0;
                                                                      cc_char.Row ++;
                                                                      break;
                                                              case 0x2E:
                                                                      break;
                                                              case 0x2F:
                                                                      break;
                                                      }
                                                      cc_char.preByte = iptByte2;
              
                                              }
                                              else
                                              {
                                                      OSDShowCCData(iptByte2,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                                      cc_char.Column++;
                                                      cc_char.preByte = 0;
                                              }
              
                                      }
                                      else if ( cc_char.preByte == 0x17 || cc_char.preByte == 0x1F )
                                      {
                                              if ( iptByte2 < 0x20 )
                                              {
                                                      switch ( iptByte1 )
                                                      {
                                                              case 0x21:
                                                                      cc_char.Column += 1;    //TO1
                                                                      break;
C51 COMPILER V7.50   VBI_PARSER                                                            10/30/2006 16:14:44 PAGE 4   

                                                              case 0x22:
                                                                      cc_char.Column += 2;    //TO2
                                                                      break;
                                                              case 0x23:
                                                                      cc_char.Column += 3;    //TO3
                                                                      break;
                                                      }
                                              }
                                              else
                                              {
                                                      OSDShowCCData(iptByte2,cc_char.Column,cc_char.Row,cc_char.TextAttr); 
                                                      cc_char.Column++;
                                                      cc_char.preByte = 0;
                                              }
              
                                      }
                                      else if ( cc_char.preByte <= 0x17 && iptByte1 >= 0x40 
                                                 || cc_char.preByte <= 0x1F && iptByte1 >= 0x60 )
                                      {
                                              if ( iptByte1 < 0x60 )
                                                      cc_char.TextAttr = iptByte2 - 0x40 + 1;
                                              else
                                                      cc_char.TextAttr = iptByte2 - 0x60 + 1;
              
              
                                              if ( cc_char.preByte == 0x11 )
                                              {
                                                      if ( iptByte1 < 0x60 && cc_char.Line == 0)
                                                              cc_char.Line = 1*FONT_HEIGHT;
                                                      else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
                                                              cc_char.Line = 2*FONT_HEIGHT;
                                              }
                                              else if ( cc_char.preByte == 0x12)
                                              {
                                                      if ( iptByte1 < 0x60 && cc_char.Line == 0)
                                                              cc_char.Line = 3*FONT_HEIGHT;
                                                      else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
                                                              cc_char.Line = 4*FONT_HEIGHT;
                                              }
                                              else if ( cc_char.preByte == 0x15)
                                              {

⌨️ 快捷键说明

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