Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод_лаб_КИТ_КЭМ_new.doc
Скачиваний:
6
Добавлен:
06.02.2016
Размер:
640.51 Кб
Скачать

Задание к лабораторной работе №3

Используя материалы данной и предыдущих лабораторных работ, написать на языке PostScript программу рисования круглой печати и бланка письма некоторого предприятия.

  1. Лабораторная работа №4

  2. Тема: Приемы низкоуровневой работы с мышью.

Цель работы: Изучение структуры мыши и операций низкоуровневой работы с ней.

      1. Методические указания к лабораторной работе

Мышь – периферийное устройство, подключаемое к компьютеру, которое предоставляет возможность удобного перемещения в области экрана.

Эволюция мыши прошла 3 этапа:

- контактные;

  • фотодиодные;

  • оптические.

Первые 2 основаны на анализе частоты импульсов.

В первом случае электрический импульс генерируется при соединении контактов на диске и внешнего контакта прижатого к диску.

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

В третьем поколении мыши отсутствует самый популярный элемент – шарик, а также валы, диски, светодиод, фотодиод контакты. Вместо шариков в эти мышки встраивается миниатюрная фотокамера, которая постоянно, с большой скоростью, снимает изображение под мышкой, относительно мощный процессор анализирует последние несколько кадров и на основании этих данных приходит к выводу о направлении перемещения мышки.

Операции работы с мышью:

  • сброс мыши;

  • включение курсора мыши;

  • выключение курсора мыши;

  • установление курсора мыши;

  • определение координат и состояния клавиш мыши;

  • определение области перемещения, видимости курсора мыши;

  • задание формы курсора мыши;

  • определение перемещения мыши в дюймах;

  • подключение пользовательских процедур;

Рассмотрим реализацию описанных операций на низкоуровневом языке программирования Ассемблер.

Обращение к подпрограмме обрабатывающей сигнал от мыши осуществляется с помощью прерывания int 33h.

Инициализация мыши:

Вход: AX = 0000h

Выход: AX = 0000h – если нет мыши или драйвера

AX = FFFFh – есть мышь

BX = 0, если число клавиш мыши ≠2

BX = 2, если число клавиш мыши = 2

BX = 3, если число клавиш мыши = 3

При начальной инициализации курсор в центре экрана, на нулевой странице и гасится. Видимость/перемещение всюду.

  1. Включение курсора мыши:

Вход: AX = 0001h

При включении курсора счетчик видимости становиться равным 0, происходит сброс области невидимости.

  1. Выключение курсора мыши:

Вход: 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Х = количество “миков” по вертикали