Имитатор Д3-28 на платформе x86/AMD64

16-02-2023 — дата версии обновлённого имитатора, с необходимыми исправлениями в нём. Ссылки на скачивание, согласованные с автором имитатора, — в конце страницы. Желательно, чтобы имитатор Д3-28 проходил, как и любое программное обеспечение, тестирование сообществом.
 
В августе 2022 года имитатор Д3-28 приобрёл способность формировать звуковые файлы для записи программ на внешний магнитофон и таким образом переводить программы из раскодировок (текстовых файлов) в вид, позволяющий загрузить их с кассеты в реальную ЭВМ Д3-28. Эта возможность стала главной особенностью имитатора с номером версии 1.2.

Август 2022 года. Предлагаем Вашему вниманию дальнейшее развитие имитатора Д2-28. Казалось бы, что предыдущая версия имитатора «умеет» все. Но не тут-то было! Теперь имитатор может делать даже сверх «всего» — главная особенность новой версии в том, что имитатор обзавелся возможностью формировать звуковые файлы для записи программ на внешний магнитофон и таким образом переводить программы из раскодировок (текстовых) в вид, позволяющий загрузить их с кассеты в реальную ЭВМ Д3-28.

Для экспериментов с восстановлением и загрузкой программного обеспечения в реальные машины Д3-28 в имитатор версии 1.2 встроено виртуальное «Устройство синтеза wav-файлов из раскодировок программ». В zip-архив с имитатором добавилась папка u_soft — в ней загрузчик и программки на Фортране, Бейсике и в машинных кодах Д3-28 для создания wav-файлов с сигналами различного типа, которые могут понадобиться при разных способах загрузки ПО в Д3-28 и записи на МЛ.
В разделе «Проекты — Программа записи файлов» выложено очень подробное описание этого процесса.

В нашем распоряжении имеется много программного обеспечения для комплексов с 128 килобайтами памяти. Имитатор Д3-28 «128к» работает с такими программами. Он способен в полном объеме исполнять и код для 32-килобайтных систем.

Основные изменения «имитатора-128к» по сравнению с версией от ноября 2018 года:
— расширена функциональность — добавлена работа с новыми кнопками ДУП и РЕД,
— реализована работа с режимом ПРД и ПРС,
— расширено Руководство (добавлены справочные данные по кодам дисплея, по номерам ошибок и по редактированию в Бейсике и в Выстре, описаны новые режимы),
— текст Руководства привязан к файлам в обновлённом архиве в папке txt — в нём описана работа с программами из папки txt (раздел 10 Руководства),
— в папке txt обновлен демо-файл game_1WAR_bas.txt, добавились файлы с «061-тестом» и c тестом клавишных кодов, ряд раскодировок с кассет.
В целом, новая версия позволяет успешно запускать большинство доступных программ.

В июле 2019 года автор имитатора выпустил новую версию, в которой побеждены все обнаруживавшиеся раньше «загадочные глюки» (устранены глюки в имитации работы с Машязом, Бэйсик-Планом, Фортранами -85 и -5М) и, самая большая радость, — удалось, наконец, полноценно запустить МХТИ-128.
Очень подробно обо всем этом Sinus написал в нашем форуме.

В октябре 2019 года имитатор снова обновился. В нем серьёзно уточнена имитация фрязинского дисплея (команд управления маркером в крайних позициях строк, команд сдвига текста вверх и вниз — введена для этого вторая страница ОЗУ дисплея).  Также доработана имитация записи/чтения с МЛ.
Это позволило получить полную функциональность таких программ, как КИПР и МХТИ-128С (и может других).

Апрель 2020 года вместе с Sinus’ом подарили нам новую версию имитатора. Эта версия содержит исправления, которые стало возможно сделать благодаря помощи уважаемой Наталии Xlat по изучению особенностей команд Д3-28. Подробности опытов на «живой» Д3-28 можно узнать здесь.

Главная черта этой версии — в имитаторе побеждены все ранее обнаруженные баги, включая остававшийся до сих пор незамеченным дикий глюк вывода отрицательных чисел в Бейсике с форматом печати «не по умолчанию».

