Ассемблер и программирование для IBM PC



       

ГЛАВА 16. Дисковая память II: Функции базовой версиии DOS - часть 2


БЛОК УПРАВЛЕНИЯ ФАЙЛОМ (FCB) ------------------------------------------------------------ Для выполнения операций ввода-вывода на диске в базовой DOS необходимо в области данных определить блок FCB. Блок FCB не поддерживает путь доступа к файлу, поэтому он исполь зуется главным образом для обработки файлов в текущей дирек

Ассемблер для IBM PC. Глава 16. 2

тории. Блок FCB содержит описание файла и его записей в приведенном ниже формате. Пользователь должен инициализи ровать байты 0-15 и 32-36, байты 16-31 устанавливается DOS.

Байты Назначение 0 Указывает дисковод: 01 для дисковода A, 02 для B и т.д. 1-8 Имя файла, выравненное по левой границе с конечными пробелами, если имя меньше 8 байт. Поле может содержать зарезервированные имена, например, LPT1 для принтера. 9-11 Тип файла для дополнительной идентификации, например, DTA или ASM. Если тип файла меньше трех байт, то он должен быть выравнен по левой границе и дополнен конечными пробелами. DOS хранит имя и тип файла в оглавлении. 12-13 Номер текущего блока. Блок содержит 128 записей. Для локализации конкретной записи используется номер текущего блока и номер текущей записи (байт 32). Первый блок файла имеет номер 0, второй - 1 и т.д. Операция открытия файла устанавливает в данном поле 0. 14-15 Логический размер записи. Операция открытия инициа лизирует размер записи значением 128 (шест.80). После открытия и перед любой операцией чтения или записи можно устанавливать в данном поле любое тре буемое значение длины записи. 16-19 Размер файла. При создании файла DOS вычисляет и записывает это значение (произведение числа запи сей на размер записей) в оглавление. Операция открытия выбирает размер файла из оглавления и заносит его в данное поле. Программа может читать это поле, но не может менять его. 20-21 Дата. При создании или последней модификации файла DOS записывает дату в оглавление. Операция открытия выбирает дату из оглавления и заносит в данное поле. 22-31 Зарезервировано для DOS. 32 Текущий номер записи. Данное поле содержит текущий номер записи (О-127) в текущем блоке (см.байты 12-13). Система использует текущие значения блока и записи для локализации записи в дисковом файле. Обычно номер начальной записи в данном поле - 0, но его можно заменить для начала последовательной обработки на любое значение от 0 до 127. 33-36 Относительный номер записи. Для произвольного дос тупа при операциях чтения или записи данное поле должно содержать относительный номер записи. Напри мер, для произвольного чтения записи номер 25 (шест.19), необходимо установить в данном поле шест 19000000. Произвольный доступ характеризует ся тем, что система автоматически преобразует относительный номер записи в текущие значения




Содержание  Назад  Вперед