Значит расшифровываем
По ресету 2 триггера слева внизу устанавливаются в 1 и в 0 соответственно. Второй из них выдаёт сигнал SO на NedoText (у которого он называется IFLAG), а первый - переключает между ПЗУ 8КБ и ОЗУ 32КБ по-видимому в первой половине адресного пространства (A15=0). Кроме того ОЗУ и ПЗУ подключаются где-то во-второй половине тоже (при A15=1). Для того, чтобы понять в каких частях второй половины адресного пространства, смотрим на второй сверху декодер находящийся слева и выбирающий чипселекты в зависимости от состояния A13 и A14:
Code: Select all
#8000...#9FFF - тут предполагалось подключение к первому декодеру, но потом я видимо решил увести его в область IO
#A000...#BFFF - тут подключается внешняя шина NI-15 (как на Альфе)
#C000...#DFFF - тут подключается 8-килобайтный кусочек ОЗУ
#E000...#FFFF - тут подключается копия ПЗУ 8КБ
По ребуту проц стартует с адреса #0000, где в начале расположено ПЗУ (4 копии 8КБ ПЗУ, заполняющие всю первую половину адресного пространства) - код в начале ПЗУ передаёт управление на копию ПЗУ в адресах #E000...#FFFF и устанавливает в первую половину адресного пространства ОЗУ, продолжая инициализацию уже оттуда.
Первый декодер переключает четвёрки портов (по состоянию A3 и A2):
Code: Select all
#00...#03 - первая ВВ55
#04...#07 - вторая ВВ55
#08...#0B - выбор триггеров для записи
#0C...#0F - выбор буфера, разрешающего чтение SI c NedoText (у которого он называется OFLAG) по биту D0 и ещё кое-чего
Наверное было бы логичнее запись SO совместить с чтением SI на одном том же адресе, оставив в порту #08 только выбор ПЗУ/ОЗУ в первой половине адресного пространства (это так - заметки на полях при чтении древнего манускрипта)
Далее по поводу "ещё кое-чего" в порту #0C - бит данных D1 это выход триггера управляющего выбором ПЗУ/ОЗУ - видимо предполагалось уметь читать в каком состоянии мы находимся (что логично). Далее бит данных D2 зачем-то идёт на A15, но по ходу линия перечёркнута т.к. читать это бессмысленно, а на D3 опционально подаётся сигнал RDY/BSY с ПЗУ (некоторые ПЗУ-хи разрешают низковольтовую запись, но медленно - наверное надо ещё добавить бит разрешающий-запрещающий такую запись путём гейтования /WR).
Где-то сверху висит регистр 74ALS574, который по-видимому должен идти в
NedoText как данные - разрешение записи туда непрорисовано - возможно надо воткнуть это в какой-то из портов (для этого надо дополнительную логику добавлять) либо в освободившееся адресное пространство #8000...#9FFF, но лучше конечно же в порты, а в #8000...#9FFF можно воткнуть матричную клавиатуру (как у варианта Micro), хотя тут ведь предполагалась РК-шная клава через ВВ55.
В правом-нижнем углу нарисованы какие-то мыслительные эксперименты, предназначение которых я в данный момент не понимаю (ну может внизу были наброски, приведшие меня через несколько лет к варианту Nano).
P.S. Вообще изначальная идея 2011 года состояла в следующем:
Shaos wrote:Я тут набросал продвинутую схему nedoPC-85-A v2 с ОЗУ 32К, двумя ВВ55 и непосредственно подключенным устройством
NedoText. Предполагается ещё большая совместимость с РК-86 (не только по монитору, но и по непосредственному доступу к клавиатуре и видеопамяти). Текстовая видеопамять будет периодически (например по прерыванию) мониториться и все отличия будут засылаться в NedoText.
т.е. если мы имитируем РК в смысле доступа к видеопамяти и клаве, то это значит клава должна сидеть в обычной памяти, а не в портах! А именно первый ВВ55 должен сидеть в #8000...#9FFF, а второй - в #A000...#C000 (там будет квазидиск - по идее можно завести бит в регистре управления, который будет выбирать ВВ55 или NI-15 туда торчит). Кроме того предполагалось, что буфер видеопамяти будет по тем же адресам, что и на РК: #76D0...#8000, и каким то образом по прерыванию программно (!) мы будем отслеживать что изменилось и засылать последовательности в NedoText. Теперь вот я думаю, что перебирать программно весь экран наверное будет медленно и надо аппаратно ловить запись в эту область памяти (0x76D0 = 0111 0110 1101 0000, что можно упростить до 0111 011X 1101 XXXX и выше вплоть до 0111 1111 1111 XXXX), запоминать адрес куда писали и вызывать прерывание (немаскируемое ибо INTE это звук), по которому программно разбирать куда что было записано для перепосылки в NedoText...