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

📄 osdbasic.lst

📁 此程序为twell8806驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 225          
 226                  new_attr = attr & 0xf0;                         //for color
 227                  if( attr & SHOW ) new_attr |= 0x01;
 228                  WriteTW88(TW88_WINATTR, new_attr);      // attribute
 229          
 230                  // Disable all other functions
 231                  WriteTW88( TW88_WINBRDATTR,   0x00 );
 232                  WriteTW88( TW88_WINBRDWIDTH,  0x00 );
 233                  WriteTW88( TW88_WINBRDHEIGHT, 0x00 );
 234                  WriteTW88( TW88_WINSPACE,     0x00 );
 235                  WriteTW88( TW88_WINSHADOW,    0x00 );
 236                  WriteTW88( TW88_WINBLENDING,  0x00 );
 237                  WriteTW88( TW88_WINCHEFFECT,  0x00 );
 238          
 239                  #ifdef DEBUG_OSD
 240                  dPrintf("\r\n++(CreateOSDWindow_TW88) wino:%bd,", winno-1 );
 241                  dPrintf("attr:0x%bx, new_attr:0x%bx __", attr, new_attr);
C51 COMPILER V7.50   OSDBASIC                                                              08/20/2007 10:23:32 PAGE 5   

 242                  #endif
 243          
 244          }
 245          #endif // SUPPORT_CCD_VCHIP
 246          
 247          //#endif // SUPPORT_TW88_CC_DECODER
 248          */
 249          #ifdef SUPPORT_OSDPOSITIONMOVE
              
              void SetOSDWindowX_TW88(BYTE winno, BYTE x)
              {
                      WORD tmp;
                      BYTE dat;
              
                      if( winno<1 || winno>8 ) return;
                      SetOSDWindowNum(winno);
              
                      tmp = x << 3;
              
                      dat = ReadTW88(TW88_WINSTART_HI) & 0xf0;
                      dat = dat | (tmp>>8);
              
                      WriteTW88(TW88_WINSTART_HI, dat);
                      WriteTW88(TW88_WINXSTART, tmp);
              }
              #endif
 268          void SetOSDWindowY_TW88(BYTE winno, BYTE y)
 269          {
 270   1              WORD tmp;
 271   1              BYTE dat;
 272   1      
 273   1              if( winno<1 || winno>8 ) return;
 274   1              SetOSDWindowNum(winno);
 275   1      
 276   1              tmp = y << 2;
 277   1      
 278   1              dat = ReadTW88(TW88_WINSTART_HI) & 0x0f;
 279   1              dat = dat | ((tmp>>8)<<4);
 280   1      
 281   1              WriteTW88(TW88_WINSTART_HI, dat);
 282   1              WriteTW88(TW88_WINYSTART, tmp);
 283   1      }
 284          
 285          //#if (defined SUPPORT_TW88_CC_DECODER)
 286          
 287          //ljy052903: CC + Info
 288          //=============================================================================
 289          //                      ShowOSDWindow_TW88
 290          //=============================================================================
 291          void ShowOSDWindowAll(BYTE on)
 292          {
 293   1              BYTE rd;
 294   1      
 295   1              WaitEndofDisplayArea(); 
 296   1              rd = ReadTW88(TW88_OSDLOCKUPSEL);
 297   1      
 298   1              if( on )
 299   1                      WriteTW88(TW88_OSDLOCKUPSEL, rd&0xef);  // 
 300   1              else
 301   1                      WriteTW88(TW88_OSDLOCKUPSEL, rd|0x10);  // OSD All Off (TW8806B)
 302   1      
 303   1      }
