MS-DOS для программиста

Программа 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); }



Содержание раздела