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

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

Функция 0003h позволяет определить текущее состояние кнопок мыши и теку­щее положение курсора. При вызове функции в регистр АХ должен быть помещен код 0003h.

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

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

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

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

Если кнопка мыши нажата, значение соответствующего бита регистра ВХ будет установлено в 1, если отпущена — в 0.

Серьезный недостаток данной функции заключается в том, что невозможно опре­делить, была ли нажата (отпущена) кнопка мыши в текущей позиции курсора, или это произошло ранее в другом месте экрана. Поэтому функция 0003h при­меняется только в графических видеорежимах — в подпрограмме, отвечающей за перемещение курсора по экрану. Для получения более точной информации о на­жатиях и отпусканиях кнопок мыши используются функции 0005h и 0006h.

Прерывание 33h, функция 0004h: установить новое положение курсора

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

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

• в АХ — код 0004h;

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

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

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

Положение координаты задается в пикселях относительно левого верхнего угла экрана, причем предполагается, что ось Y направлена сверху вниз.

Прерывание 33h, функция 0005h: получить информацию о нажатиях кнопок мыши

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

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

• в АХ — код 0005h;

• в ВХ — номер кнопки, которую требуется опросить (0 — правая кнопка, 1 — левая кнопка, 2 — средняя кнопка).

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

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

• в ВХ — число нажатий на указанную кнопку с момента последнего вызова дан­ной функции для данной кнопки;

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

• в DX — вертикальная координата курсора (Y) в момент последнего нажатия указанной кнопки.

Прерывание 33h, функция 0006h: получить информацию об отпусканиях кнопок мыши

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

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

• в АХ — код 0006h;

• в ВХ — номер кнопки, которую требуется опросить (0 — правая кнопка, 1 — левая кнопка, 2 — средняя кнопка).

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

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

• в ВХ — число отпусканий указанной кнопки с момента последнего вызова дан­ной функции для данной кнопки;

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

• в DX — вертикальная координата курсора (Y) в момент последнего отпускания указанной кнопки.