#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);
}
