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

📄 lcd_msg.lst

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 259   3              }
 260   2              else
 261   2              {
 262   3                  if (ucKey_Repeat)
 263   3                      ucKey_Repeat    -= 1;
 264   3                  else
 265   3                  {
 266   4                      if (KEY_TURBO_ENABLE > ucKey_Issued)
 267   4                      {
 268   5                          ucKey_Issued    += 1;
 269   5                          ucKey_Repeat    = KEY_REPEAT_PERIOD;
 270   5                      }
 271   4                      else
 272   4                          ucKey_Repeat    = 0;
 273   4      
 274   4                      ucNotify        = (ucP3_Curr == RIGHT_KEY_MASK) ? NOTIFY_RIGHT_KEY : NOTIFY_LEFT_KEY;  // 
             -Post right-key repeat message
 275   4                  }
 276   3              }
 277   2              break;
 278   2      
 279   2      #if (IRPOLLING)
                  case IR_KEY_MASK :
                      ucKey_Issued    = 0;
                      if ((ucP3_Prev ^ ucP3_Curr) & IR_KEY_MASK)
                      {
                          if (SOURCE_TV == (stGUD1.INPUT_SOURCE & 0x07))
                          {
                              //usOSD_Timer     = (unsigned int)stGUD1.OSD_TIMEOUT << 9;    // Reset OSD timeout timer
                              usOSD_Timer         = (unsigned int)stGUD1.OSD_TIMEOUT * 51; 
                          }
              
                          ucNotify        = Data[0];                                      // Post IR-key pressed message
                          ucKey_Repeat    = KEY_REPEAT_COUNT;
                      }
                      else if (NOTIFY_IR_VOLINC == Data[0] || NOTIFY_IR_VOLDEC == Data[0])
                      {
                          if (ucKey_Repeat)
                              ucKey_Repeat    -= 1;
                          else
C51 COMPILER V6.20c  LCD_MSG                                                               04/15/2004 12:59:11 PAGE 6   

                          {
                              ucNotify        = Data[0];
                              ucKey_Repeat    = KEY_REPEAT_PERIOD;
                          }
                      }
                      break;
              #endif
 305   2          
 306   2          default :
 307   2              // No key or more than 1 key pressed. Post no message and reset key-repeat.
 308   2              ucKey_Repeat    = KEY_REPEAT_COUNT;
 309   2              ucKey_Issued    = 0;
 310   2      
 311   2      #if (HIDDEN_PAGE)        
 312   2              // For triggering the hidden page
 313   2              if (0 == ucOSD_Page_Index && (RIGHT_KEY_MASK | LEFT_KEY_MASK) == ucP3_Curr)     ucNotify    = NOTI
             -FY_LR_KEY;
 314   2      #endif
 315   2              break;
 316   2          }
 317   1      
 318   1          return ucNotify;
 319   1      }
 320          
 321          
 322          void OSD_Dispatcher(unsigned char message)
 323          {
 324   1          if (NOTIFY_NONE == message)
 325   1          {
 326   2              if (ucOSD_Page_Index)
 327   2              {
 328   3                  if (0 == usOSD_Timer && 0 != stGUD1.OSD_TIMEOUT && SOURCE_TV != (stGUD1.INPUT_SOURCE & 0x07))
 329   3                  {
 330   4                      message = NOTIFY_CLEAR_OSD;
 331   4                  }
 332   3                  else
 333   3                      return;
 334   3              }
 335   2              else
 336   2              {
 337   3                  if (BEGIN_MODECHANGE == usTaskCnt)
 338   3                  {
 339   4                      // Disable and clear input source note text
 340   4                      RTDSetByte(HOSTCTRL_02, 0x00);
 341   4                      RTDSetBit(OVL_CTRL_6D, 0xfe, 0x00);     
 342   4                      RTDOSDW(OSD_Reset);
 343   4                  }
 344   3                  else if ((BEGIN_SHOWHINT == usTaskCnt))
 345   3                  {
 346   4                      Show_Hint();
 347   4                  }
 348   3      
 349   3                  return;
 350   3              }
 351   2          }
 352   1          else if (NOTIFY_RELOAD == message)
 353   1          {
 354   2              RTDSetByte(HOSTCTRL_02, 0x00);          // Wake RTD up
 355   2              RTDSetBit(OVL_CTRL_6D, 0xfe, 0x00);	    // Disable overlay control
 356   2              RTDOSDW(OSD_Reset);                     // Clear OSD
 357   2      
 358   2              if (ucOSD_Page_Index)
C51 COMPILER V6.20c  LCD_MSG                                                               04/15/2004 12:59:11 PAGE 7   

 359   2              {
 360   3                  message = NOTIFY_SHOW;
 361   3              }
 362   2              else
 363   2              {
 364   3                  message = NOTIFY_NONE;
 365   3                  
 366   3                  Set_Background_Color(0, 0, 0);
 367   3      	
 368   3                  if (BEGIN_MODECHANGE < usTaskCnt)    Show_Note();
 369   3      
 370   3                  return;
 371   3              }
 372   2          }
 373   1      
 374   1          switch (message)
 375   1          {
 376   2          case NOTIFY_CLEAR_OSD :
 377   2              if (ucOSD_Page_Index && SOURCE_TV != (stGUD1.INPUT_SOURCE & 0x07))
 378   2              {
 379   3                  // OSD time-out
 380   3                  ucOSD_Page_Index    = 0;
 381   3                  ucOSD_Item_Index0   = 0;
 382   3                  ucOSD_Item_Index1   = 0;
 383   3                  ucOSD_Item_Index2   = 0;
 384   3      
 385   3                  RTDSetByte(HOSTCTRL_02, 0x00);  // Wake RTD up
 386   3      
 387   3                  // Although you can add ending animation here, I don't think it is necessary.
 388   3                  RTDSetBit(OVL_CTRL_6D, 0xfe, 0x00);
 389   3      
 390   3                  RTDOSDW(OSD_Reset);             // Clear OSD
 391   3              }
 392   2              break;
 393   2      
 394   2      #if (IRPOLLING)
                  case NOTIFY_IR_SOURCE :
              #endif
 397   2          case NOTIFY_MENU_KEY :
 398   2      
 399   2              if (SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07))
 400   2              {
 401   3      #if (TMDS_ENABLE) 
 402   3                  Change_Source(SOURCE_DVI);
 403   3      #else
                          Change_Source(SOURCE_AV);
              #endif
 406   3              }
 407   2              else if (SOURCE_DVI == (stGUD1.INPUT_SOURCE & 0x07))
 408   2                  Change_Source(SOURCE_AV);
 409   2              else if (SOURCE_AV == (stGUD1.INPUT_SOURCE & 0x07))
 410   2                  Change_Source(SOURCE_SV);
 411   2              else if (SOURCE_SV == (stGUD1.INPUT_SOURCE & 0x07))
 412   2              {
 413   3      #if (VIDEO_CHIP == VDC_SAA7118)
                          Change_Source(SOURCE_YUV);
              #else
 416   3                  Change_Source(SOURCE_TV);
 417   3      #endif
 418   3              }
 419   2              else if (SOURCE_YUV == (stGUD1.INPUT_SOURCE & 0x07))
 420   2              {
C51 COMPILER V6.20c  LCD_MSG                                                               04/15/2004 12:59:11 PAGE 8   

 421   3                  Change_Source(SOURCE_TV);
 422   3              }
 423   2              else
 424   2              {
 425   3                  Change_Source(SOURCE_VGA);
 426   3              }
 427   2              break;
 428   2      
 429   2          default :
 430   2              {
 431   3                  // Save the current OSD page index
 432   3                  unsigned char   ucPage_Curr     = ucOSD_Page_Index;
 433   3      
 434   3                  // Send messages to OSD process
 435   3                  //(*OSD_Proc[ucOSD_Page_Index][stGUD1.INPUT_SOURCE & 0x07])(message);
 436   3                  OSD_Proc(message);
 437   3      
 438   3                  // If OSD page is changed ...
 439   3                  if (ucPage_Curr != ucOSD_Page_Index)
 440   3                  {
 441   4                      if (ucOSD_Page_Index)
 442   4                      {
 443   5                          if (0 == ucPage_Curr)
 444   5                          {
 445   6                              // ucOSD_Page_Index becomes non-zero value from zero. It is the first show of OSD.
 446   6                              // Maybe RTD3001 is still in power-saving mode, or we are showing some text on scr
             -een,
 447   6                              // like "No Signal". So we must wake up RTD3001 and clear screen before we display
             - OSD.
 448   6                              RTDSetByte(HOSTCTRL_02, 0x00);
 449   6                              RTDSetBit(VDIS_CTRL_20, 0xff, 0x01);
 450   6      						RTDSetBit(OVL_CTRL_6D, 0xfe, 0x00);     
 451   6                              RTDOSDW(OSD_Reset);
 452   6                          }
 453   5      
 454   5                          //(*OSD_Proc[ucOSD_Page_Index][stGUD1.INPUT_SOURCE & 0x07])(NOTIFY_SHOW);
 455   5                          OSD_Proc(NOTIFY_SHOW);
 456   5      
 457   5      					if (0 == ucPage_Curr)
 458   5      					{
 459   6      						OSD_Opening();
 460   6      					}
 461   5                      }
 462   4                      else
 463   4                      {
 464   5                          // OSD should be cleared when ucOSD_Page_Index becomes 0. 
 465   5                          // Clear other OSD status registers for safety
 466   5                          ucOSD_Item_Index0   = 0;
 467   5                          ucOSD_Item_Index1   = 0;
 468   5                          ucOSD_Item_Index2   = 0;
 469   5      
 470   5                          RTDSetByte(HOSTCTRL_02, 0x00);  // Wake RTD up
 471   5                          OSD_Ending();                   // Close OSD
 472   5                      }
 473   4                  }
 474   3                  else
 475   3                  {
 476   4                      // OSD page is not changed
 477   4                      if (ucOSD_Page_Index)
 478   4                      {
 479   5      					if (NOTIFY_SHOW == message)     
 480   5      					{
C51 COMPILER V6.20c  LCD_MSG                                                               04/15/2004 12:59:11 PAGE 9   

 481   6      						RTDCodeW(OSD_Enable);
 482   6      						RTDSetBit(OVL_CTRL_6D, 0xfe, 0x01);
 483   6      					}
 484   5      
 485   5                          // Change H/V Position and ADC clock may cause overflow/underflow temporarily.
 486   5                          if (NOTIFY_RIGHT_KEY == message || NOTIFY_LEFT_KEY == message)
 487   5                          {
 488   6      						RTDSetByte(STATUS0_01, 0x00);  // Clear status
 489   6                              RTDSetByte(STATUS1_1F, 0x00);  // Clear status
 490   6                          }
 491   5      #if (SHOW_CHECK)
                                  // Just for showing debug information
                                  OSD_Show_Check();
                                  /*
                                  if (1 == ucOSD_Page_Index &&  5 == ucOSD_Item_Index0 &&  0 != ucOSD_Item_Index1)
                                  {
                                      ucOSD_Page_Index    = 7;
                                      OSD_Show_Check();
                                      ucOSD_Page_Index    = 1;
                                  }
                                  */
              #endif
 503   5                      }
 504   4      
 505   4                  }
 506   3              }
 507   2              break;
 508   2          }
 509   1      }
 510          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    700    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   IDATA SIZE       =      4    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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