Аппаратное обеспечение IBM PC


         

Установить драйвер событий


На входе: AX = 000Ch;

CX = маска вызова: бит 0 - вызов при перемещении мыши; бит 1 - вызов при нажатии левой клавиши; бит 2 - вызов при отпускании левой клавиши; бит 3 - вызов при нажатии правой клавиши; бит 4 - вызов при отпускании правой клавиши; бит 5 - вызов при нажатии средней клавиши; бит 6 - вызов при отпускании средней клавиши; 7Fh - вызов при любом событии; 00h - отключение драйвера событий;

ES:DX = адрес (дальний) подключаемого драйвера событий.

На выходе: Регистры не используются.

Функция позволяет программе создать свой собственный драйвер (обработчик) событий, связанных с перемещением мыши и нажатием/отпусканием клавиш мыши.

Адрес подготовленной программы-драйвера передается при вызове функции в регистровой паре ES:DX. Драйвер должен быть оформлен в виде дальней процедуры, завершающейся командой дальнего возврата RETF. Когда драйвер получает управление, в регистрах процессора содержатся следующие значения:

AX Маска вызова, такая же, как и при вызове функции0Ch.

BX Состояние клавиш мыши:

бит 0 - левая клавиша; бит 1 - правая клавиша; бит 2 - средняя клавиша.

CX Горизонтальная координата курсора мыши.

DX Вертикальная координата курсора мыши.

SI Относительное перемещение мыши по горизонтали в миках.

DI Относительное перемещение мыши по вертикали в миках.

DS Сегмент данных драйвера мыши.

Так как регистр DS при вызове драйвера событий содержит сегмент данных драйвера мыши, ваш драйвер событий должен позаботиться о правильной установке этого регистра. Ваш драйвер событий не обязан сохранять и восстанавливать содержимое регистра DS и других регистров процессора.

Отметим, что если вам необходимо отключить драйвер, выполните повторный вызов функции 0Ch, записав в регистр CX нулевое значение. Если ваша программа, устанавливающая собственный драйвер событий, завершает свою работу и передает управление MS-DOS, предварительно она обязательно должна отключить драйвер событий.

Приведем функцию, которую мы разработали для подключения драйвера событий:



Содержание  Назад  Вперед