Amiga mouse for ZX Spectrum
Мышкрысизации всех Российских полей...
ИСКУССТВА! Посвящается.
Данная статья написана по просьбе AlCo.
Однако когда-то давно я сам хотел заняться
этой проблемой серьезно. В итоге деловой
загруженности, эта проблема растянулась на
годы несерьезных проб, ошибок, удач и неу-
дач.
Speccy - не игрушка.
Еще в 90-е годы я хотел заняться доку-
ментацией своих бумаг на Speccy. Поскольку
рассматривал (как и всегда) его не только
как игрушку, но и как деловую систему, во-
зможности которой меня обычно устраивают.
Кроме всяких мелких записей и таблиц,кото-
рые я так и не научился нормально релизить
на Speccy (необходимо не просто хранение,
поиск и калькулятор, но и доступ из других
программ - программный, сторонний запрос
информации из базы данных, типа как в биб-
лиотеку,или оверлей),надо рисовать графику
- схемы, планы,виды. Конечно,это не дело с
6912-байтовым экраном, но краткость - сес-
тра таланта (не в пример моим статьям), и
можно многому научиться на Speccy, в том
числе эффективно ВРИСОВЫВАТЬ то, что ника-
ким ХРЯКОМ не влезет, в его ТРИПОЛЕЧЕРЕЗ-
ВОСЬМИСТРОЧНОБУТНУТЫЙ экран. Теперь для
меня это спортивный интерес, только време-
ни, как всегда, не хватает.
Тогда,в 90-е, я не занимался рисованием
из-за времени, начисто отсутствовавшего, и
психологического барьера при познавании
ассемблера Z80.
Проблемы рисования.
Фантазии хватает, и всё зависит от нас-
троения, иной раз очень охота чего-нибудь
изобразить. Но я не мог себе представить,
как рисовать в сектор-ограниченных цветах,
с кнопочным управлением, или на джойстике.
Именно поэтому моя первая официальная кар-
тинка была нарисована в X-colore, по счас-
тью сборки кодера. Ещё бы: режим точка -
цвет, в 8-цветовой палитре Speccy, НИКАКИХ
атрибутов, как я это сделал, сам сейчас не
пойму, вспоминая, как сидел с линейкой и
калькулятором и мерял - плату кодера и его
детали.Вот с того момента я официально ри-
сую схемы.Фактически технические черно-бе-
лые картинки,поэтому атрибуты мне не меша-
ют,и,собственно вид управления тоже - схе-
мы рисуются более менее стандартным спосо-
бом - прямыми линиями.
Вообще мне очень нравилось лазить в ART
STUDIO, рисовать примитивы,таскать окошки,
заливать... Но это было игрой,и серьезно я
ничего не рисовал. В то время у меня было
черно-белое изображение, хотя было и цвет-
ное SECAM, пока в попытке повышения качес-
тва я этот SECAM не разворотил. Но тогда
наличие/отсутствие цветов меня не сильно
смущало,иначе я свалил бы со Speccy. Рисо-
вать художественные картинки мешали, в ос-
новном,атрибуты. Но иногда хотелось просто
что-либо изобразить и, разумеется, на пути
к этому стоял интерфейс #FE. Вместо того
чтобы привычным движением руки провести
кривую на экране, много времени уходит на
интерполяцию - перекоординацию.
Проблемы выбора.
Часто бывая у Dave, я с завистью наблю-
дал, как легко он проводит линии или обво-
дит контуры мышой на Амиге. Я слышал про
разные мышиные схемы Speccy, но меня оста-
навливал принцип надежности.Мне нужен пре-
жде всего надежный комп,который всегда го-
тов к работе и который можно не выключать
подряд несколько дней.Именно поэтому,полу-
чив от Steve по наследству его Pentagon, я
обкондерил и пропаял его конкретно, и обе-
спечил его PC-шным блоком питания, сетевым
фильтром и бесперебойником. Я ненавижу эти
тонкие дорожки,и не хочу наворачивать свой
Speccy до глючного состояния, но,поддержи-
вая прогресс, вижу для себя один путь: са-
мостоятельное проектирование и вырезание
плат универсального,модульного Speccy. Ко-
нечно, это очень сложно,но надежно.
Я знаю про AY-мышь, она,конечно не жрет
шину данных, но у меня плата AY (с кемпс-
тон-джойстиком) стоит в панельке Z80, и
доступ к ней осложнен дисководом, а вешать
поверх схему мыши слишком неудобно и нена-
дежно.
Компромисс.
Стремление хоть как-то очеловечить ри-
сование привело к тому, что я пробовал ре-
ализовать световое перо.Вообще это реально
на 2 транзисторах (всего деталей 10 где-
то), с подстройкой чуствительности. Сигнал
- 2 бита - подавал через Kempston Joystick
( 1 бит от кнопки, расположенной на пере).
Конечно,программу писал сам,на ассемблере.
Это очень интересная задача, рекомендую по
настроению.Приемлемую программу я не напи-
сал, но это вполне реально. Перо не терпит
динамику, надо аккуратно, плавно рисовать.
Это прикольно и как-то необычно,и хотя пе-
ро - очень естественный метод - от руки, -
неудобно стоять перед экраном, а издалека
почти невозможно рисовать: слишком сложно.
Для кого-то это компромисс, но думаю, что
перо хорошо подходит для световых игр,хотя
я их на Speccy не видел. У кого появился
интерес к этой теме - рекомендую попробо-
вать заняться,может,что хорошее получится,
но делайте универсально по порту и битам.
Amiga.
Когда (когда это было...) у меня побы-
вала AMIGA 600, я не смог полностью оце-
нить мышиный рулез, т.к. мыши как таковой
просто не было. Пользовался джойстиком от
приставки SEGA. Но уже тогда я отметил для
себя интересную особенность: высокотехно-
логичный комп использует простейший метод
управления - все 4 бита с оптики передают-
ся в игровой порт, вместо битов крестика.
Просто, дешево и надежно (хорошие провода
служат очень долго).
Такой принцип объясним,и ему изначально
следовали создатели Амиги. Уже тогда я по-
думывал над таким же точно релизом мышки
на Speccy, через его стандартный игровой
порт #1F, т.е.кемпстон-джойстик.Плюсы были
явные: единый стандарт мышки Амиги, порта
Speccy и бит управления; никакой лишней
схемотехнической городьбы не нужно, разве
что вывести технологическое питание (оно у
меня уже было - 5В через резистор 2 Ома на
простой винтик в пластмассовом корпусе ко-
мпа:нужно питание - прижал гайкой провод,и
все).Надежность компа останется на прежнем
уровне,фактически нужна только мышь. Коне-
чно,недостатки явные - никакой программной
поддержки не было,все время процессора уй-
дет на опрос порта. Но в частном случае -
вполне нормально.Ведь известно,что больши-
нство отличных художественных картинок ри-
суется от руки - большую часть времени бу-
квально по точкам.
Страсть по логическим уровням.
Поскольку у моего Speccy был Kempston
Joystick, причем полный и с инверсией (бу-
фер К555АП3 ), это давало общий провод -
минус, т.е.активному состоянию битов порта
#1F (единицам), соответствовали логические
0 на входах - замыкание входов на минус.
Когда-то давно я считал логическую единицу
активным состоянием любого сигнала, психо-
логически это верно (по типу 0 - ничто, а
единица - уже что-то).Еще на 48 Speccy ме-
ня смущал общий плюс на кемпстон-джойсти-
ке: у остальных гнезд компа был общий ми-
нус. Был риск замыкания,я впаял 100 Ом для
защиты и не задумался над этим неудобным
казусом, а сейчас я поставил бы инвертор.
( К561ЛН2 - выгодней, чем транзисторы.)
Нельзя путать логику с физикой. Вся 5-
вольтовая логика построена на активном ну-
ле. Исходное состояние свободного входа -
1, т.к.ток через него отсутствует, а при 0
(замыкании входа на минус) значительный
входной ток АКТИВНО участвует в переключе-
нии логики. Поэтому выходной 0 гораздо си-
льнее 1. (Для серии К555 "0" нормируется
до 8 мА,а "1" - всего до 0.4 мА нагрузки).
В идеале все входные сигналы должны быть
активны по 0, т.е.в исходном состоянии по-
двешиваться к плюсу резисторами (оптималь-
но 5 - 10 кОм), а в активном - замыкаться
на минус.
Тогда минус будет общим проводом компа
для всех его сигналов. Минус используется
для экранирования от помех и идеален как
общий провод. К сожалению, логических ком-
мутаторов с инверсией очень мало,и не все-
гда можно достать К555АП3 - полный аналог
АП5, но с инверсией выходов. Если собирае-
тесь ставить себе Kempston Joystick, лучше
заказать К555АП3. У кого АП5, лучше заме-
ните на АП3. Впрочем, если использовать
порт #1F для мыши,достаточно предусмотреть
в программе маску XOR после ввода,т.к.мышь
выдает сигнал, а не замыкает на общий про-
вод порта.
Общий минус принят почти во всех цифро-
вых системах, приставках,компах, и в боль-
шинстве аналоговых устройств, хотя у тех,
где разнополярное питание,общий провод ми-
нусом не назовешь.
Серийный крысопарк.
В итоге, учитывая единый стандарт логи-
ческих уровней игрового порта у своего ко-
мпа и у Амиги, я решил завести себе мышку
амижного стандарта и написать простенький
редактор, который позволил бы рисовать от
руки, в режимах OR,XOR,AND.
Амижных мышей в продаже не было и быть
не могло, т.к. даже AMIGA для большинства
продавцов была только словом иностранного
языка. Dave сказал,что были в продаже мыш-
ки параллельного типа какой-то фирмы, но я
их так и не застал. Остальное разнообразие
грызунов было serial - т.е. последователь-
ного типа. Нет,ну надо ж таких тварей нап-
лодить! Каких только мутантов не увидишь.
И все (наверно) с четырьмя проводами (2 на
питание и 2 сигнальных).Есть и вовсе бесх-
востые монстры,у них даже цены - КУСАЮТСЯ.
Мышь я так и не купил - не люблю ломать
хорошее. Позднее у Dave оказалась ненужная
крыска, без одного светодиода, без хвоста,
вот ее-то, полудохлую, я и приютил.
Далее в статье описывается самая прос-
тая и дешевая ПЦ-шная крысь - с 3 кнопками
(с двумя, наверное, уже не выпускают).
Крысбургер.
Поскольку официальных крысиных данных у
меня нет,вся дальнейшая информация основа-
на только на личном опыте,очень небольшом.
В крысе есть 3 кнопки, оптика (шар и
оптический механизм, свето и фотодиоды),
микруха,в которую поступают сигналы от оп-
тики и кнопок, кварц,задающий частоту мик-
рухи,несколько резисторов (токоограничение
светодиодов, привязка логических уровней),
кондер от помех, пара стабилитронов (огра-
ничение, или стабилизация,напряжения пита-
ния и ограничение логического уровня).
Обычно 4 провода: два на питание и два
информационных.Микруха последовательно пе-
редает все крысиные сигналы в комп.Возмож-
но,один сигнальный провод двунаправленный,
возможно, микруха передает уже готовые ко-
ординаты крысы.
Позднее в моем распоряжении появилась
другая крыса, почти такая же. Она была по-
чти здорова, все детали на месте,я немного
исправил ее механизм, и пока она, целая,
ПЦ-шная,лежит без дела. Ломать ее не хочу.
До этого видел других крыс, тоже прос-
тых, и могу сделать следующий вывод (для
простых крыс): крысы бывают разные... чер-
ные,белые,красные... но всем одинаково хо-
чется... Ой!...О чем это я?...
Обычно внутри крысы общий - плюс, он
поступает на катоды фотодиодов и на кнопки
(иной вариант не видел).Оптика бывает двух
видов:с крупным и мелким шагом. Соответст-
венно, и свето-, фотодиоды двух видов, под
разный размер шага. Однако и разные свето-
диоды,и разные фотодиоды похожи. Они очень
низко впаиваются, иногда слегка наклонены.
Светодиоды - прямоугольнички с маленькой
сферой.Бывают розовые (видел у крысы с ме-
лким шагом) и белые (видел у крысы с круп-
ным шагом). Фотодиоды - черные прямоуголь-
ники (у крысы с крупным шагом немного кру-
пнее) с тремя ножками.Фактически - это па-
ра. Внутри два фотодиода,соединенные като-
дами.Средний вывод - общий катод (катоды),
а два крайних вывода - два анода.
У крыс с крупным шагом диски выглядят
как шестеренки - по окружности зубчики. У
крыс с мелким шагом диски без зубчиков, в
них мелкие щели вдоль окружности.
У мелкошаговых крыс оборот диска проис-
ходит за 12 с лишним мм пути,и на диске 44
прорези.У крупношаговых оборот диска за 10
мм пути и 36 зубцов на диске. Следователь-
но, скорость обоих видов крыс стандартна,
примерно 36 импульсов 1 фотодиода на 1 см
пути.Поэтому рекомендую мышь с крупным ша-
гом. Она более стабильна,т.к.размер люфтов
и неточностей сборки меньше соизмерим с
шагом,и ее проще налаживать. Но утверждать
это не могу, т.к.себе переделал мелкошаго-
вую мышь.
Немного об устройстве мыши. Классика.
ШАР - обладает свойством катиться в лю-
бом направлении и касается минимальной
площадью своей поверхности двух перпенди-
кулярных ОСЕЙ. Шар подпружинен и прижат к
ОСЯМ специальным упором, расположенным с
противоположной стороны от ОСЕЙ. Маленькая
площадь прикосновения позволяет при пере-
мещении мыши в любом направлении,с минима-
льным трением шара об ОСЬ, передавать ОСИ
вращение, пропорциональное скорости враще-
ния шара. Таким образом,одна ОСЬ вращается
с горизонтальной скоростью,другая с верти-
кальной.
ОСЬ - закреплена в особых упорах.На од-
ном краю ОСИ прикреплен ДИСК. ОСЬ передает
вращение ДИСКУ.
ДИСК - вращается на ОСИ. На окружности
ДИСКА равномерно расположены прорези или
зубчики. При движении мышки количество
прорезей, прокручивающихся напротив любого
края ДИСКА, пропорционально скорости пере-
мещения. Две ОСИ - два ДИСКА.
ОПТИКА - сканирует прорези ДИСКОВ. Сос-
тоит из двух ПАР - ПАРА на ДИСК.
ПАРА - состоит из простого ИК светодио-
да, который освещает край ДИСКА с одной
стороны, и ФОТОПАРЫ, принимающей сигнал с
другой стороны ДИСКА.
ФОТОПАРА - это два фотодиода в одном
корпусе.Они находятся на небольшом рассто-
янии друг от друга, так что,когда один ос-
вещен через открытую прорезь,другой где-то
наполовину закрыт. При вращении ДИСКА два
сигнала с фотодатчика идут со смещением во
времени, и это позволяет анализировать не
только скорость,но и направление перемеще-
ния, в зависимости от того,какой кого опе-
режает.
Но для этого сигналы именно смещены, и
перекрывают друг друга, а не просто инвер-
тируют.
ИК - инфракрасное излучение, используе-
мое в пультах ДУ, датчиках в мышах, видео-
магнитофонах, приставках, центрах, кассет-
ных плэйерах (для качественной передачи
звука от головки,в очень дорогих моделях),
оптических линиях связи. Увидеть невозмож-
но, и не пытайся, ИД.
ИД - ИДИОТ, сказал же: не пытайся, ну
как, увидел?
ИДИОТ - Идеальный Друг и Отличный Това-
рищ.
ДУ - не помню и не знаю, лежит какая-то
фигня, с пимпочками,че-то там на ней напи-
сано, и когда нажимаешь,что-то где-то про-
исходит.
Ограничение напряжения - стабилитрон на
5.6 В.
Ток светодиодов ограничивался резисто-
ром 3 кОм, и при питании 5 В и падении 1.1
В на каждом светодиоде составлял около 1
мА,что почти вдвое меньше,чем у моей мыши.
Переделываем крысу.
Доступным вам способом достаньте прос-
того последовательного крыса. Необходимо
(естественно) с исправной оптикой и меха-
никой.Попросту проверьте у знакомых,на PC.
Буквально порисуйте,в простом режиме любо-
го графического редактора. Если вас устра-
ивает динамика поведения грызуна - можете
приступать к трансформации его схемы. Отк-
ройте крыс (один шуруп,наверно). Осмотрите
схему. Убедитесь, что фотодатчики с общим
катодом - средний вывод подходит к плюсу
питания.Если не можете найти плюс - прове-
рьте тестером.Ток от положительного щупа -
с крайней (любой) ножки фотодатчика, к от-
рицательному щупу - у средней ножки фото-
датчика - должен значительно превосходить
обратное включение. Если не так - ищите
другую крысу. Все совпало - приступим.
1. Выпаяйте - выгрызайте (как удобней)
микруху, кварц,резюки и стабилитроны, если
не разбираетесь, есть ли там стабилизация.
Оставьте только один резистор - последова-
тельно включенный со светодиодами.
2. Впаяйте микруху К561ТЛ1. Расположив
ее удобным способом (совместив плюс или
минус питания, т.к. у старой микрухи ножек
больше, чем у этой).
3. Перережьте дорожки,идущие от кнопок к
микрухе,и идущие от фотодатчиков к выходам
новой микрухи. Согластно схеме, используя
провода, досоедините фотодиоды с входами
(номера входов значения не имеют: важно,
чтобы на каждый логический элемент прихо-
дил сигнал с одного фотодиода).В итоге до-
лжны получится 4 пары: фотодиод - логичес-
кий элемент. 4 свободных входа (по одному
от каждого элемента) соедините с плюсом -
14 ножкой.
4. Если кнопки с общим плюсом - перере-
жьте от них общую дорожку и соедините с
минусом.
5. Если не влом, соберите схему питания,
указаную на схеме;если влом и разбераетесь
в стабилизации - поставьте хотя бы стаби-
литрон; если вообще влом, поставьте кондер
на 10 мкФ параллельно питанию.
6. Возьмите изоляционную трубочку диаме-
тром 4-6 мм и 9 проводов желаемой длины.
Провода тонкие, многожильные, в изоляции,
конечно, диаметром меньше 1 мм. Длина до 3
метров (лично я такие буду ставить,чтоб от
телика с компом и до дивана...). Возьмите
более толстый и жесткий провод, например,
одножильный в лаковой изоляции,от трансфо-
рматора.Проденьте этот провод в изоляцион-
ную трубочку, зачистите и облудите его ко-
нец. Зачистите на 5-10 мм и облудите концы
остальных 9 проводов, соберите их в один
пучок и спаяйте вместе - аккуратно и проч-
но. Припаяйте этот пучок к жесткому прово-
ду. Теперь осторожно потяните за свободный
конец жесткого провода, он пройдет сквозь
изоляционную трубочку и протащит за собой
остальные 9 проводов. У вас получится жгут
- хвост к мышке. Если вы использовали про-
вод марки МГТФ (тонкий, белый,как бы розо-
ватый (просвечивается медь) и 4-мм полу-
прозрачную (чуть желтоватую) изоляционную
трубочку, то в надежности и гибкости може-
те не сомневаться (у меня клава за годы
работы с таким жгутом ни разу не обрыва-
лась, лишь котом обгрызалась один раз).
Можно использовать шнур от джойстика к
приставки SEGA - как раз 9 проводов, но он
ненадежный, может оборваться, жестковат и
не длинный.
Конечно, изготовление жгута - это клас-
сика, но вдруг вы делаете это впервые?..
7. Если есть возможность - достаньте ра-
зборный 9-контактный разъем для мышки,т.к.
в старом хвосте - разъеме проходят только
4 провода,и есть лишь 4 контакта.Иначе ис-
пользуйте любой подходящий соединитель-
штекер. Припаяйте штекер к хвосту, а хвост
к мышке, соблюдая сигналы и питание.
8. Подключите мышь к Speccy - кемпстон-
джойстику, но независимо от реализации
Кемпстон-порта подайте питание на мышь:
вывод G к минусу - общему проводу Speccy,
а вывод "+", соответственно, к +5В. (К те-
хнологическому +5В, через 2 Ом резистор от
настоящего питания +5В).
Напишите программу - фактически цикл,
которая берет по маске бит с Kempston-пор-
та и по его состоянию окрашивает бордюр, к
примеру,в черный/белый цвет.Определите ма-
ской 0-й бит и посмотрите по схеме соеди-
нения, какому логическому элементу он со-
ответствует,найдите его вход - фотодатчик.
Запустите программу - цикл. Бордюр будет
одного цвета, даже если вы будете вращать
диск этого фотодиода.Теперь замкните фото-
диод (вход л.э.) на минус. Бордюр должен
менять цвет при замыкании, иначе где-то у
вас обрыв - замыкание в сигналах. Если бо-
рдюр меняется, подберите резистор,замыкаю-
щий вход на землю.Номинал будет в пределах
2 - 510 кОм. Буквально перебирайте номина-
лы в этих пределах.Подпаяв очередной рези-
стор,покрутите диск (за ось,которой касае-
тся шарик,предварительно убрав шарик). На-
йдите номинал,при котором бордюр будет ми-
гать пропорционально скорости вращения ди-
ска, даже при очень быстром вращении (как
только сможете, при этом мигание бордюра
должно превратится в полосы на бордюре, не
меньше 4 полос (при мелком шаге - щелевом
диске,не меньше 8 полос). Если при быстром
вращении бордюр перестает мигать,окрашива-
ясь в один цвет, значит, номинал близок к
оптимальному и требует подбора в пределах
50%. Когда подберёте нужный резистор, при-
паяйте 3 таких же к остальным фотодиодам.
Подбор других, наверное, не потребуется,
впрочем, измените маску бит и просканируй-
те остальные фотодиоды, наверняка они ра-
ботают так же хорошо.
(Продолжение следует.)
Ред: На сегодняшний день Amiga Mouse под-
держивается только в одной программе - в
журнале Subliminal Extasy #3.
Схемы ищите в приложении (AmiMousS.C,
K_J__myP.C, MOUSplat.C).