Радио-86РК

«Радио-86РК» — советский любительский 8-разрядный персональный компьютер, предназначенный для сборки опытными радиолюбителями (отсюда буквы РК в названии — радиолюбительский компьютер). Описание компьютера впервые было опубликовано в цикле статей в журнале «Радио» № 4-6 за 1986 г. Авторы цикла — Д. Горшков, Г. Зеленко, Ю. Озеров, С. Попов.

Сборка 
Для сборки компьютера требовалось приобрести необходимые радиодетали, изготовить две печатные платы и смонтировать на них все компоненты. Кроме того, необходимо было с помощью ручного программатора записать прошивку в две микросхемы стираемого ПЗУ, а также изготовить блок питания, клавиатуру и корпус компьютера. Компьютер использовал в качестве монитора бытовой телевизор, подключаемый через видеовход или через радиотракт. Большинство отечественных телевизоров не имели видеовхода и требовали установки специального модуля или доработки схемы.

«Радио-86РК» не был первой конструкцией радиолюбительского компьютера. В начале 80-х годов журнал «Радио» уже публиковал описание самодельного компьютера на процессоре КР580ИК80. Это был «Микро-80», состоящий из нескольких модулей и насчитывавший до 120 микросхем. Компьютер был сложен как в сборке, так и в наладке. Из-за своей сложности, а также из-за практически полного отсутствия цифровых микросхем в свободной продаже, «Микро-80» собрали лишь немногие энтузиасты. «Радио-86РК» на уровне стандартных подпрограмм ПЗУ совместим с «Микро-80», благодаря чему системные программы адаптировались как со старой модели на новую, так и обратно.

Схема «Радио-86РК» в варианте с ОЗУ 16 К состояла всего из 29 микросхем, поэтому он был намного проще для повторения. Однако в розничной продаже микросхемы были дефицитным товаром и ограниченно доступны только в Москве и крупных городах СССР.
Наиболее дефицитной деталью была микросхема видеоконтроллера КР580ВГ75, которая в 1987 году выпускалась промышленностью ещё в ограниченном количестве. Известный радиолюбитель А. Долгий разработал заменявшую эту БИС дополнительную схему из 19 более доступных микросхем, которая через панельку БИС видеоконтроллера включалась в шину и по сути являлась текстовым адаптером со счётчиками и своей экранной памятью, используя из схемы РК только микропроцессорное ядро и видеовыход.

Но это не стало полноценным решением, т. к. такой вариант замены БИС ВГ75 позволял прогонять лишь корректные программы, т. е. программы, выводящие в экран только стандартными подпрограммами ПЗУ (а это лишь системные программы: Бейсик, текстовый редактор, ассемблер, отладчик, редактор дампа и Форт).

Поскольку в письмах, поступавших в редакцию журнала «Радио» после публикации цикла статей о «Радио-86РК», радиолюбители жаловались на трудность приобретения комплектующих, редакция журнала обратилась к промышленности с предложением начать выпуск наборов-радиоконструкторов. Вскоре промышленность наладила выпуск наборов для сборки Радио-86РК, называвшихся «Электроника КР-01»… «Электроника КР-04». Наборы содержали плату компьютера, клавиатуру, а также, в зависимости от модификации, блок питания и корпус. Стоимость набора составляла 395 рублей, в то время как промышленные аналоги стоили 500...650 рублей. К концу 1980-х годов производство корпусов, клавиатур и плат для «Радио-86РК», а также торговля комплектующими уже осуществлялись многочисленными кооперативами.

К концу 1980-х годов уже с десяток промышленных предприятий наладили производство готовых компьютеров Радио-86РК, хотя в ряде случаев выпускался не полный клон, а лишь частично совместимый более развитый вариант.

Технические характеристики 

 Процессор: КР580ВМ80А — советский клон i8080А с тактовой частотой 2,5 МГц. Схемное решение вынудило снизить её до тактовой частоты 1,77-2,00 МГц (разрешённые кварцы в схеме этого компьютера для тактирования 16-18 МГц, поделённые на 9 в генераторе).
