📄 vgadetect.c
字号:
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "System.h"
#include "TWICreg.h"
#include "VGADetect.h"
#include "VGAModeTab.h"
void DetectVGAMOde(void)
{
unsigned int REG5859,REG5A5B;
REG5859=IC_ReadByte(TWIC_P0, 0x58)|(((unsigned int)(IC_ReadByte(TWIC_P0, 0x59)))<<8);
REG5A5B=IC_ReadByte(TWIC_P0, 0x5a)|(((unsigned int)(IC_ReadByte(TWIC_P0, 0x5b)))<<8);
if(((REG5859>0x6b25-8)&&(REG5859<0x6b25+8))&&((REG5A5B>0x020B-4)&&(REG5A5B<0x020B+4)))
cur_Mode=0;
else if(((REG5859>0x6b41-8)&&(REG5859<0x6b41+8))&&((REG5A5B>0x020C-4)&&(REG5A5B<0x020C+4)))
cur_Mode=1;
else if(((REG5859>0x6C01-8)&&(REG5859<0x6C01+8))&&((REG5A5B>0x0271-4)&&(REG5A5B<0x0271+4)))
cur_Mode=2;
else
cur_Mode=0xff;
if(old_Mode != cur_Mode)
{
SetVGAMode(cur_Mode);
old_Mode=cur_Mode;
}
}
void SetVGAMode(uCHAR ModeID)
{
uCHAR i=0;
switch(ModeID)
{
case 0: //640x480
while(VGAREG[i] != 0xff)
{
IC_WritByte(TWIC_P0, VGAREG[i], VGA640x480[i]);
//IC_WritByte(TWIC_P0,0x05,VGAREG[i]);
i++;
}
IC_WritByte(TWIC_P0, 0xE2, 0x11);
break;
case 1: //720x480
while(VGAREG[i] != 0xff)
{
IC_WritByte(TWIC_P0, VGAREG[i], VGA720x480[i]);
//IC_WritByte(TWIC_P0,0x05,VGAREG[i]);
i++;
}
IC_WritByte(TWIC_P0, 0xE2, 0x11);
break;
case 2: //720X576
while(VGAREG[i] != 0xff)
{
IC_WritByte(TWIC_P0, VGAREG[i], VGA720x576[i]);
//IC_WritByte(TWIC_P0,0x05,VGAREG[i]);
i++;
}
IC_WritByte(TWIC_P0, 0xE2, 0x11);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -