Советское ретро на современной элементной базе (размышления)

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Советское ретро на современной элементной базе (размышления)

Post by Shiru Otaku »

Я, как обычно, со своими nedo-здоровыми идеями;) Как обычно, это просто мысли на тему, которые иногда возникают, и которые как-то жалко просто забыть.


Когда-то давно, когда ещё только увлёкся ZX, и не забросил электронику (т.е. лет в 13-14) было у меня желание собрать компьютер. Схем попалось тогда немного - ЮТ-88 (ужас, даже не пытался), Специалист (давали журнал, надолго не задержался), Радио-86РК. Последний даже пытался собрать - достал плату (как потом выяснилось - с кучей ошибок;), почти все детали, литературу (по ней позднее осваивал асм Z80;). Но не собрал, ума не хватило. Сейчас жалею, что всё это утеряно/выкинуто - несколько ВГ75, процессоров, и т.п., - то, что сейчас сложно найти.

С советскими компьютерами у меня в жизни, так сказать, вообще не особо сложилось - из них юзал только Вектор, и недолго - меньше года. Сейчас иногда жалею. А наверстать упущенное сложно - т.к. достать что-либо, кроме БК-0010-01 (который мне не очень интересен), стало 'несколько' затруднительно (малые тиражи других машин и охотники за КМками).

Поэтому иногда возникает желание повторить какой-нибудь старый радиолюбительский компьютер. Разумеется, желания мало, тут ещё громадную роль играет лень:), но всё-же. Однако, сейчас это, похоже, ещё сложнее, чем было в момент появления этих схем. Старые детали так просто не достать. Опять-же, проблема с корпусом и печаткой - платы почти всех конструкций были достаточно большими, на макетке собрать сложновато, заказывать дорого, травить надо уметь; корпус - банальная PC-шная башня не очень радует, тем более для устройства такого класса. Вобщем, не очень-то по-радиолюбительски.

Исходя из всего этого, периодически возникает такая мысль - переделать какую-нибудь схему под современную элементную базу. Ясное дело, что сейчас легко можно засунуть хоть все такие компы разом в одну ПЛИС, вместе с процессором и памятью. Но это несколько не то - не по-любительски: относительно дорого, и интерес несколько другого рода - сидеть за компом, писать модель схемы, вместо махания паяльником и дышания канифолью. Дешевле получается эмулятор написать - процесс похож, и на том успокоиться (а я вот не успокоился:). Ну, думаю, тут все понимают это ощущение - хочется реала.

Идеи примерно такие: взять наиболее простую конструкцию из известных, и попытаться её упростить; м.б. немного изменить. Основные идеи: никаких лишних наворотов (только 'бесплатные', появляющиеся вследствии изменения элементной базы), программная совместимость с оригиналом, уменьшение числа элементов, микросхемы в DIP-корпусах, возможность обойтись макеткой, малые габариты схемы. Габариты в идеале - чтобы можно было впихнуть в PC-клавиатуру, т.е. вытянутая узкая плата; но это, конечно, труднодостижимо (клавиатуры нынче измельчали). Никаких дисководов, хардов, крутых звуковых и видео примочек - всё это можно получить от существующих компьютеров, как PC, так и тех старых, что можно достать/собрать/купить. Носитель программ - как и было, лента (я думаю, теоретически вполне можно адаптировать ZX Taper; а при наличии 'большого' компьютера можно загружаться с него); устройство отображения - ТВ. Если цвета в оригинальной конструкции нет - то и не надо, только проще будет. Крайне желательно сохранить оригинальный процессор, всё-таки сердце машины. Хотя, я смотрю, сейчас 580ВМ80 достать нелегко; и не очень радует необходимость нескольких питающих напряжений. Можно попытаться использовать 8085, Z80, ещё что-то (будут проблемы с совместимостью).

