/// Выступите система с иничиативой диска \\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /*Возратите систему в исходное положение Диска */
regs.h.dl = 0x00; /* Floppy Disk а: */
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; /* номер привода для а: */
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("Не смогите прочитать привод а, состояние = 0x%02x\n",
result);
}
}
}
}
Комментарии на кодирвоании программы:
В кодирвоании программы, котор дали более раньше, основно мы продолжаем выполнить following шаг задач шагом:
- Блок характера filename[80 ] держит имя курса и архива архива в мы хранили данные поверхности нечитабельного флапи-диска временно.
- dinfo указывает к структуре diskinfo_t содержит информацию параметров необходимо деятельностью выполненной _ функцией bios_disk.
- Выступите система с иничиативой диска использующ interrupt 13H (функцию 00h) куда regs.h.ah = 0x00 указывают к функции 00 ю и regs.h.dl = 0x00 использованы для а: неповоротливо. И int86(0x13, ®s, ®s) invokes обслуживание ВНУТРЕННЕ 13 ю interrupt MS-DOS.
- По мере того как мы идем написать информацию сразу к участкам поверхности диска, параметры _ bios_disk будут следующим образом:
|