Кроме того:
— В «Руководстве к имитатору» написан заново раздел 9. Теперь там перечисляются врождённые недостатки имитатора и применённые способы его тестирования. В разделах 11-13 местами уточнено изложение материалов о программировании на Фортране и Выстре.
— В имеющуюся в zip-архиве с имитатором папку «txt» добавлены новые файлы с библиотеками программ для Д3-28 и с подробными пояснениями в конце.
В частности:
— В файле diakonov-87__bas.txt — несколько примеров из хорошей книги В.П. Дьяконова «Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ» М, Наука, 1987; плюс пара самодельных примеров «студенческого» уровня сложности на основе алгоритмов из этой книги — вычисление интегралов для расчёта импеданса дипольной антенны, численное интегрирование уравнения Шрёдингера в задаче квантовой механики о гармоническом осцилляторе.
Имитатор здесь служит как бы «продвинутым научным калькулятором в ПК». Конечно, до Маткада он не дотягивает, но всё-таки кое-что может 🙂 и как бы продлевает жизнь упомянутой старинной книге, полезной для самообразования.
— В файле q-eq_ris-9_KP-543_KP-7765_KP-34321.txt сравниваются возможности компиляторов Фортрана и Выстры в создании программ для «голой» Д3-28, без периферии.
— В sip_sip-wyw-auto_sip-upr-auto__vystra-texts.txt — конкретные примеры применения Выстры для создания программ опроса периферийных устройств, подключаемых к Д3-28, в том числе, может быть, через интерфейсные платы в УСО. Заодно поясняется общий метод создания программ на языке «Выстра» через вызовы самодельных процедур с передаваемыми и возвращаемыми параметрами; ими могут быть как одиночые числовые переменные, так и массивы чисел.

12 декабря 2021 года уважаемый Sinus (Сергей Лыков) подарил нам (и мне прямо к празднику дня РВСН) новую версию имитатора, содержащую не только улучшения имитации отдельных ситуаций, но и очень ценные дополнения к основному функционалу. А именно — в имитатор теперь встроенный дизассемблер. С его помощью можно выводить в текстовый файл содержимое памяти Д3-28 в мнемокодах. Подробно эта функция описана в разделе 4 документации.
Подробнее об этом и других изменениях:
— В имитаторе теперь есть дизассемблер рабочей зоны памяти Д3-28; программы из файлов он тоже может дизассемблировать; получающиеся листинги выводятся в текстовые файлы. Листинг рабочей зоны памяти полезен тогда, когда программа в файле записана не целиком, а в виде блоков. (Блоки содержат служебные байты, не являющиеся кодами машинных команд, притом загрузчики могут размещать блоки в ОЗУ с перекрытием или не подряд, поэтому листинг блочной записи даёт не всегда верные номера шагов и мнемонику. В этих случаях листинг ОЗУ предпочтительнее.)
— Добавлены новые бейсик-программы:
day_of_week__bas.txt – определяет день недели по задаваемой дате.
search_sip__bas.txt – обнаруживает Синхро-Импульс Периферии (СИП) по задаваемым УПР и ВЫВ. В имитаторе эта программа пригодна для опытов с выводом байтов в дисплей и в ТПУ. А в реальности она пригодилась бы для поиска кодов активации незнакомых интерфейсных плат в УСО, если такие есть, и для проверки подключенных к Д3-28 периферийных устройств.
— Соответственно обновлены разделы «Руководства к имитатору» — в раздел 4 добавлена информация о работе с дизассемблером; в раздел 10 — о новых программах.

Ссылки на этой странице обновлены и указывают на самую последнюю версию имитатора.