По выбору из известных любительских конструкций. Кто там у нас был: 'Микро-80'. 'Радио-86РК', 'ЮТ-88', 'Специалист', 'Орион-128'. 'Микро' и 'ЮТ', думается, отпадают сразу. 'Радио-86РК' использует ВГ75, который сейчас не достать, а заменить сложно. Остаются два варианта, близкие по сложности и характеристикам. Мне чуть больше нравится вариант 'Специалист', незнаю почему. М.б., потому-что он чуть более отвечает моему пониманию ретро-машины. 'Орион' всё-же любители наворачивали, пытались сделать из него машину посовременнее, цепляли к нему всякое - возникнет желание тоже всё это прицепить, в итоге уход от начальной концепции. М.б. я не прав; так или иначе - два подходящих варианта.

Далее, что можно упростить в этих схемах (они ведь и так упрощены до предела), учитывая современную элементную базу. С моими познаниями в электронике мне видится не очень много решений, но попытаюсь порассуждать.

Во-первых, память. Сейчас её можно заменить на SRAM, на два корпуса 32x8 или один 128x8 (64x8 мне что-то не попадались). По деньгам примерно одинаково с динамической памятью; выгода - в уменьшении количества корпусов - как следствие, упрощение платы, уменьшение габаритов. Также, отсутствие необходимости регенерации. Хотя в 'Специалисте' и 'Орионе', если я правильно понимаю, это делалось заодно с формированием изображения, одной схемой. Но, м.б., что-то ещё за счёт этого получится-таки упростить.

Во-вторых, генерация синхроимпульсов. В упомянутых конструкциях это генератор на 8/10мгц и куча счётчиков. Думаю, в принципе можно изобразить генератор всех нужных частот на простом микроконтроллере (базовую брать с генератора, а контроллер будет делить все частоты). Не очень любительски и рационально, но упрощает схему и уменьшает габариты. Возможно, есть и лучшие решения.

Третья мысль, связанная с предыдущим пунктом. Одна из сложностей, которые меня больше всего напрягали в своё время - это прошивка ПЗУ. Нужно иметь программатор, а они стоят неслабо. Знакомые с программатором или место, где могут помочь с этим, есть не всегда и не у всех. Собирать - они обычно достаточно сложные, не сильно проще, чем описываемый агрегат. Поэтому была такая мысль: убрать из системы ПЗУ вообще; а предполагаемый микроконтроллер, который генерирует синхросерию, заставить на старте системы закидывать в нужную область памяти (которую, правда, надо защитить от записи со стороны процессора) прошивку. МК шить всё-же проще, чем ПЗУ - вплоть до 'несколько проводков на LPT, и готово'. Правда, я и сам вижу тут ряд проблем - объём памяти у МК, количество ног для управления адресами, и т.п.

По поводу клавиатуры. Из доступных вариантов я вижу только использование PC-клавиатур. Но переразвести её довольно проблематично, хотя и возможно - кто-то такое делал: выкидывал нижнюю плёнку, и делал свою плату с контактами. Использовать-же её 'как есть' - это очередной контроллер и лишние сложности. Хороших идей по этому поводу не придумалось.

Пока мысли кончились.
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Тематика вполне недопц-шная, поэтому перекинул в "Проект NedoPC". Поддерживаю! РК-86 зря отбросил - ВГ75 в нужном фунциональном объеме можно повторить в микроконтроллере, как собственно и всё остальное. 8085 совместимее с 8080, чем Z80, поэтому можно использовать его (либо заставить быстрый микроконтроллер типа SX28 эмулировать систему команд 8080). ПЗУ с 5-вольтовым напряжением на запись найти не проблема - заставить микроконтроллер, подцепленный к ПЦ через COM-порт, его прошивать - тоже. Полноценный контроллер PC-клавы тоже вроде бы подъемно. В качестве направлений реализации эмулятора в железе можно предложить РК-86, Орион или Специалист (или всё в одном флаконе ; ).
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:РК-86 зря отбросил - ВГ75 в нужном фунциональном объеме можно повторить в микроконтроллере, как собственно и всё остальное.
У меня были такие мысли по этому поводу:

Первая - рациональная. ВГ75 в РК даёт только текстовый режим. У 'Специалиста' и 'Ориона' только графический режим. Мне кажется, выгоднее иметь только графический, чем только текстовый режим - т.к. текст вывести в графическом режиме несложно (пусть и несколько медленнее), а вот графику в текстовом - это уже сложнее. При этом в графическом режиме можно реализовать любую нужную матрицу символа и любой шрифт. Т.е. более функционально получается.

