«Микро-80» — современная реплика компьютера
Компьютер «Микро-80» был создан в Советском Союзе в 1980 командой энтузиастов. В 1982 году журнал «Радио» начал публикацию схем и описаний этого компьютера. По сути, это был первый доступный персональный компьютер в СССР. В то время только единицы в стране имели взможность установить дома компьютер. Это были либо привезенные из-за границы экземпляры, либо промышленные настольные компьютеры.
Полностью собранный компьютер «Микро-80» содержал около 200 микросхем. Не так много людей решились повторить эту сложную схему и этим было ограничено его массовое распространение.
Вот фотография одного из авторов этого компьютера — Сергея Николаевича Попова — со своим детищем (фотография взята с сайта zxbyte.ru):
Используя мою платформу Retrobyte, я решил повторить этот компьютер, но с использованием современных компонентов. Благодаря ПЛИС, мне удалось уложиться в 7 микросхем. Так выглядит моя версия этого компьютера:
На этой фотографии видно, что сам компьютер занимает меньшую часть корпуса — размер платы всего 10х10см:
Характеристики оригинального компьютера таковы:
- Процессор: КР580ВМ80А (аналог Intel 8080)
- Память: 64 КБ ОЗУ (55 КБ доступно пользователю), 2 КБ ПЗУ
- Устройство вывода: бытовой телевизор — 64 х 32 черно-белых символа
- Внешнее запоминающее устройство: бытовой кассетный магнитофон (скорость обмена — 1500 бод)
В дополнение к этому, моя версия компютера имеет:
- Две версии ПЗУ — одна с классическим МОНИТОРом «Микро-80» и вторая с МОНИТОРом совместимым с «Радио-86РК» («М/80К»). ПЗУ выбирается тумблером перед включением компьютера.
- При выборе МОНИТОРа «Микро-80», БЕЙСИК уже загружен в ОЗУ при включении компьютера и может быть запущен командой G.
- Телевизионный видео-сигнал дублируется на разъемы RCA и S-Video.
- Возможность вывода видео на VGA дисплей (используется режим 1024 х 768 70Hz) — выбирается тумблером.
- Возможность использования внешней клавиатуры PS/2 — также выбирается тумблером.
- Установлен динамик, на который дублируется сигнал с магнитофонного входа и выхода (может быть отключен).
- Контроллер SD карт от vinxru с адаптацией к «Микро-80» от vlad6502. (огромная благодарность им двоим за их работу!).
SD карта работает только с МОНИТОРом «М/80К» так как в нем реализован доступ к внешнему ПЗУ, используемуму в контроллере.
Для доступа к содержимому SD карты используется удобная оболочка написанная vinxru и адаптированная к «Микро-80» vlad6502. Я лишь изменил в ней размер экрана с 25 строк на 32 строки.
Для запуска оболочки надо загрузить и запустить загрузчик командами R0,FF и G. В загрузчике я изменил адреса портов, так как vlad6502 использует инвертированные биты адресной шины А0 и А1 в своем варианте «Микро-80» по сравнению со стандартным вариантом. Также я устранил ошибку, которая не переключала направление передачи внешнего порта.
Контроллер представляет из себя небольшую плату с Atmega8L, которая подключена к слоту SD карт платы Retrobyte и к выходам ПЛИС на этой плате. Этот микроконтроллер работает от 3.3В, так что может быть подключен напрямую и к ПЛИС, и к SD карте. Я немного ошибся с размерами этой платы, так что пришлось использовать провода, чтобы подсоединить ее.
По какой-то причине мой китайский USBASP отказался прошивать микроконтроллер Atmega8L, так что пришлось использовать Arduino Nano для этой задачи.
Процессор КР580ВМ80А (аналог Intel 8080) также зашит в ПЛИС. Vslav выполнил реверс-инжениринг этого процесора и создал его точную копию на ПЛИС: https://habrahabr.ru/post/249613/ , которой я и воспользовался в этом проекте.
Клавиатуру я сделал из обычных тактильных кнопок (12 х 12 мм), которые припаиваются к печатной плате. Заказывать плату такого размера достаточно накладно и я изготовил её самостоятельно. Попытка перенести рисунок на плату такого размера с помощью тонера лазерного принтера оказалась неудачной — не удалось добиться равномерности переноса на всей площади. Местами тонер отслаивался или сдвигался.
Это было хорошим поводом испытать для себя новую технологию — фоторезист. Я купил одностороннюю плату с уже нанесенным фоторесистом и закрепитель к ней. Засвечивал обычной люминисцентной лампой. Время засветки подобрал на отрезанном кусочке платы, где нанес метки со временем, открывая их постепенно во время засветки. После проявки образца, время было выбрано для основной платы по меткам наилучшего качества.
Результат мне понравился и я пожалуй предпочту этот метод переносу тонера для будущих проектов.
После травления, я залудил плату, нанеся тонкий слой смеси старой паяльной пасты и жидкого флюса и прогрев ее термофеном. Далее я просверлил более 350 отверстий в плате под кнопки.
На ebay я заказал прозрачные колпачки для кнопок, чтобы можно было добавить надписи. Когда они пришли, то оказались слишком маленькие и мне пришлось распечатать на 3D принтере рамки для колпачков, чтобы увеличить их площадь под пальцы. Кнопку «Пробел» я тоже напечатал и установил ее на две кнопки.
В результате, клавиатура получилась компактной:
Я сохранил раскладку и расположение клавиш журнального варианта компьютера, но добавил кнопку «СБРОС», а также вместо фиксируемой кнопки «РУС», я установил обычную, которая переключает раскладку по нажатию. Для индикации текущего режима РУС/ЛАТ я добавил светодиод индикации на клавиатуре (желтый), а также светодиод питания (красный) и светодиод индикации обращения к SD карте (зеленый).
Хотя клавиатура и получилась функциональная, тактильные клавиши все же не лучший выбор — у них маленький ход и они «гуляют» под пальцами при нажатии. Для следующего проекта я попробую другое решение.
Корпус я спроектировал в Autodesk Fusion 360. Это был мой первый опыт работы с этой программой и она мне очень понравилась. Она бесплатна для использования в хобби. Я экспортировал платы Retrobyte и клавиатуры из KiCAD, где я их разработал, в FreeCAD и оттуда в Fusion 360. Далее оставалось только построить корпус вокруг этих плат. Корпус едва вместился на рабочей поверхности моего 3D принтера. Я печатал его PLA так как не был уверен, что ABS на такой площади не отклеится по краям от рабочей поверхности принтера. Кроме того, PLA прочнее и менее подвержен деформации, что важно для относительно тонкостенных корпусов.
Для «Микро-80» существует не так много программ. Некоторые программы от «Радио-86РК» могут быть запущены и на «Микро-80», но все же большинство из-них требуют доработки (в основном из-за отображения курсора или обработки нажатых клавиш). Я адаптировал несколько из них и планирую сделать о них отдельный пост. А пока некоторые фотографии экрана работающего компьютера:
А в этом архиве содержимое SD карты со всем необходимым для запуска оболочки и программами для «Микро-80»: sd_mikro80.
До встречи в эфире!
2 thoughts on “«Микро-80» — современная реплика компьютера”