Из газеты 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-м "Оптро-
не".