русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программирование с использованием драйвера мыши.


Дата добавления: 2014-11-28; просмотров: 638; Нарушение авторских прав


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

1.Опрос положения и клавиш мыши при помощи функции 03h.

2.Написание драйвера событий мыши и установка его при помощи функции 0Сh.

Наиболее популярен второй способ. Драйвер собы­тий является особой функцией, срабатывающей при определенном событии мыши. В приведенном приме­ре драйвер записан как функция handle far proc.

Драйвер событий должен отвечать определенным требованиям которые нужно учитывать. Требования следующие:

1. Состояние регистров после срабатывания фун­кции-драйвера должно оставаться неизменным. Это означает что при входе в драйвер необходимо сохра­нить регистры в стеке ,а при выхода из драйвера восстанавливаться из стека (см. начало и конец при­мера).

2. При входе в драйвер мыши регистр DS указыва­ет на сегмент данных обработчика прерывания 33h.

Это означает что для правильного доступа к данным необходимо загрузить в DS сегмент данных про­граммы (не забудьте спасти старое значение в стеке).

Исходя из этих требований алгоритм работы драйвера заключается в следующем:

1) Спасти регистры в стеке.

2) Установить в DS сегмент данных программы.

3) Обработать событие.

4) Восстановить регистры.

5) Возврат (retf).

Пример выполнения работы.

Программа проверяет наличие мыши если она есть выводит символ b и устанавливает свой обработчик события, иначе выдается символ а. Обработчик собы­тия по нажатию левой кнопки мыши выдает слово "Привет" в позиции курсора мыши.

 

cseg segment ;0бъявление сегментов

assume cs:cseg,ds:cseg,es:cseg

handle proc far ; Процедура обработки события

;Сохранение регистров в стеке

push ds

push bx

push сx

push dx

push si

push di

pushax

; Переключение на сегмент данных программы



mov ax, cseg

mov ds,ax

вычисление позиции курсора мыши

shr CX,1; в cx - колонка *8, в dx - строка*8

shr CX,1; получим строку и колонку

shr CX,1; разделим cx и dx на 8 при помощи

shr DX,1 ; сдвига вправо на 3

shr DX,1

shr DX,1

;Позиционирование текстового курсора в позицию курсора мыши

mov dh, dl ; dh - строка

mov dl, cl ; dl - колонка

mov ah, 02h; ah - номер функции (02h)

int 10h

;Вывод слова Привет

mov сx,7

mov di,offset mystr

11: mov al,[di]

int 29h

inc di

loop 11



<== предыдущая лекция | следующая лекция ==>
Функция 18h | Мова програмування Turbo Pascal 7.0


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.076 сек.