bx := ofs(Buf) ;
Intr($13,R) ;
ReadSec := (Flags and FCarry)=0 end
end; {ReadSec} {————————————}
type
{Описатель раздела} Part_Type = record
BootF: Byte {Флаг активности раздела} BegHd: Byte {Начало раздела - головка} BegSC: Word {Начало раздела - сектор/цилиндр} Sys : Byte {Код системы} EndHd: Byte {Конец раздела - головка} EndSC: Word {Конец раздела - сектор/цилиндр} Sees : Longint; {Относительный номер начального сектора} Size : Longint; {Длина раздела в секторах} end; {Part_Type} {Структура ссылочного сектора} BootSecType = record
a: array [O..$1BD] of Byte;
Part: array [1..4] of Part_Type;
b: array [1..2] of Byte end;
const
MAXPART = 24; {Максимальное количество логических дисков} var
Boot : BootSecType;
Disk : array [1..MAXPART] of record
Hd: Byte; {Головка} Tr: Word; {Дорожка} Se: Byte; {Сектор} PT: Part_Type;
end;
k,d,j: Byte;
begin
Q := 0; {Номер очередного логического диска} {Читаем главный загрузчик}
if not ReadSec($80,0,1,Boot) then begin
WriteLn('Ошибка чтения главного загрузчика');
Halt end;
{Формируем адрес описателя диска С} Disk[l].Hd := 0;
Disk[l].Tr := 0;