DIPS - номер первого сектора каталога или 0;

DIRSIZE - размер каталога (в элементах DIR ТУРЕ).}

Procedure GetDiskInfo(Disk: Byte; var Diskl-nfo: TDisk);

{Возвращает информацию о диске DISK}

Function GetDiskNumber(с: Char): Byte;

{Преобразует юля диска A...Z s номер О...26'. Если указано недействительное имя,возвращает 255}

Function GetFATItem(Dislc: Byte; Item: Word); Word;

{Возвращает содержимое указанного элемента FAT}

Procedure GetIOCTLInfo(Disk: Byte; var l6: юеть_Туре);

{Получить информацию об устройстве согласно общему вызову IOCTL)

Procedure GetListDisk(var List: PLtstDisk);

(Формирует список описателей дисков}

Procedure GetMasterBoot(var But);

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

Function GetMaxDrv: Byte;

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

Function GetSectorfDisk: Byte;Cluster: Word): Word;

(Преобразует номер кластера в номер сектора}

Function PackCylSec(Cyl,Sec: Word): Word;

(Упаковывает цилиндр и сектор в одно слово для прерывания ?13}

Procedure ReadSector(Disk: Byte; Sec: Longint; NSec: Word; var Buf);

{Читает сектор (секторы) на указанном диске}

Procedure SetAbsSector(Disk,Head: Byte; CSec: Word; var Buf);

{Записывает абсолютный дисковый сектор с помощью прерывания $13}

Procedure SetDefaultDrv(Disk: Byte);

{Устанавливает диск по умолчанию}

Procedure SetFATItemtDiSk: Byte;Cluster,Item: Word);

{Устанавливает содержимое ITEM в элемент CLUSTER таблицы FAT}

Procedure SetMasterBoot(var Buf);

{Записывает в главный загрузочный сектор сеДержимое Buf}

Procedure UnPackCylSec(CSec: Word; var Cyl,Sec: Word);

(Декодирует цилиндр и сектор для прерывания $13}

Procedure WnteSector(Disk: Byte; Sec: Longint; NSec: Word; var Buf);

{Записывает сектор (секторы) на указанный диск}

IMPLEMENTATION

Oses DOS;

var

Reg: registers;

Procedure Output;

(Формирует значения Dislc_Status и Disk_Ercoc)