Пластиковые карты с открытой памятью. Востриков А.А - 25 стр.

UptoLike

25
но, для первой, второй и третьей групп. BIOS обнаружит первые два, и
драйвер последовательного интерфейса будет распознавать их под но-
мерами 0 и 1. Затем нужно записать базовый адрес третьего адаптера
(ЗЕ8Н) в слово по адресу 404Н. Далее драйвер последовательного ин-
терфейса будет распознавать его под номером 2.
Число последовательных адаптеров, обнаруженных BIOS, записы-
ваются в биты 9–11 слова по адресу 410Н и его можно получить при
помощи прерывания 11Н BIOS. BIOS считает, что адаптер данной груп-
пы существует, если после чтения из третьего порта группы (3FAH или
2FAH) биты 3–7 равны нулю.
Во время POST в байты по адресам 47СН, 47DH, 47ЕН и 47FH
записывает ся единица. Эти байты соответствуют адаптерам с номе-
рами 0, 1, 2 и 3. Они определяют интервал времени, по истечении
которого BIOS считает, что соответствующий адаптер не выполнил
запрос (тайм-аут). Проверка окончания операции осуще ствляется в
цикле, и значение соответствующего байта используется как счет-
чик цикла. При обнулении счетчика BIOS принимает, что операция
не выполнена. В BIOS нет обслуживающей функции для изменения
этих байтов, но пользовательские программы могут изменять их не-
посредственно как адреса памяти.
BIOS имеет четыре обслуживающие функции для работы с после-
довательным интерфейсом. Они обо соблены в отдельный модуль
BIOS-драйвер последовательного интерфейса. Все функции выполня-
ются посредством прерывания 14Н, а номер функции задается в регис-
тре АН. Нужно обратить внимание, что при инициализации последова-
тельного адаптера (функция 00Н) BIOS запрещает ему выполнять аппа-
ратное прерывание. Объясним это подробнее. Последовательный адап-
тер можно программировать так, чтобы он выполнял аппаратное пре-
рывание в определенных случаях: при получении данных, при измене-
нии состояния линии и др. Это позволяет программам выполнять дру-
гую работу до наступления ожидаемого изменения интерфейса. Однако
BIOS работает по-другому. Для обнаружения изменения она проверяет
в цикле один из портов адаптера (поулинг). Следовательно, для осуще-
ствления асинхронной работы с последовательным интерфейсом необ-
ходимо программировать адаптер непосредственно. Последовательные
адаптеры с базовыми адресами 3F8H и 3E8H (первая и третья группы)
выполняют прерывание 0CH (уровень 4), в адаптеры с базовыми адре-
сами 2F8H и 2E8H (вторая группа) – прерывание 0BH (уровень 3).