Форум

Пожалуйста или Регистрация для создания записей и тем.

Об имитаторе комплекса с Д3-28 и тому подобном

Не уверен, что соберусь когда-нибудь продолжать как раньше "выпускать" : ) обновления "имитатора Д3-28". Поэтому пусть здесь будет ветка для всякой дополнительной/промежуточной информации по имитатору, и для вопросов/ответов/пожеланий/критики/баг-репортов/обсуждений, если таковые будут возникать.

Для начала поясню термин "имитатор". Дело в том, что этот симулятор я сочинял тупо методом проб и ошибок, притом по-дилетантски (я, увы, не программист, это всего вторая и наверное последняя моя прога в жизни : ) Поэтому общепринятые термины "симулятор" и "эмулятор" зарезервировал для серьёзных программистов, которые, возьмутся за комплекс "Д3-28 + 15ИЭ-00-013 + ТПУ"; зарезервировал, просто чтобы в будущем поисковыми системами интернета обнаруживались бы именно настоящие симуляторы/эмуляторы.

И вот несколько относящихся к имитатору ссылок, приводившихся на форуме "Полигон Призраков":

. Незначительная модификация экзешника: d3-28_imitator_5-11-2020.zip.
UPD: эта модификация уже не последняя,  поэтому отправил её на склад старых версий; см. ниже сообщения об обновлениях.

Модификацию имитатора я теперь выполняю в виртуальной машине. Благодарю Виталия Васильевича Колесника за помощь в установке виртуальной машины, за обучение работе с ней, и за выяснение работоспособности - о которой раньше я даже не догадывался - используемой мной "среды разработки" Visual Studio 1998 года под Win XP SP3. Большое спасибо, Виталий!

. Пояснение устройства программы имитатора Д3-28:
opisanie_imitatora_d3-28.pdf
https://yadi.sk/i/Eee1IR15Wh-NLw

Всё это в папке "D3-28" на яндекс-диске:
https://yadi.sk/d/lyMwL58zuExSD
Там есть и txt-файл с именем AAA_READ_ME_дата - он первый по алфавиту, в нём перечисляю содержимое папки и обновления по мере их появления; (в частности, в нём есть ссылка на папку со всеми прежними версиями имитатора, с исходниками, которые однако уже не представляют интереса, поскольку в них обнаруживались баги)).

kosbo отреагировал на эту запись.
kosbo

Ура, свершилось:) xlat & maddev активно разрабатывают полноценный эмулятор Д3-28; вот ссылка на сообщение xlat об этом проекте на "Полигоне".

Обновил ещё раз экзешник имитатора Д3-28: d3-28_imitator_10-06-2021.zip

UPD: но и эта версия теперь стала не последней и отправилась на склад старых вариантов.

UPD: версия от 12.12.2021 тоже устарела и отправлена на склад старых вариантов.

