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


          

ИСПОЛЬЗОВАНИЕ FCB ДЛЯ СОЗДАНИЯ ФАЙЛА


ПРОГРАММА: ИСПОЛЬЗОВАНИЕ FCB ДЛЯ СОЗДАНИЯ ФАЙЛА НА ДИСКЕ ------------------------------------------------------------ Программа, приведенная на рис.16.1, создает дисковый файл по имени, которое вводится пользователем с клавиатуры. Блок FCB (FCBREC) в данной программе содержит следующие поля:
FCBDRIV Программа должна создать файл на диске в дисководе 4 (или D). FCBNAME Имя файла - NAMEFILE. FCBEXT Тип файла - DAT. FCBBLK Начальное значение номера текущего блока - 0. FCBRCSZ Размер записей неопределен, так как операция откры тия устанавливает в данном поле значение 128. FCBSQRC Начальное значение номера текущей записи - 0.
В программе организованы следующие процедуры:
BEGIN Инициализирует сегментные регистры, вызывает C10OPEN для создания файла и установки адреса DTA для DOS, вызывает D10PROC для ввода имени файла. Если ввод пустой, то происходит вызов G10PROC для завершения программы. C10OPEN Создает для файла элемент в директории, устанавли вает размер записей - 32 (шест.20) и инициали зирует адрес буфера DTA для DOS. D10PROC Выдает запрос на ввод имен, вводит имена с клавиа туры и вызывает процедуру F10WRIT для записи вводи мых имен на диск. E10DISP Управляет прокруткой и установкой курсора. F10WRIT Записывает имена в дисковой файл. G10CLSE Записывает маркер конца файла и закрывает файл. X10ERR Выдает на экран сообщение об ошибке в случае не корректной операции создания файла или записи данных.
Каждая операция записи автоматически добавляет 1 к FCBSGRC (номер текущей записи) и шест.20 (размер записи) к FCBFLSZ (размер файла). Так как каждая запись имеет длину 32 байта, то операция заносит в буфер 16 записей и затем записы вает весь буфер в сектор диска. Ниже показано содержимое DTA и буфера:
DTA: |текущая запись| Буфер: |запись 00|запись 01|запись 02|...|запись 15|
Если пользователь ввел 25 имен, то счетчик записей увели чится от 1 до 25 (шест.19). Размер файла составит:
25 * 32 байта = 800 байтов или шест. 320
Ассемблер для IBM PC. Глава 16. 6
------------------------------------------------------------ ------------------------------------------------------------ Рис. 16.1. Создание дискового файла.

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