Вторая - чистая лирика. Хочется ограничить 'эмуляционную' составляющую, оставить значимые элементы системы (которые и делают её именно этой системой) в железе. То, что делает мелкая логика - это можно заэмулировать, т.к. это жёстко заданная часть схемы, она не изменяет своё поведение в зависимости от программы. А у процессора, ВГ75, и прочих подобных вещей - есть свои тонкости, свои ошибки, свои недокументированные режимы. Я вот написал эмулятор 8080 (кстати, действительно - один вечер) - а так и незнаю, что там происходит с недокументированными флагами, и действительно-ли всё, что написано в документации, так и есть (хотя программы работают, прикручивал автомат Space Invaders и пробовал запускать Монитор 'Специалиста'). Конечно, если чего-то уже не производится и нигде не достать, то ничего другого не остаётся, кроме как эмулировать.
Shaos wrote:8085 совместимее с 8080, чем Z80, поэтому можно использовать его (либо заставить быстрый микроконтроллер типа SX28 эмулировать систему команд 8080).
Лучше конечно реальный 8085 (он в прайсах ещё попадается), чем эмуляция на SX'е:)

А Z80 действительно не совсем в тему, мне идея с ним не особо нравится (упомянул просто как вариант) - в отечественных компьютерах он не использовался, и это всё-же процессор другого поколения, нежели 8080/ВМ80. Получится что-то ближе к ZX, и если захочется что-то написать под такую машинку, будет трудно заставить себя писать только в наборе команд 8080, имея под рукой все возможности Z80.

Идея эмуляции процессора (на МК или ПЛИС) - сама по себе тоже интересна, но, мне кажется, не для подобного проекта. Когда есть возможность имитировать работу любого процессора, становится гораздо интереснее реализовать что-то своё, т.е. придумать свой процессор (взять лучшее от известного и получить монстра:). А это уже совершенно другой коленкор, другое направление, и к ретро, к истории имеет чуть меньшее отношение.
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

HardWareMan wrote:А я вот в свой кружок собрал "Специалист", с расширением до МХ. правда, на Z80. Но по аппаратуре совместим (отличие тока в проце).
http://vis-image.narod.ru/SPEC.png
Мутор вокруг одной из микрух ОЗУ из-за экрана. Зато скорость второй - максимальная для процессора. =)
Мощно. HWM, как всегда, крут:)

Немного пугает наличие 3-х РТ-шек (дополнительные операции прошивки) - они зачем, чтобы уменьшить количество мелкой логики?

Вообще, МХ несколько круче того, что я описывал выше, более серьёзная машина получается. А лишние навороты и сложность для описанной идеи, в принципе, не нужны. Но от этого уже можно плясать. Не думал насчёт дальнейшего упрощения схемы? Я имею в виду лес счётчиков, кучку мультиплексоров.

А для чего используется второй ВВ55 в МХ?
acidrain
Senior
Posts: 159
Joined: 28 Feb 2005 02:31
Location: Krasnodar, Russia

Post by acidrain »

никогда не видел ни рк ни специалист :oops:
но желание есть и будет =)
что там за режимы видео и с чего проги грузит?
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

HardWareMan wrote:РТшки - да , у меня их мешОк. Однако, вместе со счетчиками бы на какую-нить ПЛМ поменял-бы. Есть предложения? Давай, будем думать вместе.
Я в программируемой логике пока совсем чайник, только на днях Max+plus II поставил. Думаю, это реализовать несложно, но надо-ж ещё разобраться.. Насчёт элементной базы - вроде у Atmel'а есть подходящие решения, даже в DIP-корпусах (вот только незнаю, хватит-ли у них ячеек).
HardWareMan wrote:Программатор самопальный на СОМ порту на АТ89С51 имеется.
А схемку можно?:)
acidrain wrote:никогда не видел ни рк ни специалист
но желание есть и будет =)
что там за режимы видео и с чего проги грузит?
Посмотри сначала в http://ru.wikipedia.org по ключевым словам 'специалист (компьютер)' и 'радио 86рк' - там краткое описание характеристик.