C51 COMPILER V7.50   OSDBASIC                                                              08/20/2007 10:23:32 PAGE 6   

 304          void ShowOSDWindow_TW88(BYTE winno, BYTE onoff)
 305          {
 306   1              BYTE rd;
 307   1      
 308   1              if( winno<1 || winno>8 ) return;
 309   1              SetOSDWindowNum(winno);
 310   1      
 311   1              rd = ReadTW88(TW88_WINATTR);
 312   1              if( onoff ) rd |= 0x01;
 313   1              else            rd &= 0xfe;
 314   1      
 315   1              WaitEndofDisplayArea(); 
 316   1              WriteTW88(TW88_WINATTR, rd);
 317   1      }
 318          
 319          #ifdef SUPPORT_OSDPOSITIONMOVE
              WORD GetOSDWindowX(BYTE winno)
              {
                      WORD x;
              
                      if( winno<1 || winno>8 ) return 0;
                      SetOSDWindowNum(winno);
              
                      x = (ReadTW88(TW88_WINSTART_HI) & 0x0f) << 8;
                      x = x  | ReadTW88(TW88_WINXSTART);
              
                      return (BYTE)(x >> 3);
              }
              #endif
 333          
 334          WORD GetOSDWindowY(BYTE winno)
 335          {
 336   1              WORD y;
 337   1      
 338   1              if( winno<1 || winno>8 ) return 0;
 339   1              SetOSDWindowNum(winno);
 340   1      
 341   1              y = (ReadTW88(TW88_WINSTART_HI) & 0xf0) << 4;
 342   1              y = y  | ReadTW88(TW88_WINYSTART);
 343   1      
 344   1              return (BYTE)(y >> 2);
 345   1      }
 346          
 347          #include        "osdTW88.c"
 348          //*****************************************************************************
 349          //
 350          //      Internal Font test
 351          //
 352          //*****************************************************************************
 353          #ifdef DEBUG_OSD
              //-----------------------------------------------------------------------------
              //      CopyUDCharToOSDWindow(BYTE winno, BYTE xoff, BYTE yoff, BYTE attr, BYTE ch)
              //      - For FONT RAM Char.
              //-----------------------------------------------------------------------------
              /*
              void CopyUDCharToOSDWindow(BYTE winno, BYTE xoff, BYTE yoff, BYTE attr, BYTE ch)
              {
                      WORD Addr;
                      BYTE w;
              
                      if( winno<1 || winno>8 ) return;
                      SetOSDWindowNum(winno);
C51 COMPILER V7.50   OSDBASIC                                                              08/20/2007 10:23:32 PAGE 7   

              
                      Addr = ReadTW88(TW88_WINSADDRLO);
                      Addr += (ReadTW88(TW88_WINSADDRHI) & 0x01 ) <<8;
                      w = ReadTW88(TW88_WINWIDTH);
              
                      Addr = Addr + w*yoff + xoff;
              
                      EnableOSDRAMAndChangeFont( FONT_RAM );
                      WriteCharToOSDRAM( Addr, ch, attr );
                      //EnableOSDRAM(FALSE);
              }
              */
              
              void DisplayROMFont(BYTE scode)
              {
              /*
                      int i, j;
              
                      dPuts("\r\n(DisplayROMFont)");
                      ClearOSD();
              
                      CreateOSDWindow_TW88(FONTTEST_OSDWIN,0,0, 16, 8, 0,BG_COLOR_BLUE|WINZOOMx2|SHOW);       
                      for(i=0; i<8; i++)
                              ClearOSDLine(FONTTEST_OSDWIN,0,0,16,BG_COLOR_BLUE | CH_COLOR_WHITE);
              
                      for(j=0; j<8; j++)
                              for(i=0; i<0x10; i++) {
                                      CopyCharToOSDWindow(FONTTEST_OSDWIN,i, j,  ((j*0x10)^0x70) | j, scode+j*16+i);
                                      delay(1);
                              }
              */
              }
              
              void DisplayRAMFont(void)
              {
              /*
                      int i;
              
                      dPuts("\r\n(DisplayRAMFont)");
                      ClearOSD();
              
                      CreateOSDWindow_TW88(FONTTEST_OSDWIN,0,0, 16, 2*4, 0,BG_COLOR_BLUE|WINZOOMx2|SHOW);     
                      WriteTW88(0x7f, 0x24);
              
                      for(i=0; i<0x20; i++) {
                              CopyUDCharToOSDWindow(FONTTEST_OSDWIN,(i%16), (i/16),  BG_COLOR_BLACK | CH_COLOR_YELLOW, i);
                      }
                      for(; i<0x40; i++) {
                              CopyUDCharToOSDWindow(FONTTEST_OSDWIN,(i%16), (i/16),  0x80 | BG_COLOR_BLACK | CH_COLOR_YELLOW, i - 0x20
             -);
                      }
              
                      for(; i<0x60; i++) {
                              CopyUDCharToOSDWindow(FONTTEST_OSDWIN,(i%16), (i/16),  BG_COLOR_BLACK | CH_COLOR_YELLOW, 0x31 + (i-0x40)
             -*3 );
                      }
                      for(; i<0x80; i++) {
                              CopyUDCharToOSDWindow(FONTTEST_OSDWIN,(i%16), (i/16),  0x80 | BG_COLOR_BLACK | CH_COLOR_YELLOW, 0x31 + (
             -i-0x60)*3 );
                      }
              */
              }
C51 COMPILER V7.50   OSDBASIC                                                              08/20/2007 10:23:32 PAGE 8   

              #endif  // DEBUG_OSD
 426          
 427          
 428          //*****************************************************************************
 429          //
 430          //      Functions for only CC.
 431          //
 432          //*****************************************************************************
 433          //ljy052903: Only In CC 
 434          
 435          //*****************************************************************************
 436          
 437               // Move to CC by Harry
 438          
 439          //===============================================================================
 440          //  Used OSD Menu 
 441          //===============================================================================
 442          //------------------------------------------------------------
 443          void WriteStringToAddr(WORD addr, BYTE *str, BYTE cnt)
 444          {
 445   1              if( I2CAutoIncFlagOn==0 )
 446   1              WriteTW88(TW88_ENABLERAM, 0x04); // OSD RAM Auto Access Enable, ROMFONT Start Enable
 447   1      
 448   1              #ifndef TW8806
                      WriteTW88(TW88_OSDRAMADDRHI, addr>>8);
                      #endif
 451   1              WriteTW88(TW88_OSDRAMADDRLO, addr);
 452   1              WriteI2Cn( TW88I2CAddress, TW88_OSDRAMDATAHI, str, cnt );

⌨️ 快捷键说明

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