Для начала работы с имитатором рекомендуем ознакомиться с очень подробным Руководством и внимательно выполнить рекомендации, изложенные в его начале относительно соответствия клавишей клавиатуры системного блока Д3-28 и клавиатуры современного персонального компьютера. Ничего сложного нет, все очень логично и продуманно, запоминается быстро.
Системные требования изложены на второй странице Руководства, но позволим себе их повторить здесь:
— имитатор запускается и исполняется на компьютерах под управлением Windows начиная с 98/ME и до 10.
— имитатор запускается и исполняется на компьютерах под управлением Linux + WINE любых версий. Никаких настроек не требуется — просто запускаем «экзешник» под WINE и работаем.
— и под Windows и под Linux программа имитатора является перемещаемой, то есть не привязана инсталлятором к определенному месту на диске компьютера и запускается из любого места на диске. Однако, просим учитывать, что экзешник imitator.exe НЕ является перемещаемым ОТДЕЛЬНО от обязательной подпапки «bmp«. Перемещаемым является каталог с экзешником и с обязательным подкаталогом «bmp«.
— к монитору никаких требований нет.
В связи с этим, опробовать имитатор в работе очень просто и быстро.
Предлагаем очень краткую инструкцию по «быстрому старту». Она является выжимкой из полного текста и позволяет быстро и просто запустить имитатор и убедиться в его работоспособности.
А убедившись, что это работает, Вы с интересом прочитаете и основной текст Руководства. Несмотря на обилие пунктов нашей «краткой» инструкции, выполняется она в считанные секунды, если ее сначала прочитать до конца и разобраться с клавишами и меню.
Итак, коротко:
1. Скачиваем на свой компьютер (лучше в отдельный каталог) архив с файлами имитатора и распаковываем его. Особенность распаковки состоит в том, что в результате, в избранном каталоге Вы получите исполняемый файл imitator.exe и подкаталог bmp с изображениями. Именно в таком составе — «экзешник» с подкаталогом — имитатор является перемещаемым. Без изображений работа имитатора невозможна — учитывайте это при распаковке или перемещении.
2. Скачиваем туда же файл Бэйсика 3А Д3-28 (текстовый файл в формате имитатора).
3. Скачиваем туда же файл программы на Бэйсике.
Если Вы распаковали полный архив с файлами имитатора по п.1, то все необходимые программы находятся в подкаталоге txt и скачивать их по пп.2,3 не надо — они у Вас уже есть в подкаталоге txt.
4. Запускаем исполняемый файл имитатора (экзешник). В Линуксе это делается под WINE.
5. Видим на экране нашего компьютера изображение системного блока Д3-28 с клавиатурой, кассетным накопителем на магнитной ленте и индикаторами.
6. «Ставим» в НМЛ (он справа) кассету с Бэйсиком. Для этого, с помощью меню, пункт «File», выбираем ранее скачанный (или из подкаталога txt) файл Бэйсика 3А. Справа на картинке НМЛ «закрывается» крышкой, это признак того, что кассета установлена в НМЛ.
7. Нажимаем на клавиатуре нашего компьютера клавишу «С» латинской раскладки (это аналог «С» на клавиатуре системного блока Д3-28, нажимаем на всякий случай, чтобы быть уверенными, что начинаем работу с «чистого листа»). Далее по тексту жирным шрифтом выделены клавиши на клавиатуре персонального компьютера (не Д3-28).
8. Нажимаем «L». Это мы дали команду клавишей «СЛ» на клавиатуре Д3-28 прочитать Бэйсик с кассеты.
9. Нажимаем «К» латинскую (это «КП» на клавиатуре). На индикаторе видим контрольную сумму Бэйсика — 157107.
10. Снова «С».
11. Теперь «S». Это запуск программы Бэйсик 3А.
12. Теперь переключаемся через пункт «View» верхнего меню имитатора в режим отображения дисплея.
13. Нажимаем на клавиатуре клавишу «F5» (переводим дисплей в режим OnLine). Видим приветствие Бэйсика.
14. На приветствие и вопросы отвечаем «Enter». Если у Вас до сих пор нет термопечатающего устройства, не расстраивайтесь — Sinus об этом позаботился. ТПУ так же имитируется, как и Д3-28, только печатает не на бумагу, а в файл. Подробности в полном тексте Руководства.
15. Как загрузить и выполнить Бэйсик-программу, скачанную в п.3, читаем в Руководстве начиная со страницы 38.

Успехов!

Файлы для скачивания:
Полный архив файлов имитатора и пакета программ, ZIP, 8.2 Мбайта и исходников, ZIP, 2.6 Мбайт от Sinus´а.
Руководство пользователя, PDF, 157 страниц, 5.3 Мбайта.
Бэйсик 3А Д3-28 кс.157107, TXT, 111 кбайт.
Бэйсик-программа 1WAR, TXT, 71 кбайт.