- •Зміст роботи
- •Довідкові дані.
- •Управління режимами роботи вiдеоконтролера
- •Робота з мишкою
- •Int 33h ; регістрація адреси та умов виклику
- •Вимоги до процедури обробки подій:
- •Вимоги до основної програми.
- •Int 21h ; виклик функції dos
- •Завдання на лабораторну роботу.
- •Питання для перевірки:
- •5. Інформаційні матеріали:
Робота з мишкою
Зовнішній пристрій "мишка" не підтримується в BIOS. Для роботи з мишкою використовують спеціальні драйвери (наприклад, поширеним в MS-DOS є драйвер Mouse.com). Драйвер мишки містить процедуру обробки апаратних переривань від послідовного порту (послідовного пристрою) ПЕОМ, до якого мишка підключена. В такому контексті можна вважати, що драйвер мишки мітить процедуру обробки апаратних переривань від мишки (див. рис.)
Переривання від мишки виникають кожний раз, коли відбувається переміщення мишки або натискають чи відпускають її кнопки. Драйвер мишки вводить через послідовний пристрій приріст координат переміщення і коди натискання чи відтискання кнопок. Введені дані використовуються для переміщення курсору на екрані монітора і для виклику процедур користувача при виконанні тих чи інших попередньо заданих умов (коли відбудеться вибрана подія).
В свою чергу програми користувача можуть викликати процедури драйвера мишки для виконання необхідних функцій, використовуючи програмне переривання з вектором 33h. Серед них відзначимо наступні - ініціалізацію мишки (ax=0), заборонити відображення курсору (ax=2), показати курсор (ax=1) та встановити процедуру користувача для обробки подій від мишки (ax=0ch). Ряд функцій драйвера мишки можуть залежати від фірми-постачальника, тому для докладного ознайомлення з цими функціями необхідно придбати відповідну фірменну технічну документацію.
Перед початком роботи з мишкою необхідно провести її iнiцiалiзацiю:
xor ax, ax
int 33h
Якщо після виклику вміст регістра ax не змінився, то робота з мишкою з тих або інших причин неможлива. Найбільш ймовірною причиною може бути не встановлення драйвера мишки в операційній системі. Для встановлення драйвера мишки необхідно виконати програму Mouse.com. Неможливість роботи з мишкою при встановленому драйвері може бути зумовлена відсутністю контакту при підключенні мишки до системного блоку ПЕОМ або непрацездатністю мишки.
Відображення курсору забороняється, коли воно не потрібне, а також перед зміною сторінки вiдеопам’ятi. Функція 0ch потребує в якості параметрів повну логічну адресу процедури користувача, а також умови виклику цієї процедури драйвером мишки. Логічна адреса процедури задається в регістрах es:dx. Умови виклику задаються в регістрі cx наступним кодуванням:
біт 0 - будь-яке переміщення мишки
біт 1 - натискання лівої кнопки
біт 2 - відпускання лівої кнопки
біт 3 - натискання правої кнопки
біт 4 - відпускання правої кнопки
біт 5 - натискання середньої кнопки
біт 6 - відпускання середньої кнопки
Драйвер мишки викликає процедуру користувача, якщо виконується хоча б одна із заданих умов.
Приклад задання функції 0ch:
mov ax, 0ch ; встановити режим обробки подій
; від мишки
mov cx, 1001b ; вибрати в якості події будь-яке
; переміщення мишки (біт 0=1) або натискання правої кнопки (біт3=1)
push es ;зберегти вміст сегментного регістра
push cs
pop es ; вважаємо, що процедура користувача
; для обробки подій від мишки знаходиться
; в поточному сегменті кодів
lea dx, prmaus ; встановити зміщення процедури
; обробки подій від мишки в сегменті кодів
