- MST705 Border 관련수정사항
#define OSD_LOAD_PALETTE_8 1
#define OSD_LOAD_PALETTE_16 0
void OsdInit(void)
{
// Load palette
msOsdLoadColor( OSD_LOAD_PALETTE_8, tPalette );
}
code RegUnitType tOsdInit[] =
{
{OSD_10, 0x02},
{OSD_42, CP_TRANSPARENT}, // OSD color index for Transparency
{_END_OF_TBL_, 0x00},
};
void msOsdSetWindowSize(BYTE ucWidth, BYTE ucHeight)
{
g_ucOsdWindowWidth = ucWidth & 0x3f;
g_ucOsdWindowHeight = ucHeight & 0x3f;
msOsdWriteByte(OSD_58, 0xff);
while(msOsdReadByte(OSD_58)==1);
msOsdWriteByte(OSD_06, g_ucOsdWindowWidth - 1);
msOsdWriteByte(OSD_07, g_ucOsdWindowHeight - 1);
}
void msOsdDrawChar(BYTE ucX, BYTE ucY, BYTE ucCh)
{
WORD wAddress; // OSD access address
BYTE ucBank;
ucBank = msReadByte( BK0_00 );
msWriteByte( BK0_00, REG_BANK_SCALER );
wAddress = ((WORD)ucY * g_ucOsdWindowWidth) + ucX; // calculate OSD access address
msOsdSetCodeAttr9thBit( 1);
// write OSD display code
msWrite2Bytes(REG_OSD_DISPCA_L, wAddress);
//msWriteByte(REG_OSD_DISPCD, ucCh);//ori
msWriteByte(REG_OSD_DISPCD, ucCh&0x7f);
// write OSD display attribute
msWrite2Bytes(REG_OSD_DISPAA_L, wAddress);
//msWriteByte(REG_OSD_DISPAD, g_ucOsdFontColor);//ori
msWriteByte(REG_OSD_DISPAD, g_ucOsdFontColor&0x7f);.
}
void msOsdDrawStr(BYTE ucX, BYTE ucY, BYTE *pStr)
{
WORD wAddress; // OSD access address
BYTE ucDispChar;
BYTE ucDispPtr;
BYTE ucBank;
ucBank = msReadByte( BK0_00 );
msWriteByte( BK0_00, REG_BANK_SCALER );
wAddress = ((WORD)ucY * g_ucOsdWindowWidth) + ucX; // get real address
msOsdSetCodeAttr9thBit( 1);.
// Write OSD Code
msWrite2Bytes(REG_OSD_DISPCA_L, wAddress);
ucDispPtr = 0; // initialize
while(ucDispChar=*(pStr+ucDispPtr)) // display string font index
{
//msWriteByte(REG_OSD_DISPCD, ucDispChar); // code data port//ori
msWriteByte(REG_OSD_DISPCD, ucDispChar&0x7f);.
ucDispPtr++; // next
} // while
// Write OSD Attribute
msWrite2Bytes(REG_OSD_DISPAA_L, wAddress);
ucDispPtr = 0; // initialize
while (ucDispChar=*(pStr+ucDispPtr)) // display string font index
{
//msWriteByte(REG_OSD_DISPAD, g_ucOsdFontColor); // attribute data port//ori
msWriteByte(REG_OSD_DISPAD, g_ucOsdFontColor&0x7f);
ucDispPtr++; // next
} // while
}