4. АН
=3 — установка времени в RTC, назначение регистров и признак результата аналогичен функции 2.
5. АН
=4 — чтение даты из RTC. Возвращает в упакованном BCD-формате век (в регистре СН
), две старшие цифры года ( CL
), месяц ( DH
) и день ( DL
). Признаком успешной операции является флаг CF
=0. Во избежание ошибок некоторых BIOS при вызове флаг CF
должен быть сброшен.
6. АН
=5 — установка даты в RTC, назначение регистров и признак результата аналогичен функции 4.
7. АН
=6 — установка времени срабатывания будильника RTC. Возвращает в упакованном BCD-формате час (в регистре СН
), минуту ( CL
) и секунду ( DH
). Если будильник уже установлен, переустановка не производится и возвращается флаг CF
=1. При срабатывании будильник вызывает прерывание Int 4Ah
.
8. АН
=7 — отмена установки будильника.
Функции BIOS Int 15h
позволяют программировать таймер CMOS RTC — вводить задержку или запускать таймер установки флага, указывая время в микросекундах (СХ — старшее слово, DX — младшее). Нулевое значение интервала не вызывает никаких действий. Достижимое разрешение в зависимости от производительности ПК может достигать единиц миллисекунд, максимальная выдержка — около 70 часов. Перечисленные ниже номера функций указываются при вызове в регистре АН
или АХ
.
9. AH
=86h — задержка на заданное время. Управление будет возвращено вызвавшему процессу только через указанный интервал. По окончании задержки будет установлен бит 7 в ячейке BDA 0040:00A0. Таймер может оказаться занятым, тогда вызов сразу возвратит флаг CF
=1 (при успехе CF
=0, а в AL
окажется маска, записанная в 8259А#2).
10. AX
=8300h — запуск таймера, устанавливающего флаг после указанной задержке бит 7 в ячейке, заданной регистрами ES
: BX
. При успешном запуске CF
=0; если таймер занят (он один) — CF
=1 и AL
=0. Управление возвращается процессу сразу, а флаг будет установлен через заданное время. Перед завершением программа, запускавшая таймер, должна его сбросить функцией 8301h (во-первых, чтобы освободить; во-вторых, чтобы снять «адскую машинку», которая неожиданно сама может изменить значение ячейки памяти, вполне возможно уже задействованную другим, ничего не «подозревающим» процессом).
11. AX
=8301h — сброс того же таймера.
Функции PCI BIOS используются только для поиска и конфигурирования устройств PCI — процедур, требующих доступа к их конфигурационному пространству (см. п. 8.2). Регулярная работа с этими устройствами выполняется через обращения к регистрам устройств по адресам, полученным при конфигурировании, и обработке известных номеров прерываний от этих устройств. Для 16-битного интерфейса реального режима , V86 и 16-битного реального режима, функции PCI BIOS вызываются через прерывание Int 1Ah
; номер функции задается при вызове в регистре АХ
. Возможна и программная имитация прерывания дальним вызовом по физическому адресу 000FFE6EH (стандартная точка входа в обработчик Int 1Ah
) с предварительным занесением в стек регистра флагов.
Признаком нормального выполнения является CF
=0 и АН
=0; при CF
=1 АН
содержит код ошибки :
♦ 81h — неподдерживаемая функция;
♦ 83h — неправильный идентификатор производителя;
♦ 86h — устройство не найдено;
♦ 87h — неправильный номер регистра PCI.
Вызовы требуют глубокого стека (до 1024 байт). Для 32-разрядных вызовов защищенного режима все эти же функции вызываются через точку входа, найденную через каталог 32-разрядных сервисов (см. выше), при этом назначение входных и выходных регистров и флага CF
сохраняется. До использования 32-разрядного интерфейса следует сначала найти его каталог и убедиться в наличии сервисов PCI. Функции PCI BIOS перечислены ниже:
♦ АХ
= B101h — проверка присутствия PCI BIOS . При наличии PCI BIOS возвращает CF
=0, АН
=0 и EDX
=20494350h (строка символов "PCI "); проверяться должны все три признака. При этом в AL
находится описатель аппаратного механизма доступа к конфигурационному пространству и генерации специальных циклов PCI:
• Бит 0 — поддержка механизма № 1 для доступа к конфигурационному пространству;
• Бит 1 — поддержка механизма № 2 для доступа к конфигурационному пространству;
• Биты 2:3=00 (резерв);
• Бит 4 — поддержка генерации специального цикла по механизму № 1;
Читать дальше