- 注册时间
- 2005-2-19
- 最后登录
- 1970-1-1
|

适合nc3000!
其它的我不知键盘io和文件读取函数,大家告诉我
sxzc上下左右,f4开始,f1复位,f2选,下右:AB
垂直滚动是我编的,其它的要感谢lee哥!!
我不会压缩字模,于是写了这个来压缩,但效果不好,lee哥和高手教我
int fp;
char mem[4096];
char pic[8];
char text[200];
char bit[8]={128,64,32,16,8,4,2,1};
void xuan()
{
char n[10][20];
char name[2][20];
char dirname[50];
char filename[50];
int i,j;
i=0;
sprintf(n[0],"%s","/");
for(;;)
{
memset(dirname,0,50);
for(j=0;j<=i;j++)strcat(dirname,n[j]);
ChDir(dirname);
if(!FileList(filename))
{
i--;
if(i<0)exit(0);
}
else
{
sprintf(text,"%s/%s",dirname,filename);
if(ChDir(text))
{
i++;
sprintf(n,"%s",filename);
}
else
{
sprintf(name[0],"%s",filename);
return;
}
}
}
}
int getPoint(int x,int y)
{
int i;
long addr;
addr=_GRAPH+y*20+x/8;
i=x%8;
if(*(addr)&bit)return 1;
else return 0;
}
void main()
{
int i,j,m,n;
SetScreen(1);
Locate(2,8);
printf("FC转文曲星\n 字模压缩器");
getchar();
MakeDir("/LavaData");
xuan();
fp=fopen(text,"r");
ClearScreen();
Refresh();
for(i=0;i<1024;i++)
{
if(CheckKey(27))exit(0);
Box(1,8,50,16,1,0);
Box(1,75,1+158*i/1023,79,1,1);
fread(pic,1,8,fp);
WriteBlock(8,8,8,8,65,pic);
for(n=0;n<8;n++)
{
for(m=0;m<7;m++)
{
if(GetPoint(m+8,n+8)&&GetPoint(m+9,n+8))
{
Point(m/2+24,n+8,1);
if(i<512)Point(31-m/2,n+8,1);
}
}
}
for(m=0;m<8;m++)
{
if(GetPoint(m+24,8)||GetPoint(m+24,9))Point(m+40,8,1);
if(GetPoint(m+24,11)||GetPoint(m+24,12))Point(m+40,9,1);
if(GetPoint(m+24,14)||GetPoint(m+24,15))Point(m+40,10,1);
}
GetBlock(40,8,8,4,64,mem+i*4);
}
fclose(fp);
fp=fopen("/LavaData/字模.dat","w+");
fwrite(mem,1,4096,fp);
fclose(fp);
exit(0);
} |
|