Порт ввода/вывода общего назначения назначения.
В стандарте MSX определено два порта общего назначения, которые также могут использоваться для устройств ввода, таких как джойстик, мышь, трекбол, графический планшет, световое перо и т.п.
Программа для тестирования оборудования: MSX HIDtest
Вход/выход | вход 4 бита выход 1 бит, двунаправленный 2 бита (на порт) |
Уровень | TTL |
Разъём | Девятиконтактный разъём AMP (D-SUB) (штырьки со стороны корпуса) |
Порядок расположения контактов:
Сигнальные линии интерфейса:
№ | Сигнал | Направление |
---|---|---|
1 | FWD | вход |
2 | BACK | вход |
3 | LEFT | вход |
4 | RIGHT | вход |
5 | +5 В | |
6 | TRG1 | вход/выход |
7 | TRG2 | вход/выход |
8 | COM | выход |
9 | GND |
Должна быть обеспечена нагрузочная способность не менее 50мА.
Есть два типа джойстиков:
Большинство доступных джойстиков относятся к типу B, и предполагается, что программное обеспечение также поддерживает тип B. Поэтому при использовании джойстиков типа А необходимо соблюдать осторожность.
Примет простого оборудования для теста:
http://wiki.icomp.de/wiki/Competition_Pro_Retro
При вызове функции BIOS «PDL» компьютер посылает импульс на восьмой контакт порта ввода-вывода общего назначения. Этот импульс взводит одновибратор, который формирует ответный импульс переменной длины, возвращаясь в стабильное состояние через промежуток времени, зависящий от угла поворота переменного резистора, прикреплённого к ручке манипулятора. К каждому порту может быть подключено до шести манипуляторов включительно.
Манипулятор колесо не будет поддерживаться системным программным обеспечением на MSX turbo R или более поздней версии MSX.
Схема подключения цепей колеса:
В MSX BASIC для обработки используется функция PDL()
Мышь стандарта MSX подключается к интерфейсу ввода/вывода общего назначения, поэтому со стороны системного блока не требуется какой–либо ресурсоёмкой обработки и дополнительных схемных решений. Она может работать в двух режимах: режиме счётчика (это собственно и есть режим мыши) и в режиме эмуляции джойстика, поэтому может работать и с программным обеспечением, которое не поддерживает мышь.
Список сигнальных линий мыши:
№ контакта | Режим мыши (счётчик) | Режим джойстика |
---|---|---|
1 | Бит данных 0 | Вперёд |
2 | Бит данных 1 | Назад |
3 | Бит данных 2 | Влево |
4 | Бит данных 3 | Вправо |
5 | Питание +5В | — |
6 | Левая кнопка | Кнопка 1 |
7 | Правая кнопка | Кнопка 2 |
8 | STROB (строб) | GND (общий) |
9 | GND (общий) | — |
Как было сказано выше, режим счётчика — это «родной» режим мыши. Мышь фиксирует смещение по координатам X и Y и модифицирует значение восьмибитного внутреннего счетчика. При получении запроса от системы данные передаются и значение счётчика обнуляется. Последовательность передачи данных приведена на рисунке.
Данные передаются полубайтами, вначале координата X, потом Y по смене значения сигнала строба, как показано ниже.
Временная диаграмма передачи координат мыши:
Координаты мыши можно прочитать с помощью функции BIOS «GETPAD». Поскольку BIOS инициирует процедуру получения данных о координатах после запроса, в ответ на запрос передаются координаты, которые были получены при предыдущем вызове этой функции.
Если при включении MSX (то есть в момент подачи на мышь питания) нажата левая кнопка мыши, устанавливается режим джойстика. В этом режиме можно использовать мышь в качестве джойстика. На рисунке показан пример формирования сигнала, имитирующего результат наклона рукояти джойстика, на основе сигналов от двух оптических датчиков оптического энкодера одной из координат перемещения.
Временная диаграмма режима джойстика:
Контроллеры для подключения манипуляторов мышь к MSX: