📄 logo.c
字号:
/******************************************/
/* logo.c of goldenbugs */
/* */
/* show the logo */
/* */
/* Cat Tom 5.4.2003 */
/******************************************/
struct RGB_color
{
unsigned char red;
unsigned char green;
unsigned char blue;
}RGB_reg[16];
int Index[16]={0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63};
void SetPaletteRegister(int index,struct RGB_color *rgb_ptr)
{
outportb(0x3c8,index);
outportb(0x3c9,rgb_ptr->red);
outportb(0x3c9,rgb_ptr->green);
outportb(0x3c9,rgb_ptr->blue);
}
void GetPaletteRegister(int index,struct RGB_color *rgb_ptr)
{
outportb(0x3c7,index);
rgb_ptr->red=inportb(0x3c9);
rgb_ptr->green=inportb(0x3c9);
rgb_ptr->blue=inportb(0x3c9);
}
int mydelay3(int time)
{
int i;
struct RGB_color black={0,0,0};
Timercounter=0;
while(Timercounter<time)
if(kbhit())
{
bioskey(0);
for(i=0;i<16;i++)
SetPaletteRegister(Index[i],&black);
return 1;
}
return 0;
}
void showlogo()
{
int i,j,k=1;
struct RGB_color temp={0,0,0},black={0,0,0},white={63,63,63};
Timercounter=0;
settimer(newhandler);
/*save the r,g,b*/
for(i=0;i<16;i++)
GetPaletteRegister(Index[i],&RGB_reg[i]);
/*set it black*/
for(i=0;i<16;i++)
SetPaletteRegister(Index[i],&black);
showgbp(0,0,"pic\\logo1.gbp");
/*step in*/
k=1;
for(i=0;i<64;i++)
{
for(j=0;j<16;j++)
{
GetPaletteRegister(Index[j],&temp);
if(temp.red!=RGB_reg[j].red)temp.red++;
if(temp.green!=RGB_reg[j].green)temp.green++;
if(temp.blue!=RGB_reg[j].blue)temp.blue++;
SetPaletteRegister(Index[j],&temp);
}
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
if(mydelay3(40)==1)
{
killtimer();
return;
}
/*step out*/
k=1;
for(i=0;i<64;i++)
{
for(j=0;j<16;j++)
{
GetPaletteRegister(Index[j],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[j],&temp);
}
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
showgbp(0,0,"pic\\logo2.gbp");
/*show Cats in Dark*/
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[YELLOW],&temp);
if(temp.red!=RGB_reg[YELLOW].red)temp.red++;
if(temp.green!=RGB_reg[YELLOW].green)temp.green++;
if(temp.blue!=RGB_reg[YELLOW].blue)temp.blue++;
SetPaletteRegister(Index[YELLOW],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
/*show the bkground of Cats in Dark*/
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[WHITE],&temp);
if(temp.red!=RGB_reg[WHITE].red)temp.red++;
if(temp.green!=RGB_reg[WHITE].green)temp.green++;
if(temp.blue!=RGB_reg[WHITE].blue)temp.blue++;
SetPaletteRegister(Index[WHITE],&temp);
GetPaletteRegister(Index[DARKGRAY],&temp);
if(temp.red!=RGB_reg[DARKGRAY].red)temp.red++;
if(temp.green!=RGB_reg[DARKGRAY].green)temp.green++;
if(temp.blue!=RGB_reg[DARKGRAY].blue)temp.blue++;
SetPaletteRegister(Index[DARKGRAY],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
/*Cats in Dark and Shadow turn white*/
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[YELLOW],&temp);
if(temp.red!=63)temp.red++;
if(temp.green!=63)temp.green++;
if(temp.blue!=63)temp.blue++;
SetPaletteRegister(Index[YELLOW],&temp);
GetPaletteRegister(Index[DARKGRAY],&temp);
if(temp.red!=63)temp.red++;
if(temp.green!=63)temp.green++;
if(temp.blue!=63)temp.blue++;
SetPaletteRegister(Index[DARKGRAY],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
/*set all white*/
for(i=1;i<16;i++)
SetPaletteRegister(Index[i],&white);
/*show Love Parents*/
showgbp(0,0,"pic\\logo3.gbp");
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[LIGHTBLUE],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[LIGHTBLUE],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[DARKGRAY],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[DARKGRAY],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[LIGHTRED],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[LIGHTRED],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
k=1;
for(i=0;i<64;i++)
{
GetPaletteRegister(Index[LIGHTGRAY],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[LIGHTGRAY],&temp);
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
k=1;
for(i=0;i<64;i++)
{
for(j=0;j<16;j++)
{
GetPaletteRegister(Index[j],&temp);
if(temp.red!=0)temp.red--;
if(temp.green!=0)temp.green--;
if(temp.blue!=0)temp.blue--;
SetPaletteRegister(Index[j],&temp);
}
k++;
if(k==3)
{
if(mydelay3(1)==1)
{
killtimer();
return;
}
k=1;
}
}
killtimer();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -