Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Лабораторная работа № 6 Работа с драйвером мыши.

«Мышь» является одним из периферийных устройств ПЭВМ и в данный момент стала практи­чески его неотъемлемой частью. Для работы с «мышью» применяются загружаемые драйверы устройства «мышь». Все такие драйверы следуют еди­ному стандарту, определенному фирмой Microsoft для ее драйвера MOUSE.СОМ в документе «Mouse User's Guide». Точнее говоря, эти драйверы обязаны поддерживать определенный набор функций, но, по­мимо того, они могут иметь и дополнительные воз­можности. Мы рассмотрим только те функции кото­рые поддерживаются драйвером фирмы Microsoft.

Обмен с драйвером мыши осуществляется обраще­нием к Int 33h; параметры функций задаются в регистрах АХ, ВХ, СХ и DX. Прежде чем вызывать функции драйвера, прикладная программа должна проверить, что драйвер мыши установлен. Для этого она должна выполнить следующие действия:

— прочитать содержимое вектора Int 33h (адрес 0:0CCh); если он равен 0:0 или указывает на команду IRET, то драйвер не установлен;

— если содержимое вектора отлично от нуля, то вызвать функция 00h; если эта функция вернет АХ=-1, то драйвер установлен и мышь инициализирована.

Доступ к драйверу мыши посредством Int 33h может использоваться как ассемблерными програм­мами, так и программами, написанными на языках высокого уровня, например, на Бейсике, Си, Паскале, Фортране или Коболе.

Замечания.

Программа работающая с мышью , должна учиты­вать следующие требования:

1. Если программа перехватывает Int 10h, то она должна гарантировать, что функция 00h (сменить видеорежим) будет отработана драйвером мыши

2. Драйвер мыши гарантирует правильность рабо­ты с экраном, если Ваша программа осуществляет вывод на экран через Int 10h или через ДОС. Если же вывод производится прямой записью в видеопамять, то программа должна вызвать функцию 02h (скрыть курсор) перед выводом и функцию 01h (показать курсор) после вывода.

3. Вы можете работать с мышью двумя способами:

Явно вызывая Int 33h или задав свою программу обработки событий. В последнем случае драйвер будет вызывать Вашу подпрограмму всякий раз, когда произойдет заданное событие (см. функцию 0Ch).

Обращение к драйверу мыши из ассемблера

Для обращения к драйверу мыши из программы на языке ассемблера необходимо:

— загрузить в регистры АХ, ВХ, СХ и DX необходимые параметры;

— вызвать Int 33h;

  • проанализировать результаты, возвращенные в регистрах.

Следующий пример устанавливает курсор в пози­цию экрана (150, 100):

mov AX,4 ; номер функции

mov CX,150 : горизонтальная координата

mov DX,100 ; вертикальная координата

int 33h ; обращение к драйверу мыши.

Функции драйвера мыши.

Драйвер мыши поддерживает следующие функции:

Функция

Назначение

00h

Инициализация мыши

01h

Показать курсор

02h

Скрыть курсор

03h

Читать положение мыши и состояние кнопок

04h

Задать положение мыши

05h

Получить информацию о нажатии кнопки

06h

Получить информацию об отпускании кнопки

07h

Задать горизонтальный диапазон

08h

Задать вертикальный диапазон

09h

Определить графический курсор

0Ah

Определить текстовый курсор

0Bh

Получить перемещение мыши

0Ch

Задать программу обработки событий

0Dh

Включить эмуляцию светового пера

0Eh

Выключить эмуляцию светового пера

0Fh

Задать чувствительность мыши

10h

Запретить вывод курсора в области экрана

13h

Задать порог двойной скорости

15h

Получить размер буфера сохранения

16h

Сохранить состояние мыши

17h

Восстановить состояние мыши

18h

Задать альтернативную программу обработки событий

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]