📄 vbi_parser.lst
字号:
if ( iptByte1 < 0x60 && cc_char.Line == 0)
cc_char.Line = 5*FONT_HEIGHT;
else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 6*FONT_HEIGHT;
}
else if ( cc_char.preByte == 0x16)
{
if ( iptByte1 < 0x60 && cc_char.Line == 0)
cc_char.Line = 7*FONT_HEIGHT;
else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 8*FONT_HEIGHT;
}
else if ( cc_char.preByte == 0x17)
{
if ( iptByte1 < 0x60 && cc_char.Line == 0)
cc_char.Line = 9*FONT_HEIGHT;
else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 10*FONT_HEIGHT;
}
else if ( cc_char.preByte == 0x10)
{
C51 COMPILER V7.50 VBI_PARSER 10/30/2006 16:14:44 PAGE 5
if ( cc_char.Line == 0)
cc_char.Line = 11*FONT_HEIGHT;
}
else if ( cc_char.preByte == 0x13)
{
if ( iptByte1 < 0x60 && cc_char.Line == 0)
cc_char.Line = 12*FONT_HEIGHT;
else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 13*FONT_HEIGHT;
}
else if ( cc_char.preByte == 0x14)
{
if ( iptByte1 < 0x60 && cc_char.Line == 0)
cc_char.Line = 14*FONT_HEIGHT;
else if ( iptByte1 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 15*FONT_HEIGHT;
}
}
else
return FALSE;
}
}
else
{
if ( ( iptByte1 == 0x11 && iptByte2 < 0x40 && iptByte2 >= 0x30 )
|| ( iptByte1 == 0x19 && iptByte2 < 0x40 && iptByte2 >= 0x30 ) )
{
iptByte1 = 0x0F + (iptByte2 - 0x30 + 1 );
OSDShowCCData(iptByte1,cc_char.Column,cc_char.Row,cc_char.TextAttr);
cc_char.Column++;
}
// text attributes
else if ( ( iptByte1 == 0x11 && iptByte2 < 0x30 && iptByte2 >= 0x20 )
|| ( iptByte1 == 0x19 && iptByte2 < 0x30 && iptByte2 >= 0x20 ) )
{
if ( iptByte1 >= 0x20 && iptByte1 < 0x30 )
cc_char.TextAttr = iptByte1 - 0x20 + 1;
}
// Command codes
else if ( iptByte1 == 0x14 || iptByte1 == 0x1C )
{
switch ( iptByte2 )
{
case 0x20: // pop-on mode
break;
case 0x21: //BS
cc_char.Column--;
break;
case 0x22:
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
C51 COMPILER V7.50 VBI_PARSER 10/30/2006 16:14:44 PAGE 6
cc_char.Line = 2*FONT_HEIGHT;
break;
case 0x27: // 4-rows roll-up mode
// cc_char.Line = 12*FONT_HEIGHT;
// OSDCfgWr(CHAR_DLY_2,cc_char.Line);
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;
if ( cc_char.Row < OSD_LINE_NUM )
cc_char.Row ++;
break;
case 0x2E:
break;
case 0x2F:
break;
}
}// Command codes
else if ( iptByte1 == 0x17 || iptByte1 == 0x1F )
{
switch ( iptByte2 )
{
case 0x21:
cc_char.Column += 1; //TO1
break;
case 0x22:
cc_char.Column += 2; //TO2
break;
case 0x23:
cc_char.Column += 3; //TO3
break;
}
}
// PAC
else if ( iptByte1 <= 0x17 && iptByte2 >= 0x40
|| iptByte1 <= 0x1F && iptByte2 >= 0x60 )
{
if ( iptByte2 < 0x60 )
cc_char.TextAttr = iptByte2 - 0x40 + 1;
else
cc_char.TextAttr = iptByte2 - 0x60 + 1;
C51 COMPILER V7.50 VBI_PARSER 10/30/2006 16:14:44 PAGE 7
if ( iptByte1 == 0x11 )
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 1*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 2*FONT_HEIGHT;
}
else if ( iptByte1 == 0x12)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 3*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 4*FONT_HEIGHT;
}
else if ( iptByte1 == 0x15)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 5*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 6*FONT_HEIGHT;
}
else if ( iptByte1 == 0x16)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 7*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 8*FONT_HEIGHT;
}
else if ( iptByte1 == 0x17)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 9*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 10*FONT_HEIGHT;
}
else if ( iptByte1 == 0x10)
{
if ( cc_char.Line == 0)
cc_char.Line = 11*FONT_HEIGHT;
}
else if ( iptByte1 == 0x13)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 12*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 13*FONT_HEIGHT;
}
else if ( iptByte1 == 0x14)
{
if ( iptByte2 < 0x60 && cc_char.Line == 0)
cc_char.Line = 14*FONT_HEIGHT;
else if ( iptByte2 >= 0x60 && cc_char.Line == 0)
cc_char.Line = 15*FONT_HEIGHT;
}
}
else
return FALSE;
cc_char.preByte = 0;
C51 COMPILER V7.50 VBI_PARSER 10/30/2006 16:14:44 PAGE 8
}
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -