begin

with Reg do begin

ah :•" $44; {Функция 44}

al := $OD; (Общий вызов lOCTLf

cl := $60; {Дать параметры устройства}

ch := $8; (Устройство - диск)

Ы :- Di.sk+1; {Диск 1=А,..)

bh := 0;

ds := seg(IO) ;

dx := of s(IO) ;

MSDOS(Reg);

Output end

end; {GetIOCTLInfo)

{—.— —_———_-_————/

Procedure GetListDisk(var List: PListDisk);

{Формирует список дисковых описателей} var

Disk: Byte;

DI : TDisk;

P,PP: PListDisk;

begin

Disk := 2; {Начать с диска С:} List MIL;

repeat

GetDiskInfo(Disk,DI);

if not Disk_Error then begin New(P) ;

if List=MII. then

List := P else

PP^.NextDisk := P;

with P" do begin

DiskInfo := DI;

NextDisk := HXL;

inc(Disk) ;

PP := P end end until Disk_Error;

Disk_Error := False end; {GetListDiskf ^—————————————;

Procedure GetMasterBoot(var But) ;

(Возвращает в переменной Buf главный загрузочный сектор} begin

GetAbsSector($80,0,l,Buf) end; {GetMasterBoot} {— ———————— ————

Function GetMaxDrv: Byte;

{Возвращает количество логических дисков) consfc

Мах: Byte =0;

->egin

if Max=0 then with Reg do begin

ah := $19;