Приложение 7. Функции MS DOS.

Функции DOS представляют собой интерфейс, предоставляемый операционной си­стемой программисту. Анализ функций показывает, что большая их часть отвечает за обслуживание файловой системы. Вывод на экран и обслуживание клавиатуры пред­ставлено на весьма примитивном уровне. Обслуживание мыши вообще отсутствует. Таким образом, система функций DOS заставляет программистов самим писать проце­дуры обработки внешних устройств. Это препятствует созданию стандартов в програм­мировании, но стимулирует развитие творчества программистов. Кроме того, операци­онная система MS DOS является неинтерабильной, т.е. не позволяет осуществлять по­вторный запуск своих функций (точнее, осуществлять запуск функции из функции), что является серьезной помехой для создания резидентных программ (см. главу 12). Вызов функций DOS:

MOV AH,NUM {готовим другие регистры} INT 21H

NUM - номер функции DOS, если функция выполнена с ошибкой, то устанавли­вается флаг переноса, а в АХ заносится код ошибки. Иногда функция имеет подфунк­ции. Номер подфункции обычно заносится в регистр AL.

Список функций DOS.

Функция 0.

Вход: CS - сегмент PSP программы.

Выход из программы. Аналогично INT 20Н. Переустанавливает векторы 22Н, 23Н, 24Н. Сбрасывает буфера, но, если длина файла менялась, файл предварительно следу­ет закрыть. Удобнее пользоваться функцией 4СН.

Функция 1.

Вход:

Вводит символ со стандартного устройства ввода (обычно клавиатура) и выводит на стандартное устройство вывода (обычно экран). Допустимо перенаправление вво­да. Для чтения расширенного кода требуется повторное чтение (первое чтение дает нуль). Реагирует на Ctrl-Break и Ctrl-C.

Функция 2.

Вход:ОЬ - код символа.

Вывод символ на стандартное устройство вывода. Реагирует на Ctrl-Break и Ctrl-C.

Функция 3.

Вход:

Читает символ в AL из стандартного последовательного порта (СОМ 1).

Функция 4.

Вход: символа.

Посылает символ в стандартный последовательный порт.

Функция 5.

Bход: DL - код символа.

Посылает символ на стандартное печатающее устройство LPT1:.

Функция б.

Bra/rOT или выводит символ со стандартных устройств. Вывод: DL-0-FEH

Выводит символ на стандартное устройство. Bbo^DL-FFH

B AL - возвращает код введенного символа, если символа нет возводится флаг нуляг. Расширенный код вводится с повтором.

Функция 7.

Нефильтрованный ввод со стандартного устройства. Bron^ символ без его ото­бражения. Если символа нет, то ждет ввода.

Не реагирует на Ctrl-Break. B А1 - возвращает код введенного символа.

Функция 8.

Аналогична предыдущей функции, но реагирует на Ctrl-Break.

Функция 9.

Вывод строки.

Bход: DS:DX - адрес строки, в конце строки должно стоять '$'.

Функция АН.

Буферизованный ввод с клавиатуры.

Bход: DS:DX - адрес буфера. Структура буфера:

вначале байт максимальной длины строки, затем резервный байт, далее место для вводатекста. Bвод заканчивается либо подостижению максимального значения стро­ки либо по нажатию возврата каретки (13).

Функция ВН.

Проверка состояния ввода. Если символ не ждет, то AL=0, если ждет, то AL=FFH. Функция СН.

Очищает кольцевой буфер клавиатуры и активизирует функцию ввода. Вход: AL-номертребуемой функции ввода: 01,07,08, ОАН. Для функции ОАН-DS:DX - адрес буфера. При возврате байт входных данных.

Функция СЕН.

Назначает текущий диск и возвращает число логических дисководов в системе.

Вход: AL - коддисковода (0=А, 1 =Ви тд.)

При возврате AL - число логических дисководов.

