可编辑
fseek(fp,300,SEEK_SET);
k=(width%4)?(4-width%4):0; /*宽度修正值*/
for(j=length-1+start_x;j>=start_x;j--)
{
fread(buffer,width,1,fp);
for(i=start_y,n=0;i<width+start_y;i++,n++)
{
position=j*640l+i; /*计算要显示点的显存位置*/
page_new=position/65536; /*计算显示页*/
if(page_new!=page_old) /*当显示页不同时更换页面,提高一定的输出速度*/ {selectpage(page_new);page_old=page_new;}
pokeb(0xa000,position%65536,buffer[n]); /*写到显存位置*/
}
fseek(fp,k,SEEK_CUR); /*每行绘制完后修正宽度*/
}
fclose(fp);
}
init()
{
savemode=get_SVGA_mode(); /*先保存原来的屏幕模式*/
set_SVGA_mode(0x101); /*硬件无关性初始化屏幕为640*480 256色模式*/
}
end()
{
set_SVGA_mode(savemode); /*恢复屏幕*/
}
/*----------------------------------------------------*/
initpos()
{
int i,j;
for(i=0;i<10;i++)
for (j=0;j<9;j++)
{
position[i][j].x=35+i*39;
position[i][j].y=43+j*40;
}
}
initchessmap()
{
board[0][0]=BLACK_JU;
board[0][1]=BLACK_MA;
.