xlat (xlat) wrote,
xlat
xlat

Categories:

Эмулятор ЭВМ "Электроника Д3-28"

На днях с maddev довели эмулятор ЭВМ "Электроника Д3-28" до состояния, когда хоть что-то можно показать :) Проект всё ещё находится в стадии активной разработки, но посмотреть на то, что есть сейчас, уже можно на моём сайте: https://xlat8086.com/d3-28/



О проекте:

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

Возможности, реализованные на данный момент:

  • Эмуляция центрального процессора, выполняющего микрокод от машины 15ВМ128-018 (версия с 128 Кб ОЗУ).

  • Эмуляция встроенной клавиатуры и дисплея.

  • Эмуляция чтения с магнитной ленты с поддержкой образов ленты в текстовом формате. Поддерживаются стандартные блоки, сохранённые инструкциями SAVEX (например, образ интерпретатора Бейсика) и SAVER (например, файл с программой на Бейсике).

  • Эмуляция видеотерминала, совместимого с "Электроника 15ИЭ-00-013" ("фрязинским дисплеем"), подключенного через последовательный интерфейс "Устройство согласующее ПЕЛ 2.240.001".

  • Отладчик основной системы команд "App Debugger": просмотр содержимого ОЗУ в виде дизассемблера и шестнадцатеричного дампа, просмотр содержимого регистров ЦП, установка точек останова по чтению команды, пошаговое выполнение программы.

  • Отладчик микрокода "Rope Debugger": просмотр содержимого части ПЗУ в окрестности выполняемой микрокоманды (текущий адрес и ближайшие возможные точки перехода), либо адреса, введённого пользователем (микрокоманда выводится в символьном виде с упрощением выражения, вычисляемого АЛУ), просмотр содержимого регистров АЛУ, регистров интерфейса ввода-вывода, регистров управления ОЗУ.


Примеры работы с эмулятором:

Имитация выключения и включения машины (холодная перезагрузка):

В главном меню (три полоски в правом верхнем углу окна) выбрать пункт "Restart". При этом примерно на полсекунды на дисплее должны пропасть индикация цифр и загореться нижний светодиод ("ПУ", "периферийное устройство"). Затем последний должен выключиться, а на табло отобразиться две строки, по 12 нулей в каждой. Нужно учесть, что холодный перезапуск, как и любые другие операции, будет останавливаться, если выполнение микрокода приостановлено в соответствующем отладчике (главное меню/"Rope debugger").

Загрузка и запуск интерпретатора Бейсика:

  • Скачать образ ленты с интерпретатором

  • В главном меню выбрать пункт "Load tape...", в открывшимся диалоге указать загруженный в предыдущем пункте файл. Внизу окна надпись No tape должна замениться на Basic3A-tdm-l__KP-224538_N-15856.txt B: 1/1 0/15858 (имя файла. блок 1 из 1, позиция 0 из 15858).

  • Нажать на пульте СЛ. При этом на некоторое время должны пропасть индикация и увеличиваться счётчик позиции внизу экрана. Когда позиция достигнет значения 15858/15858, индикация должна возобновиться.

  • Нажать на пульте КП. В нижней строке дисплея должно отобразиться число 224538 - контрольная сумма загруженной программы. Это значение обычно присутствует в имени файла, если он содержит одну программу в формате СЛ/SAVEX. В последнем случае числа на дисплее и в имени должны совпасть.

  • Нажать на пульте кнопку C (либо S), затем S. После этого должны погаснуть цифры и включиться нижний светодиод ("ПУ").

  • В главном меню выбрать пункт "Terminal". В окне эмулятора терминала должно отображаться сообщение:

    БЕЙСИК Д3-28, 3A - TDM - L
    СНИМИТЕ КАССЕТУ!


  • Нажать Enter (либо CR на экранной клавиатуре):

    БЕЙСИК Д3-28, 3A - TDM - L
    СНИМИТЕ КАССЕТУ!
    В КОМПЛЕКС ВХОДИТ ПЕЧАТАЮЩЕЕ УСТРОЙСТВО ( 0 - НЕТ, 1 - ДА ) ?


  • Нажать Enter/CR:

    БЕЙСИК Д3-28, 3A - TDM - L
    СНИМИТЕ КАССЕТУ!
    В КОМПЛЕКС ВХОДИТ ПЕЧАТАЮЩЕЕ УСТРОЙСТВО ( 0 - НЕТ, 1 - ДА ) ?
    НОМЕРА ВНЕШНИХ ПОДПРОГРАММ?


  • Нажать Enter/CR:

    БЕЙСИК Д3-28, 3A - TDM - L
    СНИМИТЕ КАССЕТУ!
    В КОМПЛЕКС ВХОДИТ ПЕЧАТАЮЩЕЕ УСТРОЙСТВО ( 0 - НЕТ, 1 - ДА ) ?
    НОМЕРА ВНЕШНИХ ПОДПРОГРАММ?


    ЖДУ:
    :


  • Интерпретатор языка Бейсик готов к работе. Его описание можно почитать в заводской документации.


Загрузка и запуск игры на Бейсике "Тараканьи бега":.

  • Загрузить и запустить интерпретатор Бейсика в соответствии с предыдущим пунктом.

  • Скачать образ ленты с исходным текстом игры.

  • В главном меню через "Load tape..." выбрать загруженный файл.

  • В терминале ввести LOAD и нажать Enter (CR). Внимание: Бейсик "понимает" только операторы, набранные в верхнем регистре (заглавными буквами). Для перехода в режим постоянного ввода заглавных букв можно воспользоваться клавишей Caps Lock на клавиатуре ПК либо экранной клавиатуре.

  • Дождаться загрузки ленты и возврата интерпретатора к приглашению :.

  • Набрать RUN и нажать Enter (CR).

  • Enter, Enter, ввести число от 2 до 10, Enter, ввести небольшое случайное число, Enter. После этого программа должна попросить вручную перевести дисплей в указанный режим.

  • Для установки режима внизу окна отжать кнопку Auto scroll и нажать кнопку Mode 2. Если кнопок не видно - прокрутить содержимое окна до упора вверх.

  • Далее нажимать Enter и дожидаться сообщений программы.


Загрузка и запуск теста системы:

  • Скачать образ ленты с тестом.

  • Загрузить ленту по аналогии с Бейсиком, но не запускать с помощью кнопки пульта S.

  • Запустить тест последовательным нажатием и S.

  • Тест будет выполняться по кругу (каждая итерация занимает примерно полторы минуты), большую часть времени индикация выключена. Примерно через 50 секунд после начала будут кратковременно показаны чередующиеся цифры 1, через 4 секунды - 2 и ещё через 17 секунд - 3, затем сообщение "0128 ####", где #### – количество успешно пройденных итераций теста.
Tags: Электроника Д3-28, отечественные ретрокомпьютеры, ретроколлекция, софт, эмулятор ЭВМ Электроника Д3-28, эмуляторы
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 30 comments