Spectrum-совместимые компьютеры «Байт»,«Байт-01» и прочие раритеты

5 / 4 991

Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum

Эта плата позволяет подключить к любому ZX-Spectrum AT-клавиатуру от PC и COM-мышку.

Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum

О контроллере я кратко упомянул в статье про Pentagon-128.

По имеющимся у меня данным продавался он в г.Минск. Вероятнее всего этот контроллер был скопирован с похожего контроллера для компьютера "Scorpion". Во всяком случае якобы прошивка ПЗУ от скорпионовского контроллера была взята за основу прошивки для этого контроллера (так мне говорили продавцы на радиорынке в то время, когда я у них покупал запасные ПЗУ для контроллера).

В 1997 году контроллер продавался по цене 15$, что по тем временам было недешево. Однако желание пользоваться "нормальной" клавиатурой вместо убитой механической и настоящей мышкой заставило меня купить этот контроллер.

Принцип действия контроллера несложен: на борту контроллер имеет свой микропроцессор 8031, который "мониторит" обращение Спектрума к портам клавиатуры или kempston mouse. Если таковые обращения обнаруживаются, контроллер отключает все обращения Спектрума к портам и выдаёт на шину данных нужные данные, прочитанные с AT-клавиатуры и COM-мышки. Ввиду невысокого быстродействия микропроцессора 8031 контроллер в режиме реального времени не успевает "кидать" данные на шину данных Спектрума и поэтому притормаживает Z-80 в Спектруме сигналом WAIT. В большинстве программ такое притормаживание почти не было заметно.

Для подключения контроллера к Спектруму требуется доработка компьютера. Необходимо обеспечить блокировку всех портов компьютера по сигналу с контроллера, а также необходимо ввести в схему сигнал WAIT для Z80. Лично я подключал этот контроллер в своё время к компьютерам "Байт" и "Pentagon". Если подключить контроллер по инструкции без ошибок, он заработает сразу же.

Контроллер имеет недостатки, которые сильно портят весь кайф работы с клавиатурой. Самый серьёзный недостаток - в наличии сигнала WAIT. При определённом способе опроса клавиатуры (или даже просто так) контроллер может выдать постоянный сигнал WAIT и затормозить Спектрум вообще. В этом случае поможет только выключение компьютера. В частности было замечено, что когда опрос клавиатуры идёт в виде непрерывных обращений к порту типа:

IN A,(#FE)
IN A,(#FE)
и т.п.

то контроллер "подвешивает" Спектрум. Но если обращения к портам клавиатуры разделить, например, так:

IN A,(#FE)
HALT
IN A,(#FE)

то подвисания прекращаются. Таким образом по моей просьбе была доработана программа Quick Commander.

В качестве радикального метода пришлось установить кнопку для аппаратного сброса контроллера в случае зависания.

Второй неприятный момент - неполная реализация kempston mouse. Контроллер не поддерживает среднюю кнопку мыши, из-за чего играть, к примеру, в НЛО-2, было невозможно. К тому же в контроллере кнопки мыши были перепутаны между собой.

На данный момент контроллер не представляет никакого интереса (кроме исторического) ввиду своей изначальной глючности, и для его замены существует множество гораздо более простых и более безглючных конструкций на PIC-контроллерах.

Скачать:
Документация по контроллеру AT-клавиатуры и COM-мыши для СпектрумаСхема, фотография, инструкция по подключению и прошивки всех ПЗУ контроллера