⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 biosdisk.cpp

📁 C++编写的一个测试电子盘或CF卡及所有存储设备的程序
💻 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 + -