Однако реальное быстродействие в базовом видеорежиме с 25 видимыми строками соответствует частоте CPU ~1,3 МГц.
Торможение вызывается тем, что для работы видеочасти контроллер ПДП по запросам ВГ75 периодически останавливает работу процессора захватом шины. Причём это торможение меняется в зависимости от установленного числа строк. В режиме с 30 строками быстродействие падает ещё на 20 %, а в псевдографическом режиме с 50 видимыми строками быстродействие падает до ~750 кГц эффективного такта.

Для ЭВМ с текстовым адаптером этого вполне достаточно, т. к. критична только скорость вывода на экран, а в текстовой машине это происходит почти мгновенно, в сотни раз быстрее, чем в графической. Соответственно, уменьшив константы торможения, можно играть в большинство РК-игр при эффективном такте CPU всего в 250 кГц. В текстовом компьютере ZX80 быстродействие почти вдвое ниже, чем в Радио-86РК, но это не помешало для него создать несколько тысяч увлекательных и вполне динамичных игр.

Для экономии в РК используется общий генератор для процессора и видеоконтроллера. Так как для соблюдения ТВ-стандарта видеоконтроллер требует строго определённую частоту, тактовая частота процессора была занижена на 30 % от максимально допустимой.

Впоследствии в журнале «Радио» было опубликовано описание простой доработки, что позволяет произвольно увеличивать частоту кварца и максимально поднять такт процессора. Таким способом реальное быстродействие можно увеличить с 1,3 МГц до 2,2 МГц. Но в случае подключения контроллера дисковода такт приходится сознательно снижать, так как на повышенной частоте ОЗУ, применённые в РК без буферов, уже не тянут увеличенную нагрузку шины.
 ОЗУ: в оригинальном варианте — 16 кБ на микросхемах DRAM К565РУ3. Также могли применяться К581РУ4, К565РУ6 или отбраковка, «половинки» и «четвертинки» 565РУ5. Конструкция позволяла нарастить память до 32 кБ, напаяв дополнительный банк микросхем 565РУ3 «вторым этажом» (что часто делается в любительских ЭВМ), или заменив 565 РУ3 на РУ5. Соответственно, было опубликовано две версии ROM-BIOS — для объёма памяти 16 и 32 кБ.
 ПЗУ: 2 кБ — стираемое ультрафиолетом ПЗУ К573РФ2 или К573РФ5, в котором размещён ROM-BIOS, часто называемый «Монитор», так как, кроме подпрограмм ввода/вывода, в нём содержится RAM-монитор, выполняющий функции простой ОС. Код ПЗУ F800 предполагал его расширение до 4 кБ (установкой второй РФ2 на F000), — в случае отсутствия директивы монитор делал JMP F000. Предполагалось, что сам пользователь установит на F000 пользовательское ПЗУ. В литературе встречалось только упоминание, что во втором ПЗУ может размещаться драйвер принтера (но т. к. принтеров в 1980-е годы практически ни у кого не было, то этот вопрос не поднимался).
 Видеоподсистема: текстовый режим на 64 символа в строке. Число символов в строке изменить нельзя, но число видимых текстовых строк можно программно менять от 16 до 51, соответственно изменяя высоту знакоместа так, чтобы число отображаемых линий растра оставалось в пределах 250-260. «Контроллер алфавитно-цифрового терминала» КР580ВГ75 работает совместно с «контроллером прямого доступа в память» КР580ВТ57. ВТ57 каждые 640 мкс считывает из экранного ОЗУ 78 байтов текущей строки (пачками по 8 байт) и загружает их в ВГ75, для каждой пачки останавливая процессор на 18 мкс. Периодическое считывание экранного ОЗУ попутно регенерирует динамическую память. Курсор формируется аппаратно КР580ВГ75. Он может отображаться тонкой чёрточкой, сплошным знакоместом или быть выключен.
