Универсальная плата расширения

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

Идея

Заставляет задуматься
1
17%
Интересно, не более
0
No votes
Пустая трата времени
1
17%
Опоздала лет на 40
3
50%
Абсолютная чушь
1
17%
 
Total votes: 6
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Универсальная плата расширения

Post by Alikberov »

отсюда
Так как большинство серийных ПЭВМ имело набор разных карт расширения, хотелось бы иметь нечто подобное и под РАДИО-86РК.
В своё время различные источники (журналы Радио или Радиолюбитель) публиковали схемы с модификацией дешифрации адреса, внося в саму схему РЛК коррективы.

Данная тема - совсем о другом...

Из личных опытов (частично проверенных на своём КР-03 в железе) было замечено:
  1. К580ВВ55 при чтении 8003 возвращает FE или FF
  2. К580ВТ57 игнорирует запись в E009-E00F
  3. К580ВГ75 игнорирует запись в C000 без предварительной команды в C001
Первые два пункта я проверил более-менее (видимо в ВТ57 стоит нечто типа К155ИД6, который первые девять комбинаций использует; а ВВ55 нужно ещё проверить на импенданс при непредусмотренном чтении режима, можно ли сажать его ШД на "ноль" и откуда берётся "рандом" между FF и FE тогда?), а вот до записи в C000 всякого "мусора" - ещё руки не доходят (в Emu80 это просто игнорируется).

Что мы при этом получаем?
(В двоичном коде будет яснее):
  • 10XX_XXXX_XXXX_XX11 - 8003..BFFF на чтение до 4 Кб с шагом по 4 байта
  • 110X_XXXX_XXXX_XXX0 - C000..DFFE на запись до 4 Кб с шагом по 2 байта (в эмуляторе у меня там перезаписывается знакогенератор как "вариант#2")
  • 111X_XXXX_XXXX_1YYY - E009..FFFF на запись до 3.5 Кб (3584 байтов) с шагом по 16 байтов (в эмуляторе у меня там перезаписывается знакогенератор как "вариант#1")
То есть, не ломая нативную схему дешифрации того же (моего) КР-03, можно прямо в параллель ВВ55/ВТ57/ВГ75 включать свои дополнительные интерфейсы.
(Не нарушая нативной целостности архитектуры...)

Тем самым, теоретически, можно ли просто разработать под все РК-совместимые ПК универсальную плату расширения, подключаемую в параллель всей цельной (не перерезая ни одной дорожки!) схемы?
(Так как ПЗУ знакогенератора обычно на панельке, схема перезагружаемого знакогератора, вставляемая в панельку, не нарушает целостность!)

P.S.: Всё пока на уровне теории.
Но не прочь обсудить каждый из пунктов.
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Универсальная плата расширения

Post by Shaos »

Я уже где-то озвучивал своё мнение по поводу нахлобучек на классические РК - проблема в том, что их в рабочем состоянии практически не осталось :)
Например в 90-е это бы ещё имело бы смысл (см. тех же Акименко, Толкалина и т.д.), а в 20-е годы XXI века - уже вряд ли.
В наше время намного проще развести абсолютно новую плату, воткнув туда вообще любые хотелки, заказать её оч.дёшево у китайцев в количестве 5 штук и спокойно собирать компьютер своей мечты :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mondx
Doomed
Posts: 518
Joined: 10 Aug 2022 07:27
Location: Crimea

Re: Универсальная плата расширения

Post by Mondx »

Shaos wrote: В наше время намного проще развести абсолютно новую плату, воткнув туда вообще любые хотелки, заказать её оч.дёшево у китайцев в количестве 5 штук и спокойно собирать компьютер своей мечты :mrgreen:
А какой он у тебя "компьютер твоей мечты"? И в чём его прелесть?
В своё время склепал контроллер на z80 с видео на 8275. Ну так это бизнес был. И люди были довольны, и все. А тут? Заради чего? Мне понять сложно...
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Универсальная плата расширения

Post by Shaos »

Всё заради славы :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Универсальная плата расширения

Post by Alikberov »

Интересный вопрос появился.
Если в журнале РАДИО за 1993 год публиковалась схема КНГМД с ПЗУ на E000-EFFF, то возникает некий нюанс.
После "Сброса" тригерром ТМ2 блокируется ИД7 до прихода A15 и DBIN, принудительно активируя выборку ПЗУ Монитора. Само ПЗУ обычно дублируется четыре раза по диапазону E000-FFFF. Получается, процессором после Сброса считывается команда JMP F836 с адреса 0000 и именно JMP снимает блокировку ИД7.
(Иначе говоря, после Сброса ПЗУ с командой JMP 0036 также сработает в пределах ПЗУ, но ИД7 при этом не включается и всё РК'шное адресное пространство остаётся в "тени".)

Что получается?
  1. Заменив РФ2 на РФ4 на месте (без всяких КНГМД), Монитор будет стартовать с адреса E000 (формально: Логически - с 0000), тем самым, код нужно планировать со стартовой позиции по E000
  2. Если заменить РФ2 на своё или на РУ8/РУ10, при условии, что старшие 32 Кб мы не будем никак "трогать", процессор будет продолжать работать в "вакууме" (без ОЗУ, ПДП, ППА и т.д.) и все нижние 32 Кб можно искусственно "на макетке" создать свои (схема РК превратится в "отладочный комплекс")
Вот "Момент #2" - самый любопытный!
Так как без перерезания дорожек мы имеем отключенный ИД7 и полные 32 Кб под своё распоряжение.
Под "универсальную плату расширения" этот "режим" тоже надо учитывать!
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Универсальная плата расширения

Post by Shaos »

Для того, чтобы стартовать с E000, придётся "резать дорожки" :)
Ну либо сразу собирать себе RK86-SRAM32K :idea:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Универсальная плата расширения

Post by Alikberov »

Shaos wrote:Для того, чтобы стартовать с E000, придётся "резать дорожки" :)
При внимательном изучении схемы (хотя бы тут, где лишь узел ВГ75 сильно пострадал), хорошо видно, что выборка ПЗУ D17 вырабатывается элементом D4.3, который смешивает сигналы от D11 вывод 7 и D13.1* вывод 5.
*хотя на схеме указан D13.2, по нумерации выводов понятно, что это D13.1 (опечатка)

Тем самым, ПЗУ Монитора выбирается при нажатии на кнопку Сброса, когда сбрасывается и D13.1. А так как процессор стартует с адреса 0000, то "притянутый за уши" ПЗУ насильно подключён к процессору. Из ПЗУ читаются три байта C3 36 F8 и процессор их читает при счётчике команд PC из 0000, 0001 и 0002. И только когда команда прочитана целиком и в PC записывается адрес F836, процессор следующую команду читает из адреса F836, вырабатывая "1" на DBIN и A15, которые идут через элемент D10.1 и устанавливают триггер D13.1* в "1", что разрешает работу дешифратора D11 и "отпускает уши" ПЗУ D17.

А так как в оригинальной схеме ПЗУ D17 объёмом в 2 Кб подключено к ИД7 с параграфом в 8 Кб, оно дублируется в памяти четыре раза: E000-E7FF, E800-EFFF, F000-F7FF, F800-FFFF.
Тем самым, если перетранслировать код Монитора на посадку в любые эти четыре "зеркала", он нормально запустится и будет работать.

А вся суть в том, что если в ПЗУ прямо сейчас прошить подобный код:

Code: Select all

     .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
0000 C3 03 00 21 20 00 16 FF 7E B7 CA 03 00 FB 3C C2
0010 0E 00 7E F3 3C C2 14 00 15 C2 08 00 23 C3 06 00
0020 7B BD DE EF F7 89 C4 E2 F1 F8 96 CB E5 F2 F9 00
Вставить на место ПЗУ Монитора в РК-совместимый (максимально совместимый по схеме в указанных выше нюансах), то он будет работать с адреса 0000 совершенно нормально. При этом ИД7 будет продолжать быть "запертым".
User avatar
alexcp
Senior
Posts: 140
Joined: 11 Jun 2012 07:30

Re: Универсальная плата расширения

Post by alexcp »

Запустится, но нормально работать не будет, потому что после сброса есть доступ только к ПЗУ, независимо от старших битов адреса. К ОЗУ доступа нет, а с ним нет и стека. Ввода-вывода тоже никакого нет, так что настроить ПДП не удастся. Ну а дальше любое чтение по любому адресу в верхних 32к - например, чтение из регистров ВГ75, которую Монитор настраивает в самом начале - включает ИД7 и возвращает распределение адресов в норму.
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Универсальная плата расширения и отладки

Post by Alikberov »

alexcp wrote:Запустится, но нормально работать не будет, потому что после сброса есть доступ только к ПЗУ, независимо от старших битов адреса. К ОЗУ доступа нет, а с ним нет и стека. Ввода-вывода тоже никакого нет, так что настроить ПДП не удастся.
Тем самым, если вместо ПЗУ Монитора вставить свою платку и подтянуть к ней линии A11-A14, то теоретически можно подключить и схему адресного пространства ZX81, заимев 1 Кб ОЗУ (без графики, так как она требует A15)?

Верно ли я понимаю (о чём и сама эта тема), что собрав на макетке свою схему с ПЗУ, ОЗУ (К537РУ8) - можно сам КР-03 использовать как "испытательный стенд" (типа УМК) для экспериментов, "вертясь" в нижних 16 Кб (подключив ВГ75 по своей схеме, например)?
Естественно, не перерезав ни одной дорожки!
alexcp wrote:Ну а дальше любое чтение по любому адресу в верхних 32к - например, чтение из регистров ВГ75, которую Монитор настраивает в самом начале - включает ИД7 и возвращает распределение адресов в норму.
Вот именно, что ПДП и ВГ75 можно запустить только командами записи! :roll:
(Код F3 поможет выровнять цикл ПДП под экран.)

То есть, вставив в панельку под ПЗУ Монитора свою макетку с ОЗУ и ПЗУ, можно добиться и запуска отображения дисплея (не читая статуса ВГ75) и даже настроить ВВ55 и выводить на магнитофон звук с морганием индикатора "Рус/Lat"!
А это уже не так и мало... :wink:
Причём, вписывается в концепцию "универсальной платы расширения + отладки", позволяя экспериментировать с разработкой собственной архитектуры!
User avatar
alexcp
Senior
Posts: 140
Joined: 11 Jun 2012 07:30

Re: Универсальная плата расширения

Post by alexcp »

Спорить не буду, но соглашусь с Шаосом - чем плясать от существующей железки, проще сделать новую. Благо дефицитные 40 лет назад микросхемы теперь (все еще) весьма доступны. Правда, кто и зачем будет писать софт под все это великолепие?
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Универсальная плата расширения

Post by Shaos »

alexcp wrote:Правда, кто и зачем будет писать софт под все это великолепие?
Ну "кто девушку ужинает, тот её и танцует" :lol:
т.е. перефразируя классика - кто железо сделал, тот и софт пишет :)
Я например под свои расширения планирую сам пописать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Универсальная плата расширения

Post by Alikberov »

alexcp wrote:Спорить не буду, но соглашусь с Шаосом - чем плясать от существующей железки, проще сделать новую. Благо дефицитные 40 лет назад микросхемы теперь (все еще) весьма доступны. Правда, кто и зачем будет писать софт под все это великолепие?
В рамках разработки собственной архитектуры, нужна некая удобная готовая платформа. А окромя РАДИО-86РК я других и не знаю. :no:

Т.е. для меня РК будет работать как отладочный стенд.
УПС!
Вообще-то тема не про отладку, а про расширение!

А все эти "трюки с дешифрацией" - поиск оптимальных решений с минимумом переделок самого РК.
Вот, очень кстати, на мой взгляд, плата расширения с собственным ПЗУ и ОЗУ, которое может производить диагностические процедуры и прочие настройки.
Т.е. после первого Сброса, перед передачей управления Монитору, пока в ОЗУ - один лишь квантовый мусор, таким образом может запускаться ПЗУ с платы расширения и, типа, запрашивать пароль к сети WiFi, чтобы потом директивы I/O Монитора могли принимать/передавать файлы в сетевой ресурс...
Или эмулировать ROM-диск, чтобы по директиве R подгружать данный с сетевого ресурса (пусть даже с Raspberry Pi Zero).

Здесь необходимо будет сосредоточиться на разработке оболочек и прочего ПО под это дело.
(Пока я купил BlueTooth Receiver, чтобы избавиться от проблем с переходниками и статическим паразитным электричеством при передаче магнитофонных файлов.)
imsushka
Maniac
Posts: 237
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Универсальная плата расширения

Post by imsushka »

у РКшки всего 32кило памяти
прог занимающих этот объем нет
так что просмотреть прогу на предмет обращения к переферии не проблема (это не мегабайты как для виды/линукса дезассемблировать )

поэтому проще сделать все по новой чем пытаться что то изменить не обрезая проводники
и опять таки нафиг 8080 с 3мя питаниями, проще з80

ностальжи должно быть в меру
РК не синклер и даже не спец
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Универсальная плата расширения

Post by Alikberov »

imsushka wrote:у РКшки всего 32кило памяти
прог занимающих этот объем нет
так что просмотреть прогу на предмет обращения к переферии не проблема (это не мегабайты как для виды/линукса дезассемблировать )

поэтому проще сделать все по новой чем пытаться что то изменить не обрезая проводники
и опять таки нафиг 8080 с 3мя питаниями, проще з80

ностальжи должно быть в меру
РК не синклер и даже не спец
Именно потому тот же Синклер с инженерной точки зрения не так интересен (собрал, отладил, загрузил, запустил, поиграл и... забыл), как Микро-80 и Радио-86РК. :mrgreen:
(У меня в 90-е КР-03 постоянно ломался и приходилось пропаивать. Тогда как ZX-Spectrum с десятками кассет стоял в углу стола и играл музыку: Лучшего применения не нашлось... :roll: )
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Универсальная плата расширения

Post by Shaos »

imsushka wrote:у РКшки всего 32кило памяти
в моём варианте 128кило памяти :)
imsushka wrote:и опять таки нафиг 8080 с 3мя питаниями, проще з80
на такой частоте 580ВМ80А может и на одном питании выдюжить ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net