- •Методические указания и задания
- •Лабораторная работа №1
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе №1
- •Лабораторная работа №2
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе №2
- •Лабораторная работа №3
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе №3
- •Лабораторная работа №4
- •Тема: Приемы низкоуровневой работы с мышью.
- •Методические указания к лабораторной работе
- •Включение курсора мыши:
- •Выключение курсора мыши:
- •Установка драйвера событий:
- •Задание к лабораторной работе №4
- •Контрольные вопросы
- •Лабораторная работа №5
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе №5
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Задание к лабораторной работе №6
- •Лабораторная работа №7
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе №7
- •Лабораторная работа №8
- •Методические указания к лабораторной работе
- •Задание к лабораторной работе
- •Приложение а
- •Приложение б
- •Функции для работы с cd проигрывателем
- •Endp _StopPlay
- •Endp _DiskInfo
- •Лабораторная работа № 1
- •Лабораторная работа № 4
- •Приемы низкоуровневой работы с мышью………………………………25
Задание к лабораторной работе №3
Используя материалы данной и предыдущих лабораторных работ, написать на языке PostScript программу рисования круглой печати и бланка письма некоторого предприятия.
Лабораторная работа №4
Тема: Приемы низкоуровневой работы с мышью.
Цель работы: Изучение структуры мыши и операций низкоуровневой работы с ней.
Методические указания к лабораторной работе
Мышь – периферийное устройство, подключаемое к компьютеру, которое предоставляет возможность удобного перемещения в области экрана.
Эволюция мыши прошла 3 этапа:
- контактные;
фотодиодные;
оптические.
Первые 2 основаны на анализе частоты импульсов.
В первом случае электрический импульс генерируется при соединении контактов на диске и внешнего контакта прижатого к диску.
Во втором случае диск не содержит на себе контактов, но содержит вырезы по диаметру. Также в этом поколении светодиод и фотодиод светодиод испускает электромагнитный импульс, который при определенном положении диска проходит сквозь вырез и попадает на фотодиод. Фотодиод генерирует электромагнитный импульс, который далее рассматривается анализатором частоты.
В третьем поколении мыши отсутствует самый популярный элемент – шарик, а также валы, диски, светодиод, фотодиод контакты. Вместо шариков в эти мышки встраивается миниатюрная фотокамера, которая постоянно, с большой скоростью, снимает изображение под мышкой, относительно мощный процессор анализирует последние несколько кадров и на основании этих данных приходит к выводу о направлении перемещения мышки.
Операции работы с мышью:
сброс мыши;
включение курсора мыши;
выключение курсора мыши;
установление курсора мыши;
определение координат и состояния клавиш мыши;
определение области перемещения, видимости курсора мыши;
задание формы курсора мыши;
определение перемещения мыши в дюймах;
подключение пользовательских процедур;
Рассмотрим реализацию описанных операций на низкоуровневом языке программирования Ассемблер.
Обращение к подпрограмме обрабатывающей сигнал от мыши осуществляется с помощью прерывания int 33h.
Инициализация мыши:
Вход: AX = 0000h
Выход: AX = 0000h – если нет мыши или драйвера
AX = FFFFh – есть мышь
BX = 0, если число клавиш мыши ≠2
BX = 2, если число клавиш мыши = 2
BX = 3, если число клавиш мыши = 3
При начальной инициализации курсор в центре экрана, на нулевой странице и гасится. Видимость/перемещение всюду.
Включение курсора мыши:
Вход: AX = 0001h
При включении курсора счетчик видимости становиться равным 0, происходит сброс области невидимости.
Выключение курсора мыши:
Вход: AX = 0002h
При включении курсора счетчик видимости становиться равным -1, курсор гасится.
Определение положения курсора мыши:
Вход: AX = 0003h
Выход: BX = 76543210 (0 - левая клавиша нажата, 1 - правая, 2 - средняя)
СХ= координата Х в пикселях
DХ= координата Y в пикселях
Для текстового режима необходимо координаты сдвинуть на 3 разряда, т.е. разделить координаты на 8.
Установка курсора мыши:
Вход:
АХ = 0004h
СХ= координата Х в пикселях
DХ= координата Y в пикселях
Для текстового режима необходимо координаты умножить на 8.
Определение положение курсора при нажатии клавиши мыши:
Вход:
АХ = 0005h
ВХ = 0 – левая клавиша
1 – правая клавиша
2 – средняя клавиша
Выход:
АХ = состояние клавиши
ВХ = количество нажатий клавиши после последнего вызова функции.
СХ:DХ = координаты курсора мыши в момент последнего нажатия.
Определение положение курсора при отпускании клавиши мыши:
Вход:
АХ = 0006h
ВХ = 0 – левая клавиша
1 – правая клавиша
2 – средняя клавиша
Выход:
АХ = состояние клавиши
ВХ = количество отпускания клавиши после последнего вызова функции.
СХ:DХ = координаты курсора мыши в момент последнего отпускания.
Задание диапазона движения курсора по горизонтали:
Вход:
АХ = 0007h
СХ = минимальная координата по Х
DХ= максимальная координата по Х
Задание диапазона движения курсора по вертикали:
Вход:
АХ = 0008h
СХ = минимальная координата по Y
DХ= максимальная координата по Y
Задание формы курсора в графическом режиме:
Вход:
АХ = 0009h
BХ = координаты (0-15)
DХ = точки внутри графического изображения курсора, которые являются фактическим указанием положения курсора мыши на экране (0-15).
ES:DX = указатель на битовое изменение курсора мыши.
Задание формы курсора мыши в текстовом режиме:
Вход:
АХ = 000Ah
BХ = тип курсора
0 – программный
1 - аппаратный
СХ= маска экрана, если ВХ=0
СХ= начальная строка курсора мыши, если ВХ=1
DХ= маска курсора, если ВХ=0
DХ= конечная строка курсора мыши, если ВХ=1
Определение содержимого счетчиков перемещения:
Вход:
АХ = 000Вh
Выход:
Результат в “миках”(MicKey).
СХ = количество “миков” по горизонтали
DХ = количество “миков” по вертикали