2.8.4. Р а б о т а с "м ы ш ь ю" и с в е т о в ы м п е р о м "М ы ш ь" Ниже мы объясним функции "мыши" видеопроцессора. Так как "мышь" исполь- зует цветовую шину видеопроцессора, то при работе с мышью н е л ь з я воспользоваться цветовой шиной видеопроцессора с любой другой целью! Напомним Вам, что для использования "мыши" следует установить бит 7 ре- гистра с номером 8 в 1, а бит 6 в 0. Номера битов 7 6 5 4 3 2 1 0 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 8 │ MS │ LP │ TP │ CB │ VR │ 0 │ SP │ BW │ └──▲──┴──▲──┴─────┴─────┴─────┴─────┴─────┴─────┘ │ └────── 0: световое перо о т к л ю ч е н о └──────────── 1: "мышь" в к л ю ч е н а Когда бит 7 регистра с номером 8 установлен в 1, то направление цвето- вой шины автоматически устанавливается на ввод. Можно узнать, нажата ли кнопка "мыши", читая регистр состояния с номером 1. Номера битов 7 6 5 4 3 2 1 0 Р е г и с т р ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ статуса номер 1 │ FL │ LPS │ Идентификация │ F11 │ SX8 │ └──▲──┴──▲──┴─────┴─────┴─────┴─────┴─────┴─────┘ │ └─ 1: луч развертки обнаружен; │ 0: луч развертки не обнаружен; └─────── 1: переключатель 2 нажат; 0: переключатель 2 не нажат; Относительные координаты движения "мыши" устанавливаются в двоичном до- полнительном коде в регистрах состояния с номерами 3 и 5. Номера битов 7 6 5 4 3 2 1 0 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 3 │ X7 │ X6 │ X5 │ X4 │ X3 │ X2 │ X1 │ X0 │ (регистр столбца) └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 5 │ Y7 │ Y6 │ Y5 │ Y4 │ Y3 │ Y2 │ Y1 │ Y0 │ (регистр строки) └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ Когда в регистре с номером 15 устанавливаются 3 или 5, то отсчет "мыши" не происходит. Когда читаются регистры состояния с номерами 3 и 5 или ког- да отсчет начинается, содержимое регистра с номером 15 должнo быть измене- но. С в е т о в о е п е р о Для работы со световым пером следует установить бит 7 регистра с номе- ром 8 в 0 и бит 6 в 1. Номера битов 7 6 5 4 3 2 1 0 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 8 │ MS │ LP │ TP │ CB │ VR │ 0 │ SP │ BW │ └──▲──┴──▲──┴─────┴─────┴─────┴─────┴─────┴─────┘ │ └────── 1: световое перо в к л ю ч е н о └──────────── 0: "мышь" о т к л ю ч е н а Для получения прерывания во время работы светового пера следует устано- вить бит 5 регистра с номером 0 в 1. Прерывание сбрасывается, если прочи- тан регистр состояния с номером 1. Номера битов 7 6 5 4 3 2 1 0 Р е г и с т р ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ статуса номер 1 │ FL │ LPS │ Идентификация │ F11 │ SX8 │ └──▲──┴──▲──┴─────┴─────┴─────┴─────┴─────┴─────┘ │ └─ 1: переключатель н а ж а т; │ 0: переключатель н е н а ж а т; └─────── 1: луч развертки о б н а р у ж е н; 0: луч развертки н е о б н а р у ж е н; Координаты, при которых световое перо обнаружило луч развертки, фикси- руются в регистрах состояния с номерами 3,4,5,6. Данные, установленные в этих регистрах, верны до тех пор, пока не считывается регистр состояния с номером 5. Номера битов 7 6 5 4 3 2 1 0 ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 3 │ X7 │ X6 │ X5 │ X4 │ X3 │ X2 │ X1 │ X0 │ (регистр столбца └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ (младшие биты)) ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 4 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ X8 │ (регистр столбца └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ (старшие биты)) ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 5 │ Y7 │ Y6 │ Y5 │ Y4 │ Y3 │ Y2 │ Y1 │ Y0 │ (регистр строки └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ (младшие биты)) ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ Р е г и с т р 6 │ 1 │ 1 │ 1 │ 1 │ 1 │ 1 │ Y9 │ Y8 │ (регистр строки └─────┴─────┴─────┴─────┴─────┴─────┴──▲──┴─────┘ (старшие биты)) │ Этот бит указывает номер поля при чтении: 0: 1-е поле; 1: 2-е поле Приведем блок-схему использования светового пера: ┌─────────────────┐ ┌──────────────────────────────────────────┐ │ Световое перо │────▶ В к л ю ч е н и е светового пера │ └─────────────────┘ │ (в регистре с номером 8: бит7=0, бит6=1) │ └────────────────────┬─────────────────────┘ ┌──────────────────────▶ │ Обнаружение вспышки │ ┌─────────────────▼───────────────────┐ │ │Чтение регистра состояния с номером 1│ │ └─────────────────┬───────────────────┘ │ нет (FL=0) ┌─────────▼─────────┐ └──────────────│Вспышка обнаружена?│ └─────────┬─────────┘ │ да (FL=1) ┌───────────────────────────────────────▼────────────────────────┐ │ Последовательное чтение регистров состояния с номерами 3,4,6,5 │ └───────────────────────────────────────┬────────────────────────┘ ┌────▼──────┐ │ К о н е ц │ └───────────┘