Инструменты пользователя

Инструменты сайта


msx:general_purpose_port:general_purpose_port

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:general_purpose_port:general_purpose_port [2021-11-10 10:51]
GreyWolf [General Purpose port]
msx:general_purpose_port:general_purpose_port [2023-03-19 18:12] (текущий)
GreyWolf [Мышь]
Строка 1: Строка 1:
-====== ​General Purpose port ======+====== ​MSX — Порт общего назначения ​======
  
-Порт общего назначения.+Порт ​ввода/​вывода ​общего ​назначения ​назначения.
  
 В стандарте MSX определено два порта общего назначения,​ которые также могут использоваться для устройств ввода, таких как джойстик,​ мышь, трекбол,​ графический планшет,​ световое перо и т.п. В стандарте MSX определено два порта общего назначения,​ которые также могут использоваться для устройств ввода, таких как джойстик,​ мышь, трекбол,​ графический планшет,​ световое перо и т.п.
 +
 +Программа для тестирования оборудования:​ [[msx:​hidtest:​hidtest|]]
 +
 +|Вход/​выход|вход 4 бита \\ выход 1 бит, двунаправленный 2 бита (на порт)|
 +|Уровень|TTL|
 +|Разъём|Девятиконтактный разъём AMP (D-SUB) (штырьки со стороны корпуса)|
 +
 +Порядок расположения контактов:​
 +^  На разъёме \\ в MSX  ^  На \\ устройстве ​ ^
 +|  {{db9_joystick_male.png|}} \\ [[http://​wiki.icomp.de/​w/​images/​7/​73/​Db9_joystick_male.png|оригинал]] ​ |  {{db9_joystick_female.png|}} \\ [[http://​wiki.icomp.de/​w/​images/​4/​48/​Db9_joystick_female.png|оригинал]] ​ |
 +
 +Сигнальные линии интерфейса:​
 +|<10% 10% 80%>|
 +^  №  ^  Сигнал ​ ^  Направление ​ ^
 +|  1  |FWD|вход|
 +|  2  |BACK|вход|
 +|  3  |LEFT|вход|
 +|  4  |RIGHT|вход|
 +|  5  |+5 В||
 +|  6  |TRG1|вход/​выход|
 +|  7  |TRG2|вход/​выход|
 +|  8  |COM|выход|
 +|  9  |GND||
 +
 +Должна быть обеспечена нагрузочная способность не менее 50мА.
 +
 +{{anchor:​joystick}}
 +====== Джойстик ======
 +
 +Есть два типа джойстиков:​
 +  * Тип A — имеет одну кнопку или несколько кнопок,​ но сигнал не может быть распознан программно
 +  * Тип B — имеет две кнопки и можно программно определить,​ какая именно кнопка нажата
 +
 +Большинство доступных джойстиков относятся к типу B, и предполагается,​ что программное обеспечение также поддерживает тип B. Поэтому при использовании джойстиков типа А необходимо соблюдать осторожность.
 +
 +Схема подключения джойстика:​ \\
 +{{msx:​datapack:​files:​1_1_3_13.svg|}}
 +
 +Примет простого оборудования для теста:
 +\\ {{:​msx:​general_purpose_port:​psg_joystick_test-01.jpg?​350|}}
 +
 +----
 +
 +**[[msxorg>​wiki/​Joystick_control|Joystick control - MSX Wiki]]**
 +
 +[[https://​icomp.de/​shop-icomp/​en/​shop/​product/​competition-pro-retro.html|Competition PRO Retro]]
 +
 +http://​wiki.icomp.de/​wiki/​Competition_Pro_Retro
 +
 +http://​wiki.icomp.de/​wiki/​DB9-Joystick
 +
 +{{anchor:​paddle}}
 +====== Манипулятор колесо ======
 +FIXME
 +
 +При вызове функции BIOS «PDL» компьютер посылает импульс на восьмой контакт порта ввода-вывода общего назначения. Этот импульс взводит одновибратор,​ который формирует ответный импульс переменной длины, возвращаясь в стабильное состояние через промежуток времени,​ зависящий от угла поворота переменного резистора,​ прикреплённого к ручке манипулятора. К каждому порту может быть подключено до шести манипуляторов включительно.
 +
 +<WRAP center round important 60%>
 +Манипулятор колесо не будет поддерживаться системным программным обеспечением на MSX turbo R или более поздней версии MSX.
 +</​WRAP>​
 +
 +Временная диаграмма колеса:​ \\
 +{{msx:​datapack:​files:​1_1_3_14.svg|}}
 +
 +Схема подключения цепей колеса:​ \\
 +{{msx:​datapack:​files:​1_1_3_15.svg|}}
 +
 +
 +В [[msx:​basic:​|]] для обработки используется функция [[msx:​basic_dialogue_programming_language:​007#​pdl|PDL()]]
 +
 +
 +----
 +
 +[[msxorg>​wiki/​MSX_Paddle_Controller|MSX Paddle Controller]]
 +
 +===== Arkanoid Paddle =====
 +
 +  * [[msxorg>​wiki/​Arkanoid_Vaus_Paddle|Arkanoid Vaus Paddle - MSX Wiki]]
 +  * [[msxorg>​forum/​msx-talk/​hardware/​dirt-cheap-vaus-paddle-clone-for-msx|Dirt-cheap Vaus paddle clone for MSX | MSX Resource Center]]
 +    * [[https://​hackaday.io/​project/​170652-digiarka|Digi:​Arka | Hackaday.io]]
 +    * [[github>​Danjovic/​MSX/​tree/​master/​DigiArka|DigiArka]]
 +
 +{{anchor:​mouse}}
 +====== Мышь ======
 +
 +Мышь стандарта MSX подключается к интерфейсу ввода/​вывода общего назначения,​ поэтому со стороны системного блока не требуется какой–либо ресурсоёмкой обработки и дополнительных схемных решений. Она может работать в двух режимах:​ режиме счётчика (это собственно и есть режим мыши) и в режиме эмуляции джойстика,​ поэтому может работать и с программным обеспечением,​ которое не поддерживает мышь.
 +
 +Список сигнальных линий мыши:
 +^  № контакта ​ ^  Режим мыши (счётчик) ​ ^  Режим джойстика ​ ^
 +|1|Бит данных 0 |Вперёд|
 +|2|Бит данных 1 |Назад|
 +|3|Бит данных 2 |Влево|
 +|4|Бит данных 3 |Вправо|
 +|5|Питание +5В|  —  |
 +|6|Левая кнопка|Кнопка 1|
 +|7|Правая кнопка|Кнопка 2|
 +|8|STROB (строб)|GND (общий)|
 +|9|GND (общий)| ​ —  |
 +
 +==== Режим мыши (счётчик) ====
 +
 +Как было сказано выше, режим счётчика — это «родной» режим мыши. Мышь фиксирует смещение по координатам X и Y и модифицирует значение восьмибитного внутреннего счетчика. При получении запроса от системы данные передаются и значение счётчика обнуляется. Последовательность передачи данных приведена на рисунке.
 +
 +Формат передаваемых данных:​ \\
 +{{msx:​datapack:​files:​1_1_3_16.svg|}}
 +
 +Данные передаются полубайтами,​ вначале координата X, потом Y по смене значения сигнала строба,​ как показано ниже.
 +\\ Временная диаграмма передачи координат мыши:\\
 +{{msx:​datapack:​files:​1_1_3_17.svg|}}
 +
 +
 +Координаты мыши можно прочитать с помощью функции BIOS «GETPAD». Поскольку BIOS инициирует процедуру получения данных о координатах после запроса,​ в ответ на запрос передаются координаты,​ которые были получены при предыдущем вызове этой функции.
 +
 +==== Режим джойстика ====
 + 
 +Если при включении MSX (то есть в момент подачи на мышь питания) нажата левая кнопка мыши, устанавливается режим джойстика. В этом режиме можно использовать мышь в качестве джойстика.
 +На рисунке показан пример формирования сигнала,​ имитирующего результат наклона рукояти джойстика,​ на основе сигналов от двух оптических датчиков оптического энкодера одной из координат перемещения.
 +
 +Временная диаграмма режима джойстика:​ \\
 +{{msx:​datapack:​files:​1_1_3_18.svg|}}
 +
 +Контроллеры для подключения манипуляторов мышь к MSX:
 +  * [[msx:​mous4msx:​mous4msx|]]
 +  * [[msx:​msxhid1:​msxhid1|]]
  
 ====== Ссылки ====== ====== Ссылки ======
Строка 9: Строка 133:
 [[msxorg>​wiki/​General_Purpose_port|General Purpose port]] [[msxorg>​wiki/​General_Purpose_port|General Purpose port]]
  
-{{tag>​MSX ​Hardare}}+[[https://​github.com/​oboroc/​msx-books/​blob/​master/​msx2-fb-1993-ru.md#​13|Архитектура и устройства микрокомпьютеров стандарта MSX 2 — 13. Универсальный интерфейс ввода/​вывода]] 
 + 
 +[[github>hra1129/​msx_tools]] 
 + 
 +JoyNet 
 +  * [[http://​web.archive.org/​web/​20021204054320/​www.stack.nl/​~mth/​msx/​joynet/​|JoyNet: ​MSX joystick network]] 
 +  * **[[http://​map.tni.nl/​resources/​joynet/​|JoyNet]]** 
  
 +{{tag>​MSX Norm}}
msx/general_purpose_port/general_purpose_port.1636530676.txt.gz · Последние изменения: 2021-11-10 10:51 — GreyWolf