Kristopher Doern, CC-BY-SA 4.0

Эмулятор БЭСМ-6 на основе SIMH существует достаточно давно, но многие ретрокомпьютерщики считают реплику на ПЛИС чем-то средним по аутентичности между эмуляцией и реальным железом. Оказывается, уже примерно два месяца (судя по дате создания файлов LICENSE и README.md) ведётся работа и над таким проектом.

Разработка ведётся сразу для двух видов отладочных плат — Digilent Basys 3 на ПЛИС
Xilinx Artix-7 XC7A35T-1CPG236C и Terasic DE10-Lite на ПЛИС
Altera MAX 10 10M50DAF484C7G (см. папку boards). Первоначально предполагалась разработка на одной из этих ПЛИС собственной платы, позволяющей подключать стандартные шилды для Arduino. Предусмотрено управление периферией по современным интерфейсам — таким, как SPI и I2C, а также возможность разработки ПО в Arduino IDE с надстройкой из оригинального компилятора Паскаля для БЭСМ-6.

Проект доступен под лицензией MIT, и работают над ним авторы весьма активно. На момент публикации новейшая правка была внесена 11 часов назад.

Пожелаем разработчикам (одним из которых можете стать и вы) успехов, а остальным — скорее заполучить свою маленькую БЭСМ-6 на столе.

Комментарии (33)


  1. AVKinc
    04.05.2019 15:08

    А где бы чисто ради интереса посмотреть на схему БЭСМ? Явно же по схеме делают реплику.


    1. radiolok
      04.05.2019 23:02
      +1

      Судя по файлам на Github делают не реплику по схемам, а создают свой процессор с нуля, аналогичной архитектуры и совместимый с набором инструкций БЭСМ-6.
      Вот тут есть сканы оригинальной документации, полагаю по ним этот проект и делается.
      А вот тут есть несколько альбомов принципиальных схем и фотографии отдельных модулей. Полную на 100% принципиальную схему имхо найти сейчас практически невозможно. Полагаю даже полноценную блочную схему и то — проблематично…


    1. Serge_V
      05.05.2019 12:22
      +4

      К сожалению, схемы БЭСМ-6 нету, и никогда не было. Сохранились альбомы формул арифметического устройства, но они не очень помогают. Можно полистать здесь:

      Первая часть: drive.google.com/file/d/1BKr6qD2jExfV0B99eFDrv-1yVhx05pNp/view

      Вторая часть: drive.google.com/file/d/1fUoSiDmCN24SXs43cHnOu0iY5nSNyxzT/view

      Приходится микроархитектуру машины придумывать с нуля. Благо, кое-что можно упростить.


  1. pvsur
    04.05.2019 15:18
    +1

    Интересно, а зачем оно надо? Есть какое-то железо?

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

    А эта древность зачем? Да еще в железе?


    1. DrPass
      04.05.2019 17:06
      +6

      Как минимум, это просто интересно. Вполне себе достаточное обоснование, чтобы этим заниматься.


    1. eugenk
      04.05.2019 21:00
      +2

      Нууу батенька… Если бы всё на свете делалось не для удовольствия и интереса, а только потому что это кому-то для чего-то надо, то и нас бы с Вами не было :)))))


    1. pavlushk0
      04.05.2019 22:05
      +2

      Если человек спрашивает "зачем", неважно — знать, делать, стремиться или что-то ещё, то на нем можно ставить крест. Вот принимайте как хотите. Это приводили мне как цитату Лихачёва, не знаю насколько это правда. Если завтра на Хабре кто то решит пропустить юппи через хроматограф за миллион долларов я только разольюсь в апплодисментах гениальности автору.


      1. kinall
        04.05.2019 22:30
        +1

        «Тащ прапорщик, а зачем мне закапывать яму, которую я только что выкопал?»


        1. Am0ralist
          05.05.2019 11:26
          +1

          в данном случае, скорректирую аналогию:
          а зачем вы закапываете яму, которую только что выкопали?


          1. kinall
            05.05.2019 14:24
            +1

            Это была не аналогия, а пример того, когда после вопроса «зачем» не надо ставить на человеке крест.
            Если более серьёзно, то, при всём уважении к авторитетам, «зачем» спрашивать можно и нужно. Если ответ будет «Затем, что мне это интересно» – прекрасно. А если, скажем, «Ну, вроде надо бы… Все так делают… Начальник велел...» – то это повод задуматься.


    1. sim2q
      05.05.2019 13:58
      +1

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


      1. DrPass
        05.05.2019 16:09

        Ну как передовая? В целом неплохая, вполне современная по характеристикам на момент выхода. Но, например, за несколько лет до БЭСМ-6 уже вышло семейство IBM-360, которое представляло собой совсем другой технологический и инженерный уровень. Если БЭСМ-6 строилась на дискретной диодной логике, то там уже были гибридные микросхемы. И плюс масса удачных архитектурных решений, которые живы до сих пор — виртуальная адресация, микрокод и т.д.


  1. token
    04.05.2019 16:01

    Старкрафт на ней пойдет?


    1. DGG
      04.05.2019 19:24
      +3

      Нет, только DEFCON


      1. gudvinr
        04.05.2019 22:35
        +1

        Эмулятор чемоданчика с кнопкой на ардуино будет с боеголовками из нерфгана?


  1. ZEvS_Poisk
    04.05.2019 16:04
    +1

    Великолепная идея!


  1. maxzhurkin
    04.05.2019 16:21
    +1

    Теперь понятно, почему новости доверили только редакторам: если даже они теряются, что же говорить про простых смертных!


  1. AleXP3
    04.05.2019 16:31
    +2

    Я даже успел месяц, на школьной практике, поработать на БЭСМ-6 оператором. Там весь цимус не в ЦП, а во внешней памяти на магнитных лентах, в терминале оператора, в виде самопишущей печатной машинки, и в устройстве ввода с перфокарт размером с хороший комод :) Это все реставрировать бы и показывать молодежи. Получилось бы интересная тема.


    1. gudvinr
      04.05.2019 22:38
      +2

      В музее РФЯЦ-ВНИИЭФ в Сарове есть БЭСМ-6 (макет, скорее всего, с частью оригинальных компонентов). Но по понятным причинам мало кто может туда сходить.


  1. kgbplus
    04.05.2019 17:24
    +4

    К слову сказать — это проект того самого Сергея Вакуленко. С учетом его прошлого и нынешнего опыта, думаю все получится.


    1. eugenk
      04.05.2019 20:45
      +1

      Спасибо за наводку. Очень крутой мужик. Увы, ничего раньше о нем не знал.
      Нда… Am2900/K1804… Как много в этом звуке для сердца русского слилось… :))))
      Надо же, а сейчас всё что угодно лепится вообще на одном кристалле!
      Кстати гитхаб у мужика интереснейший!


  1. SergeyMax
    04.05.2019 18:21
    +1

    Без копии лентопротяжного механизма это будет конечно не так лампово.


    1. saipr
      04.05.2019 23:21

      Да, без лентопротяжки было тяжело!



  1. eugenk
    04.05.2019 20:37
    +1

    Блин, ностальджи! Первый написанный мной код. Ещё на перфокартах, на фортране. Помню как у нас народ сам резал перфокарты бритвой, чтобы не ждать очереди, если поправить надо одну-две карты. Когда стали допускать желающих к перфоратору, это казалось необыкновенно крутым! Ну кто мог подумать, что через 30 лет у каждого на столе будут компы в сотню раз мощнее, а старушку БЭСМ-6 будут эмулировать просто в качестве хобби-проекта!

    Огромное человеческое спасибо за эту новость! Сейчас смотрю гитхаб и предаюсь воспоминаниям. Слова-то какие (для тех кто понимает конечно) БЕМШ, Madlen…


    1. Foveator
      04.05.2019 21:36
      +1

      Автокод Мадлен, Монитор-80, Фортран-4, Вторая лента, Дубна, Заказчик…
      Все казалось прошло, но вдруг на работе засветился тендер на решение задачи целераспределения (кстати словарь моего Windows не понимает последнего слова).
      Нашли подрядчика только для решения транспортной задачи для чартерных грузоперевозчиков. Персональный подрядчик не смог формализовать даже естественные потребности водителей и пассажиров — оптимизирует движение абстрактных автомобилей.
      У меня же лежит в перфокартах почти готовое решение задачи, но нет ни того Транслятора, ни Компоновщика и нет математической второй ленты программ, которую раньше ассоциировали с Дубной.
      Файн Ридер правда язык перфокарт Фортрана знает, но всё выше изложенное найти проблематично.
      А может уже и незаконно?


      1. eugenk
        04.05.2019 21:50
        +1

        Нда… Забавная ситуация… Единственно что могу тут посоветовать, это как-то оцифровать Вашу колоду. Например подложить под карту что-то черное, ярко осветить и отсканировать. Или наоборот, положить карту на подсвеченное молочное стекло и отсканировать в слабом свете. Вобщем чтобы получился набор файлов с размеченными дырками. Формат расположения дырок в перфокарте думаю несложно будет найти и восстановить текст программы (у Вас Фортран-4, я правильно понял ?). А современные компиляторы фортрана наверняка с 4-м совместимы. Это научный софт. А он как правило пишется на века, там обратная совместимость одно из главных требований. Вобщем главное найдите способ отсканировать и оцифровать сами карты. Дальше будет легче.

        P.S. С математической лентой тоже поправимо. На фортране у Вас будут вызовы этих функций. По именам. Такие имена как SIN или COS наверно вполне очевидны. Для имён менее очевидных наверняка есть куча справочников ещё с тех лет. Да я думаю что и современные фортрановские математические библиотеки должны быть совместимы. Вобщем мне задача безнадёжной совсем не кажется. Хотя могу конечно ошибаться, деталей не знаю.


        1. Foveator
          04.05.2019 22:09
          +1

          Уважаемый eugenk!
          Как бы сканер с Файн Ридером в каждом доме, в каждом офисе.
          Проблема, что вторая лента Дубна с подпрограммами осталась на НПО "Энергия" и мною не приватизирована.
          Нет и Фортран-4 в Compaq Fortran 6.0.


          1. eugenk
            04.05.2019 22:35
            +1

            Я думаю можно и без сканера, хватит фотоаппарата, а возможно даже и телефона. Главное подберите освещение (наверно надо попробовать два варианта, карта на черной подложке при ярком свете и карта на светящейся подложке при слабом свете) и обеспечте стабильные условия съёмки. Т.е. камера закреплена на штативе, и карта кладётся на постоянное, отмеченное место. Да согласен, геморно. Особенно если карт много. Но эта работа делается только один раз, можно и потерпеть. В качестве бонуса кстати спасёте от забвения ценный исходник, что тоже немаловажно. А прочитать такие снимки уже будет несложно чем-нибудь самописным, на той же яве. Взять одну-две-три карты, внимательно посчитать дырки ручками, и на этом думаю читающую софтину можно полностью отладить. Сам совсем недавно чем-то подобным занимался (правда немного с другой целью).

            С лентой подпрограмм, можете запинать меня ногами, но проблема представляется мне вполне разрешимой. Во-первых наверняка современные библиотеки с ней совместимы. Во-вторых думаю не такая уж проблема достать оригинальную. В конце концов можно связаться с тем же автором этого проекта Сергеем Вакуленко ru.wikipedia.org/wiki/%D0%92%D0%B0%D0%BA%D1%83%D0%BB%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87. Судя по всему он заядлый компьютерный археолог и почитатель старины. Так что у него такие вещи вполне могут быть. Либо посоветует где искать.

            P.S. Ещё вариант чтения. Если у Вас где-нибудь завалялась Raspberry Pi, к ней можно подключить камеру. Причем за вполне гуманные деньги (увы, сейчас не помню, но по-моему в пределах тысячи). В этом случае читалку можно будет наваять прямо на ней. Так чтобы она например зажигала светодиод, когда карта успешно прочитана. Так будет ещё удобнее. Просто двигаешь карту по столу, как добился правильного положения, она сразу прочитается. Ни передавать кучу файлов, ни беспокоиться о качестве каждого. Просто и удобно.

            P.P.S. Думаю такую читалку можно наваять и для телефона на Андроиде.


            1. Foveator
              04.05.2019 23:40
              +1

              Благодарю eugenik за совет решить стандартную задачу Файн Ридера оцифровки перфокарт, содержащих программы Фортран, окольным путём.
              Благодарю eugenik за совет обратиться за помощью к подвижнику Вакуленко со своей корыстной задачей.
              Напомню, что это я хочу срубить денежку на ипотеку у гражданского заказчика.
              А судя по имиджу, рекомендованного Вами Вакуленко, он потенциально (10% вероятность) сможет и сам найти решение задачи распределения ресурсов.
              Быть промежуточным звеном (взять на себя ответственность за получение у заказчика денег по договору) я боюсь. Тут возможен облом 50%.
              В отношении надежды на совместимость подпрограмм, написанных для Фортран-4 для 48т разрядной техники, с современными открытыми архивами.
              Не уверен. 50% на 50%. Но выяснить это удастся только в ходе компоновки моих архивных программ.


              1. SergeyMax
                04.05.2019 23:49

                Зато у вас есть шанс стать первым, кто будет использовать клон БЭСМ-6 в продакшене!


              1. eugenk
                04.05.2019 23:50
                +1

                Не, ну тут как бы Вам виднее. Хотите Файн Ридер, делайте с ним. Хотите сами написать такой софт — это день-два работы, не больше. Если речь только о решении задачи распределения ресурсов, с вероятностью 50% это успешно сделаю и я(хотя тоже много от чего зависит). Просто ситуация показалась мне достаточно нетривиальной и интересной.
                Удачи Вам в срубании денюшки :))))


    1. taikor
      06.05.2019 09:16
      +1

      Настальжи! Начинал с ещё большей древности — УМ НХ, там программирование проволочкой через ферритовые кольца. А когда перешёл на ЭВМ М-6000 АСВТ, то был прогресс. Начальный абсолютный загрузчик приходилось напрямую вбивать в память в двоичном коде с пульта управления. Зато весь комп твой и ты сам управляешь прерываниями нулевой страницы и прочим.