📄 biosdisk.cpp
字号:
#include <bios.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main(int argc,char **argv)
{
int result,value=0;
unsigned char readbuf[512],writebuf[512],backupbuf[512];
long number,i,j;
int head,track,sector,nsects;
clrscr();
for(i=0;i<512;i++) //给将写入磁盘的BUF填充值
{
writebuf[i]=0x55;
}
if(argc!=2)
{
printf("Usage: biosdisk [head/mid/tail]\n");
return 0;
}
if(!strcmp(argv[1],"head"))
value=1;
if(!strcmp(argv[1],"mid"))
value=2;
if(!strcmp(argv[1],"tail"))
value=3;
switch(value)
{
case 1:
head=0;
track=0;
sector=2;
nsects=1;
break;
case 2:
head=0;
track=0;
sector=15;
nsects=1;
break;
case 3:
head=0;
track=0;
sector=30;
nsects=1;
break;
default:
printf("parm error!!please input parm");
exit(0);
break;
}
gotoxy(10,8);
printf("%s: head is %d,track is %d,sector is %d,nsects is %d \n\n\n",argv[1],head,track,sector,nsects);
printf("please input number:");
scanf("%ld",&number);
result = biosdisk(2,0x80,head,track,sector,nsects,backupbuf); //备份
if(result)
{
gotoxy(35,12);
printf("error %d!!!!bad CF card!!!",result);
exit(0);
}
for(i=1;i<=number;i++)
{
for(j=0;j<512;j++)
writebuf[j]=~writebuf[j]; //翻转
result = biosdisk(3,0x80,head,track,sector,nsects,writebuf);//写BUF
if(result)
{
gotoxy(35,12);
printf("error %d!!!!bad CF card!!!",result);
exit(0);
}
gotoxy(35,12);
printf("read %ld OK",i);
result = biosdisk(2,0x80,head,track,sector,nsects,readbuf);//读BUF
if(result)
{
gotoxy(35,13);
printf("error %d!!!!bad CF card!!!",result);
exit(0);
}
gotoxy(35,13);
printf("write %ld OK",i);
for(j=0;j<512;j++) //比较读写数据是否一致
{
if(readbuf[j]!=writebuf[j])
{
gotoxy(35,15);
printf("disk wrong %d!!!",i);
getchar();
exit(0);
}
}
gotoxy(35,15);
printf("disk %ld OK!!!",i);
}
result = biosdisk(3,0x80,head,track,sector,nsects,backupbuf); //恢复
if(result)
{
gotoxy(35,12);
printf("error %d!!!!bad CF card!!!",result);
exit(0);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -