16 — разрядными элементами. Замечу, что поле 5ys в описателе логического диска содержит 1 или 4 в зависимости от типа FAT.

Первый байт FAT содержит значение ID, совпадающее с дескриптором носителя Media из ВРВ. Два следующих за ним байта для 12—разрядной или 3 байта для 16—разрядной FAT всегда имеют значение $FF. Таким образом, элементы 0 и 1 FAT используются особым образом, поэтому нумерация кластеров начинается с номера 2. Старшие номера кластеров, начиная с номера $FFO для 12—разрядной и $FFFO для 16—разрядной FAT, используются для специальных целей (в скобках указаны значения для 16—разрядной FAT):

от $FFO ($FFFO) до $FF6 ($FFF6) — зарезервированные кластеры;

$FF7 ($FFF7) — плохой кластер;

от $FF8 ($FFF8) до $FFF ($FFFP) — конец цепочки ссылок.

Структура каталогов

Сразу за последней копией FAT на диске располагается корневой каталог. Содержимое каталога описывает все зарегистрированные в нем подкаталоги и файлы и выводится на экран командой DIR операционной системы. Каждый элемент корневого каталога и всех подкаталогов представлен такой 32 — байтной структурой данных:

type

Dir_Type = record

Name array [1..8] of Char; {Имя файла}

Ext array [1..3] of Char; {Расширение}

FAttr Byte; {Атрибуты файла}

Reserv array [1..10] of Byte; {Резерв}

Time Word; {Время создания}

Date Word; {Дата создания}

FirstC Word; {Номер первого кластера}

Size Longint {Размер файла в байтах}

end; {Dir_Type}

Символы в полях Name и Ext обычно преобразуются к прописным и выравниваются влево, т.е. неиспользуемые символы имени и расширения заполняются ведомыми пробелами. Для имен каталогов оба поля рассматриваются как одно целое, таким образом имя каталога может состоять из 11 символов.

Байт FAttr содержит атрибут файла. ДОС использует значения этого поля, указанные в табл.3.3.

Таблица 3.3 Значения поля FAttr

Значение

Смысл

о

Обычный (архивный) файл

i

Файл защищен от изменений и стирания

2

Скрытый файл

4

Системный файл