Функции 0FH-17Н - работа с файлами через FCB. Устаревшие функции, сохраняемые ради совместимости. В настоящее время не используются, поэтому и мы их опускаем.

Функция 19Н.

Bозвращает код текущего диска.

Код диска возвращается в AL - О -А, 1 -B и т.д.

Функция 1АН.

Позволяет определить адрес области обмена с диском для последующих

операций с блоками управления файлами. BDS:DX-aflpec DTA.

Функция 1ВН.

Bозвращает характеристики текущего диска. Bыход:

AL - количество секторов в кластере,

СХ - количество байтов в секторе,

DX - общее количество кластеров на диске,

DS:BX -> байт-описатель:

FFH-дискета 320К,

FEH-дискета 160К,

FDH-дискета 360К,

FCH-дискета 180,

F9H- дискета 1,2Мб,

F8H-жесткий диск,

носители.

Функции 1СН.

Bозвращает характеристики заданного носителя. Bход:

AL - номер носителя. Выход: как в 1ВН.

Функция 1FH.

Позволяет получить детальную информацию о параметрах текущего диска. AL - 0 -успешное завершение,

DS:BX- блок параметров: информация, содержащаяся в секторе загрузки. Функции используют FCB, поэтому устарели и сохраняются только для

совместимости.

Функция 25Н.

Установка вектора прерывания.

Вход:

- номер вектора,

- адрес программы обработки прерывания.

Приложение 7. Функции МБ БОБ

Функция 26Н.

Создание префикса программного сегмента. Вход:

ОХ - сегментный адрес для нового РБР. По этому адресу копируется текущий РБР.

Функции 27Н-29Н.

Используют РСВ.

Функция 2АН.

Получение системной даты.

Выход:

СХ-год,

БН - месяц,

БЬ - день,

АЬ - день недели (0 - воскресенье и т.д.). Функция 2ВН.

Установка системной даты.

Вход:

СХ-год,

БН - месяц,

БЬ - день.

Выход:

АЬ=0 - успешное выполнение, РРН - недопустимаядата.

Функция 2СН.

Получение времени. Выход:

СН - часы, СЬ - минуты, БН-секунды,

- сотые доли секунды.

Функция 2БН.

Установка системного времени.

Вход: СН - часы,

СЬ - минуты,

БН-секунды,

- сотые доли секунды. Выход:

- успешное выполнение,

РРН - недопустимое время.

Функция 2ЕН.

Установка флага проверки.

Bход:

AL=0 - установить флаг проверки, AL= 1 - сбросить флаг проверки.

Функция 2FH.

Получение адреса текущей области обмена с диском (DTA). Bbгход:

ES:DX-адрес DTA.

Функция ЗОН.

Получение версии DOS.

Bход:

AL=0 - в ВН вернуть номер OEM, AL= 1 - в ВН вернуть флаг версии, Bbгход:

AL - номер основной версии, АН - номер подверсии, ВН-номер OEM: OOh-IBM, 16h-DEC,

99h - архитектура STARLITE, FFH-Phoenix ВН-флаг версии:

08h - DOS находится в ПЗУ,

ЮН - DOS находится в области старшей памяти.

Функция 31h.

Завершение программы и сохранение ее резидентной.

Вход:

- код возврата,

DX - объем резервируемой памяти в параграфах.

Функция 32Н.

Получение адреса блока параметров заданного диска. Bход:

- номер диска. Bbгход:

блок параметров. При ошибке AL=0FFH.

Функция ЗЗН.

Получение или установка состояния Break (Ctrl Break, Ctrl С). Bход:

AL=0 - получить состояние Break, А1=1 - установить состояние Break, ВЬ=0-состояниеВгеаквыключеио,проверкатолькодля функций 1-OCh,

DL=1 - состояние Вгеаквключено. Bbiход:

DL - текущее состояние Break, если при вызове AL=0. Bход:

AL=2 - получение и установка состояния Break. DL=0 - состояние Break выключено, 1 - cocnjzybt Break включено. Выход:

- прошлое состояние Break. Bход:

DL=5 - получить дисковод загрузки.

DL - дисковод (1 - А, 2 - B и т.д.) Функция 34Н.

Получение адреса флага занятости. Выход:

ES:BX-однобайтовый флаг. Функция 35Н.

Получение вектора прерывания. Вход:

- номер вектора.

ES:BX - значение вектора, т.е. адрес программы обработки прерывания. Функция 36Н.

Получение объема свободного пространства на диске. Bход:

DL - номер дисковода (0 - текущий, 1 - А: и т.д.).

АХ - число секторов на кластер, BX - число свободных секторов, СХ - размер сектора в байтах, DX - полное число кластеров на диске. При ошибке AX=FFFFH.

Функция

Смена символа разделителя в командной строке. По-видимому, с версии 6.0 DOS отсутствует.

23'

Функция 38Н.

Получение/установка информации по стране.

Функция 39Н.

Создает каталог в конце указанного пути. Вход:

DS :DX - путь в виде строки ASCII, в конце код 0. Выход:

Если ошибка, то АХ - код ошибки.

Функция ЗАН.

Удаление указанного каталога. Bход:

DS:DX - путь в виде строки ASCII, в конце код 0. Выход:

Если ошибка, то АХ- код ошибки.

Функция ЗВН.

Смена текущего каталога. Bход:

DS:DX - путь в виде строки ASCII, в конце код 0. Выход:

Если ошибка, то АХ - код ошибки. Функция ЗСН.

Создание или усекновение файла. Файл либо создается, либо, если он есть, усека­ется до нулевой длины. B любом случае он открывается. Bход:

СХ-атрибут файла.

DS:DX - адрес спецификации файла в виде строки ASCII, в конце - код нуля.

АХ - дескриптор.

Функция 3DH.

Открыть файл. Если файла нет, то возводится флаг ошибки. Вход:

AL - режимы доступа. Если к режиму добавлено 80Н, то дескриптор наследуется дочерним процессом.

DS:DX- адрес спецификации файла в виде строки ASCII, в конце - код нуля.

АХ - дескриптор. Функция ЗЕН.

Закрыть файл.

Вход:

ВХ - дескриптор.

Приложение 7. Функции МБ 1)()Б

Функция 3Ш.

Чтение из файла или устройства. Вход:

ВХ-дескриптор.

СХ - число байт. Б&БХ - адрес буфера. Выход:

АХ - число считанных байт (или код ошибки). Функция 40Н.

Запись в файл или устройство. Вход:

ВХ-дескриптор.

СХ - число байт. Если =0, то длина файла усекается до положения указателя. БЗЛХ - адрес буфера.

Выход:

АХ - число переданных байт (или код ошибки). Функция 41Н.

Удаление файла.

Вход:

БЗЛХ - спецификация файла.

Функция 42Н.

Установка указателя в файле. Вход:

АЕ - режим установки указателя.

0 - абсолютное смещение от начала файла,

1 - знаковое смещение от текущего положения указателя,

2 - знаковое смещение от конца файла. ВХ-дескриптор.

СХ - старшая часть смещения. ЭХ - младшая часть смещения. Выход:

ЭХ - старшая часть возвращенного указателя. АХ - младшая часть возвращенного указателя.

Функция 43Н.

Получение или установка атрибута файла.

Вход:

АЕ - 0 - для получения атрибута. - 1 - для установки атрибута. СХ-атрибут.

БЗЛХ - адрес спецификации файла или каталога. Выход:

СХ - возвращаемый атрибут.

Функция 44НЛОСТЬ- Input-Output Control.

Bзаимодействие с устройствами и получение информации о файлах. Номер под­функции помещается в регистр AL.

Подфункция 00. Запросить флаги информации об устройстве. Вход:

ВХ - дескриптор файла или устройства, Выход:

DX - информация об устройстве -15 бит:

0- 1 -консольное входное устройство,

1- 1 - консольное выходное устройство,

2 -1 - нулевое устройство (NUL),

3 - часы.

5-режим (0-ASCII, 1-двоичный),

6 -1 - нет конца файла, 0 - конец файла при вводе,

7 -1 - устройство, 0 - файл 14-1 - строки IOCTL приняты

О - строки IOCTL нельзя обработать. номер устройства: 0 - А, 1 - В и т.д.)

Подфункция 01. Установить флаги информации об устройстве. Bход:

BX - дескриптор файла или устройства, DX - информация об устройстве (DH=0). Выход:

DX - информация об устройстве.

Подфункция 02-03. Запросить флаги информации об устройстве. Читать (2), писать (3) строку на символьное устройство. Bход:

DS:DX - адрес буфера чтения или записи, СХ- число передаваемых байт, ВХ - дескриптор устройства. Выход:

Подфункция 04-05. Читать (04)или писать (05) строку ЮСТЬна блочноеустройство. Bход:

DS:DX - адрес буфера чтения или записи,

СХ - число передаваемый байт,

BL - номер диска (0 - текущий, 1 - А и т.д.)

АХ - действительное число переданных байт, если не было ошибки. Подфункция 06-07. Дать статус ввода (06) или вывода (07). Bход:

BX - дескриптор. Выход:

AL = ІЇН - не конец файла, 0 - конец для дисковых описателей. AL = FFH - готово, 0 - не готово для устройств.

Подфункция 08. Использует ли блочное устройство съемный носитель. Вход:

BL - номер диска (0 - текущий, 1 - А и т.д.)

Выход:

АХ - 0 - съемный носитель, 1 - несъемный носитель (твердый диск или электрон-ныйдиск)

Подфункция 09. Является ли устройство съемным в сети.

Вход:

BL - номер диска (0 - текущий, 1 - А и т.д.) Выход:

DX - атрибут устройства:

0 -1 - стандартное входное устройство,

1 - стандартное выходное устройство,

2 -1 - стандартное устройство NUL, 3-1 - часы,

б -1 - поддерживаетлогические устройства,

11-1 - поддерживает съемные зависящие от носителей устройства,

12 -1 - сетевое устройство (возможно, CD-rom),

13 -1 - не IBM-блочные устройства,

14 -1 - поддерживает IOCTL,

15 -1 - символьное устройство, 0 - блочное устройство.

Подфункция ОАН. Принадлежит ли дескриптор файла локальному, или удаленно­му устройству в сети. Вход:

ВХ - дескриптор файла. Выход:

DX - атрибут устройства, если 15 бит = 1, то устройство удаленное (т.е. сетевое). Подфункция ОВН. Контроль повторений при разделении и блокировании файлов.

Вход:

DX-число попыток передвызовом критической ошибки, СХ - счетчик цикла между попытками.

Выход:

Подфункция Ос. Поддержка переключений кодовыхтаблиц. Вход:

ВХ - описатель открытого устройства, СН-типустройства:

- неизвестен, 1 - СОМп - последовательное устройство,

3 - CON - консоль,

5 - параллельный принтер. CL-коддействия.

4ch- начало подготовки кодовой страницы,

4dh - конец подготовки кодовой страницы,

4ah - выбрать подготовленную кодовую страницу,

6ah - получить текущую активную кодовую страницу, 6bh - получить список подготовленного кодовых страниц DS:DX - адрес пакета данных, Выход:

Для подготовки кодовой страницы выдать вначале команду 4ch, а затем сделать несколько вызовов подфункции 3.

Подфункция Оёп.Вызоводнойизфункцийуправления.

Вход:

CL - код действия.

40h - установить параметры устройства, 60h - дать параметры устройства, 41 h - писать дорожку логического устройства, 61h - читать дорожку логического устройства, 42h - форматировать дорожку с верификацией, 62h - верифицировать дорожку логического устройства. - адрес пакета данных.