Из-за случайного, но постоянного прерывания работы процессора «Радио-86РК» не может работать в реальном времени, т. е. нельзя предсказать, за сколько машинных тактов будет прогоняться фрагмент кода. Для точного счёта времени, что необходимо при выводе на МГ-ленту, ПДП отключают, из-за чего при вводе/выводе с МГ-ленты экран гаснет. Впоследствии в 1991 году была разработана и применена в многоблочных коммерческих защитах от копирования процедура ввода с МГ-ленты, работающая без гашения экрана. При отключённом экране регенерацию динамической памяти приходится осуществлять программно (выполняя 64 POP каждые 2 мс).
 Клавиатура: контактная матрица 8 × 8 + 3, обслуживаемая процессором через ППА КР580ВВ55. Позднее в журнале «Радио» был опубликован совместимый вариант подключения качественной промышленной клавиатуры MS7007 с матрицей 11 × 8.
 Звук: в качестве однобитового порта для звука использовался вывод INTE процессора (разрешение прерываний), переключаемый командами EI/DI. Поскольку прерывания в компьютере не используются, это не вызывает проблем. Однако из-за постоянных и случайных (т. е. без чёткой периодичности) остановов процессора видеосхемой программно формируемые звуковые тоны звучат не как чистый тон, а с хрипом. Чистый тон можно сформировать, только отключив видео (т. е. с погашенным экраном). Потому в более развитые РК-клоны ставили 580ВИ53, который давал 3 канала чистого тона.
 Внешние устройства: в качестве устройства для хранения программ применялся бытовой кассетный магнитофон. Применённый формат записи отличается высокой надёжностью и обеспечивает ввод со скоростью ~150 байт в секунду. К порту пользователя ППА D14 могло подключаться внешнее устройство. Обычно туда подключался ROM-диск и/или символьный принтер, в качестве которого обычно использовался узел печати от АЦПУ «Консул» (настоящие принтеры появились в магазинах лишь в 1992). Уже в 1990-е годы для Радио-86РК был опубликован электронный диск на статических ОЗУ и контроллер дисковода.

Псевдографические возможности и доработка до цвета 
Псевдографические возможности «Радио-86РК» реализуются с помощью 16 псевдографических символов, хранящихся в ПЗУ знакогенератора. Для этого матрица знакоместа 6 × 8 делится пополам по горизонтали и вертикали. Получившиеся участки 3 × 4 точки растра образуют в знакоместе 4 пикселя. Чтобы можно было выводить графику без вертикальных разрывов, игры, использующие псевдографику, обычно включают видеорежим с высотой знакоместа в 8 точек, т. к. тогда исчезает межстрочный интервал между строками в 2 линии растра, существующий при стандартном знакоместе высотой в 10 точек. Число видимых строк при этом увеличивается до 30.

При 30 строках графическое разрешение составляет 128 × 60. В таком режиме работают почти все игры с псевдографикой и графредактор. В графическом режиме на 30 строк вывод на экран символов стандартными подпрограммами ПЗУ невозможен (только прямой записью в экранный буфер).

ВГ75 в Радио-86РК использует 7-битовый код, что даёт 128 символов (коды выше $80 используются для управления атрибутами и развёрткой). ВГ75 имеет 4 атрибута, которые предназначены для переключения шрифта, подчёркивания, подсветки и инверсии знакомест. Но разработчики РК эти возможности почему-то проигнорировали, хотя дополнительных микросхем это не требовало, а возможности расширило бы существенно.

Это обстоятельство позволило впоследствии разработать очень простую доработку, добавляющую в РК цвет (журнал «Радиолюбитель» 04.1992). Эта идея впервые была применена в цветной версии компьютера «Апогей БК-01Ц». В статье упоминается, что более 40 РК-игр были оцвечены под данную схему, и этот процесс оцвечивания несложный. Эти игры продавались защищёнными от копирования одним кооперативом и не сохранились. Сейчас на архивных сайтах можно найти очень небольшое число цветных игр, и почти все они сделаны энтузиастами уже в XXI веке.

