AH=28h
DS:DX – адрес открытого FCB (Таблица Б-2)
CX – число записываемых блоков (если CX равен нулю, то размер файла усекается до указанного в поле FCB «Номер записи при непосредственном доступе к файлу»)
Выход:
AL=00h, если запись успешна
AL=01h, при переполнении диска
AL=02h, если при записи произошел выход за границу сегмента
CX – действительное число сделанных записей
Описание. Записывает несколько блоков в файл, начиная с файлового адреса, указанного полем «Номер записи при непосредственном доступе к файлу» в FCB. Читает данные из памяти, начиная с адреса DTA. Соответствующие поля FCB корректируются, чтобы указывать на следующую запись (первую за прочитанными).
DOS, функция 29h Разобрать имя файла
Вход:
AH=29h
DS:SI – адрес исходной текстовой строки для разбора
ES:DI – адрес буфера для результирующего неоткрытого FCB (Таблица Б-2)
AL – битовые флаги, указывающие опции разбора (Таблица Б-5).
Выход:
AL=00h, если результирующий FCB не содержит обобщенных символов
AL=01h, если результирующий FCB содержит обобщенные символы
AL=FFh, если неверно обозначение диска в имени файла
DS:SI – изменен – указывает на символ сразу вслед за именем файла
ES:DI – не изменен – указывает на неоткрытый FCB
Описание.
Создает неоткрытый FCB из строки текста или параметра команды. Текст, начиная с DS:SI, анализируется как имя файла в формате D: FILENAME.EXT, и буфер по адресу ES:DI заполняется как соответственно форматированный FCB.
Таблица Б-5. Битовые флаги DOS, функция 2Ah Получить системную дату
Вход:
AH=2Ah
Выход:
AL – день недели (0 – воскресенье, 1 – понедельник, … 6 – суббота), DOS 3.0+
CX – год (от 1980 до 2099)
DH – месяц (1 до 12)
DL – день (1 до 31)
Описание. Возвращает текущую дату, которая известна системе.
Версии.
DOS 2.x не гарантирует возврата в AL значения дня.
DOS 1.0+ возвращает правильный день недели.
Версии до 2.1 имеют проблемы с переходом через дату.
DOS, функция 2Bh Установить системную дату
Вход:
AH=2Bh
CX – год (от 1980 до 2099)
DH – месяц (от 1 до 12)
DL – день (от 1 до 31)
Выход:
AL=00h, если дата корректна
AL=FFh, если дата некорректна и не изменена
Описание.
Устанавливает системную дату DOS.
DOS, функция 2Ch Получить время DOS
Вход:
AH=2Ch
Выход:
CH – часы (от 0 до 23)
CL – минуты (от 0 до 59)
DH – секунды (от 0 до 59)
DL – сотые доли секунды (от 0 до 99)
Описание. Возвращает текущее время, которое известно системе.
Примечание.
Поскольку системные часы имеют частоту 18.2 Гц (интервал 55мс), DL имеет точность примерно 0.04 сек.
DOS, функция 2Dh Установить время DOS
Вход:
AH=2Dh
CH – часы (от 0 до 23)
CL – минуты (от 0 до 59)
DH – секунды (от 0 до 59)
DL – сотые доли секунды (от 0 до 99)
Выход:
AL=00h, если время корректно
AL=FFh, если время некорректно и не изменено
Описание.
Устанавливает системное время DOS.
DOS, функция 2Eh Установить/сбросить переключатель верификации
Вход:
AH=2Eh
AL=00h – отключить верификацию
AL=01h – включить верификацию
Описание. Задает, должна ли DOS верифицировать (считывать обратно) каждый сектор, записываемый на диск. Это замедляет операции записи на диск, но гарантирует максимальную надежность записи.
DOS, функция 2Fh Получить адрес текущей DTA
Вход:
AH=2Fh
Выход: ES:BX – адрес начала текущей DTA
Описание. Возвращает адрес начала области ввода-вывода (DTA). Поскольку DTA глобальна для всех процессов, в рекурсивной процедуре (например, при проходе по дереву оглавления) может потребоваться сохранить адрес DTA, а впоследствии восстановить его посредством функции 1Ah.
Примечание. Эта функция изменяет сегментный регистр ES.
Версии: DOS 2.00 и выше DOS, функция 30h Получить номер версии DOS
Вход:
AH=30h
Выход:
AL – старший номер версии
AH – младший номер версии
BL:CX – 24-битный серийный номер (большинство версий не поддерживают этот параметр)
Описание. Возвращает в AX значение текущего номера версии DOS. Например, для DOS 3.20 в AL возвращается 03h, в AH – 14h.
Примечание. Если в AL возвращается 00h, можно предполагать, что работает DOS более ранней версии, чем DOS 2.0.
Версии: DOS 2.00 и выше. DOS, функция 31h Завершиться и остаться резидентным
Вход:
AH=31h
AL – код выхода
DX – объем памяти, оставляемой резидентной (в параграфах)
Описание. Выходит в родительский процесс, сохраняя код выхода в AL. Код выхода можно получить через функцию 4Dh. DOS устанавливает начальное распределение памяти, как специфицировано в DX, и возвращает управление родительскому процессу, оставляя указанную память резидентной (число байт равно DX*16). Эта функция перекрывает функцию INT 27h, которая не возвращает код выхода и не способна установить резидентную программу, размер которой превышает 64 Кбайт.
Читать дальше
Конец ознакомительного отрывка
Купить книгу