Советский персональный компьютер Микроша

7 августа 2023

Ранее в этом блоге было рассказано о ретро-компьютерах IBM ThinkPad 345C, ZX Spectrum, БК-0010-01 и УМК-80. Сегодня же мы поговорим о Микроше, ПЭВМ конца 80-х / начала 90-х. Когда я впервые читал про Микрошу, компьютер меня не заинтересовал. Но позднее я наткнулся на статью Знакомство с Микрошей Сергея a.k.a. dlinyj. Эта статья изменила мое мнение.

Теория

В 1986-м году в журнале «Радио» была опубликована серия статей о Радио-86РК. Это ПЭВМ для самостоятельной сборки на базе КР580ВМ80А, аналога Intel 8080. Немногие радиолюбители могли и хотели собрать все компоненты, вытравить и насверлить платы, собрать и наладить компьютер, а потом еще придумать какой-нибудь корпус. Из тех же, кто мог и хотел, преуспевали не все. Поэтому вскоре стали появляться промышленные версии Радио-86РК. Одной из таких версий является Микроша.

Основные характеристики:

  • Процессор работает на тактовой частоте 1.77 МГц;
  • 32 Кб динамической ОЗУ на 16-и КР565РУ6;
  • 2 Кб ПЗУ на КС573РФ2. Это ПЗУ с УФ стиранием;
  • Еще один КС573РФ2 используется в знакогенераторе;
  • Изображение черно-белое, алфавитно-цифровое, 64x25 знаков. При помощи спецсимволов можно выводить картинку 128x50 точек в псевдографике. На выходе из системного блока здесь композитное видео. В комплекте идет ВЧ модулятор для телевизора;
  • Звук на КР580ВИ53. Из трех каналов таймера используется один;
  • Предусмотрен разъем расширения, позволяющий подключить дополнительные ОЗУ, ПЗУ или контроллер дисковода. Данные расширения выпускались промышленно;
  • Внешне компьютер выполнен как клавиатура. Загрузка и сохранение данных производится через магнитофон. Все как положено;

Советские компьютеры часто требовали либо специального монитора, либо перепаивания телевизора. В Микроше ничего этого не требуется. Сигнал от модулятора может быть принят бытовым телевизором на четвертом или пятом канале. Частота модулятора плавно настраивается от 85.25 МГц до 93.25 МГц.

По сравнению с Радио-86РК в Микроше сделаны минимальные улучшения. Знакогенератор имеет вдвое больший размер. Из новых символов появились строчные русские буквы. Впрочем, выводить на дисплей заглавные и строчные буквы одновременно нельзя. Для генерации звука добавлен КР580ВИ53. Но главное улучшение состоит в том, что Микрошу не надо собирать. Хоть Микроша и основан на Радио-86РК, компьютеры несовместимы. Помимо озвученных выше отличий, они имеют разное распределение адресного пространства и разные форматы хранения данных на кассетах.

Распределение адресного пространства в Микроше следующее:

  • 0x0000..0x7FFF — 32 Кб ОЗУ, из которых…
  • 0x76D0..0x7FFF — …2352 байта это видеопамять;
  • 0x8000..0xBFFF — 16 Кб, свободное пространство;
  • 0xC000..0xDFFF — 8 Кб, ячейки ввода-вывода;
  • 0xE000..0xF7FF — 6 Кб, свободное пространство;
  • 0xF800..0xFFFF — 2 Кб, ПЗУ;

Интересно, что фактический размер видеопамяти в Микроше составляет 78x30 символов, плюс 12 байт для выравнивания. При этом 7 столбцов слева и справа, а также 3 верхние строки и 2 нижние строки должны заполняться нулями. Это нужно для генерации синхроимпульсов. В результате остается 64x25 символов. В этой статье есть наглядная картинка, а также дополнительная информация.

Радио-86РК и/или Микроша не позиционировались, как компьютеры для игр, редактирования текстов, или чего-то такого. Безусловно, для обоих есть как игры, так и текстовые редакторы, но создавались компьютеры для другого. На самом деле, это ПЭВМ для радиолюбителей и программистов. Целевая аудитория должна была мало пересекается с целевой аудиторией условного БК-0010(-01). Это подчеркнуто и в названиях. БК означает «бытовой компьютер», а РК — «радиолюбительский компьютер». В качестве примеров использования РК в журнале «Радио» авторы называют работу на коротких волнах в RTTY, подключение внешних датчиков, и т.д. Также особый акцент делается на простоте и повторяемости конструкции.

Практика

Мне удалось найти Микрошу в неплохом косметическом состоянии, с блоком питания, руководством по эксплуатации, схемой и кассетой:

Советский персональный компьютер Микроша, основанный на Радио-86РК

