Эмуляторы советских процессорных систем
В этой статье я собрал обобщающую информацию по некоторым программным эмуляторам советских компьютерных систем — начиная от больших ЭВМ типа БЭСМ-6 и заканчивая микропроцессорными электронными играми.
Скриншот эмулятора калькулятора — записной книжки «Электроника МК-87»
Эмуляция — это воспроизведение работы одного устройства на другом, зачастую полностью не совместимому с ним.
Сейчас сложилась терминология, отличающая термины «эмуляция» от «симуляция». В симуляции происходит приблизительное воспроизведение работы одного устройства на другом. Например, есть популярная в СССР игра «Ну, Погоди!». Программист, игравший в игру, может написать симулятор на современном железе, и почти точно её воспроизвести. Однако, он может либо не учесть каких-то особенностей, либо немного изменить геймплей по своему усмотрению. В эмуляции же используется точное воспроизведение оригинала. Это обеспечивается за счёт использования оригинальной прошивки с программным обеспечением и эмуляции работы оригинального процессора. В этом случае игра происходит точно так же, как и в оригинале, потому что программист не вносит каких-то субъективных артефактов.
Сами же прошивки добываются различными способами. Для каких-то можно просто взять микросхему ПЗУ, заботливо установленную производителем на панельку, считать её на программаторе и потом написать эмулятор. Для других извлечение прошивки — это отдельный увлекательный квест, порой очень сложный. Например, для эмуляции микрокалькулятора «Электроника МК-61» пришлось вскрывать микросхему, добираться до кристалла и через микроскоп считывать прошивку.
Фрагмент прошивки микросхемы К145ИК1301
Написание эмуляторов наверно можно отнести к отдельному виду компьютерного искусства. Если с простыми устройствам, например, с x86 или 8080 совместимым процессором всё ясно, то для того же калькулятора архитектура бывает порой настолько загадочной, что не помогают описания в литературе, где она описывается. Да и в создании одного эмулятора может понадобиться помощь не одного человека. Например, коллекционер где-то раздобудет редкий экспонат. Но коллекционер может не быть электронщиком. Электронщик знает как извлечь прошивку, но может не знать, как сделать эмулятор. И наконец, программист делает сам эмулятор. Но чаще эмуляторы делают в одном лице — и коллекционер, и электронщик, и программист — один потрясающе крутой человек.
Итак, на верхней картинке вы видели скриншот калькулятора — записной книжки «Электроника МК 87». Сами машинки довольно редки — их было выпущено что-то около 7000 штук, и все раздарены депутатам очередного съезда КПСС. Для их производства была закуплена в Японии целая линия по штамповке таких корпусов.
Эмулятор этой машинки написан Piotr Piatek. Его очень известный сайт http://www.pisi.com.pl/piotr433/index.htm. Сам эмулятор доступен по ссылке http://www.pisi.com.pl/piotr433/mk87emue.htm. Прошивка для Электроники МК 87 была написана Подоровым А.В. — тем же программистом, который писал прошивку для Электроники МК 85. Известен факт, что фамилию разработчика можно в МК 85 вывести командой WHO. И только месяц назад мы узнали, что в МК 87 тоже заложена фича, которая выводит эту фамилию. Вы можете это проверить в эмуляторе.
Скриншот эмулятора калькулятора «Электроника МК 85»
Кроме эмулятора для МК 87, Piotr Piatek так же написал эмуляторы для «Электроники МК 85» и «Электроники МК 90».
«Электроника МК-85» — наш ответ Casio с его Casio fx-700P. Ответ на задачу разработчикам «сделать такой же». В итоге наши сделали как бы симулятор fx-700P, повторив внешний вид и принцип работы японского прототипа. Но в то же время, своё железо с 16-битным процессором и оригинальной прошивкой (добавив туда кириллицу и другие прикольные фичи) — сделали сами.
Эмулятор «Электроники МК 85» доступен там: http://www.pisi.com.pl/piotr433/mk85emue.htm
Скриншот эмулятора микро ЭВМ «Электроника МК 90»
Эмулятор «Электроники МК 90» доступен там: http://www.pisi.com.pl/piotr433/mk90emue.htm
Три описанных выше машинки работают на микропроцессорах с системой команд, аналогичной системе команд DEC PDP-11.
У калькулятора «Электроника МК-90» было продолжение — «Электроника МК-98». Их было выпущено совсем мало — порядка десяти штук — эту модель не успели довести до серийного изготовления. Зато недавно появился и её эмулятор, и можно посмотреть примерно как она работала. В отличие от МК-90, в МК-98 стоял отечественный микропроцессор, совместимый с Intel 80С86.
Скриншот эмулятора «Электроника МК-98»
Эмулятор: https://www.phantom.sannata.org/viewtopic.php? p=592596#p592596
Продолжая эмуляторы наших систем нельзя не упомянуть про эмулятор калькуляторов семейства «Электроника МК-61».
Скриншот окна эмулятора калькулятора «Электроника МК 61»
Наверно самый сложный эмулятор, которые я встречал. Сделан благодаря Феликсу Лазареву — он смог извлечь и прошивку из скана кристалла, и понять как работает процессор, и написать основу эмулятора.
Примерно узнать, как работает его процессор, архитектура которого в его предшественнике «Электроника Б3–09» заработала аж в 1973-м году, вы можете в моей статье на Хабре: https://habr.com/ru/post/467501/
Сайт с эмулятором: https://pmk.arbinada.com/mk61emuweb.html
В начале статьи я написал об эмуляторе БЭСМ-6. Советский суперкомпьютер 1960-х годов, в своё время конкурировавший с американскими и европейскими компьютерами, ближе всего с CDC 1604 или Atlas. Их архитектурные решения имели общие детали, но БЭСМ-6 не является близкой копией ни того, ни другого.
Эмулятору БЭСМ-6 посвящен целый сайт: https://www.besm6.org/wiki/Building
Игры типа «Ну, погоди!» нельзя назвать отечественной микропроцессорной системой из-за того, что внутри неё стоит прошивка от Nintendo. Сейчас пока нет сведений, получена ли технология выпуска этих игр по лицензии от самой Nintendo (как например, в своё время закупили завод по производству калькуляторов у General Instrument или в Японии линию по производству Электроники МК-87) или сами справились.
Однако, и для этого семейства тоже удалось сделать эмулятор. Это оказалось возможным из-за того, что процессор может войти в режим отладки с возможностью считывания прошивки. http://www.emu-land.net/forum/index.php/topic,73493.0.html
Кроме эмулятора семейства «Ну, погоди!» есть даже отладчик.
Скриншот отладчика игр типа «Ну, погоди!»
Сайт с отладчиком: http://www.ebastlirna.cz/modules.php? name=Forums&file=viewtopic&t=95530&start=0
То ли калькулятор, то ли компьютер «Электроника Д3–28» тоже обзавёлся эмулятором (имитатором, как его называют авторы). Он вышел от Wang 700, но доработан нашими разработчиками до такой степени, что на нём стало возможно запускать интерпретатор языка Бейсик, чем активно и пользовались.
Эмулятор: https://d3–28.ru/imitator-d3–28-s-ozu-128-kilobajt/
Первый советский персональный компьютер — ПЭВМ «АГАТ» сделан на основе Apple ][. Но из-за того, что там другая графика, другие дисководы на 840 килобайт, другая организация памяти, его можно считать копией Apple ][ суммарно где-то только на 50%. Из-за этих отличий на АГАТе не шли напрямую программы от Apple ][, и их либо приходилось переделывать, либо использовать дополнительные аппаратные платы совместимости, либо режим совместимости с Apple ][, реализованным в модификации «АГАТ-9». Соответственно эмулятор Apple и АГАТ — не одно и тоже.
Лучший ресурс по этому компьютеру находится по этому адресу: http://agatcomp.ru/
Наиболее известен эмулятор Олега Одинцева: http://agatemulator.sourceforge.net/
Как же без эмуляторов семейства ДВК?
Вот один из них: https://zx-pk.ru/threads/18351-emulyator-dvk.html
Никита Зимин https://github.com/nzeemin написал несколько эмуляторов для наших оригинальных компьютеров на базе процессоров с системой команд DEC PDP-11.
Эмулятор компьютера «Электроника МС0511» УКНЦ, очень популярного школьного компьютера.
Эмулятор: https://github.com/nzeemin/ukncbtl/
Компьютер «Электроника МС0515» очень нечастый компьютер, и тем интереснее для него посмотреть эмулятор.
Эмулятор: https://github.com/nzeemin/ms0515btl
Компьютер «Немига» разрабатывался в Белоруссии тоже для школ, и тоже есть для него эмулятор: https://github.com/nzeemin/nemigabtl
Шахматный компьютер «Интеллект 02» сделан на базе процессора КР580ВМ80А (аналог Intel 8080A). Прошивка для игр — шахматы, калах и гран находились в ПЗУ, оформленных в виде картриджей.
В него можно тоже поиграть: https://github.com/nzeemin/intellekt02/
Эмуляторов на самом деле много. Нет возможности все запустить и все описать. Вот несколько ссылок, пройдя по которым вы можете узнать и о других эмуляторах:
Эмулятор многих отечественных компьютеров EMU80:
https://zx-pk.ru/threads/27488-emu80-v-4.html
Обсуждение эмуляторов на форуме zx-pk: https://zx-pk.ru/forums/61-emulyatory-otechestvennykh-kompyuterov.html
Обсуждение эмуляторов на emu-land: https://www.emu-land.net/computers/soviet
Эмуляторы на old-games: https://www.old-games.ru/utils/emulators/
Возможно есть и другие источники с эмуляторами типа MESS, MAME и других.
Коллекционирование компьютеров — увлекательное занятие. Хотелось бы конечно, всем показать компьютеры не только в виде сайта. Но хорошо, что есть эмуляторы, и можно «погонять» эти компьютеры в виртуале.
Если у вас есть информация о каком-нибудь интересном эмуляторе, напишите в комментарии. Также можно обсудить их в ретрочате: https://t.me/retrocomps
Спасибо за внимание.