:: СОДЕРЖАНИЕ НОМЕРА
:: Газетные рубрики
:: АВТОРЫ
:: Поиск
:: Поддержка проекта
Webmoney:
|
:: №4 (17.03.2001) Просмотров: 5081
Автор: Сергей Гуляев / Macros. Рубрика: Читатель читателю. Номер: №4 (17.03.2001). Кемпстон крыскаДанный девайс, свободно подключаемый к любому Спектрум-совместимому компьютеру, позволяет подключить любую писишную мышь. Часто задают вопрос - учитывает ли этот интерфейс скорость передвижения мыши или же просто эмулируется Кемпстон джойстик? Отвечаю: это полноценный мышиный интерфейс, определяющий скорость, направление движения и нажатия на кнопки мыши. Опрос Кемпстон мыши осуществляется через программу-драйвер. В упрощенном варианте достаточно считать данные из портов и присвоить эти значения координатам, но тогда курсор будет летать по экрану с бешеной скоростью. Поэтому я рекомендую использовать следующий драйвер:MOUSE LD HL,(CRDS) LD BC,#FBDF IN A,(C) MOUSE11 LD D,0:LD (MOUSE11+1),A SUB D:CALL NZ,MOUSE30 LD B,#FF:IN A,(C) MOUSE12 LD D,0:LD (MOUSE12+1),A SUB D:CALL NZ,MOUSE40 LD (CRDS),HL:RET MOUSE30 JP M,MOUSE35 ADD A,H:LD H,A:RET NC LD H,#FF:RET MOUSE35 XOR #FF:INC A:LD D,A LD A,H:SUB D:LD H,A RET NC LD H,0:RET MOUSE40 JP M,MOUSE45 LD E,A:LD A,L:SUB E LD L,A:RET NC LD L,#00:RET MOUSE45 XOR #FF:INC A:ADD A,L LD L,A:CP 191:RET C LD L,191:RET CRDS DW #0000; координаты курсора Как видно из листинга, данные для расчета X-координаты берутся из порта #FBDF, а для Y-координаты - из #FFDF. Нажатие кнопок можно определить, прочитав содержимое порта #FADF. Состояние битов D0, D1 и D2 определяет нажатие кнопок. Кнопка считается нажатой, если соответствующий бит равен нулю. При этом D0 считается левой кнопкой, D1 - правой. D2 лучше не опрашивать, потому что большинство выпускаемых сейчас мышей - двухкнопочные. Определить наличие мыши поможет следующая программа: CONF LD B,250 A_C3 LD A,#FA:IN A,(#DF):XOR #FF JR NZ,A_C4:DJNZ A_C3 ;мышь есть RET A_C4 ;мыши нет RET Правда, на некоторых компьютерах, не имеющих интерфейса Кempston mouse, этот тест ошибается и неверно определяет наличие мыши. Почему это происходит? Все дело в том, что порты дешифрируются не по всем 16-ти адресным линиям, а всего лишь по нескольким. И на адрес с младшим битом #DF «отзывается» какой-нибудь другой порт. При установке контроллера такие конфликтные ситуации исключаются путем подачи на сигнал IORQGE компьютера логической единицы. На самой же плате компьютера порты дешифрируются как раз с использованием этого сигнала, и если он в лог. 1, выбора не происходит. Контроллер Кempston mouse выпускается фирмой «Скорпион» в несколько усовершенствованном варианте. Дополнительно на плате установлен контроллер IBM клавиатуры, а мышь дополнительно может эмулировать любой из существующих на Спектруме джойстиков (это можно использовать, например, в старых программах, в которых мышь не опрашивается). Впечатления от работы с этим контроллером самые лучшие, никаких проблем с подключением и с работой. И еще один ультра-плюс данного девайса - он может работать как с пассивной мышкой (которые сейчас не так-то просто найти), так и с активной. Клавиатура - XT или AT, определяется автоматически. В общем, Кempston mouse - штука хорошая. Подключив ее, через некоторое время вы будете удивленно вспоминать: «...и как же это я раньше без мыши работал?» Ссылки по теме:Кемпстон-мышь [№15]Дополнения [№16] |