?? welcome.c.bak
字號:
/*有關初始畫面的定義*/
static unsigned int PAL[256][3];
static int Step=0;
/* 設置VGA 13H模式 */
void setmode()
{
_AX=0x13;
geninterrupt(0x10);
}
/* 設置文本模式 */
void closemode()
{
_AX=0x3;
geninterrupt(0x10);
}
/* 設置調色板 */
void setpal(int Color,unsigned char r,unsigned char g,unsigned char b)
{
outportb(0x3c8,Color);
outportb(0x3c9,r);
outportb(0x3c9,g);
outportb(0x3c9,b);
}
/* 調色板漸入 */
void StepIn()
{
int i;
for (i=0;i<256;i++)
setpal(i,PAL[i][0]*Step/64,PAL[i][1]*Step/64,PAL[i][2]*Step/64);
Step++;
}
/* 調色板漸出 */
void StepOut()
{
int i;
setpal(i,PAL[i][0]*Step/64,PAL[i][1]*Step/64,PAL[i][2]*Step/64);
Step--;
}
/*顯示歡迎畫面*/
void logo()
{
FILE *bmp;
int i,r,g,b,x,y;
void far* Video;
Video = farmalloc(64000);
if (Video==NULL)
{
printf("Not enough Memory\n");
return;
}
setmode();
bmp=fopen("logo.bmp","rb");
fseek(bmp,54,SEEK_SET);
for (i=0;i<256;i++)
{
PAL[i][2]=fgetc(bmp)>>2;
PAL[i][1]=fgetc(bmp)>>2;
PAL[i][0]=fgetc(bmp)>>2;
fgetc(bmp);
setpal(i,0,0,0);
}
for (y=0;y<200;y++)
for (x=0;x<320;x++)
pokeb(0xa000,y*320+x,fgetc(bmp));
fclose(bmp);
while(!kbhit()&&Step<64)
{
StepIn();
delay(1000);
}
Step=64;
StepIn();
getch();
while(!kbhit()&&Step>0)
{
StepOut();
delay(1000);
}
Step=0;
StepOut();
farfree(Video);
/* closemode();*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -