(кнопка STOP подключает KB9/KB10 только к общему контакту первого набора кнопок - соответственно подводить этот сигнал имеет смысл только для первого и для последнего случая, что высвобождает ещё 2 выхода - O3 и O4)Shaos wrote:Итого для формирования изображения на индикаторе нам потребуется 12 регистров-защёлок 74LS574, в каждом из которых 5 младших битов идут на столбики пикселов светодиодного индикатора в соответствующем знакоместе (которых 12), оставляя по 3 старших бита на нужды клавиатуры - всего остаётся 36 битов. Клавиатурные линии сигнализации чего нажато могут пойти так:Shaos wrote:Выходит клаву тоже придётся имитировать вторым процом?
Судя по дизассемблированным исходникам ПЗУ в порт сканирования клавиатуры #102 могут подаваться следующие значения:
#2 (0010) - сканирование первого набора кнопок
#4 (0100) - сканирование второго набора кнопок
#8 (1000) - сканирование третьего набора кнопок
#E (1110) - сканирование всех кнопок (чтобы быстро определить нажато что-то или нет)
Скажем мы будем иметь 4 регистра, куда 8085 будет отображать нажатое на обычной клаве (по 2 бита на кнопку) и мы можем битами 1 и 2 из #102 выбирать какой из этих регистров будет подключаться ко входам чтения с клавиатуры (адрес #100) - каждый регистр будет подключаться к следующим сигналам с входного порта KB (#100):
бит 0 -> KB2 ( на схеме цепь 3 )
бит 1 -> KB3 ( на схеме цепь 4 )
бит 2 -> KB4 ( на схеме цепь 5 )
бит 3 -> KB5 ( на схеме цепь 6 )
бит 4 -> KB6 ( на схеме цепь 7 )
бит 5 -> KB7 ( на схеме цепь 8 )
бит 6 -> KB8 ( на схеме цепь 9 )
бит 7 -> KB9,KB10 (на схеме цепи 10 и 11, соединённые вместе - к ним подключена кнопка STOP)
Подключение клавы к 8085 наряду с дисплеем делает возможным для начала запустить это хозяйство и отладиться только на 8085, без подключения 1801ВМ2...
первый регистр - KB2,KB3,KB4 при сканировании первого ряда кнопок
второй регистр - KB5,KB6,KB7 при сканировании первого ряда кнопок
третий регистр - KB8,KB9/KB10 при сканировании первого ряда кнопок и ещё один выходной бит O1
четвёртый регистр - KB2,KB3,KB4 при сканировании второго ряда кнопок
пятый регистр - KB5,KB6,KB7 при сканировании второго ряда кнопок
шестой регистр - KB8,KB9/KB10 при сканировании второго ряда кнопок и ещё один выходной бит O2
седьмой регистр - KB2,KB3,KB4 при сканировании третьего ряда кнопок
восьмой регистр - KB5,KB6,KB7 при сканировании третьего ряда кнопок
девятый регистр - KB8,KB9/KB10 при сканировании третьего ряда кнопок и ещё один выходной бит O3
десятый регистр - KB2,KB3,KB4 при сканировании всех кнопок
одинадцатый регистр - KB5,KB6,KB7 при сканировании всех кнопок
двенадцатый регистр - KB8,KB9/KB10 при сканировании всех кнопок и ещё один выходной бит KB, который скажем можно задействовать для сигнализации того, что хотя бы что-то нажато, чтобы разбудить ВМ2, который спит между нажатиями на кнопки в режиме WRT
13й регистр 74LS574 может идти на сканирование горизонтальных рядов пикселов по вертикали, используя все 8 сигналов
14й регистр 74LS574 может идти на сканирование кнопок клавиатуры, организованных в матрицу 8x8 (либо сделать как в ZX-спектруме, когда сканирование идёт битами адресной шины при вычитке байта состояния клавиатуры?) - соответственно нам нужен ещё один вход через буфер, чтобы читать клавиатуру обратно...
ещё нам нужно как минимум 2 входных регистра, в которых будет защёлкиваться адрес и байт, который ВМ2 записал, переслав что-то в диапазон #80...#FF для отображения на экране, что будет вызывать прерывание 8085 (тут желательно предусмотреть регистры со сбросом, чтобы 8085 сбрасывал их сосотяние после вычитывания)
P.S. KB9/KB10 похоже просто на HALT уходят - ничего не надо мудрить...
В качестве основы взята схема nedoPC-85-A с добавлением на "лицо" 12 светодиодных матриц 5x7, 5 семисегментных светодиодных индикаторов (на самом деле 6, чтобы минусик слева показать при необходимости), несколько светодиодов для отображения режимов и самое главное - околокомпьютерная клавиатура из кнопочек Cherry MX (в которые можно навтыкать светодиодов для весёленькой подсветки):
P.S. У меня даже было желание назвать этот недокомпьютер Chereshnya-I (а двухплатный клон МК85 соответственно стал бы Chereshnya-II - с лёгким намёком на PDP-11), однако потом подумалось, что компания Cherry на меня обидится за беспардонное использование ихней торговой марки, так что пусть будет nedoPC-85-MK ( Микро Компьютер : )