Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа N4.doc
Скачиваний:
5
Добавлен:
11.07.2019
Размер:
79.36 Кб
Скачать

Прерывание 33h, функция 0007h: задать горизонтальный диапазон перемещения курсора

Функция 0007h служит для ограничения пределов горизонтального перемещения курсора.

При вызове функции в регистры должна быть занесена следующая информация:

• в AX — код 0007h;

• в СХ — координата левой границы перемещения курсора (Хmin);

• в DX — координата правой границы перемещения курсора (Хmax). Выходных параметров функция не имеет.

Функция 0007h используется совместно с функцией для задания на экране ра­бочего окна, за пределы которого не должен выходить курсор мыши. В простей­шем случае функция применяется, чтобы предотвратить уход части изображения графического курсора за границу экрана.

Прерывание 33h, функция 0008h: задать вертикальный диапазон перемещения курсора

Функция 0008h служит для ограничения пределов вертикального перемещения

курсора.

При вызове функции в регистры должна быть занесена следующая информация:

• в AX — код 0008h;

• в СХ — координата верхней границы перемещения курсора (Ymin);

• в DX — координата нижней границы перемещения курсора (Ymax). Выходных параметров функция не имеет.

Как и функция 0007h, данная функция чаще всего применяется, чтобы пред­отвратить уход части изображения курсора за границу экрана.

Прерывание 33h, функция 000Ch: задать подпрограмму пользователя к обработчику прерывания мыши

Функция 000Ch позволяет пользователю установить собственный обработчик прерывания мыши (что и требуется в данной лабораторной работе).

При вызове функции в регистры должна быть занесена следующая информация:

• в АХ — код 000Ch;

• в СХ — маска условий вызова;

• в ES:DX — дальний указатель на подключаемую подпрограмму пользователя. Выходных параметров функция не имеет.

При вызове подпрограммы драйвер передает ей параметры через регистры. В ре­гистрах будут размещены следующие значения:

• в АХ — маска условий вызова;

• в ВХ — текущее состояние кнопок мыши (бит 0 — состояние левой кнопки, бит 1 — состояние правой кнопки, бит 2 — состояние средней кнопки);

• в СХ — горизонтальная координата курсора (X);

• в DX — вертикальная координата курсора (Y);

• в SI — горизонтальный отсчет (микки);

• в DI — вертикальный отсчет (микки);

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

Разряды маски условий вызова имеют следующее назначение (если разряд уста­новлен в 1, то выполняется соответствующее действие):

• бит 0 — вызывать подпрограмму пользователя в случае перемещения мыши;

• бит 1 — вызывать подпрограмму пользователя при нажатии левой кнопки;

• бит 2 — вызывать подпрограмму пользователя при отпускании левой кнопки;

• бит 3 — вызывать подпрограмму пользователя при нажатии правой кнопки;

• бит 4 — вызывать подпрограмму пользователя при отпускании правой кнопки;

• бит 5 — вызывать подпрограмму пользователя при нажатии средней кнопки;

• бит 6 — вызывать подпрограмму пользователя при отпускании средней кнопки;

• биты 7-15 — зарезервированы.

Прерывание 33h, функция 000Fh: изменить чувствительность мыши к перемещению

Функция 000Fh позволяет управлять чувствительностью мыши. При вызове функции в регистры должна быть занесена следующая информация:

• в АХ — код 000Fh;

• в СХ — число микки на 8 пикселей по горизонтали (по умолчанию 8);

• в DX — число микки на 8 пикселей по вертикали (по умолчанию 16).

Выходных параметров функция не имеет.

Прерывание 33h, функция 0013h: задать порог удвоения скорости

Функция 0013h позволяет изменить порог удвоения скорости перемещения мыши. Если скорость перемещения мыши превышает заданный порог, то скорость перемещения по экрану удваивается.

При вызове функции в регистры должна быть занесена следующая информация:

• в АХ — код 0013h;

• в DX — пороговая скорость в микки/с (по умолчанию равна 64 микки/с).

Выходных параметров функция не имеет.