Sinclair-джойстики для Z-Controller или другого контроллера

Старый спектрумистский форум

Moderator: Shaos

SKV
Writer
Posts: 19
Joined: 06 May 2022 08:39

Sinclair-джойстики для Z-Controller или другого контроллера

Post by SKV »

При всей своей неоспоримой ценности Z-Controller (и другие контроллеры IBM-клавиатуры) обладает досадным недостатком - его разработчик Алексей Жабин не интегрировал в него входы Sinclair-джойстиков. При установке в слот такого контроллера сигналом IORQGE блокируется внутренний порт #FE вместе с интегрированными в него джойстиками. Насколько я вижу, в Спектрум-сообществе эта проблема до настоящего момента не поднималась.

В оригинальном Spectrum эти джойстики тоже не интегрированы во внутренний порт #FE, а вынесены во внешний порт #FE на плате ZX Interface 2. При этом оба порта #FE включаются одновременно в режиме конфликта, при котором ноль на дата-линиях любого из них передавливает единицу из второго порта. Благодарю Константина Айги за ссылку в подтверждение этого факта:
"The joystick and the top row keys may be used at the same time because it must still be possible to use the number keys when the interface 2 is attached. Naturally the IF2 bits override the ULA bits, because the IF2 is connected to the Z80 bus and the ULA has to make it through the bus boundary. On the other hand the IF2 drivers are weak enough so that the ULA can successfully pull down a bit on the Z80 data bus when a key is pressed. Maybe the joystick drivers in the MT62001 IC are open collectors, at least their pull up resistors are high enough."
https://k1.spdns.de/Vintage/Sinclair/82 ... h%20Specs/

В известной книге Инфоркома "Периферия своими руками" для Sinclair-джойстиков мимоходом предложена та же схема с конфликтом портов #FE, без осмысления того, что в общем случае Spectrum-клона электрически это недопустимо, а в случае ZX Interface 2 имела место конструктивная особенность схемы с открытыми коллекторами.

Я решил проблему конфликта внешнего и внутреннего портов #FE. Смотрите приложенную схему.
Нажатие любой кнопки на любом из двух Sinclair-джойстиков обнаруживается элементом D5.
Если при этом осуществляется чтение порта #F7FE (полуряд 1..5, А11=0) или порта #EFFE (полуряд 0..6, А12=0), то дешифратор D1 элементом D4.1 отключает внешний порт #FE на Z-Controller и элементом D3.2 разрешает выбор внутреннего порта #FE в обход Z-Controller.
Таким образом, происходит автоматическое переключение между кнопками 1..5, 6..0 на клавиатуре и на джойстиках. В момент нажатия кнопок на Sinclair-джойстиках внешняя клавиатура не работает, во все прочие моменты времени она работает.
Элемент D4 серии 1531 для минимизации задержки арбитрирования сигнала /IORQ.

**
Более наглядную схему этой доработки я привёл в другой своей статье, пункт 4.
You do not have the required permissions to view the files attached to this post.
Last edited by SKV on 04 Nov 2024 07:20, edited 2 times in total.
User avatar
Shaos
Admin
Posts: 24079
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sinclair-джойстики для Z-Controller или другого контролл

Post by Shaos »

Одобрил сообщение и автора - теперь можно писать без модерации :idea:
Я тут за главного - если что шлите мыло на me собака shaos точка net