📄 osdbasic.lst
字号:
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 + -