{Описатель диска! TDisk = record

Number Byte; {Номер диска 0°Л,...}

TypeD Byte; {Тип диска}

AttrD Word; {Атрибуты диске}

Cyls Word; (Число цилиндров на диске)

Media Byte; (Дескриптор носителя)

SectSize Word; (Количество байт в секторе}

TracltSiz Word; {Количество секторов на дорожка}

TotSecs LongInt; {Полная длина в секторах}

Heads Byte; {Количество головок}

Tracks Word; {Число цилиндров на носителе)

ClusSize Byte; (Количество секторов в кластере}

MaxClus Word; {Максимальный номер кластера}

FATLock Word; {Номер 1-го сектора FAT}

FATCnt Byte; {Количество FAT}

FATSize Word; {Длина FAT в секторах}

FAT16: Boolean; {Признак 16-битового элемента FAT}

RootLock Word; {Начало корневого каталога)

RootSize Word; {Количество элементов каталога}

DataLock Word; {Начальный сектор данных) end;

{Список описателей диска} PListDisk = "TListDisk;

TListDisk - record

Disklnfo: TDisk;

NextDisk: PListDisk end;

var

Disk_Error : Boolean; (Флаг ошибки} Disk Status: Word; {Код ошибки} conat

Disks: PListDisk = ШЬ; {Начало списка описателей диска)

function ChangeDiskettefDisk: Byte): Boolean;

{Возвращает TRUE, если изменялось положение запора на указанном приводе гибкого диска)

Procedure FreeListDisk(var List: PListDisk);

{Удаляет список описателей дисков}

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

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

Function GetCluster(Disk: Byte;Sector: Word): Word;

{Возвращает номер кластера по заданному номеру сектора}

Function GetDefaultDrv: Byte;

/Возвращает номер диска по умолчанию)

Procedure GetDirItem(FileName: String; var Item: Dir_Type) ;

^Возвращает элемент справочника для указанного файла)

Procedure GetDirSector(Path: String; var Disk: Byte; var Dirs,DirSize: Word),

{Возвращает адрес сектора, в котором содержится начало нужного каталога, или 0, если каталог не найден. Вход:

PATH - полное имя каталога С', если каталог текущий). Выход:

DISK - номер диска;