Этот Микроша имеет заводской номер 4594 и был выпущен в апреле 1991 года. Цена на моем экземпляре не указана. Судя по информации в сети, цена Микроши составляла 500 рублей, что дешевле БК-0010(-01). Микроша — довольно распространенная ПЭВМ, хотя и менее распространенная, чем БК. Она часто встречается на барахолках и стоит где-то от 5000 до 10 000 рублей. Сколько всего в мире существует Микрош, достоверно неизвестно.

Перед началом каких-либо восстановительных работ необходимо прочитать руководство. Руководство по эксплуатации объемом 115 страниц, помимо прочего, учит программировать на ассемблере и в машинных кодах для КР580ВМ80А, пользоваться таймером КР580ВИ53, а также микросхемами КР580ВВ55А, КР580ВТ57 и КР580ВГ75. Также дается детальное описание местного диалекта BASIC и содержимого кассеты. На кассете, среди прочего, записаны ассемблер, дизассемблер и отладчик. Как ими пользоваться также рассказывается в руководстве. Другими словами, Микроша сразу идет со всем необходимым для разработки как на BASIC, так и на ассемблере. Это выгодно отличает его от других ПЭВМ.

Далее надо проверить блок питания. Он здесь трансформаторный, надежный:

Блок питания компьютера Микроша

Внешне все компоненты выглядят нормально. Несколько электролитов были измерены вне схемы. Емкость соответствовала номинальной. Было решено их не менять. Так же был проверен предохранитель. Предохранитель в порядке.

Затем по схеме компьютера была зарисована цоколевка его разъемов:

Цоколевка основных разъемов Микроши

Здесь разъемы изображены, как если бы мы смотрели на корпус компьютера. Как и в БК, все разъемы одинаковые, СГ-5 / DIN-5. Очень важно случайно не подать питание, например, на разъем для подключения магнитофона.

Теперь, зная цоколевку разъемов, можно проверить напряжения на выходе БП. Все напряжения оказались на месте. Переходим к осмотру системного блока.

Системный блок оказался на пломбе. Это хорошо, но вскрыть его все равно придется. Внутри Микроша оказался довольно пыльным. Поэтому корпус отправляется купаться с мылом и мягкой зубной щеткой. Пока он сохнет, можно продолжать работать с платой. Она здесь всего одна, что очень удобно:

Плата компьютера Микроша

Плата была как следует продута баллоном со сжатым воздухом. Внешний осмотр дефектов не выявил. Включаем. Дым не валит, что является хорошим знаком.

При включении компьютер издает характерный «чирик». При нажатии клавиш издается звук из динамика. При нажатии РУС/ЛАТ загорается светодиод РУС, идет писк из динамика до нажатия какой-либо кнопки. Согласно руководству, именно так компьютер и должен себя вести.

Теперь надо получить картинку. Перед подключением дисплея было решено проверить по осциллографу, что на разъеме «Видео» есть какой-то сигнал:

Сигнал композитного видео Микроши

Здесь показан сигнал в нагрузку 75 Ом. Я точно не знаю, как должен выглядеть сигнал композитного видео, но похоже на правду. Далее был спаян переходник с DIN-5 на штекер RCA («тюльпан»). Проверяем, что есть картинка:

Подключение Микроши к дисплею

Отмечу, что из трех опробованных телевизоров-дисплеев как следует картинка вывелась только на одном. Этот дисплей и показан на фотографии. Еще в одном случае изображение не синхронизировалось и постоянно прокручивалось по вертикали. С третьим дисплеем все отобразилось, но изображение было обрезано слева на один символ.

На приведенном фото показано, что будет, если ввести DF800,F8FF ВК. Здесь D — это команда (dump), F800 — адрес начала чтения, F8FF — адрес конца чтения, ВК — клавиша «выполнить команду». Таким образом, команда выводит первые 256 байт ПЗУ.

Аргументы всех команд в Микроше дополняются нулями слева. Например, D,FF эквивалентно D0000,00FF. Если вы ошиблись при вводе, используйте стрелку влево как backspace. Ранее введенные символы при этом остаются на дисплее. Команда выполняется до того места, где стоит курсор, поэтому затирать лишние символы пробелами не нужно. Следует однако учитывать, что стрелка вправо, вопреки интуиции, не работает как повтор ранее введенного символа.

Некоторые клавиши заедали. Ну что же, давайте смажем клавиатуру. Клавиши легко снимаются. Не забываем про клавишу «Сброс». Масло наносится на направляющие / штырьки. Я использовал проверенное масло ПМС-200. В процессе следует быть особенно осторожным с пружинками. Они то и дело пытаются сбежать. Рекомендую складывать пружинки в контейнер, а не оставлять их на клавиатуре. Пружинка под клавишей «Сброс» длиннее и жестче остальных. Ее следует положить отдельно.

