Программа FDBIOS
Приведем пример программы FDBIOS (листинг 1.6), которая читает первый сектор нулевой дорожки (нулевая головка) диска А: и записывает его содержимое в файл. В случае ошибки программа пытается прочесть сектор три раза.
Листинг 1.6. Файл fdbios\ fdbios.cpp
#include <stdio.h> #include <bios.h> #include <dos.h>
char diskbuf[512];
void main(void) { unsigned status = 0, i; struct diskinfo_t di; FILE *sect;
// Открываем файл, в который будем записывать // содержимое самого первого сектора дискеты sect = fopen ("!sector.dat","wb+");
di.drive = 0; di.head = 0; di.track = 0; di.sector = 1; di.nsectors = 1; di.buffer = (void far*)diskbuf;
for(i = 0; i < 3; i++) { status = _bios_disk (_DISK_READ , &di) >> 8; if(!status) break; }
// Выводим содержимое считанного сектора в файл for(i=0; i<512; i++) fputc (diskbuf[i], sect); fclose (sect); }