/// 디스크 체계를 초기화하십시오 \\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /* 리셋 디스크 체계 */
regs.h.dl = 0x00; /* 플러피 디스크 a:*/
int86(0x13, ®s, ®s);
}
for(track=0;track<=79;track++)
{
for(head=0;head<=1;head++)
{
for(sector=1;sector<=18;sector++)
{
count =0;
while(count<512 )
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
dinfo.drive = 0x00; /* A를 위한 드라이브 수: */
dinfo.head = head; /* 디스크 맨 위 수 */
dinfo.track = track; /* 대위 수 */
dinfo.sector = sector;/* 분야 수*/
dinfo.nsectors = 1; /* 분야 조사*/
dinfo.buffer = dbuf; /* 자료 버퍼*/
result= _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
printf("성공 대위에 쓰십시오 = %d, Head = %d,
Sector = %d.\n", track, head, sector);
else
printf("드라이브 A 의 상태를 읽을 수 없다 = 0x%02x\n",
result);
}
}
}
}
프로그램 코딩에 대하여 코멘트:
먼저 주어진 프로그램 코딩에서는, 기본적으로 우리는 뒤에 오는 업무를 단계적으로 이행하는 것을 진행하고 있다:
- 우리가 읽을 가치가 없는 플로피의 표면의 자료를 임시적으로 저장한 파일의 경로와 파일 이름이 특성 배열 파일 이름에 의하여 [80] 보전된다.
- dinfo는 _bios_disk 기능에 의해 실행된 가동에 의해 요구된 매개변수의 정보를 포함하는 diskinfo_t 구조를 가르킨다.
- regs.h.ah = 0x00가 기능 00 H를 가르키고 regs.h.dl = 0x00가 a를 위해 사용되는 곳에 개입중단 13H (기능 00h)를 사용하여 디스크 체계를 초기화하십시오: 느슨한. 그리고 int86 (0x13 의 ®s, ®s)는 MS-DOS 개입중단 서비스 INT 13 H.를 빈다.
- 우리가 디스크의 표면의 분야에 정보를 직접적으로 쓰기 위하여 려고 하기 때문에, _bios_disk의 매개변수는 다음과 같이 일 것이다:
|