На данном этапе было замечено два дефекта. Во-первых, при нажатии кнопки «Сброс» ничего не происходило. Во-вторых, если дать компьютеру немного поработать, выключить его, и снова включить, то он не стартует. Если дать процессору время остыть, или охладить его баллоном со сжатым воздухом, то Микроша снова стартует. Я еще раз внимательно осмотрел плату, но не заметил ничего подозрительного. Затем я пропаял выводы процессора, но это не помогло. Был уже морально готов менять процессор, но в Telegram подсказали проверить электролитический конденсатор в цепи сброса. И действительно, оказалось, что он высох. Вместо номинальных 5 мкФ емкость составляла 100 пФ.

После замены конденсатора «Сброс» стал работать, как надо. С прогретым процессором Микроша все еще отказывался стартовать. Однако, согласно руководству, кнопку «Сброс» следует нажимать всегда после подачи питания. В этом случае все действительно работает. Отсюда был сделан вывод, что, скорее всего, наблюдаемое поведение является нормальным для Микроши.

Теперь предстояло проверить работу с магнитофоном. Был распаян кабель с DIN-5 на два штекера 3.5 мм согласно ранее приведенному рисунку. Имелись опасения касаемо долговечности советских кассет. Поэтому я решил сначала оцифровать кассету, а затем воспроизводить wav-файлы с ноутбука. Оцифровка была выполнена при помощи магнитофона National RQ-8100 и аудиоредактора Audacity. Кассета не оборвалась при перемотке и считалась нормально. Запись была нарезана по одному wav-файлу на программу, для удобства поиска.

Для загрузки программы нужно ввести команду I во время воспроизведения тонального сигнала. На время загрузки изображение с дисплея пропадает. В случае успеха должны увидеть что-то вроде:

-> I
   0000
   0C61
   B493
->

Здесь 0000 и 0C61 — это начальный и конечный адрес загруженных данных, а B493 — контрольная сумма. Чтобы запустить программу, нужно знать адрес ее точки входа. Для программ в машинных кодах обычно это 0000. Передать управление можно командой G0000 или G. Программы на BASIC загружаются иначе, но на данном этапе BASIC для Микроши меня мало интересует.

Загрузить было решено всеми любимый тетрис:

Тетрис для Микроши

Так выглядит обещанная псевдографика 128x50 точек. В тетрисе можно выбирать уровень сложности. Чем больше вы выберите число, тем проще игра. Тетрис вполне играбельный, только паузы не хватает.

При нажатии кнопки «Сброс» происходит выход из игры. Состояние ОЗУ при этом неопределено, поэтому снова загружаем тетрис. В этот раз попробуем сохранить его копию на ленту командой O0000,0C61, или O,0C61. Во время записи звук воспроизводится на встроенный динамик, светодиод РУС мигает в такт. В конце выводится контрольная сумма. Она должна все так же быть B493.

Теперь перематываем кассету. Заполняем память нулями:

-> F,0C61,00
-> D,FF

Загружаем только что записанную программу с кассеты. Ожидаемый результат — загрузка происходит без ошибок, тетрис запускается. Именно такой результат и был получен. Значит, данные действительно сохранились на кассету. Чтение с кассеты работает, запись работает. Микроша исправен.

Заключение

Ссылки по теме:

  • Сайт о Микроше со схемами, дампами ПЗУ и архивом программ;
  • Рассказ Сергея a.k.a. dlinyj о том, как он писал демо для Микроши: часть один, часть два, часть три. Из рассказа можно узнать про форматы файлов RKM и MIDI, алгоритм подсчета контрольной суммы в Микроше, как убрать пропуски между символами в режиме псевдографики, и другие потрясающие вещи;
  • Emu80 — открытый эмулятор Микроши и других ПЭВМ;
  • На Avito доступны реплики модулей ОЗУ и ПЗУ;
  • Чаты в Telegram: первый и второй. На самом деле, чатов очень много, но эти кажутся наиболее релевантными в контексте Микроши;

Микроша предлагает качественно те же развлечения, что и другие ПЭВМ. Можно писать игры, музыку и демы. Можно законтрибьютить в Emu80 или сделать свою реплику Микроши на FPGA. Можно делать доработки. Например, пропатчить ПЗУ так, чтобы динамик не издавал непрерывный писк при переключении раскладки. Можно написать свой интерпретатор Lisp’а, или развести альтернативную плату с RGB-выходом и клавиатурой в раскладке QWERTY. В общем, можно все, на что хватит фантазии.

Дополнение: Пишем конвертер из RKM в WAV на Python

Метки: , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.