{Описатель диска! 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 - номер диска;