Дополнительные видеорежимы 
Простым изменением 16 графических символов в знакогенераторе можно увеличить псевдографическое разрешение до 128 × 86 или 128 × 102, а применив альтернативный знакогенератор — и до 192 × 102. Это было сделано в производных от «Радио-86РК» продвинутых клонах. Но в «Радио-86РК» официально этого нет, и программы, использующие дополнительный знакогенератор, созданные отдельными энтузиастами, не распространились. Уже в XXI веке ряд любителей экспериментально опробовал режимы псевдографики более высокого разрешения, и на тематических форумах можно найти «демо» таких режимов .

Псевдографические режимы большего разрешения требуют применения альтернативного знакогенератора, в котором для псевдографики используется знакоместо с разложением не на 2 × 2, а на 2 × 3 или 3 × 2 пикселя. БИС ВГ75 позволяет изменять высоту знакоместа от 4 до 16 линий растра. При наличии в альтернативном шрифте 64-х псевдографических символов можно получить разрешение 128 × 129 (матрица знакоместа 2 × 3, 43 строки высотой 6 линий) или 192 × 102 (матрица 3 × 2, 51 строка высотой 4 линии).

Несмотря на множество статей в журнале «Радио» о расширении числа символов за счёт альтернативного шрифта (и простоту доработки, даже не требующей деталей), не было стандарта для программного переключения шрифтов. Из-за этого каждый мог делать это по-своему, и эти режимы применялись лишь единичными любителями. В итоге нельзя было делать программы, использующие альтернативный шрифт и псевдографику более высокого разрешения, чем стандартные 128 × 60. Но соответствующие шрифты и такие режимы были использованы на промышленных, более продвинутых клонах Радио-86РК.

Программное обеспечение 

Базовая конструкция «Радио-86РК» включала в себя только «Монитор» в ПЗУ, которое содержало только драйверы периферии и загрузчик. «Монитор» поддерживал простейшие функции отладчика, позволял просматривать и изменять ячейки памяти, вводить с МГ-ленты или ROM-диска и запускать программы. Журнал «Радио» опубликовал также дампы основных системных программ, однако ручной ввод их в компьютер был весьма трудозатратным.

Базовое инструментальное программное обеспечение, опубликованное в 1986—1987 году в журнале «Радио» в виде шестнадцатеричных дампов, включало в себя:
 Бейсик-интерпретатор
 Текстовый редактор
 Ассемблер
 Дизассемблер

В последующие годы было опубликовано ещё несколько полезных системных программ. Прикладное программное обеспечение создавалось программистами-любителями и его можно было приобрести во вскоре возникших кооперативах, скопировать у знакомых или купить на радиорынке. В конце 1980-х годов на нелегальных радиорынках возник пиратский частный бизнес по торговле программами бытовых ПК, что существенно облегчало людям доступ к программам, но лишало авторов программ возможности заработать на своих разработках. 

Прикладное ПО включало в себя в основном следующие программы:
 Инструментальные программы: макроассемблер и отладчики (отладчик Г. Штефана, экранный отладчик С. Дрогайцева, DDT и SID, адаптированные из CP/M)
 ЯВУ: до десятка лишь слегка различающихся и несколько доработанных версий Бейсика, Форт, компиляторы Си и Паскаля. Из-за нехватки в компьютере объёма ОЗУ этими компиляторами можно транслировать лишь маленькие программы, но они позволили многим будущим профессиональным программистам познакомиться с программированием на ЯВУ.
 Игры в кодах: Шахматы, Змейка, Xonix, Pac-Man, Лабиринт, Лестница, Жизнь, Тетрис, Морской бой, Диверсант, Скорпион, Стратегия, Цирк, Рикошет, Volkano, Krok, Land, LodeRuner, Digger, Mars, Barmen, BoulderDash, Dizzy-7.5, Into the Eagles Nest, Ladder, Stena и др. Не считая слегка изменённых дублей, игр было не более 200. Сейчас на архивных сайтах можно найти около 100 РК-игр.
 Игры на Бейсике: Королевство Эйфория, Война с клингами, Питон, Сокобан, Минное поле, Бомбардировщик, Биржа, Кегельбан, Покер, Пика-фама, Ханойская башня, Гомоку и др. Около 30 игр.
 Несколько десятков неигровых программ (текстовые и графредакторы, примитивные картотеки, словари, программы печати, инструментальные для разработки и радиолюбительского назначения).

