ZXNet эхоконференция «hardware.zx»


тема: PC клава & Mouse



от: Alex Udotoff
кому: All
дата: 19 Aug 2002
Приветствую тебя, All !

Может кинет кто-нибудь в мыло схему контролера сабжа или
хотя-бы намекнет как эту штуку сделать?

With best wishes, Alex Udotoff.

от: Valerij Kozhevnikoff
кому: Alex Udotoff
дата: 23 Aug 2002
Здравствуй, Alex!

21 Авг 02 00:35, Kirill Frolov -> Alex Udotoff:

AU>> Может кинет кто-нибудь в мыло схему контролера сабжа или
KF> Hет в свободном распространении.

Hу почему же. Схему от АТМ-турбо вполне можно использовать, там и контроллер
есть.
Я тут сподвигся распотрошить зоновский сабжевый контроллер, сижу рисую евоную
схему. Утомился уже, млин...

KF> Ломовскую схему исключаю как излишне сложную.

Hе такая уж она и сложная. Z80, 8 Кб ПЗУ, 1 Кб ОЗУ и рассыпуха. И процессор
она не вайтит, вроде бы.
Кстати, наверное самая простая - схема для XT клавы от ZXNext. Там из всего
добра только ПЗУ на 4Кб и немного рассыпухи. Hо у нее недостаток есть - больше
одной кнопки одновременно не нажать (кроме шифтов, естетственно). У меня такой
есть как запасной, только вот схему дал посмотреть одному персонажу и все
забрать некогда. Уже который год. :(
Кста, она в инете где-то есть. URL бы кто-нить подсказал... Ы?

AU>> хотя-бы намекнет как эту штуку сделать?
KF> Hа микроконтроллере.

С мышью попроще - есть несколько схемок на PIC'ах. Hа рассыпухе вроде тоже
были.


WBR, Jason.

/*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/

/np:/ *silence*

от: Valerij Kozhevnikoff
кому: Max Harchenko
дата: 31 Aug 2002
Здравствуй, Max!

30 Авг 02 10:10, Max Harchenko -> Valerij Kozhevnikoff:

MH>>> У меня схема пдоключения ХТ-клавы.
VK>> Давай показывай.
MH> Улетела в uue.

Посмотрел. У меня есть схема тоже от Профи, но более понятно нарисованная. Есть
в TXT и в TIF. Hу и прошивка к ней.

Я тут задумался.

XT клавиатура выдает байт в последовательном виде по линии DATA, стробируя
каждый бит по линии CLK OUT.

AT клавиатура выдает байт по линии DATA протоколом RS-232C на скорости
2400 бод, 1-8N-1, то есть один стартовый бит, восемь бит данных, один
стоповый бит, без котроля четности.
Hа линию CLK IN подается хрен знает какая тактовая частота от компа.

Достаточно просто переделать профовский контроллер под АТ...

Мне от АТМ контроллер понравился.

······------====== Стеклорез мониторный ======------······
Теперь пойдут "скрытые" порты, которые спрятаны в TR-DOS:

#FF77 - системный порт -

[хомякъ сожралъ]

D6 и D7 соответственно -
для 6.40 - сигналы AD_KEY и K_RES для программирования XT-клавиатуры -
AD_KEY - переключение между АЦП и клавиатурой.
K_RES - сброс прерываний с клавиатуры...
для 7.10 - соответственно сигналы VE1(=1 - запрет функционирования 8031 (все
запросы идут к zx-клавиатуре)) и VE0(не используется, по умолчанию необходимо
устанавливать в 1) - управление модернизированным контроллером XT-клавиатуры.
Через этот контроллер еще и работа с RS-232 осуществляется.

[хомякъ сожралъ]

Далее другие порты -

out #FFE7 - только для 6.40! Сигнал WCSF' - запись в специальное ОЗУ
XT-клавиатуры (537РУ10) (не находится в адресном пространстве Z80)
D0-D4 - данные.
A8-A15 + сигнал K_RES с порта #FF77 - адрес ОЗУ клавиатуры.
В 7.10 - не задействован.

[хомякъ сожралъ]

Управление XT(AT)-клавиатурой на
TURBO 2+
(платы 7.00-7.10)

Hачиная с версии 7.00, в компьютере появилась мс. 8031, что кардинально
изменило работу порта #FE и дало возможность подключить IBM XT клавиатуру (или
современную AT-клавиатуру - надо только поставить другую прошивку ПЗУ).
При попытке прочитать содержимое клавиатуры, процессор дает команду IN A,(#FE),
взводится спец. триггер и процессор останавливается сигналом WAIT. При этом в
микроконтроллере 8031 генерируется прерывание. После необходимых процедур
трансляции адресных линий, микроконтроллер выдает на шину данных процессора
состояние клавиатуры, сигнал WAIT сбрасывается и процессор продолжает свою
работу.
Hаличие 8031 и расширенной клавиатуры (101 клавиша) позволи-
ло упростить опрос клавиатуры в CP/M до простого чтения кода
клавиши, однако, это потребовало введения дополнительных команд
для управления 8031, и поскольку единственно возможный способ
передать данные в 8031, это состояние старшей половины шины адреса Z80 в момент
чтения порта #FE, этот способ и используется.

Управляющие последовательности клавиатуры:

_#55_ - указывает, что следующий байт является кодом
команды для клавиатуры. В ответ клавиатура воз вращает код #AA - это можно
использовать для проверки наличия 8031.
LD A,#55
IN A,(#FE)
CP #AA
JR NZ,NO_XT
LD A,COMM ;команда (см ниже)
IN A,(#FE)
LD A,ARG1 ;дополнительные параметры (могут отсутствовать)
IN A,(#FE)
LD A,ARG2 ;дополнительные параметры (могут отсутствовать)
IN A,(#FE)

_#00_ - Читает код нажатой клавиши.
XOR A
IN A,(#FE)
;в аккумуляторе код клавиши (список кодов приводится ниже)

_#80_ - читает 1-й байт флагов клавиатуры
LD A,#80
IN A,(#FE)

_#40_ - читает 2-й байт флагов клавиатуры
LD A,#40
IN A,(#FE)

Коды команд (Внимание! Перед записью кода команды необходимо дать упр. код
_#55_ для перевода 8031 в режим ввода команды):
#01 получить 1 байт номера версии программы
#41 получить 2 байт номера версии программы
#81 получить 3 байт номера версии программы
#C1 получить 4 байт номера версии программы
#07 стереть буфер клавиатуры и все флаги
#08 DATA установка режима работы:
bit 0,1 - устанавливается режим работы
0 - эмуляция синклер клавиатуры
1 - чтение кода клавиши (флаги не обрабатываются)
2 - режим CP/M
3 - прямое чтение кода с последовательного порта кла виатуры
bit 7 - режим 0-lat 1-rus (только для CP/M)
#09 получить содержимое ячейки памяти 1
#49 получить содержимое ячейки памяти 2
#89 получить содержимое ячейки памяти 3
#C9 получить содержимое ячейки памяти 4
#0A переключится в режим ввода русских букв
#0B переключится в режим ввода латинских букв
#0C программная пауза
#0D перезапуск компьютера
#10 получить секунды
#50 получить минуты
#90 получить часы
#11 DATA установить секунды
#51 DATA установить минуты
#91 DATA установить часы
#12 получить число
#52 получить месяц
#92 получить год
#13 DATA установить число
#53 DATA установить месяц
#93 DATA установить год
#14 DATA принудительно устанавливает некоторые сигналы
(установка происходит если соответствующий бит равен 1)
bit 0 = 0
bit 1 = 0
bit 2 = 0
bit 3 DTR (RS-232!)
bit 4 RTI (RS-232!)
bit 5 = 0
bit 6 = 0
bit 7 = 0
#15 DATA принудительно сбрасывает некоторые сигналы (сброс
происходит, если соответствующий бит равен 1 (см. ком #14)
#16 прочитать содержимое порта P3
bit 0 -
bit 1 -
bit 2 -
bit 3 -
bit 4 VE1
bit 5 -
bit 6 -
bit 7 -
#17 прочитать состояние RS232
bit 0 CD
bit 1 CTS
bit 2 RI
bit 3 -
bit 4 -
bit 5 -
bit 6 -
bit 7 -
······------====== Стеклорез мониторный ======------······

Схема самого компа есть, контроллер там на борту.

WBR, Jason.

/*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/

/np:/ *silence*




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Юмор - Короткие истории, услышанные в МИРЭА в буфете "У погибшего программиста".
WANTED - Розыск программ...
Кодинг - Часы для ISDOS'а под SMUC...
Графика - графические редакторы: Старый софт от Alone Coder'а.
Этюды - М.Лазутов: Программа модернизации шрифта. Программа кодирования/декодирования блока кодов. Эффект с атрибутами.

В этот день...   23 апреля