Выход:

Подфункция Oeh. Выяснить, назначил лидрайверустройстванесколькологичес-ких устройств одному логическому устройству.

Вход:

BL - номер диска (0 - текущий диск, 1 - А и т.д.)

Выход:

Если не было ошибки то:

АЕ - 0 - назначен один диск, 1 - А и т.д.

ПодфунщияОГ^Стбпгдтъдрайверубло

Вход:

BL - номер диска (0 - текущий и т.д.)

Выход:

Если не было ошибки, то:

AL - 0 - назначен один диск, 1 - А и т.д.

Подфункция необходима для обхода сообщения "Insert diskete for drive..." Пакеты для функции Och IOCTL.

Функции 4АН, 4DH, 6АН.

DW ? ; длина пакета DW ?   ;код страницы

Функция 4СН.

DW ?   ;флаги

DW ?   ; дайна остатка пакета в байтах

DW  ?   ;число последующих кодовых страниц

DW 15BH   /первая кодовая страница,   например, США

DW ?   ; вторая кодовая страница

Функция 6ВН.

Пакет возвращается в Бв:БХ.

ОИ ?   ;длина списка в байтах

DW ?   ; летчик аппаратных кодовых страниц

Ш ?   ; аппаратная кодовая  страница 1

Т№ ?   /аппаратная кодовая страница 2

ТМ ?   ;счетчик подготовленных кодовых страниц ? кодовая страница 1

? кодовая страница 2

Пакеты для функции ОЬЬ ІОСТЬ. Функции 40Н,60Н.

ББ  ?    ;специальные функции:    для    функции    60Ї1 определен /только бит 0,   0=1   - извлечь ВРВ в формате запроса /устройства,       0=0   - извлечь умалчиваемый ВРВ /для функции 4ОН работают 3 бита:

/0-1 вернуть ОєуісєВРВ в   формате   запроса устройства /О -  0  - использовать DeviceBPB из этого пакета /1 -  1  - игнорировать все поля в пакете,   кроме схемы /дорожки

; 2  -  1  -  все секторы на дорожке имеют один размер Ш   ?     /тип устройства   (возвращает драйвер) : /О - 320/360  5.25 дискета /1  -  1.2М 5.25 дискета /2   -   720К 5.25 дискета /3  -  8-дюймовая одинарной плотности ; 4  -  8-дюймовая двойной плотности ; 5  - фиксированный диск' ; 6 - ленточное устройство / 7 - прочие устройства. ?     /атрибут устройства   (ьозьращает драйвер)

/ определено два бита - 0 - 1 - носитель съемный, О. ; - несъемный

/1-1 смена дискет поддерживается,   0 - не поддерживается БИ ?  /число цилиндров   (возвращает драйвер)   - максимальное

/число цилиндров,  поддерживаемое физическим устройством БВ ?   /тип  носителя   - задаёт тип носителя для типа устройства,

; поддерживающего разные носители 1. 2М устр:

