Из газеты Optron #13, Львов, 13.06.98
+====----
¦
¦ Kempston mouse ¦
¦
----====+
(C) Рашпиль,
Сергей Филимонов
Сидел я как-то за компом и благополучно
юзал свою бесценную мышку - в "UFO 2" иг-
рался. Юзал я, юзал, и вдруг осознал, ка-
кой я нехороший человек (редиска) - сам
тут со всеми удобствами играюсь, а бедные
юзеры вынуждены клаву топтать, играя в то
же "UFO". И решил я тогда подробно напи-
сать в "Оптроне", как же можно заиметь се-
бе такой удобнейший девайс, как мышь.
Итак, начнем по порядку.
--== Выбор типа интерфейса ==--
Так уже исторически сложилось, что на
просторах СНГ получили распространение два
типа "мышатых" интерфейсов: AY-mouse и
Kemston mouse. Лично мне наиболее симпати-
чен второй из них. Почему? Да потому, что
AY-mouse при всей простоте подключения
имеет ряд недостатков: это и слишком ма-
ленькая разрядность слова координат и то,
что "лепится" она непосредственно к AY'ку.
Здесь уместно сказать, что во-первых, в
данном случае подвергается дополнительной
опасности столь дорогая микросхема, как
музыкальный сопроцессор, а во-вторых, как
известно, существует интерфeйс принтера,
который подключается к AY, следовательно,
обладатели сего девайса уже не смогут
подключить себе AY-мышку. А самое главное
- AY-mouse понимает слишком малое коли-
чество софта. Что же касается Kempston Mo-
use, то ее понимает не только отечествен-
ный, но и некоторый фирменный софт (в том
числе и "Art Studio" - рисовать мышкой
намного удобнее чем руками ;))))))). Ну
что же, тип интерфейса мы выбрали, пора и
сам манипулятор прикупить.
--== Выбор манипулятора ==--
Как говорится, "на вкус и цвет товарищей
нет". Поэтому берите то, что на вас смот-
рит. Дам только пару советов. Не покупайте
дешевое барахло за 7-9 гривен. Почему?
Во-первых, осмелюсь напомнить поговорку
"скупой платит дважды". Во-вторых, я по
своему опыту знаю, что такую мышку очень
сложно, а скорее всего невозможно "приру-
чить". И в-третьих: "Это же не эстетично!"
Хотя... см. выше. Наиболее приемлемый ва-
риант - мышка Genius. Мышка обязательно
должна иметь три кнопки: есть очень вред-
ные программы, которые любят юзать среднюю
кнопку. Купив мышку, обязательно проверьте
ее (на PC). Если что-то будет не так, то
мышку, купленную в приличной фирме, можно
обменять в течение недели (естественно,
если вы сохраните чек).
Если вас не очень беспокоит внешний вид
манипулятора и очень беспокоит состояние
вашего кошелька, то можете "отодрать" мышь
от какого-нибудь "Корвета" (это компьютер
такой :)) - это будет стоить вам копейки.
Так. Мышка есть. Можно отложить ее в
сторону и заняться интерфейсом.
--== Схема интерфейса ==--
Представленная ниже схема является моей
переработкой трех других схем интерфейса -
от каждой схемы были взяты достоинства и
отброшены недостатки. Кое-какие новшества
были введены по совету Тараса Николайчука.
Перед тем, как представлять схему, сде-
лаю одну оговорку: если вы сами не в сос-
тоянии собрать такую довольно сложную схе-
му (не умеете паять, лень, некогда и
т.п.), то можете немного подождать и через
неделю-две сможете купить совершенно новый
интерфейс кемпстон мышки у Сергея Филимо-
нова.
А вот собственно и схема:
DD1-DD4 - 561ИЕ11
DD5,DD6 - 555КП11
DD7 - 555ИД7
DD8 - 555ЛП8
DD9 - 561ТМ2
R - 1кОм
Дешифрация портов мышки собрана на ИД7 и
одном свободном элементе ЛП8, в данной
схеме выполняющем роль логического сложе-
ния.
Для подсчета координат используются ре-
версивные четырехразрядные счетчики, объе-
диненные попарно для увеличения разряднос-
ти до восьми для каждой координаты. Для
простоты рассмотрим участок схемы, отвеча-
ющий за подсчет координаты "X" (обработка
координаты "Y" осуществляется аналогично).
На тактовый вход C счетчиков DD1 и DD2 по-
ступают импульсы с оптопары мышки после
формирователя. На выводы 10 (направление
счета) необходимо подать либо логический
"0" при движении мышки в одну сторону, ли-
бо "1" при движении обратно. Идея Тараса
Николайчука была в том, чтобы поставить
элемент микросхемы 561ТМ2, который и будет
выдавать уровень "0" или "1" соответствен-
но (с выходов мышки Xa и Xb, как известно,
идут прямоугольные импульсы с опозданием в
четверть периода друг от друга). В преды-
дущих схемах мышки на счетчиках на 561ИЕ11
подобная идея мне (С.Ф.) не встреталась.
Импульсы, идущие на вход направления дви-
жения мышки не сосвсем удачно гасились
различнымы емкостями, что во-первых, влек-
ло за собой подергивание курсора при дви-
жении, а во-вторых, возникала инерцион-
ность при изменении направления движения
по соотвествующей координате.
Основное достоинство кемпсон мышки - это
независимость ее работы от процессора.
Счетчики координат инкрементируются (дек-
рементируются) при перемещении девайса, а
информация из них считывается при помощи
KП11 в любое удобное для программы время
(не обязательно по прерываниям, можно и
реже, главное, чтоб частота обращения к
мышке была больше частоты переполнения
счетчиков). Здесь, кстати, видно явное
преимущество перед AY-mouse. Поскольку
последняя - четырехразрядная, то счетчики
ее переполняются в 16 (2 в четвертой сте-
пени) раз чаще, следовательно, процессору
надо к AY-мышке в 16 раз чаще обращаться!
Информация о состоянии трех кнопок мышки
выдается процессору через элементы ЛП8 с
третьим состоянием.
--== Переделка мышки ==--
Если вы купили мышку за свои кровные, то
вам необходимо смириться с одним фактом -
мышке предстоит хирургическое вмеша-
тельство.
Открываем мышку, предварительно выныв
шарик, и что мы видим?.. Кучу не совсем
полезных для нас деталек. Первым делом вы-
кидываем все ненужное - процессор (не
удивляйтесь, есть процессоры и с 18-ю нож-
ками, а иногда и с 8-ю ;))) ), кварц, кон-
денсаторы, транзисторы. Диоды и резисторы
лучше не трогать. После такого вмеша-
тельства в мышке должны остаться: два дис-
ка с прорезями с прикрепленными к ним ро-
ликам, две оптопары, три "микрика" под
кнопки и несколько резисторов. Для начала
самое простое - кнопки. Для каждой кнопки
делаем следующую "доработку":
Дальше - больше, нам надо преобразовать
аналоговые сигналы, идущие с оптопар, в
сигналы прямоугольной формы, чтобы
их можно было обрабатывать счетчи-
ками. Правильнее всего было бы для этой
цели использовать триггер Шмитта, но есть
одно "НО": нам нужна микросхема 561ТЛ1
(ТТЛ-овские элементы в данном случае ис-
пользовать нежелательно), а ее в нашем ре-
гионе сложно найти, а больше КМОП-вских
триггеров Шмитта нет. Поэтому я делаю так:
В качестве инверторов используются
561ЛН2, резистор сопротивлением по-
рядка 47-51 кОм. В результате сигнал
приобретает прямоугольную форму, что,
собственно, и показано на рисунке. Вот и
все.
--== Заключение ==--
Если вы все сделали правильно, то могу
вас поздравить - вы стали обладателем са-
мой настоящей Кемпстон Мышки! Если же
вдруг возникли проблемы, то звоните: чем
смогу - помогу. Телефон во Львове:
67-60-45, спросить Владимира.
В следующий раз я расскажу, чем же явля-
ется мышка для программиста и как с нею
совладать. А пока для затравки дам только
порты интерфейса:
#FADF - кнопки, разряды 0-2;
#FBDF - координата X;
#FFDF - координата Y.
--== Post Scriptum ==--
Если в вашем компьютере есть интерфейс
кемпстон джойстика (наличие самого манипу-
лятора не обязательно), то могут возник-
нуть конфликты между мышкой и джойстиком.
Для их устранения я могу посоветовать за-
менить A5 в дешифрации джойстика на A6.
Для "Львовского варианта" это будет 9-я
нога D65 (ЛЕ1): аккуратно окусываем ножку
кусачками у самой платы, отгибаем и соеди-
няем с 36-й ножкой процессора. Как реали-
зовать подобную вещь в таком патологе, как
Miko-Best я уже рассказывал в 8-м "Оптро-
не".