В базовой модели - грузит с кассет; видеорежимы: у РК текстовый, у Специалиста растровый монохром 384x256.

Дальше можно проследовать на http://www.emulator3000.org/rus-e3.htm - эмулятор ряда русских компьютеров, включая эти два. Там-же есть и софт. Сможешь получить некоторое представление о том, что это за звери:)
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote: Дальше можно проследовать на http://www.emulator3000.org/rus-e3.htm - эмулятор ряда русских компьютеров, включая эти два. Там-же есть и софт. Сможешь получить некоторое представление о том, что это за звери:)
За эмулятором советских компьютеров на основе ВМ80 всё же лучше проследовать сюда - http://www.uic.nnov.ru/~pyva
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:За эмулятором советских компьютеров на основе ВМ80 всё же лучше проследовать сюда - http://www.uic.nnov.ru/~pyva
Нет, не лучше:) Ибо он, к сожалению, под DOS, а это в наше время абсолютно несерьёзно. Именно по этой причине я дал ссылку на Е3000, а не на него.
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:
Shaos wrote:За эмулятором советских компьютеров на основе ВМ80 всё же лучше проследовать сюда - http://www.uic.nnov.ru/~pyva
Нет, не лучше:) Ибо он, к сожалению, под DOS, а это в наше время абсолютно несерьёзно. Именно по этой причине я дал ссылку на Е3000, а не на него.
Именно потому что он под ДОС - он может работать везде благодаря эмулятору доса DOSBox. Например я дома выхожу в винду только пару раз в месяц - и минут на 15 от силы. А так - только линукс! И потом скоро появится SDL-версия Emu80, которая будет работать и в винде, и в линухе.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:Именно потому что он под ДОС - он может работать везде благодаря эмулятору доса DOSBox. Например я дома выхожу в винду только пару раз в месяц - и минут на 15 от силы. А так - только линукс! И потом скоро появится SDL-версия Emu80, которая будет работать и в винде, и в линухе.
Ладно, убедил. Вложенная эмуляция - в этом есть что-то философское:) А SDL версия - это было-бы круто.



У меня накопилось ещё чуток мыслей.

Об использовании PC-клавиатуры без её переразводки. МК понадобится довольно немаленький - нужно аж 18 линий I/O для подключения к ВВ55 (считаю для 'Специалиста', у 'Ориона' примерно также). Ещё две линии I/O для подключения самой клавиатуры (Reset можно завести на общий сброс машины). Т.е., нужно 20 линий I/O минимум. Контроллер должен иметь достаточно памяти под обслуживающую программу, и, видимо, хоть немного ОЗУ (буфер скан-кодов). Получается что-то в духе ATmega8 (разумеется, не обязательно именно этот МК) - таракан на 28 или даже 40 ног. И выходят такие минусы: удар по габаритам и повторяемости без печатки, лишние 100р. Также, плата контроллера самой клавиатуры остаётся - влияет, если двигаться в направлении запихивания машины в корпус клавиатуры; хотя и так ясно, что зверя на DIP-ах туда никак не засунуть:). И остаётся ВВ55, т.к. на нём остаются порты звука и магнитофона. Заэмулировать эти функции вместе с контроллером клавиатуры на МК, думаю, никак не получится. Из плюсов: только отсутствие проблемы изготовления клавиатуры. По этим причинам в базовый вариант схемы включать контроллер клавиатуры как-то не хочется - лучше как необязательный элемент: кто может переразвести PC-клаву или найти/сделать подходящую - тот не делает лишних движений; кто не может или не хочет - получает штрафного таракана;)

Насчёт использования различных МК, ПЛИС, и т.п. Что-то не очень красиво получается, если при сборке придётся программировать кучу разнотипных устройств - под каждое свой программатор, свой софт для программирования, и т.п. Лучше постараться этого избежать. С другой стороны, если схемы программаторов несложные (не сложнее ByteBlaster'а), то в этом можно найти и хорошее: сборщик получит больше опыта работы с разными устройствами.
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote: Об использовании PC-клавиатуры без её переразводки. МК понадобится довольно немаленький - нужно аж 18 линий I/O для подключения к ВВ55 (считаю для 'Специалиста', у 'Ориона' примерно также). Ещё две линии I/O для подключения самой клавиатуры (Reset можно завести на общий сброс машины). Т.е., нужно 20 линий I/O минимум. Контроллер должен иметь достаточно памяти под обслуживающую программу, и, видимо, хоть немного ОЗУ (буфер скан-кодов). Получается что-то в духе ATmega8 (разумеется, не обязательно именно этот МК) - таракан на 28 или даже 40 ног. И выходят такие минусы: удар по габаритам и повторяемости без печатки, лишние 100р. Также, плата контроллера самой клавиатуры остаётся - влияет, если двигаться в направлении запихивания машины в корпус клавиатуры; хотя и так ясно, что зверя на DIP-ах туда никак не засунуть:). И остаётся ВВ55, т.к. на нём остаются порты звука и магнитофона. Заэмулировать эти функции вместе с контроллером клавиатуры на МК, думаю, никак не получится. Из плюсов: только отсутствие проблемы изготовления клавиатуры. По этим причинам в базовый вариант схемы включать контроллер клавиатуры как-то не хочется - лучше как необязательный элемент: кто может переразвести PC-клаву или найти/сделать подходящую - тот не делает лишних движений; кто не может или не хочет - получает штрафного таракана;)
А кто требует точной имитации клавиатуры на уровне шины? Дело в том что в РК-86, Орионе и наверное Специалисте культивировалась идеология использования стандартных подпрограмм вместо лазания в порты - этим достигалась совместимость программ между разными машинами (в худшем случае нужно было лишь сменить адреса стандартных вызовов - как правило вектор переходов на стандартные подпрограммы размещали в начале кода программы).
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:А кто требует точной имитации клавиатуры на уровне шины?
Так без особой разницы - только чуть меньшее количество ног у МК понадобится. ВВ55 всё равно остаётся (для упомянутых функций). Зато добавляется потенциальная несовместимость - кто его знает, куда кто лазил, может кто-то и напрямую (в существующем софте).
User avatar
Shaos
Admin
Posts: 24054
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:
Shaos wrote:А кто требует точной имитации клавиатуры на уровне шины?
Так без особой разницы - только чуть меньшее количество ног у МК понадобится. ВВ55 всё равно остаётся (для упомянутых функций). Зато добавляется потенциальная несовместимость - кто его знает, куда кто лазил, может кто-то и напрямую (в существующем софте).
На самом деле ВВ55 легко можно сымитировать микроконтроллером на том уровне, который используется в советских любительских компах - т.е. три порта ввода-вывода в режиме без прерываний. От микроконтроллера всего понадобиться 8 ног на шину данных, два адресных сигнала и два упрвляющих (чтение и запись).
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:На самом деле ВВ55 легко можно сымитировать микроконтроллером на том уровне, который используется в советских любительских компах - т.е. три порта ввода-вывода в режиме без прерываний. От микроконтроллера всего понадобиться 8 ног на шину данных, два адресных сигнала и два упрвляющих (чтение и запись).
Да. Т.е. 12 ног. Плюс клава, вход-выход магнитофона, динамик - ещё 5. Получаем 17. Не сильно выиграли с ногами, но избавились от одного большого корпуса (что радует:). Зато получается проблема: МК должен одновременно имитировать ВВ55, опрашивать PC-клавиатуру, и достаточно быстро передавать сигналы магнитофона/динамика. Всё это в реалтайме. Я думаю, производительности МК на такое всё-таки не хватит. Или я не прав?
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Хорошо-бы про программатор в отдельную тему выделить, это штука самодостаточная и очень полезная. Мне данная схема нравится - ничего лишнего и непонятного.

Есть вопросы:

- Кварц на сколько, 24мгц или меньше??
- Какое ОЗУ используется?
- Сопряжение с RS232 никогда не делал. Есть чипы типа MAX232, можно поюзать?

Прошивка, конечно-же, интересует:)