Укнк Возвращается К Жизни!



История развития одного эмулятора



1. Почему?
Можно сказать, что всю свою программистскую жизнь я был программистом приложений.

Участвовал в разработке как коробочных, так и заказных продуктов, как в небольших, так и в крупных компаниях.

Это интересная и разнообразная работа.

Но я никогда раньше не писал ничего, тесно связанного с аппаратным обеспечением, и у меня были довольно поверхностные знания о цифровых схемах, если не сказать вообще никаких.

Но моя юность в программировании прошла за освоением C++ под Win32/MFC :) В какой-то степени мне хотелось проверить свои силы, смогу ли я это сделать.



2. Почему UKSC?
На этих машинах я работал в школе (это было еще в 1992-93 годах), хотя ничего сложнее Бейсика и ползания по дискетам на машине учителя мне делать не приходилось.

Те.

Никаких серьезных знаний об эмулируемой машине у меня не было.

Своего УКСК в моем распоряжении тоже не было и нет до сих пор.

Толчком к созданию эмулятора послужило Сайт Арсения Гордина , на котором он уже несколько лет собирает всю доступную информацию об UKNC и других PDP-11-совместимых машинах.

Точнее, не столько сам сайт, сколько тот факт, что на нем был обнаружен архив «Удаление образа ПЗУ и ОЗУ» , автор - Александр Стрелец (кстати, спасибо ему большое!).

В архиве была описана процедура получения образов ПЗУ на реальной машине, и (о чудо!) были обнаружены захваченные образы.

Тут у меня довольно заметно начали чесаться руки.

Это было где-то в июне 2006 года.

Кстати, на тот момент не было ни одного эмулятора UKSC. (Да и сейчас их вообще не очень много.

)

3. Первые попытки
После этого я начал искать, с чего начать — написать все с нуля для меня (на тот момент) было бы просто невыполнимой задачей.

Поиск показал, что в наличии нет ни одного эмулятора процессора VM2, ни одного в реальной жизни, не говоря уже об исходном коде.

Но уже давно существуют эмуляторы с реализацией ВМ1 — как нетрудно догадаться, это эмуляторы До нашей эры .

Выбор пал на Эмулятор Юрия Калмыкова — во-первых, это было в исходниках, а во-вторых, мне было ближе, потому что писалось под MFC. Из эмулятора Калмыкова были взяты только код процессора и дизассемблер, а от исходной версии сейчас, наверное, практически ничего не осталось - код много раз переделывался.

Через полторы недели будущий эмулятор уже показывал состояния процессоров, памяти, дизассемблированный фрагмент и в ручном режиме я бодро прошёл первые команды .

Дальше предстоял долгий путь доработки процессора, программирования всех устройств UKSC. Некоторое время я медленно топтался в этом направлении, не демонстрируя особых результатов.

Где-то в январе 2007 года я пришел к выводу, что начал не с той стороны — мне очень не хватало информации об устройстве машины и детального понимания работы процессора.

Поэтому я сел писать документ, обобщающий и систематизирующий мои знания по этому вопросу.



4. Совместное творчество
А уже в феврале 2007 года работа над эмулятором резко ускорилась.

Феликс Лазарев, уже имевший писательский опыт, связался с Арсением Гординым.

3DO эмулятор , который хочет написать эмулятор UKSC и ищет коллег.

Развернул SVN для совместной работы и понеслось .

В понимании работы УКСК я был на два порядка слабее, поэтому в основном работал над интерфейсом и отладчиком, пока Феликс перетрясал процессор и устройства.

К концу февраля было рендерер экрана сделан .

К середине марта мы уже увидел текст об ошибках RAM и ROM , полученный в ходе стартового теста.

Примерно в это же время проекту начал активно помогать Алексей Кислый.

У Алексея настоящий УКСК, который он изучил буквально от и до.

Он предоставил нам тексты программы UKNC ROM, дизассемблированные вручную - то, чего так существенно не хватало в то время для отладки эмулятора.

Более того, у Алексея даже был эмулятор UKNC (!), который он писал на ассемблере.

Его эмулятор работал как «половина» настоящей машины: он эмулировал только ЦП и межпроцессорные каналы, для ЦП моделировалось наличие процессора.

Последние 2,5 года Алексей консультирует нас по всем тонкостям эксплуатации машины; его вклад в проект просто неоценим.

19 марта 2007 г.

впервые увидел загрузочное меню .

20 марта 2007 г.

- пройден встроенный тест. Ближе к концу марта Арсению удалось раздобыть дамп единственного известного ПЗУ-картриджа для UKNC — со специальной «кассетной» версией Бейсика.

А 27 марта 2007 года уже загружался в эмуляторе.

А 28 марта загрузка с дискеты (только чтение, без записи на диск) уже работала.

А после этого оба разработчика взяли тайм-аут, глубоко погрузившись в свою основную работу.

В июне 2007 года я сделал установщик и скрипты сборки проекта.

21 июня 2007 г.

я разослал бета-тестерам первый установщик.

Целью было убедиться в правильности моих действий и собрать отзывы об эмуляторе.

В августе 2007 года я получил от Влада Жигалова рукопись «Ресурсы UKSC» — его исследование того, что эта машина дает программисту.

Значит, я не досканировал этот документ, а надо было.

То, что отсканировали - Здесь .

28 сентября 2007 года я опубликовал первую публичную бета-версию — ту самую версию, которую я разослал ограниченным тиражом.

В октябре-ноябре 2007 года вышло три релиза.

Утилита rt11dsk создана для работы с образами дисков без запуска эмулятора.

С помощью Алексея я начал детально разбираться в конструкции контроллера УКНЦ НГМД, чтобы записать его на диск.

27 января 2008 г.

бета 6 .

Запись на диск началась!

5. На открытом воздухе
3 марта 2008 г.

бета 9 .

Проект переходит в открытый исходный код. code.google.com/p/ukncbtl Летом 2008 года вышло еще два релиза, и авторы в очередной раз отказались от проекта.

4 апреля 2009 г.

— Феликс выпустил бета-12. Улучшены тайминги процессора, что обеспечивает реалистичный звук.

Затем мы снова вставили большой болт. Наконец, с ноября 2009 года последние два месяца работа шла почти каждые выходные, вышло три релиза.

Обнаружены приемочные испытания процессоров ВМ1 и ВМ2, которые тщательно проверяют работу во всех режимах.

Благодаря коммитам Алексея мы уже проходим эти тесты.



6. Выводы
  1. Нет ничего невозможного – в общем, я доказал себе, что «я могу».

  2. Но, строго говоря, в одиночку я «могу» слишком медленно, а по-настоящему «могу» только в команде со знающими людьми.

    В ретрокомпьютинге сотрудничество имеет большое значение.

  3. Работа не закончена, и сложно сказать, когда на ней можно будет поставить точку: 99% программного обеспечения уже работает, но эмулятор еще далек от идеала и не доработан.

    Есть возможности для улучшения как с точки зрения точности и полноты эмуляции (магнитофон, принтер, интерфейс C2, сеть.

    ), так и с точки зрения удобства (полноэкранный режим, сохранение состояния.

    ), а также с точки зрения переносимости (Qt , СДЛ.

    ).



УКНК возвращается к жизни!

Сайт проекта: code.google.com/p/ukncbtl Скриншоты: code.google.com/p/ukncbtl/wiki/Скриншоты P.S. 14 ноября 2009 года на базе кода UKNCBTL был запущен проект BKBTL, как минимум эмулирующий BK-0010: code.google.com/p/bkbtl Теги: #retrocomputing #uknc #эмуляция #эмулятор #pdp-11 #Старое оборудование
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.