/// ディスクシステムの再調節による初期設定ディスク \\\
gotoxy(10,2); printf("Initializing The Disk...");
for(i=0;i<3;i++)
{
inregs.h.ah=0x00; // 機能数
inregs.h.dl=0x00; // フロッピー・ディスク
int86(0x13,&inregs,&outregs);
}
gotoxy(10,2); printf("The Status of the Disk is as....\n");
/* スキャンしなさい0からの79のトラック(総トラック80)にフロッピー・ディスクを */
for(track=0;track<=79;track++)
for(head=0;head<=1;head++)
for(sector=1;sector<=18;sector++)
{
inregs.h.ah = 0x04; /// 機能数
inregs.h.al = 1; /// セクターの数
inregs.h.dl = 0x00; ///フロッピー・ディスク
inregs.h.ch = track;
inregs.h.dh = head;
inregs.h.cl = sector;
inregs.x.bx = FP_OFF(buf);
sregs.es = FP_SEG(buf);
int86x(0x13,&inregs,&outregs,&sregs);
//// スキャンされたセクターの状態を印刷しなさい \\\\
switch(outregs.h.ah)
{
case 0x00:
cprintf("状態: 間違い無し !!");
break;
case 0x01:
cprintf("状態: 悪い命令 ");
break;
case 0x02:
cprintf("状態: 見つけられないアドレスマーク ");
break;
case 0x03:
cprintf("状態: 書込み禁止ディスクに書く試み ");
break;
|