📄 l2_lcdtv.c
字号:
//XBYTE[0x2DE2] = 0x01; // field mode
XBYTE[0x2DE2] = 0x03; // field mode
//patch4.4@yichang@tv out quality begin
chipID = XBYTE[0x20FF];
if(chipID < 2)
XBYTE[0x2D19] = 0x40;
else
XBYTE[0x2D19] = 0x3F;
//patch4.4@yichang@tv out quality end
status = 0;
}
//#endif
//#ifdef PAL8
if(index==5)// CCIR601(8-bit) PAL output
{
XBYTE[0x201C] = 0x00; // using 27MHz for TV
XBYTE[0x2D00] = 0x05; // tvdspmode
XBYTE[0x2D08] = 0x80; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x04; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x4f; // vldx1
XBYTE[0x2D0D] = 0x03; // vldx1
XBYTE[0x2D0E] = 0x23; // vldy1
XBYTE[0x2D0F] = 0x01; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D21] = 0x20; // osdsubsamp
XBYTE[0x2D33] = 0x08; // osdvofst
XBYTE[0x2D34] = 0x30; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x01; // field mode
//patch4.4@yichang@0621 for PAL,begin
XBYTE[0x2D32] = 0x14; // osdvzfac
//patch4.4@yichang@0621 for PAL, end
XBYTE[0x2DE2] = 0x03; // field mode
//patch4.4@yichang@tv out quality begin
chipID = XBYTE[0x20FF];
if(chipID < 2)
XBYTE[0x2D19] = 0x40;
else
XBYTE[0x2D19] = 0x3F;
//patch4.4@yichang@tv out quality end
status = 0;
}
//#endif
//#ifdef NTSC16
if(index==6)// CCIR601(16-bit) NTSC output
{
XBYTE[0x201C] = 0x00; // using 27MHz for TV
XBYTE[0x2D00] = 0x06; // tvdspmode
XBYTE[0x2D08] = 0x80; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x04; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x4f; // vldx1
XBYTE[0x2D0D] = 0x03; // vldx1
XBYTE[0x2D0E] = 0xf3; // vldy1
XBYTE[0x2D0F] = 0x00; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D21] = 0x20; // osdsubsamp
XBYTE[0x2D33] = 0x08; // osdvofst
XBYTE[0x2D34] = 0x30; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x01; // field mode
XBYTE[0x2DE2] = 0x03; // field mode
//patch4.4@yichang@tv out quality begin
chipID = XBYTE[0x20FF];
if(chipID < 2)
XBYTE[0x2D19] = 0x40;
else
XBYTE[0x2D19] = 0x3F;
//patch4.4@yichang@tv out quality end
status = 0;
}
//#endif
//#ifdef PAL16
if(index==7)// CCIR601(16-bit) PAL output
{
XBYTE[0x201C] = 0x00; // using 27MHz for TV
XBYTE[0x2D00] = 0x07; // tvdspmode
XBYTE[0x2D08] = 0x80; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x04; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x4f; // vldx1
XBYTE[0x2D0D] = 0x03; // vldx1
XBYTE[0x2D0E] = 0x23; // vldy1
XBYTE[0x2D0F] = 0x01; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D21] = 0x20; // osdsubsamp
XBYTE[0x2D33] = 0x08; // osdvofst
XBYTE[0x2D34] = 0x30; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x01; // field mode
//patch4.4@yichang@0621 for PAL, begin
XBYTE[0x2D32] = 0x14; // osdvzfac
//patch4.4@yichang@0621 for PAL, end
XBYTE[0x2DE2] = 0x03; // field mode
//patch4.4@yichang@tv out quality begin
chipID = XBYTE[0x20FF];
if(chipID < 2)
XBYTE[0x2D19] = 0x40;
else
XBYTE[0x2D19] = 0x3F;
//patch4.4@yichang@tv out quality end
status = 0;
}
//#endif
//#ifdef UPS051
if(index==8)// UPS051 output
{
XBYTE[0x201C] = 0x02; // using 24MHz for unipac TFT-LCD
XBYTE[0x2D00] = 0x08; // tvdspmode
XBYTE[0x2D02] = 0x05; // vline
XBYTE[0x2D03] = 0x01; // vline
XBYTE[0x2D04] = 0x59; // hpixel
XBYTE[0x2D05] = 0x03; // hpixel
XBYTE[0x2D06] = 0x03; // vsyncw
XBYTE[0x2D07] = 0x62; // hsyncw
XBYTE[0x2D08] = 0x86; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x16; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x48; // vldx1
XBYTE[0x2D0D] = 0x03; // vldx1
XBYTE[0x2D0E] = 0xF1; // vldy1
XBYTE[0x2D0F] = 0x00; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D20] = 0x1a; // imgsubsamp
XBYTE[0x2D21] = 0x1a; // osdsubsamp
XBYTE[0x2D33] = 0x00; // osdvofst
XBYTE[0x2D34] = 0x1a; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x00; // field mode
XBYTE[0x2DE2] = 0x02; // field mode
status = 0;
}
//#endif
//#ifdef EPSON
if(index==9)// EPSON output
{
XBYTE[0x201C] = 0x02; // using 24MHz for EPSON TFT-LCD
XBYTE[0x2D00] = 0x0a; // tvdspmode
XBYTE[0x2D02] = 0x05; // vline
XBYTE[0x2D03] = 0x01; // vline
XBYTE[0x2D04] = 0x8D; // hpixel
XBYTE[0x2D05] = 0x03; // hpixel
XBYTE[0x2D06] = 0x16; // vsyncw
XBYTE[0x2D07] = 0x20; // hsyncw
XBYTE[0x2D08] = 0x54; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x02; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0xC4; // vldx1
XBYTE[0x2D0D] = 0x02; // vldx1
XBYTE[0x2D0E] = 0xE7; // vldy1
XBYTE[0x2D0F] = 0x00; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D20] = 0x20; // imgsubsamp
XBYTE[0x2D21] = 0x20; // osdsubsamp
XBYTE[0x2D25] = 0x0a; // em1812en,xsclstate
XBYTE[0x2D26] = 0x0b; // evenrgb,oddrgb
XBYTE[0x2D33] = 0x08; // osdvofst
XBYTE[0x2D34] = 0x30; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x00; // field mode
XBYTE[0x2DE2] = 0x02; // field mode
status = 0;
}
//#endif
//#ifdef CASIO
if(index==10)// CASIO output
{
UCHAR RevIDPt;
L2_ReadRevID(&RevIDPt);
XBYTE[0x201C] = 0x00; // using 27MHz for CASIO
XBYTE[0x2D00] = 0x0B; // tvdspmode
//patch4.4@richie@casio
//patch5.1@ada@Fix the CASIO LCD bug begin
if (RevIDPt < 5)
{
XBYTE[0x2D02] = 0x05; // vline
}
else
{
XBYTE[0x2D02] = 0x04; // vline
}
//XBYTE[0x2D02] = 0x05; // vline
//patch5.1@ada@Fix the CASIO LCD bug end
XBYTE[0x2D03] = 0x01; // vline
XBYTE[0x2D04] = 0x5A; // hpixel
XBYTE[0x2D05] = 0x03; // hpixel
XBYTE[0x2D06] = 0x04; // vsyncw
XBYTE[0x2D07] = 0x04; // hsyncw
XBYTE[0x2D08] = 0x14; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x13; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0xDC; // vldx1
XBYTE[0x2D0D] = 0x02; // vldx1
//patch5.1@ada@Fix the CASIO LCD bug begin
if (RevIDPt < 5)
{
XBYTE[0x2D0E] = 0x05; // vldy1
}
else
{
XBYTE[0x2D0E] = 0x01; // vldy1
}
//XBYTE[0x2D0E] = 0x05; // vldy1
//patch5.1@ada@Fix the CASIO LCD bug end
XBYTE[0x2D0F] = 0x01; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D20] = 0x20; // imgsubsamp
XBYTE[0x2D21] = 0x20; // osdsubsamp
XBYTE[0x2D25] = 0x20; // GRES control
//patch4.4@richie@casio
//patch5.1@ada@Fix the CASIO LCD bug begin
if (RevIDPt < 5)
{
XBYTE[0x2D26] = 0x09; // evenrgb, oddrgb
}
else
{
XBYTE[0x2D26] = 0x06; // evenrgb, oddrgb
}
//XBYTE[0x2D26] = 0x09; // evenrgb, oddrgb
//patch5.1@ada@Fix the CASIO LCD bug end
XBYTE[0x2D33] = 0x00; // osdvofst
XBYTE[0x2D34] = 0x10; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x00; // field mode
//patch4.4@richie@casio
//patch5.1@ada@Fix the CASIO LCD bug begin
if (RevIDPt < 5)
{
XBYTE[0x2DE2] = 0x04; // field mode
}
else
{
XBYTE[0x2DE2] = 0x00; // field mode
}
//XBYTE[0x2DE2] = 0x04; // field mode
//patch5.1@ada@Fix the CASIO LCD bug end
status = 0;
}
//#endif
//#ifdef STNLCD
if(index==11)// GiantPlus output
{
//patch4.5@richie@hue begin
XBYTE[0x2D2B] |= 0x01; //enable gamma //cytsai@0328
//XBYTE[0x21AE] = 0x30; //saturation //cytsai@0328
//patch4.5@richie@hue end
//patch4.5@richie@saturation begin
//XBYTE[0x21AE] = 0x01; //enable saturation and hue adjustment //cytsai@0328
XBYTE[0x21AC] |= 0x01; //enable saturation and hue adjustment //cytsai@0328
//patch4.5@richie@saturation end
XBYTE[0x201C] = 0x00; // using 27MHz for STN-LCD
XBYTE[0x2D00] = 0x0C; // tvdspmode
XBYTE[0x2D02] = 0xA5; // vline
XBYTE[0x2D03] = 0x00; // vline
XBYTE[0x2D04] = 0x1F; // hpixel
XBYTE[0x2D05] = 0x01; // hpixel
// XBYTE[0x2D02] = 0xC7; // vline
// XBYTE[0x2D03] = 0x00; // vline
// XBYTE[0x2D04] = 0x67; // hpixel
// XBYTE[0x2D05] = 0x01; // hpixel
XBYTE[0x2D06] = 0x02; // vsyncw
XBYTE[0x2D07] = 0x08; // hsyncw
XBYTE[0x2D08] = 0x28; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x04; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x17; // vldx1
XBYTE[0x2D0D] = 0x01; // vldx1
XBYTE[0x2D0E] = 0xA3; // vldy1
XBYTE[0x2D0F] = 0x00; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D26] = 0x02; // odd , even line
XBYTE[0x2D21] = 0x40; // osdsubsamp
//yichang@0513
XBYTE[0x2D32] = 0x20; // osdvzfac
XBYTE[0x2D33] = 0x00; // osdvofst
XBYTE[0x2D34] = 0x20; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x00; // field mode
XBYTE[0x2DE2] = 0x02; // field mode
return 0;
}
//#endif
//#ifdef VGATFT
if(index==12)// PrimeView VGATFT output
{
XBYTE[0x201C] = 0x01; // tvenc1xck use 27MHz
XBYTE[0x2D00] = 0x0E; // tvdspmode
XBYTE[0x2D02] = 0x0C; // vline
XBYTE[0x2D03] = 0x02; // vline
XBYTE[0x2D04] = 0x1F; // hpixel
XBYTE[0x2D05] = 0x03; // hpixel
XBYTE[0x2D06] = 0x02; // vsyncw
XBYTE[0x2D07] = 0x60; // hsyncw
XBYTE[0x2D08] = 0x90; // vldx0
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x10; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0x0F; // vldx1
XBYTE[0x2D0D] = 0x03; // vldx1
XBYTE[0x2D0E] = 0xEF; // vldy1
XBYTE[0x2D0F] = 0x01; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
XBYTE[0x2D33] = 0x20; // osdvofst
XBYTE[0x2D34] = 0x20; // osdhofst
XBYTE[0x2D21] = 0x40; // osdsubsamp
XBYTE[0x2D33] = 0x00; // osdvofst
XBYTE[0x2D34] = 0x20; // osdhofst
//patch4.3@yichang@0613 for TV sharpness
//XBYTE[0x2DE2] = 0x00; // field mode
XBYTE[0x2DE2] = 0x02; // field mode
status = 0;
}
//#endif
//#ifdef AU015AN02
if(index==13)// AU015AN02 output
{
XBYTE[0x201C] = 0x00; // using 27MHz for AU digital I/F TFT-LCD
XBYTE[0x20E6] = 0x80; // phase adjustment
XBYTE[0x2D00] = 0x09; // tvdspmode
XBYTE[0x2D02] = 0x05; // vline
XBYTE[0x2D03] = 0x01; // vline
XBYTE[0x2D04] = 0x59; // hpixel
XBYTE[0x2D05] = 0x03; // hpixel
XBYTE[0x2D06] = 0x15; // vsyncw
XBYTE[0x2D07] = 0x11; // hsyncw
//patch5.2.1@ada@Fix the bug of AVI recording with blue line on the left side begin
XBYTE[0x2D08] = 0x82; // vldx0
//XBYTE[0x2D08] = 0x86; // vldx0
//patch5.2.1@ada@Fix the bug of AVI recording with blue line on the left side end
XBYTE[0x2D09] = 0x00; // vldx0
XBYTE[0x2D0A] = 0x03; // vldy0
XBYTE[0x2D0B] = 0x00; // vldy0
XBYTE[0x2D0C] = 0xE0; // vldx1
XBYTE[0x2D0D] = 0x02; // vldx1
XBYTE[0x2D0E] = 0xDE; // vldy1
XBYTE[0x2D0F] = 0x00; // vldy1
XBYTE[0x2D1B] = 0x00; // imgvofst
XBYTE[0x2D1C] = 0x00; // imgvofst
XBYTE[0x2D1D] = 0x00; // imghofst
XBYTE[0x2D1E] = 0x00; // imghofst
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -