Всем привет! Расскажу вам о том, как я собирал (и тут же ремонтировал) ретро-компьютер на базе Радио86-РК. Данной разработке через некоторое время исполняется четвёртый десяток! А процессору Intel 8080, на базе которого она сделана - все 50 лет. По ходу дам пояснения, как можно собрать аналогичное изделие, сколько оно стоит (по состоянию на 2023 год), с какими проблемами я столкнулся.
Приступим!
1. Печатная плата
В оригинале компьютер часто собирался на макетной плате. Для экономии времени была куплена готовая печатная плата. Её чертежи, схему, полезные файлы выложил как-то SergeyLLL: https://zx-pk.ru/threads/27583-radio-86rk-novaya-plata-umenshennaya.html
Можно заказать такую плату у китайцев, однако, в этом нет необходимости - по данным Gerber-файлам её заказали уже все, кому не лень. Поэтому я связался с человеком, который заказывал партию из 5 штук, и он отправил мне одну. С доставкой она обошлась мне в 1000 рублей. Узнать данную плату можно по характерной надписи "RADIO-86RK(RU5_32KB)". Что означает, что выполнена она по оригинальной схеме, но с небольшим изменением - чипы РУ3 заменены на РУ5, чтобы уменьшить вероятность выхода их из строя при пропадании напряжений питания.
2. Радиодетали
Часть компонентов мне досталась от знакомого компьютерщика, часть - пришлось докупить. Учитывая имеющиеся у меня детали, весь комплект недостающих микросхем обошёлся мне в 1200 рублей. Если же набирать с нуля - данные детали обойдутся примерно в 2500 рублей. На текущий момент (2023 год) эти детали не являются дефицитными, однако, найти все компоненты в одном месте может быть трудновато - например, я случайно заказал регистр "К561ИР12А" вместо "К589ИР12". Несмотря на, казалось бы, похожую маркировку, данные микросхемы абсолютно разные как по устройству, так и по назначению. Я уже, было, подумал что мне придется делать ещё один заказ - однако, случайно в закромах откопал какой-то польский его вариант. К тому же, как я позже убедился, его можно будет заменить на аналоги (ИР22 и т.п.), так как часть его логики не задействована.
Давайте установим детали. Для удешевления процесса, пришлось нарезать широкие панельки из имеющихся у меня узких. Впрочем, на работоспособность это не повлияло. Я устанавливал панельки для тех микросхем, в которых у меня были сомнения, и которые я не мог проверить отдельно. К слову, для проверки мелкой логики, я написал небольшой скетч: https://github.com/ritsudo/LogicICTest . Он помогает проверить простую логику (ЛЛ,ЛН) с помощью обычного Arduino - микросхема устанавливается на макетную плату, подключаются питание и 3 проводка, и нажимается "Reset". На терминале выводится таблица истинности, и пишется, исправна ли данная микросхема. Устройство очень простое, но с его помощью можно быстро проверить мелкую логику, после чего без опаски запаять её на плату, сэкономив панельку и улучшив тем самым качество соединений в схеме. А вот DIP-40 запаивать сразу в плату не рекомендуется.
После чего соберём схему полностью:
Также, надо не забыть поставить перемычки "RU5D" и "SV1". Первая предназначена для 14 разряда ОЗУ (устанавливается на D1), вторая - для банкования ПЗУ знакогенератора (разряд A10 - устанавливается в 0, либо можно записать два шрифта или кодировки, и менять их данной перемычкой).
3. Прошивка ПЗУ, подключение кабелей
Данные для ПЗУ (MON и FONT) прилагаются в архиве к схеме. Их можно прошить либо промышленным программатором, либо с помощью Arduino Uno/Mega, что я и сделал.
Первоначально у меня не было нужных микросхем ПЗУ (на 1 и 2 килобайта), поэтому пришлось пойти на хитрость, и урезать более ёмкие имеющиеся у меня микросхемы, занулив у них старшие разряды адреса. Выглядело это не совсем красиво, но работало.
По поводу питания - основная часть схемы питается от 5 Вольт. Но напряжение -5В и +12В нужно только для процессора (так как ОЗУ у нас РУ5), а напряжение +12В - ещё для логики микросхемы ГФ24 (тактовый генератор). Поэтому для тестов я просто соединил несколько блоков питания (зарядок), и включал по очереди - сначала -5В, затем 5В, затем 12В, а выключал в обратном порядке. В дальнейшем данное нагромождение можно заменить на любой подходящий блок.
Итак, заполненная плата:
4. Первое включение
К видеовыходу я подключил маленький черно-белый телевизор с AV-входом, который валяется у меня с незапамятных времён. Подключил видео, все питания, нажал "RESET", и..
На экране мелькающий мусор, надписи "Радио-86 РК" нет. Через несколько минут даже эти пиксели пропали. Остался просто мигающий курсор на сером фоне:
Эмпирически было выяснено следующее:
Если вытащить ОЗУ (хотя бы одну микросхему), курсор пропадал.
Если вытащить D20 (ВВ55), курсор начинал сдвигаться вправо после запуска.
Если вытащить D7 (ИР12), ничего в работе схемы не менялось.
Следовательно, какие-то процессы там происходили. Однако, предстояло выяснить, в чём же именно заключается неисправность.
5. Подготовка к ремонту. Пишем тестовое ПЗУ
Для дальнейшей наладки понадобилось изготовить несколько приспособлений и доработок. Начал я с того, что надо было изготовить ПЗУ с тестовой программой. Данная программа приводится на стр. 30 журнала "Радио" №7-1988г. Она должна инициализировать периферию, после чего заполнить экранную область символами. Это нужно для проверки работоспособности процессора, ОЗУ, контроллера ПДП и видеоадаптера.
Привожу исходный код данной программы:
;Программа для наладки РАДИО-86РК
VG75 EQU 0C000H
VT57 EQU 0E000H
VV55 EQU 8000H
ORG 0F800H
JMP BEGIN
;Инициализация КР580ВГ75
BEGIN: LXI H,VG75+1
MVI M,0
DCX H
MVI M,4DH
MVI M,1DH
MVI M,99H
MVI M,93H
; Инициализация КР580BT57
MVI A,80H
STA VT57+8
LXI H,VT57+4
MVI M,0D0H
MVI M,36H
INX H
MVI M,23H
MVI M,49H
; Старт ПДП
MVI A,0A4H
STA VT57+8
; Заполнение экранной области ОЗУ
LXI H,3600H
LABEL1: MOV A,L
ANI 7FH
MOV M,A
INX H
MOV A,H
CPI 40H
JNZ LABEL1
; Старт отображений
MVI A,27H
STA VG75+1
END
Данная программа записывает область от 3600 до 4000, что актуально для 16КБ версии "Радио", но и на 32КБ тоже заработает. Привожу, также, собранный Hex-файл данной программы, который можно прошить в ПЗУ начиная с нулевого адреса. Запрограммировать надо, в общем-то, 81 байт:
C3 03 F8 3E 8A 32 03 80 21 01 C0 36 00 2B 36 4D
36 1D 36 99 36 93 3E 80 32 08 E0 21 04 E0 36 D0
36 36 23 36 23 36 49 3E A4 32 08 E0 21 00 36 7D
E6 7F 77 23 7C FE 40 C2 2F F8 3E 27 32 01 C0 21
00 80 36 7F 7E 07 77 3A 01 80 3C C2 47 F8 C3 44
F8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Если у кого-то возникнет желание собрать программу самостоятельно, можно воспользоваться онлайн-ассемблером:
https://www.asm80.com/
На нём же можно получить дамп. А собранную программу проверить на онлайн-эмуляторе:
https://rk86.ru/
Вышеприведённая программа должна выдать нам вот такой результат на экран:
Но, как мы видим, после установки ПЗУ с данным кодом на нашу плату ничего подобного нет. Экран абсолютно пуст.
6. Подготовка к ремонту. Делаем доработки
Первая доработка - на ПЗУ с тестовой программой надо вторым этажом установить шинный формирователь и светодиоды. Это поможет нам просмотреть, что происходит на линиях данных.
Вторая доработка - необходимо сделать надстройку для генератора D1 (ГФ24), которая позволит запускать процессор в статическом режиме. Данная схема авторами названа "Шагатель", и есть в журнале "Радио" 07-1986.
После этого можно попытаться вновь запустить программу. Как можно видеть, при нажатии на кнопку "шагателя" на просмотрщике появляются различные значения.
Их можно сравнить с приведённой в журнале таблицей (стр. 31, №7-1988). Рекомендую пошагово отмечать правильность выполнения инструкций.
Впрочем, все инструкции с данного листа выполнились верно. Поэтому пришлось пройтись по тексту статьи о наладке. Проверяя правильность выполнения инструкций мультиметром на различных выводах, я дошёл до места, в котором обнаружилось расхождение.
7. Ремонт компьютера. Суть проблемы.
Данное место объяснено не очень подробно - недостающую информацию пришлось извлекать из документов на микросхемы ВТ57 и ВГ75.
Наша тестовая программа работает следующим образом:
Программируются контроллеры.
Экранная область ОЗУ заполняется символами.
В самом конце дается команда на старт ПДП "старт отображений".
В данном месте статьи предлагается сымитировать включение ПДП, подсоединив + питания на 17 ножку ВТ57, запустив тем самым ПДП и сымитировав поступивший запрос от видеоконтроллера.
Для того, чтобы разобраться, как это влияет на работу устройства, не лишним будет также ещё раз взглянуть на блок-схему компьютера:
Вкратце работу проблемного узла можно описать следующим образом:
Видеоконтроллер ВГ75 делает запрос на контроллер ПДП.
Контроллер ПДП приостанавливает процессор.
Контроллер ПДП извлекает данные из ОЗУ и устанавливает их на шину.
Видеоконтроллер принимает данные, когда ему подаётся сигнал WR (10 вывод).
Проблема возникает между 3 и 4 этапом. Сигнал WRB устанавливается двумя устройствами:
Процессором, при записи положения и вида курсора.
Контроллером ПДП при готовности экранного байта к записи в видеоконтроллер.
Для прохождения обоих сигналов установлен элемент "D4-1". Как мы могли видеть при запуске, курсор успешно устанавливается и сдвигается, следовательно, линия WR на ВГ75 исправна. ПДП работает, но нет сигнала на его выводе 1. Запись в видеоконтроллер не осуществляется - поэтому символ извлекается, но мы не видим его.
При этом, все условия для того, чтобы данный сигнал выходил, имеются. Я сделал предположение о том, что данная ножка просто могла выгореть в результате действия статического электричества, когда микросхема хранилась. Косвенно это подтверждалось тем, что если вытащить данную ножку, на работу схемы это не оказывало влияния. Пришлось дозаказать замену микросхеме ВТ57, после чего попробовать включить компьютер снова.
8. Результат трудов
Конечно, было интересно, правильно ли я определил неисправность. После 10 дней томительного ожидания, микросхема прибыла, и.. включаем
Отлично! Проблема устранена. Теперь можно попробовать убрать все надстройки, и запустить штатную программу "монитор".
Конечно, картинка немного выходит за рамку экрана, но это косит старый телевизор. Для того, чтобы ввести данные в компьютер, понадобилось ещё напаять резисторы 2К на выходные порты D20 (B и C). После чего стало можно ввести данные. Интересный факт - если вытащить данную микросхему, производится автоматический ввод символа "Яблочко", и сдвиг курсора вправо, чем я и воспользовался при первоначальной диагностике.
9. Вывод
Вот такое интересное приключение получилось по сборке и наладке данного компьютера. В дальнейшем я хочу провести над ним ещё несколько экспериментов. Возможно, эта статья послужит небольшим дополнением к оригинальной статье из журнала "Радио", так как в то время предложить иллюстрации было невозможно - до всего приходилось догадываться интуитивно. Впрочем, сейчас, при наличии эмулятора, многие идеи можно проверить, даже не собирая компьютер.
Писал Kekovsky специально для habr.com, 04.2023 г.
Комментарии (41)
unreal_undead2
13.04.2023 07:13+11Да, как же его умудрялись собрать по журналу "Радио" без интернета... У друга такой был в 80х (правда, отец работал системотехником, так что знания и доступ к программатору и прочему были).
checkpoint
13.04.2023 07:13+4Я в детстве с другом и его отцом собирал у них в гараже ПЭВМ Специалист по схемам и печаткам из журнала Моделист-Конструктор. Если бы его батя, который работал КИПовцем на заводе, не притащил домой осциллограф у нас не было бы никаких шансов.
unreal_undead2
13.04.2023 07:13Мы познакомились, когда железяку уже собрали. Помню, в мониторе вместе набивали какие то игрушки из того же "Радио" (один диктует, другой печатает), тоже развлечение.
DmitryZlobec
13.04.2023 07:13Какое же оно реально красивое! А ссылочкой на программатор на Arduino не поделитесь?
Kekovsky Автор
13.04.2023 07:13+4Вариант на сдвиговых регистрах 595 (их можно найти на старых платах - в панелях индикации)
https://github.com/beneater/eeprom-programmer
Но я лично использовал Arduino Mega (так как можно все линии навесить на порты, и работать напрямую). Правда, мой код для меги немного недоработан, поэтому выложить его пока не могу - я его заточил под пзу SST (с программной защитой от записи), так что это может сбить с толку. Надо будет переписать его под обычное, тогда смогу выложить.
Wesha
13.04.2023 07:13+1Какое же оно реально красивое!
— Вы старых компьютОров продаёте?
— Нет, просто показываю!
SeyranGV
13.04.2023 07:13+20Я учился в 10 классе, когда умер мой ZX Spectrum 48, и я принял решение собрать себе Радио 86-РК, ибо без компьютера я себе уже не представлял жизнь тогда. У меня не было знакомых схемотехников и доступа к программаторам, но было сильное желание, журналы Радио и рынок Сенной в 40 километрах в городе, где тусовался тогда оклокомпьютерный бомонд и электронщики с разных предприятий. Плату я перерисовал спирографом с журнала радио, а компонентную базу собирал где попало. Если короче, то сборка и наладка заняла у меня 4 месяца, и несметное количество поездок на рынок Сенной, но задача была выполнена, плата заработала!!! Пользовался я ей не долго, около двух недель, после чего мне родственник, на тот момент работающий на военном предприятии подарил списанный 386й с монитором (цветным!!!! если не изменяет память то Samsung 3NE), клавиатурой и мышью...
Эх ностальгия ....PuerteMuerte
13.04.2023 07:13+1Я учился в 10 классе, когда умер мой ZX Spectrum 48, и я принял решение собрать себе Радио 86-РК,
А почему не наоборот, оживить Спектрум? Ведь после Спектрума 48 этот Радио 86РК ничего, кроме боли и уныния, уже не вызывал бы.
iig
13.04.2023 07:13+5На такой плате собирать РК86 неспортивно ;) Г****ное качество комплектующих несколько восстанавливает картину ;)
DGN
13.04.2023 07:13+3И то верно. Я купил плату своего 86рк на путях железной дороги, у странных людей в длинных плащах. Примерно как кум Тыква, чипы собирал по кирпичику. Паял лудильником ватт на 60 наверное, выдергивая каждый раз из розетки чтоб не пожечь чипы наводками. Совершенно не удивительно, что он не заработал. Собственно, он ни у кого не работал сразу, хоть и ходили слухи, что такие люди есть. Отдал в наладку, там поменяли пару чипов и вернули. И так примерно раза 3-4, плата стала похожа на ЕС ЭВМ, все затянуто паутиной. В итоге приговор был такой, что плата брак. Дорожки имеют обрывы, все переходы с метализацией нестабильны. Сидел лудил дорожки, пропаивал проводки сквозь отверстия, пропаивал просто припоем под чипами. Забив уже на статику и наводки и он завелся. Далее авария блока питания и все погорело. Это наверное самый большой мой факап, вход в мир ПК. Сравнимо лишь с входом в радиолюбительство, там мне подарили катушку провода многожильного литцендрата, мотать контура. Ни один самосборный трансивер не заработал в итоге. Через много лет выяснил, что это была не медь, нечто очень высокоомное, почти нихром.
SeyranGV
13.04.2023 07:13С паяльником мне повезло чуть больше. Мне на день рождения отец привез из командировки импульсный паяльник ЭПСИ-65/220, причем мне досталась модификация с регулировкой температуры и отводом для заземления. Единственным его минусом было что он был тяжеловат для детской руки.
dlinyj
13.04.2023 07:13+1Спасибо за статью. Прям ностальгия взяла, хотя я не так уж и давно ковырялся с «Микрошей» и писал для него демку.
erley
13.04.2023 07:13+1Собирал в детстве Орион-128, такая конфетка! Спасибо за статью, классный опыт :)
dmitrykalashnikoff
13.04.2023 07:13Плюсую. Но собирал мой брат. А я писал программы в кодах к нему. "Было время".
EskakDolar
13.04.2023 07:13В конце 80-х брат собрал такой. Вечерами сидели набирали 16-ричный код программ из журнала. Один диктовал второй вводил. Занятие было очень нудное, но было немного весело когда в тексте попадались "EB"
swan03
13.04.2023 07:13Спасибо, поностальгировал. Собирал в 92-м ZX-Spectrum 48, потом 128 с дисководом на 1818ВГ93. Ох и капризная и дорогая микросхема была в отсутствии даташитов.
ktarasov
13.04.2023 07:13Помню в начале 90-х продавались готовые наборы для сборки Радио 86-РК и ZXSpectrum. Были времена...
oldprinters
13.04.2023 07:13+1Спасибо за статью. Даже запах той, моей, комнаты (из 80-х) вспомнил. Много часов было отдано этому компу.
Mizandari
13.04.2023 07:13Интересно, почему он назывался радио-86, но при этом был на процессоре 8080. Вот у меня в 1992 году был компьютер Турбо-86м, так он был на 8086 процессоре.
trikot
13.04.2023 07:13+1Собирал когда его опубликовали. Мне повезло, подарили печатную плату, правда без металлизации. Заработал практически сразу, был небольшой косяк, уже и не помню какой, быстро устранил. Доставать в те годы комплектацию, тот еще квест. Зачем собирать такой сейчас, даже не знаю. У меня по нему ностальгии нет. Но тогда это было ново и интересно.
Jury_78
Вроде у меня где то валяется оригинальный БП.
Soorin
Проще использовать КР580ВМ1
checkpoint
А где достать такой ?
unreal_undead2
Проблему с БП и ИМ1821ВМ85А решает, они вроде доступнее.
checkpoint
Это совсем другая вычислительная машина.
unreal_undead2
В чём отличие от 8080/КР580ВМ80А кроме питания?
checkpoint
https://ru.wikipedia.org/wiki/Intel_8085
Нет полной совместимости по командам.
Не поддерживает ряд недокументированных команд i8080 использование которых плотно вошло в обиход.
Нет совместимости по времени исполнения команд.
Нет совместимости по шине.
Фактически это другая ЭВМ, хоть и с достаточно высокой совместимостью с i8080. Но просто так взять и заменить один корпус на другой не выйдет. Даже если переработать шину, то все равно добрая половина ПО для Р-86РК работать не будет (если вообще что-то заработает), так как в то время писали с сильной привязкой к времени исполнения. ПО было не переносимым даже между клонами Р-86РК.
Я сейчас пытаюсь с детьми собрать 8-битник, по этому изучил вопрос достаточно глубоко. Первоначально была идея конечно же делать на КР580ВМ80А, но чем глубже я погружался в тему, тем больше я склонялся в сторону MOS 6502 (точнее его современному варианту - WDC 65C02).
unreal_undead2
Спасибо, считал что 8085 - просто более удобный (за счёт одного сигнала питания) вариант 8080.
PuerteMuerte
Корпус на корпус заменить не выйдет, но чуток подправить обвязку под 8085 — почему бы и нет?
Да ну. Это может быть справедливо для некоторых навороченных по тем временам игрушек, где из железа всё по-максимуму выжималось. В обычном софте такого не было. Собственно, как пример, возьмите старый добрый "Вектор", почти все его модификации были на ВМ80, но последняя его модель уже была на ВМ85, и с более высокой тактовой частотой. И векторовский софт на ней нормально работал без каких-либо переделок.
Soorin
Первая же ссылка по запросу "КР580ВМ1 цена" - 236руб.
checkpoint
Позвонил в интернет магазин по вашей ссылке - нет в наличии и не будет. Был один. Чел у аппарата даже не знал, что это раритетная микросхема.