/**
*.Name      getmboot
*
*.Title     Считать главную загрузочную запись
*
*.Descr     Функция считывает главную загрузочную запись
*           для указанного НМД.
*
*.Proto     int getmboot(MBOOT *master_boot, int drive);
*
*.Params    master_boot - указатель на буфер, в который
*                         будет считана главная загрузочная
*                         запись
*
*           drive       - номер физического НМД
*                         (0 - первый НМД, 1 - второй,...)
*
*.Return    0 - если главная загрузочная запись считана
*               успешно;
*           Код ошибки, полученный от функции BIOS "Чтение
*               сектора" - если чтение главной загрузочной
*               записи выполнить невозможно.
*
*.Sample    partshow.c
**/

#include <stdio.h>
#include <bios.h>
#include "sysp.h"

int getmboot(MBOOT *master_boot, int drive) {

	 struct diskinfo_t di;
	 int status;

// Подготавливаем структуру для чтения
// главной загрузочной записи

	 di.drive = drive | 0x80;
	 di.head     = 0;
	 di.track    = 0;
	 di.sector   = 1;
	 di.nsectors = 1;
	 di.buffer   = (char*)master_boot;

// Читаем сектор, содержащий главную
// загрузочную запись

	 status = _bios_disk( _DISK_READ, &di ) >> 8;

	 return(status);
}
