На EP8266 можно эмулировать «Радио-86РК», но до микропроцессора 8080 был 8008, о котором сегодня ретрокомпьютерщики вспоминают реже. Его тоже удалось эмулировать на этой платформе и запустить интерпретатор Бейсика SCELBAL.

В проекте автор объединил два своих же предыдущих. Первый — эмулятор 8008 на той же платформе, но без видеовыхода, а второй — так и не доведённый до рабочего состояния (не хватило ОЗУ) эмулятор IBM PC XT с видеовыходом. Взяв из второго проекта код реализации видеовыхода, автор добавил его в первый, получив прошивку для предлагаемого устройства.

Схема его показана ниже:



Эта же схема же в PDF — здесь. Режим взаимодействия через последовательный порт, унаследованный из первого проекта, сохранён, для выбора между портом и видеовыходом предусмотрен переключатель на два положения и два направления. Когда выбран видеовыход, ввод данных происходит с PS/2-клавиатуры. Собранная конструкция у автора выглядит так:



Автор также подключил к устройству свой же перфосчитыватель (тот из двух вариантов, который меньше размерами), но не обновил схему. Так выглядит конструкция вместе с перфосчитывателем:

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


  1. Alyoshka1976
    29.04.2019 08:46
    +1

    Интересно предназначение конденсатора C2! Хотя номиналы резисторов в делителе видеовыхода тоже довольно необычные.


    1. x86128
      29.04.2019 10:26
      +1

      Чтобы удалить низкочастотную составляющую сигнала и не спалить выход.


      1. Alyoshka1976
        29.04.2019 10:42
        +1

        Мой интерес не праздный — у меня есть похожий в некотором смысле проект, в котором 328-я мега в формате Arduino Nano R3 эмулирует компьютер на i8080 с видеовыходом. Сакральный смысл удаления постоянной составляющей мне остался непонятен. А сжечь выход не дадут 120 Ом делителя.


        1. tormozedison Автор
          29.04.2019 10:46

          Расскажите о нём.


          1. Sly_tom_cat
            29.04.2019 11:22
            +1

            Люто плюсую — очень интересно узнать о проекте на Arduino!


            1. Alyoshka1976
              29.04.2019 14:21
              +1

              В первоначальной версии Nano использовалась для эмуляции системы команд i8080, а SD-карточка — для эмуляции ОЗУ (с системой кэширования для ускорения доступа) и НГМД (хранит образы дискет), общение было через последовательный порт.
              Во второй версии Nano не только эмулирует процессор, но и занимается видеовыводом (можно подключить к композитному входу ТВ). При этом я таки отказался от эмуляции RAM через SD в пользу I2C-чипов памяти (два чипа = 64 Кбайта). Малая STM-ка работает как преобразователь PS/2-Serial и позволяет подключать PS/2-клавиатуру. Можно теоретически было заморочиться с регистрами сдвига etc, чтобы отказаться от STM-ки, но я решил, что это уже слишком.
              Концепция видеовывода близка к раннему творению сэра Клайва ZX80, я даже попытался ускорить работу путем гашения экрана, если долго не требуется реакция пользователя. Сама реализация видеовывода потребовала от меня постичь дао обработки прерываний, так как прерывание может приключиться в середине машинного цикла, и если не заморочиться, то в разных строках экрана символы будут сдвинуты друг относительно друга. Да и дао системы команд AVR пришлось постичь, чтобы выводить побольше символов на экран.
              Проект был в suspend mode около года, но завершение FoxyPI и эта статья (спасибо!) подвигли меня на размораживание cpm4nano.
              Вот сейчас сделал скриншот экрана ТВ :-) с загруженной операционной системой CP/M, выполненными командой просмотра директории DIR и теста процессора:

              Работает это поделие, конечно, не быстро, но для игры в STARTREK (текстовую пошаговую космическую игру) хватает. Да и не рассчитывал я на скорость, фан здесь для меня в другом, хотя все это, конечно, субъективно.


              1. Sly_tom_cat
                29.04.2019 15:49
                +1

                Может стоит статьей это оформить?
                Добавить немного схемотехники и самое то!


  1. Alyoshka1976
    29.04.2019 14:20
    +1

    Перенесено вверх