Kempston Mouse — различия между версиями
Alone (обсуждение | вклад) |
Alone (обсуждение | вклад) |
||
(не показано 12 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Kempston | + | [[Изображение:Kempston_Mouse.jpg|thumb|right|Kempston Mouse]] |
+ | '''Kempston Mouse''' — манипулятор типа "мышь" и интерфейс для его подключения к [[ZX Spectrum]], разработанный компанией [[Kempston Micro Electronics]]. Манипулятор представляет собой механическую пассивную мышь с двумя кнопками. Интерфейс поставлялся в комплекте со специальной версией графического редактора [[Art Studio]] и стоил £49.95. | ||
− | В России Kempston | + | В России Kempston Mouse стал основным стандартом для подключения мыши. Любителями было разработано много вариантов контроллеров для самостоятельной сборки, готовые контроллеры также выпускались некоторыми отечественными производителями ZX Spectrum. |
== Программирование == | == Программирование == | ||
=== Порты === | === Порты === | ||
− | * # | + | * #FADF — порт кнопок и (по отечественному стандарту) колёсика. |
** D0: левая кнопка (0=нажата) | ** D0: левая кнопка (0=нажата) | ||
** D1: правая кнопка (0=нажата) | ** D1: правая кнопка (0=нажата) | ||
Строка 12: | Строка 13: | ||
** D3: зарезервировано под ещё одну кнопку (0=нажата) | ** D3: зарезервировано под ещё одну кнопку (0=нажата) | ||
** D4-D7: координата колёсика | ** D4-D7: координата колёсика | ||
− | * # | + | * #FBDF — X-координата (растёт слева направо) |
− | * # | + | * #FFDF — Y-координата (растёт снизу вверх) |
=== Спор о расположении кнопок === | === Спор о расположении кнопок === | ||
В журнале [[Crash]] #48 написано: | В журнале [[Crash]] #48 написано: | ||
− | "IN 64479 reads the horizontal position of the mouse, and IN 65503 gives the vertical position. The two buttons are read with IN 64223, which gives 252 if both are pressed. 253 for the right button only and 254 for the left button. You get 255 if neither button is pressed." | + | <blockquote>"IN 64479 reads the horizontal position of the mouse, and IN 65503 gives the vertical position. The two buttons are read with IN 64223, which gives 252 if both are pressed. 253 for the right button only and 254 for the left button. You get 255 if neither button is pressed."</blockquote> |
− | Это означает, что | + | Это означает, что бит D0 показывает состояние левой кнопки. |
− | Однако в [[Art Studio]] основной рабочей является кнопка, | + | Однако в [[Art Studio]] основной рабочей является кнопка, состояние которой находится в бите D1. |
− | + | Михаил Свечков (Крым) опубликовал схему мыши с драйвером в ZX-Ревю 1995 №1[http://zxpress.ru/book_articles.php?id=257]. Эта схема имела левую кнопку ("ВВОД") на D0. | |
− | + | В России схему Kempston Mouse воссоздали два человека, оба из [[Санкт-Петербург]]а — Максим Романов ([[RML]]/[[Create Soft]]) и [[Михаил Кондратьев]]/[[MI&DI]]. Первая схема имела левую кнопку на D0 и была опубликована в журнале [[ZX Format]] #5 (12 декабря 1996). Вторая схема имела левую кнопку на D1 и была опубликована в журнале [[Spectrofon]] #20 (12 октября 1996). Обе схемы поддержаны в журнале [[ZX Format]] с первого номера (ноябрь 1995). Контроллер мыши и клавиатуры фирмы [[Scorpion]] имел функцию обмена кнопок (комбинацией клавиш на клавиатуре). Такая же функция присутствует в ряде [[эмулятор]]ов. | |
− | 22 ноября 2001 года в эхоконференции [[Fido]] [[REAL.SPECCY]] был зафиксирован новый стандарт на Kempston mouse, включающий колесико и жёстко закрепляющий левую кнопку мыши на D0. Этот стандарт также зафиксирован в эхоконференции [[ZX.SPECTRUM]] 20 апреля 2003. | + | Некоторые программы (например, журнал ZX Format) определяют левую кнопку как первую нажатую на пригласительном окне. Однако это вызывает неудобство, если интерфейс подразумевает закрытие окон правой кнопкой мыши. Если нажата неверная кнопка, оболочку приходится перезагружать. |
+ | |||
+ | 22 ноября 2001 года в эхоконференции [[Fido]] [[REAL.SPECCY]] был зафиксирован новый стандарт на Kempston mouse, включающий колесико и жёстко закрепляющий левую кнопку мыши на D0. Этот стандарт также зафиксирован в эхоконференции [[ZX.SPECTRUM]] 20 апреля 2003 года. | ||
=== Определение наличия мыши === | === Определение наличия мыши === | ||
− | Мышь считается отсутствующей, если из всех 3 её портов считывается одинаковое значение (это соответствует [[Kempston джойстик]]у или отсутствию устройства). Она также считается отсутствующей, если шина данных компьютера загрязнена, так как иначе невозможно определить её отсутствие по первому методу. | + | Мышь считается отсутствующей, если из всех 3 её портов считывается одинаковое значение (это соответствует [[Kempston джойстик]]у или отсутствию устройства). Она также считается отсутствующей, если шина данных компьютера загрязнена (младший байт вектора прерываний не равен #FF), так как иначе невозможно определить её отсутствие по первому методу. |
В противном случае мышь присутствует. | В противном случае мышь присутствует. | ||
+ | |||
+ | Существует вероятность (1/65536), что мышь не определится при её наличии — если обе координаты равны #FF. Можно считать значения портов мыши, равные #FF,#FF,#FF, признаком её наличия (при этом в случае отсутствия мыши дальнейший её опрос не повлияет на работоспособность программы, если найденная мышь не становится единственным устройством управления). | ||
== Ссылки == | == Ссылки == | ||
− | *[http://zxdn.narod.ru/coding/op14kemp.txt Работа с Kempston mouse] | + | *[http://www.worldofspectrum.org/infoseekid.cgi?id=1000221 Страница устройства на WoS] |
− | *[http://zxdn.narod.ru/hardware.htm#inputdev Схемы контроллеров Kempston mouse] | + | *[http://zxdn.narod.ru/coding/op14kemp.txt Работа с Kempston mouse] — статья из [[Optron]] #14. Определение наличия мыши, опрос кнопок и получение координат. |
− | *[http://alonecoder. | + | *[http://zxdn.narod.ru/hardware.htm#inputdev Схемы контроллеров Kempston mouse] — статьи из разных электронных журналов. |
+ | *[http://alonecoder.nedopc.com/zx/books/CREATEMS.rar Мышь Create Soft] | ||
[[Категория:Устройства ввода]] | [[Категория:Устройства ввода]] |
Текущая версия на 09:58, 31 июля 2011
Kempston Mouse — манипулятор типа "мышь" и интерфейс для его подключения к ZX Spectrum, разработанный компанией Kempston Micro Electronics. Манипулятор представляет собой механическую пассивную мышь с двумя кнопками. Интерфейс поставлялся в комплекте со специальной версией графического редактора Art Studio и стоил £49.95.
В России Kempston Mouse стал основным стандартом для подключения мыши. Любителями было разработано много вариантов контроллеров для самостоятельной сборки, готовые контроллеры также выпускались некоторыми отечественными производителями ZX Spectrum.
Содержание
Программирование
Порты
- #FADF — порт кнопок и (по отечественному стандарту) колёсика.
- D0: левая кнопка (0=нажата)
- D1: правая кнопка (0=нажата)
- D2: средняя кнопка (0=нажата)
- D3: зарезервировано под ещё одну кнопку (0=нажата)
- D4-D7: координата колёсика
- #FBDF — X-координата (растёт слева направо)
- #FFDF — Y-координата (растёт снизу вверх)
Спор о расположении кнопок
В журнале Crash #48 написано:
"IN 64479 reads the horizontal position of the mouse, and IN 65503 gives the vertical position. The two buttons are read with IN 64223, which gives 252 if both are pressed. 253 for the right button only and 254 for the left button. You get 255 if neither button is pressed."
Это означает, что бит D0 показывает состояние левой кнопки.
Однако в Art Studio основной рабочей является кнопка, состояние которой находится в бите D1.
Михаил Свечков (Крым) опубликовал схему мыши с драйвером в ZX-Ревю 1995 №1[1]. Эта схема имела левую кнопку ("ВВОД") на D0.
В России схему Kempston Mouse воссоздали два человека, оба из Санкт-Петербурга — Максим Романов (RML/Create Soft) и Михаил Кондратьев/MI&DI. Первая схема имела левую кнопку на D0 и была опубликована в журнале ZX Format #5 (12 декабря 1996). Вторая схема имела левую кнопку на D1 и была опубликована в журнале Spectrofon #20 (12 октября 1996). Обе схемы поддержаны в журнале ZX Format с первого номера (ноябрь 1995). Контроллер мыши и клавиатуры фирмы Scorpion имел функцию обмена кнопок (комбинацией клавиш на клавиатуре). Такая же функция присутствует в ряде эмуляторов.
Некоторые программы (например, журнал ZX Format) определяют левую кнопку как первую нажатую на пригласительном окне. Однако это вызывает неудобство, если интерфейс подразумевает закрытие окон правой кнопкой мыши. Если нажата неверная кнопка, оболочку приходится перезагружать.
22 ноября 2001 года в эхоконференции Fido REAL.SPECCY был зафиксирован новый стандарт на Kempston mouse, включающий колесико и жёстко закрепляющий левую кнопку мыши на D0. Этот стандарт также зафиксирован в эхоконференции ZX.SPECTRUM 20 апреля 2003 года.
Определение наличия мыши
Мышь считается отсутствующей, если из всех 3 её портов считывается одинаковое значение (это соответствует Kempston джойстику или отсутствию устройства). Она также считается отсутствующей, если шина данных компьютера загрязнена (младший байт вектора прерываний не равен #FF), так как иначе невозможно определить её отсутствие по первому методу.
В противном случае мышь присутствует.
Существует вероятность (1/65536), что мышь не определится при её наличии — если обе координаты равны #FF. Можно считать значения портов мыши, равные #FF,#FF,#FF, признаком её наличия (при этом в случае отсутствия мыши дальнейший её опрос не повлияет на работоспособность программы, если найденная мышь не становится единственным устройством управления).
Ссылки
- Страница устройства на WoS
- Работа с Kempston mouse — статья из Optron #14. Определение наличия мыши, опрос кнопок и получение координат.
- Схемы контроллеров Kempston mouse — статьи из разных электронных журналов.
- Мышь Create Soft