Вход:
AH=1Ch
DL – номер диска (0 – текущий, 1 – A и так далее)
Выход:
DS:BX – адрес байта FAT ID, отражающего тип диска (приведен в описании функции 1Bh)
DX – всего кластеров (единиц распределения)
AL – секторов на кластер
CX – байт на сектор
Описание.
Аналогична функции 1Bh с той разницей, что регистр DL указывает диск, для которого нужно получить информацию.
DOS, функция 21h Считать произвольную запись файла Вход:
AH=21h
DS:DX – адрес открытого FCB (Таблица Б-2)
Выход:
AL=00h, если чтение было успешным и DTA заполнена данными
AL=01h, если достигнут конец файла (EOF) и чтения не было
AL=02h, если произошел выход за сегмент (чтения нет)
AL=03h, если встречен EOF и усеченная запись дополнена нулями
Описание.
Данная функция читает из файла с текущей позиции как с указанной в полях FCB «Запись с текущей позиции» и «Номер записи при непосредственном доступе к файлу».
DOS, функция 22h Писать произвольную запись файла Вход:
AH=22h
DS:DX – адрес открытого FCB (Таблица Б-2)
Выход:
AL=00h, если запись была успешной
AL=01h, при переполнении диска
AL=02h, если DTA+FCB выходит за сегмент (нет записи)
Описание.
Данная функция записывает в файл с текущей позиции как с указанной в полях FCB «Запись с текущей позиции» и «Номер записи при непосредственном доступе к файлу».
DOS, функция 23h Получить размер файла через FCB Вход:
AH=23h
DS:DX – адрес неоткрытого FCB (Таблица Б-2)
Выход:
AL=00h, если функция выполнена успешно
AL=FFh, если при выполнении функции возникли ошибки
Описание.
Проще определить размер файла при помощи функции 3Dh с последующим выполнением 42h (при AL=2).
DOS, функция 24h Установить адрес произвольной записи в файле Вход:
AH=24h
DS:DX – адрес открытого FCB (Таблица Б-2)
Описание.
Устанавливает поле «Номер записи при непосредственном доступе к файлу» в FCB на файловый адрес, соответствующий значениям полей «Текущий блок» и «Запись с текущей позиции».
DOS, функция 25h Установить вектор прерывания Вход:
AH=25h
AL – номер прерывания
DS:DX – вектор прерывания – адрес программы обработки прерывания
Описание. Устанавливает значение элемента таблицы векторов прерываний для прерывания с номером AL, равным DS:DX. Это равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от прямой записи, DOS знает, что происходит, и гарантирует, что в момент записи прерывания будут заблокированы.
Примечание.
Восстановить DS (если необходимо) после этого вызова.
DOS, функция 26h Создать новый PSP Вход:
AH=26h
DX – адрес сегмента (параграфа) для нового PSP
CS – сегмент PSP, используемый как шаблон для нового PSP (Таблица Б-4)