Промышленное производство 
Промышленность выпускала и стопроцентные клоны «Радио-86РК», но в большем объёме серийно производились более развитые РК-производные компьютеры, которые имели лишь частичную совместимость, точнее, совместимость лишь для системных программ. Из-за разных адресов экрана и В/У игры были несовместимы, хотя из-за общности схемотехники и ROM-BIOS адаптация игр между РК-подобными компьютерами была несложна.

 Микроша
 Электроника КР-01/02/03 (конструктор для сборки)
 Партнёр 01.01
 Спектр-001
 Апогей БК-01(Ц)
 Криста
 УМПК-Р-32 — выпускался заводом «Мукачевприбор»
 Альфа-БК
 Эрудит (вариант Альфы-БК на ОЗУ 565РУ5)
 Импульс-02/03
 Эликс-89 — планировался к выпуску на заводе «Прибой», г. Новороссийск
 Согдиана-1
 Mikro-88 — выпускался одним из рижских кооперативов

Кроме вышеприведённого списка 100 % РК-совместимых и очень близких РК-производных бытовых компьютеров в стране выпускались ещё два также РК-производных (то есть использующих те же БИС КР580ВГ75 и КР580ВТ57 по той же схеме) промышленных компьютера, в развитии которых их авторы пошли дальше лишь добавки БИС генератора тонов и увеличения ОЗУ, а добавили графику и ряд других схемных усовершенствований.

«Юниор ФВ-6506» использовал ту же самую схемотехнику лишь изменив число символов в строке с 64 до 80 и введя альтернативный фонт содержащий матрично-графические символы с разложением знакоместа на 3*2 пикселя, что при настройке CRT-контроллера ВГ75 на режим с отображением 60-ти строк позволило выводить псевдографику в формате экрана 240*120. 60 строк было видно лишь на профессиональном дисплее. На телевизоре видно меньше линий растра, потому отображалось только 240*100 пикселей. Кроме этого авторы ввели возможность работы с текстами содержащими прописные русские буквы и аппаратное управление бытовым магнитофоном Маяк-231, используемым в качестве замены дисковода. Это позволило использовать дисководную ОС без дисковода. В комплект поставки входила МК-кассета с ОС CP/M и несколькими её утилитами.

Хотя «Юниор ФВ-6506» остался тем же РК-подобным и соответственно чисто текстовым, его игры выглядят как вполне графические. Так как формат экрана изменился, то этот компьютер не является РК-совместимым и даже адаптировать РК-игры на него труднее. Но схемотехнически «Юниор ФВ-6506» остаётся РК-подобным (отличия в основном программные).

Но самым развитым РК-подобным компьютером является уже упомянутый конструктор «Электроника КР-04». Он даже является частично РК-совместимым, т.к в одном из видеорежимов поддерживаемом его ROM-BIOS-ом позволяет использовать РК-программы. Но одновременно он является новым полноценно графическим компьютером с экраном размером в 14 Кб и графическим разрешением 480×224 точек в монохромном режиме или 240×224 в 4-х цветах.

См. также 
 Микро-80
 Орион-128

Примечания

Литература

Ссылки 
 Публикации из журнала Радио
 Эмулятор Emu80 — Эмулятор ПК «Радио-86РК», «Партнёр», «Апогей», «Микроша», «Специалист», «Орион», «Микро-80», «ЮТ-88»
 rk86-js  — Эмулятор ПК «Радио-86РК» на JavaScript
 Самодельный Радио-86РК — Фотографии самодельного «Радио-86РК» (фото печатной платы, скриншоты в работающем виде)
 Ещё один вариант самодельного Радио-86РК

Радиоконструкторы СССР
Появились в 1986 году в СССР
Радио (журнал)