Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия

Тут можно читать онлайн Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия - бесплатно полную версию книги (целиком) без сокращений. Жанр: Все книги в жанре Компьютерное "железо", издательство Издательский дом «Питер», год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание

Аппаратные интерфейсы ПК. Энциклопедия - описание и краткое содержание, автор Михаил Гук, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.

Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)

Аппаратные интерфейсы ПК. Энциклопедия - читать книгу онлайн бесплатно, автор Михаил Гук
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Для обслуживания клавиатуры используются ячейки ОЗУ из области данных BIOS (BIOS Data Area):

♦ 0:0417, 0:418 — флаги клавиатуры;

♦ 0:0419 — аккумулятор кода Alt-набора;

♦ 0:041А — указатель головы буфера (Buffer Head), 2 байта (модифицируется при помещении символа в буфер);

♦ 0:041C — указатель хвоста буфера (Buffer Tail), 2 байта (модифицируется при извлечении символа из буфера);

♦ 0:041E-0:042D — область кольцевого буфера (16 слов).

Обработчик аппаратного прерывания до обработки принятого скан-кода вызывает прерывание BIOS Int 15hс AH=4Fh, а в ALнаходится принятый скан-код. Стандартный обработчик Int 15h(4Fh) просто выполняет возврат с CF=0, но его можно заменить специальным обработчиком, который будет при необходимости подменять принятые скан-коды на какие-либо иные (оставляя их в AL), что должно отмечаться установкой CF=1. В старых версиях BIOS такой возможности перехвата не было, ее наличие можно определить вызовом Int 15h(C0h).

Для клавиатуры USB или иного устройства ввода, заменяющего клавиатуру в качестве консоли, прерывание Int 9hдолжно вызываться программно при обработке каждого клавиатурного события. Обработчик этого прерывания должен выполнять те же действия: скан-код пропускать через Int 15h(4Fh) и помещать в клавиатурный буфер, а также модифицировать флаги клавиатуры.

Интерфейс прикладного уровня для клавиатуры представляет BIOS Int 16h. Его основное назначение — извлечение слов из клавиатурного буфера. Функция задается в регистре АНпри вызове, результат помещается в регистр АХ.

АН= 00h — чтение (с ожиданием готовности) и выборка слова из буфера (меняется указатель хвоста). Индикаторы клавиатуры обновляются в соответствии с состоянием флагов. Если буфер пуст, то на AT выполняется прерывание Int 15h(подфункция 90), что может использоваться ОС, например, для переключения задач. Чтобы программа не «зависала» на ожидании символа, предварительно стоит проверить готовность функцией 01h. Символы расширенной клавиатуры фильтруются — преобразуются в их аналоги 83-клавишной клавиатуры.

АН= 01h — проверка готовности, чтение без выборки (указатели не изменяются). Признак наличия символа в буфере — установленный флаг ZF.

АН= 02h — чтение состояния флагов (в AL— байт 0:417h, см. выше).

АН= 03h — установка задержки и частоты автоповтора: BL— код задержки (00=250, 01=500, 02=750, 03=1000 мс), ВН— код частоты (см. п. 9.2.1).

АН= 05h — запись слова из регистра СХв буфер (меняется указатель головы). Признак успешной записи — AL=0, если в буфере нет места, то AL=1.

АН= 10h и AH= 11h — функции, аналогичные 00h и 01h, но предназначены специально для 101/102-клавишных клавиатур — в них не выполняется фильтрация символов расширенной клавиатуры. Для ряда клавиш, отсутствующих в клавиатуре АТ-84, эти функции дадут результаты, отличающиеся от вызовов 00h и 01h.

AH=12h — чтение расширенного состояния флагов (в АХ— слово KbdShiftFlags101Rec), в котором младший байт совпадает с тем, что дает функция 02h (слово из 0:417h), а старший байт похож на слово из 0:418h. Назначение бит АХ:

• бит 0 — клавиша Shift(правая) нажата;

• бит 1 — клавиша Shift(левая) нажата;

• бит 2 — клавиша Ctrl(любая) нажата;

• бит 3 — клавиша Alt(любая) нажата;

• бит 4 — включен индикатор Scroll Lock;