Ссылки на обновлённый имитатор и сопутствующие файлы см. в разделе "Проекты"; (чтобы "все яйца не хранить в одной корзине", оригиналы публикуются также в папке "Д3-28":  https://yadi.sk/d/lyMwL58zuExSD )
.

 

. На всякий случай вот pdf с подробным описанием процедуры переноса проекта имитатора на другой компьютер, т.е. - как самостоятельно собрать exe-файл имитатора Д3-28 из имеющегося исходника (в том числе, может быть, после его редактирования):

zapusk_projecta_imitatora.pdf
https://disk.yandex.ru/i/HJ60GRXM_huSvw

-----------------

В дополнение к теме о создании wav-файлов с ПО для реальной Д3-28 продублирую здесь информацию из своих сообщений на "Полигоне призраков":

. На стадии проверки работоспособности реального комплекса "фрязинский терминал + согласующее устройство ПЕЛ2.240.001 + Д3-28" может быть полезной следующая простая программка. Если она ещё не записана на МЛ, то её несложно набрать на пульте реальной Д3-28, на начальный адрес 0:

1304 0715 1305 1515 1302 1507 1303 1515 0412 1407
0609 0515 1302 1501 0412 1406 1402 0003 0412 1407
1402 0003 1402 0011 0512

Запускается она обычным образом: поочерёдным нажатием на пульте машины Д3-28 кнопок С и S. Перед её запуском надо на клавиатуре включённого терминала зафиксировать в нажатом состоянии клавиши ДУП, ЛИН и РЕД.

Программка ожидает СИП (Синхро-Импульс Периферии) от согласующего устройства с терминалом. Если СИП не придёт, т.е. если устройство, например, выключено или неисправно, то программка выведет на Х-табло число пи и остановится. Если же СИП пришёл, т.е. всё работает нормально, то можно на клавиатуре терминала печатать любые символы, и программка должна их выводить на экран терминала. При отпущенной клавише ДУП каждый символ должен выводиться на экран дважды (один раз программкой через Д3-28 и второй раз напрямую с клавиатуры в терминале). Останов - кнопкой С на пульте Д3-28. Повторный запуск: С и затем S.

. При создании на МЛ внешним кассетником со схемой записи Д3-28 двухканальной записи (типа "обычная для Д3-28 запись на МЛ") надо сначала понять, где получается канал нулей, а где канал единиц.

Для этого можно в Д3-28 в её НМЛ записать на кассету сколько-то нулей, - например, 1024 штук нулевых байт. И послушать эту запись на внешнем кассетнике: звучание меандра, изображающего нули в канале нулей, будет слышно только из одного канала. Затем запишем на кассету тем же внешним кассетником синтезированный в компьютере аналогичный wav-файл, и сравним звучание обеих записей. Если всё верно, то обе записи должны звучать из одного и того же канала; притом они должны быть похожими друг на друга по тону, если правильно выбрана скорость при синтезе wav.

С настройками по умолчанию синтезатор 2-канального wav-файла в имитаторе версии 1.2 создаёт вот такой аудио-файл с 1024 нулевыми байтами:

44100_2ch-d3-28_dm-46_dF-16_N-1024_0.wav
https://disk.yandex.ru/d/VYi12A-H3WmMkA

Для создания же записи нулей в реальной Д3-28 можно выполнить следующие действия на пульте реальной Д3-28:

1. С начального шага 10000 вручную набираем программку, которая начальную область ОЗУ заполнит 1024 нулевыми байтами:

0413 1008 1300 0004 0413 0408 0514 0515
0413 1208 1303 0000 0413 1000 0413 0500
0912 0300 1000 0100 1408 0308 1402 0007
1303 0512 1302 0512 0904 0900 0700 0512

2. Задаём начальный шаг 10000 и запускаем с него эту программку кнопкой S. Программка выведет на Х-табло число 1024 и остановится - для ввода в регистр Х другого значения, если мы захотим иметь не 1024 нулевых байт, а меньше либо больше.

3. Нажимаем S. Программка с начального адреса 0 помещает байт 0000 в указанное количество ячеек ОЗУ, добавляет в конце байт-код 0512 (это команда END), и останавливается. Признаком успешного её выполнения служит число 0 на Х-табло.

4. Ставим в НМЛ Д3-28 кассету, на всякий случай с уже промотанным ракордом. Нажимаем кнопку С; и нажимаем кнопку ЗЛ - так запускается процесс записи на МЛ из ОЗУ с шага 0 до шага с кодом END.

Если прослушивание покажет, что в записи на внешнем кассетнике канал нулей переставлен по сравнению с его положением в записи на Д3-28, то надо либо перепаять шнур, либо программно задать перестановку каналов в настройке синтезатора wav-файлов в имитаторе (как объяснено в сопутствующем pdf, имеющемся также здесь: https://disk.yandex.ru/i/5ASclSQXmKdqWQ ).

. Здесь https://disk.yandex.ru/d/D_9__IPtC1L-MQ можно скачать архив u_soft_2.zip с папкой u_soft_2, добавочной к имеющейся в zip-архиве с имитатором папке u_soft.

В папку u_soft_2 я добавил txt-файлы, предназначенные для преобразования в wav для загрузки в реальную Д3-28 и сохранения на МЛ, с бейсиковскими программками. Вдруг для какого-нибудь музея пригодятся. Это текстовые игры "Посадка на Луну", "Королевство Эйфория", "23 спички", "Казино", "Звёздная война" (студенческая самоделка), и демо "Тараканьи бега". Там же есть и pdf с инструкцией по их загрузке в реальную Д3-28.

Просьба к тем, кто когда-нибудь поэкспериментирует с загрузкой ПО в реальную машину Д3-28: напишите, пожалуйста, о результатах (здесь на форуме или на форуме "Полигон призраков"). Аналогичная просьба и ко всем, у кого появятся дополнительные соображения, поправки, вопросы.  Заранее Вам большое спасибо.

 

Вот улучшенный вариант  txt-файлов с блочными программами для преобразования в wav с целью загрузки в реальную машину Д3-28 и сохранения в ней на МЛ:

u_soft_3.zip
https://disk.yandex.ru/d/Ai15QyFJSuMaUg

Улучшение (по сравнению c пакетом u_soft_2, ставшим теперь не актуальным) заключается в том, что для загрузки ПО из файлов пакета u_soft_3 в Д3-28 и копирования на МЛ уже не нужно будет туда-сюда подключать/отключать дисплейный терминал к работающей машине Д3-28. В этом варианте терминал вообще не нужен для загрузки и копирования ПО.

Кроме того, в папку u_soft_3 я добавил ещё несколько блочных программ: это варианты ОС ВТ МХТИ, ЭТ-10, Мини-монитор, Фортран Кочеткова.

Подробные пояснения и инструкции по загрузке ПО из пакета u_soft_3 в реальную Д3-28 даны там в pdf; вот отдельная ссылка на этот pdf:

info__u_soft_3.pdf
https://disk.yandex.ru/i/Z_kjmww-OtpERQ

 

В очередной раз обновил я имитатор Д3-28; дата этой версии: 19-05-2024.

Один из главных поводов для обновления - удалось изучить и добавить имитацию команд типа SPCMD, нужных при вычислении тригонометрических и гиперболических функций из "Стандартного тригонометрического блока программ для 15ВСМ-5". Это двухбайтовые команды с кодами:

0412 0512 - вызов знака
0412 0513 - приведение к квадранту
0412 0612 - приведение к углу < пи/2
0412 0613 - приведение arctg X
0412 0614 - определение квадранта
0412 0713 - зап. Y<0.5, переход через 9 шагов
0412 0715 - приведение к углу < пи/4

В папку txt в zip-архиве с имитатором добавил две программы, работающие с этими командами:

trigon_15vsm-5_red_d3-28_KP-4584_N-417.txt - это адаптированный к Д3-28 блок подпрограмм для 15ВСМ-5,

test_block-2_15vsm-5_KP-5219_N-338.txt - часть "блока 2" из стандартного теста системы команд для 15ВСМ-5.

Пояснения к ним есть в конце этих же txt-файлов. В эмуляторе Д3-28 уважаемой Наталии xlat обе эти программы работоспособны. Всё это, наверное, может заинтересовать того, кто захочет изучать реализацию алгоритмов "тригонометрии" для 15-ВСМ-5 и совместимость команд 15ВСМ-5 с Д3-28.

Ну и, кроме того, в имитаторе кое-что я улучшил:

Исправлен давнишний глюк, заключавшийся в том, что не выполнялась команда извлечения квадратного корня путем нажатия <R> c <Shift>. Теперь это работает.

Исправлена неточность имитации команды RTI с кодом 1211 при возврате из внутреннего прерывания, из-за которой обнаружение ошибки программы в программах Выстры зацикливалось на повторах сообщения "ОП".

Исправлено отображение контрольной суммы (КП) "считанной с ленты" программки при возврате в режим "Работа" после просмотра в режиме "Ввод". Раньше на Х-табло появлялся ноль, потому что значение КП не заносилось в регистр Х. Теперь заносится,  и поэтому КП отображается на Х-табло, как и должно быть, после возврата в режим "Р".

Изменен вывод Х-результата команды с кодом 0808, а именно: теперь в случае отрицательного значения к нему прибавляется 2·пи. Поэтому теперь результирующие значения угла лежат, как и должно быть, в интервале от нуля до 2·пи.

И подредактированы некоторые файлы в папке txt. В частности, обновлён mix-файл: в нём я удалил давно ставшие ненужными фортранные тесты оператора IF, добавил программки TUNN с расчётом для задачи по квантовой физике, на трёх языках - Бейсик, Фортран, Выстра; и добавлена фортранная программка ENRG. В них на упомянутых языках имеются примеры процедур вывода на экран чисел в нормализованной форме с указанием порядка и с округлением. В нескольких местах (немногих) подредактировал текст сопровождающих pdf.

Имитатор Д3-28 с датой 15.08.2024 это немного исправленный предыдущий вариант (который был с датой 19.05.2024). А именно: устранён сброс знака минус при вводе нуля, следующего за знаком минус, когда пользователь вводит число типа -0.abc...

Это небольшая поправка, но я считаю её важной. При вводе чисел типа -.abc... (т.е. без начального нуля) всё работает по-прежнему. Бейсик и Выстра правильно работали и в прежней версии имитатора. Ошибочный сброс минуса скрытно присутствовал только в Фортране. Однако для сложных (длительных) научных расчётов лучше подходит именно Фортран. Поэтому возникавшая при работе с Фортраном в прежних версиях имитатора ошибка в знаке при вводе отрицательных чисел вида -0.abc... представляется очень досадной (хотя ошибка не возникала при вводе чисел вида -.abc)

Имитатор Д3-28 в домашнем ПК годится на роль программируемого вычислительного устройства довольно высокой точности: это свободное "Программное Обеспечение" для домашней студенческой и научной работы, снабжённое простыми удобными языками программирования. Особенно прост Бейсик, но он "интерпретатор" и поэтому сложные расчёты выполняет медленно. Фортран почти такой же простой, но, в отличие от Бейсика, он создаёт быстродействующие программы, поэтому и лучше подходит для расчётов, требующих много машинного времени.