/О -  1.2М,   1  - ЗбОК. БВ 31 салр(?> /БєуісєВРВ. Блок ВРВ + 12байт

DeviceBPB:

Блок ВРВ   (13  байт,   см.   глава  14,   Рис. 14.4)

ХМ ?   ; секторов на дорожку

Ш ?   ; головок на устройстве

ВВ ?   /секторов,   не используемых драйвером

ВВ 10 сгар(?) /резерв

ББ  ?     /схема дорожки   (переменной длины)

Схема   дорожки:

? секторов на дорожке

ВВ  ?   /номер и размер сектора   (например,   БИ 1,200Н)

Функции 41Н,61Н.

DB ? /специальные функции   (всегда 0)

DW ? /головка чтения/записи

DW ? /дорожка чтения/записи

DW ? /начальный сектор   (от 0)

DW ? /счетчик секторов   (от 0)

DD ? /адрес буфера пользователя

Функции 42Н,62Н.

DB    ?   /специальные функции   (только бит 0)

необычная  структура поддерживается необычная структура неприемлема

DW    ?   ; головка

DW    ?   /дорожка (цилиндр)

Продолжение по функциям DOS.

Функция 45Н.

Создает новый дескриптор файла, который связан с заданным файлом или устрой­ством через тотже элемент системной таблицы файлов. Вход:

ВХ-дескриптор файла АХ - новый дескриптор.

Функция 4бН.

Принудительно объявляет указанный дескриптор дубликатом заданного. Если дес­криптор в BX был открыт, то он закрывается. Bход:

ВХ-дескриптор файла,

СХ-дескриптор, которыйдолжен стать дубликатом первого.

Функция 47Н.

Возвращает полный путь к текущему каталогу. Вход:

-   БЬ - дисковод (0 - текущий, 1 - А и т.д.) Б8:81 - адрес буфера (64 байта). Выход:

В буфере содержится путь. Функция 48Н.

Выделение блока памяти. Вход:

ВХ - требуемое число параграфов. Выход:

АХ - сегментный адрес блока.

Если памяти не хватает, то, как обычно, возводится флаг переноса, а в ВХ заносит­ся размер наибольшего доступного блока.

Функция 49Н. Освобождение блока памяти.

Вход:

Е8 - сегментный адрес освобождаемого блока. Функция 4АН.

Изменяет размер вьщеленного блока памяти.

Вход:

Е8 - сегментный адрес блока,

ВХ - требуемый размер блока в параграфах.

Выход:

В случае ошибки- ВХсодержитразмер наибольшего доступного блока в параграфах. Функция 4ВН.

Запуск программы (дочернего процесса). Более подробно работа с этой функцией разбирается в главу 1Е Вход:

АЬ = 0 - загрузить и выполнить программу, = 1 - загрузить и не выполнять программу, = 3 - загрузить оверлей.

- адрес блока параметров (см. глава 08:БХ - путь к запускаемой программе.

Функция 4СН.

Завершение процесса. Вход:

АЬ- код возврата.

Функция 4БН.

Получение кода возврата и типа завершения дочернего процесса. Выход:

АН = 0 - нормальное завершение

1 - завершение черезСит+Вгеак

2 -завершениечерез драйвер критической ошибки

3 - завершение черезнн.21Н или31 п функцию.

= код возврата.

Функция 4ЕН.

Нахождение первого файласогласно указанным параметрам. Вход:

СХ-атрибут файла

08:БХ- адрес строки, указывающей путь к файлу. Выход:

полное имя файла заносится в БТА. Функция 4Ш.

Осуществляет поиск следующего файла.

Выполняется после функции 4ЕН и далее до тех пор, пока не появится флаг пере­носа. АХ в конце будет содержать код - файлов больше нет. Ниже на рисунке представлена структура БТА.

см.

длина

что находится

 

пояснение

40

21

зарезервировано

используется функцией 4FH

+15Н

1

атр

 

 

 

атрибут найденного файла

+16Н

2

время

 

 

время создания/модификация

+18Н

2

дата

 

 

дата создания/модификация

+1аН

4

размер файла

 

DWORD

+1еН

13

имя файла

имя,точка,расширение,нуль

Функция 50Н.

Устанавливает текущий PSP. Документирована, начиная с версии 5.0. Вход:

ВХ - сегментный адрес PSP, объявляемый текущим. Функция 51Н.

Получить PSP текущего процесса. Выход:

ВХ - PSP текущего процесса.

Функция 52Н.

Получить адрес списка списков. Выход:

ES:BX - адрес списка списков. Функция 54Н.

Получить флаг "verify".

Выход:

AL-0 выключен

І включен.

Функция 5бН.

Переименовать файл.

Вход:

DS:DX- адрес спецификации файла. ES:DI - адрес новой спецификации файла.

Функция 57Н.

Подфункция 0.

Получение даты и времени создания или модификации файла. Bход:

BX - дескриптор файла. AL=0.

Выход:

СХ - время (0-4 сек., 5-Апмин., Bh-Fh час.

DX -дата (0-4ден., 5-8 месяц, 9-Fh - год относит. 1980).

Подфункция 1.

Модификациядаты-времени создания файла. ВХ-дескриптор.

AL=1.

CX,DX - время и дата (см. подф. 0).

Функция 59Н.

Позволяет получить детальную информацию об ошибке. Обычно используют в

обработчике критической ошибки.

Bход:

вх = о

Выход:

АХ - расширенный код ошибки, BH - класс ошибки,

BL - рекомендуемое действие,

СН- местоположение ошибки.

Кроме указанных регистров, портятся также регистры: DX, SI, DI, BP, DS, ES.

Функция 5АН.

Создает временный файл. Имя файла определяет система. Вход:

СХ-атрибут файла

DS:DX- полное имя каталога (строка)

Выход:

DS:DX- полное имя файла АХ-код ошибки

Функция 5ВН.

Создание нового файла.

Отличается от ЗСН только тем, что если указанный файл уже существует, то фун­кция завершается ошибкой.

Функция 5DH.

Вход: AL = 6

Адрес области текущих данных. Здесь хранятся системные переменные и распо­ложены системные стеки. Выход:

DS:SI - адрес области

СХ - размер в байтах части области, которая должна сохраняться при переходе на другой процесс, если прерывается функция DOS

DX - размер в байтах части области, которая должна сохраняться при переходе на другой процесс во всех случаях

Вход:

AL = Oah

DS:DX - 3-словный список параметров, составляющих расширенную информа­цию об ошибке.

Выход:

Восстанавливает в области текущих данных расширенную информацию об ошибке.

Эта информация предварительно может быть получена с помощью функции 59Н. Функция 62Н.

Получение PSP текущего процесса.

Выход:

ВХ - сегментный адрес PSP. Функция 67Н.

Установить число дескрипторов файлов.

Вход:

ВХ - требуемое число дескрипторов.

Выход:

В PSP будет записан адрес новой таблицы дескрипторов.

Для успешной работы этой функции требуется достаточно свободной памяти (см. главу 8).

Функция б8Н.

Сбрасывает буфера для данного файла на диск, не закрывая файл. Вход:

ВХ-дескриптор

Функция б9Н.

Установка метки тома и серийного номера. Bход:

BL - дисковод (0 - текущий, І -А и т.д.) AL - 0 - получит метку тома І - установить метку тома DS:BX-буфер Структура буфера: См. Длина Значение

00 2 0

02h4 Серийный номер диска

06h 11 Метка тома или 'NONAME', если отсутствует llh 8 Тип фата (AL=0)FAT12 или FAT 16

Функция бсН.

Функция расширенного открытия файла.

Вход:

AL-00,

BX - режим открытия (см. ниже),

СХ - атрибут файла (если файл создается),

DX- варианты действий:

ООхОН - выдать ошибку, если файла существует,

- открыть файл, если он существует, ООх2Н - обнулить файл (и открыть), если он существует, ОООхН - выдать ошибку, если файл отсутствует,

001 хН - создать файл, если он отсутствует.

Биты регистра BX:

0-2 - режим чтения-записи (0 - только для чтения, І - для записи,

2 - для чтения и записи).

4-6 - режим совместного доступа.

ІЗ - 0 - нормальная обработка прерывания 24Н, І - игнорировать прерывание 24Н, но выдавать код ошибки не только при открытии при дальнейших операциях чтения - записи.

14-0 обычная буферизация, 1 - не буферизованный ввод-вывод (безопасный).

Данная функция весьма напоминает функцию API CreateFile (Windows).