• бит 5 — включен индикатор Num Lock;

• бит 6 — включен индикатор Caps Lock;

• бит 7 — включен режим Insert;

• бит 8 — клавиша Ctrl(левая) нажата;

• бит 9 — клавиша Alt(левая) нажата;

• бит 10 — клавиша Ctrl(правая) нажата;

• бит 11 — клавиша Alt(правая) нажата;

• бит 12 — клавиша Scroll Lockнажата;

• бит 13 — клавиша Num Lockнажата;

• бит 14 — клавиша Caps Lockнажата;

• бит 15 — клавиша SysReqнажата.

Функции чтения буфера (00 и 10h) в регистре ALвозвращают ASCII-код символа, в АНскан-код . Символы, полученные нестандартным способом (в русском регистре или Alt-набором), сопровождаются нулевым скан-кодом. Alt-набор позволяет ввести в буфер любой символ — для этого его код в десятичной системе набирается на цифровой клавиатуре при нажатой клавише Alt, результат заносится в буфер при отпускании клавиши Alt.

При AL=0 регистр АНсодержит расширенный ASCII-код (Extended ASCII Keystroke). Дополнительные клавиши 101/102 клавиатур при использовании функций 10h-12h генерируют код E0h в младшем байте и скан-код, соответствующий аналогичным управляющим клавишам 83/84-клавишных клавиатур.

Функция записи (05h), несколько неожиданная для клавиатуры, позволяет легко имитировать работу оператора для различных демонстрационных программ. Если прикладная программа не перехватывает обслуживание клавиатуры на уровне аппаратного прерывания ( Int 9h), то резидентная программа может ей «подбрасывать» слова в буфер, которые будут восприниматься как нажатие клавиш.

ASCII-коды буфера, соответствующие нажатию клавиш, приведены в [1, 7]. При русификации (или другой локализации) клавиатуры отслеживание переключения регистров (языков) ложится на обработчик аппаратного прерывания клавиатуры.

12.8.2. Int 10h — видеосервис

Int 10h — видеосервис — предназначен для работы с графическим адаптером. Его первичной задачей является управление видеорежимом (BIOS Video Mode), определяющим формат экрана. BIOS адаптера должна выполнять программирование всех стандартных и специфических управляющих регистров для установки (смены) требуемого видеорежима и выбранных параметров развертки — кроме нее о способах этих переключений остальное ПО может и не знать.

В пределах возможностей установленного видеорежима видеосервис предоставляет возможности отображения информации на различных уровнях. Простейший для программиста телетайпный режим позволяет посылать поток символов, которые будут построчно отображаться на экране с отработкой символов возврата каретки, перевода строки, обеспечивая «прокрутку» изображения при заполнении экрана. Есть функции и для полноэкранной работы с текстом, при которой доступны и атрибуты символа. В графическом режиме имеется возможность чтения и записи пиксела с указанными координатами. Однако видеосервисом Int 10hпрограммисты пользуются далеко не всегда, поскольку работает он довольно медленно. Подробно рассматривать функции видеосервиса не будем (этому посвящены отдельные книги), отметим особо лишь функцию телетайпного вывода Int 10h(0Eh). При вызове AH=0Eh, в AL— код выводимого символа, в BL— цвет (только для графического режима). Символ выводится в текущую позицию курсора, и курсор сдвигается на следующую, переходя на новую строку после конца предыдущей и прокручивая экран при его заполнении. Специальные символы вызывают возврат на начало строки ( CR, код 0Dh), перевод строки ( LF, 0Ah) и короткий гудок ( BEL, 07h). Этой функцией часто пользуются для вывода сообщений программами, работающими на нижнем уровне (например, модули инициализации ПЗУ расширений BIOS, загрузчики и другие, не имеющие еще доступа к сервисам операционных систем). Программа вывода получается простейшей, работает на всех адаптерах и во всех режимах, но довольно медленно.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Михаил Гук читать все книги автора по порядку

Михаил Гук - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Аппаратные интерфейсы ПК. Энциклопедия отзывы


Отзывы читателей о книге Аппаратные интерфейсы ПК. Энциклопедия, автор: Михаил Гук. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x