Эмуляторов IBM PC/XT в сети навалом, но для Мурмулятора (https://murmulator.ru) пока есть только один: https://github.com/xrip/pico-xt.
Вопросы на тему «Зачем вообще нужен этот ваш мурмулятор?» мы тут обойдём, т.к. данное устройство относится к разряду «хобби», и по уровню полезности можно сравнивать только с такими же хобби, как собирание марок или монет. Хотя, некоторые умудряются включить сборку Мурмулятора своими руками в работу радио‑кружка. Но это - другая история.
![IBM PC/XT эмулятор (pico-xt) на Мурмуляторе IBM PC/XT эмулятор (pico-xt) на Мурмуляторе](https://habrastorage.org/getpro/habr/upload_files/372/8a8/03d/3728a803deb53cf8fe817e2243fc4964.png)
Сам эмулятор не придерживается строгих стандартов и просто пытается вытянуть всё, что можно из достаточно ограниченных возможностей микроконтроллера RP2040 (на котором и построен Мурмулятор). Например, эмуляция процессора реализует часть команд, добавленных только в процессор 80186, или даже 80286, поэтому часть утилит определяю его некорректно:
![Norton Utilities на pico-xt - О системе Norton Utilities на pico-xt - О системе](https://habrastorage.org/getpro/habr/upload_files/e5e/6a2/366/e5e6a23668cb1f6483b6cca7579d8cb4.png)
![CheckIt на pico-xt - бенчмарк CheckIt на pico-xt - бенчмарк](https://habrastorage.org/getpro/habr/upload_files/824/fb3/a2f/824fb3a2f8c775c0d42285c91071125a.png)
RP2040 содержит всего 264 КБ памяти, поэтому для pico-xt реализован swap-файл, который позволяет расширить доступную для DOS память до 640 КБ, дополнительно реализована эмуляция EMS (LIM 4.0):
![CheckIt на pico-xt - тест памяти CheckIt на pico-xt - тест памяти](https://habrastorage.org/getpro/habr/upload_files/4df/f49/837/4dff4983702ea8d990df0aaf3dc69b35.png)
Реализация XMS в pico-xt недоступна, т.к. для нормальной реализации требует процессора минимум 80386, но некоторая обрезанная XMS-логика в эмуляторе всё же присутствует, что позволяет DOS адресовать HMA и UMB.
![MS DOS 6.22 результат команды mem MS DOS 6.22 результат команды mem](https://habrastorage.org/getpro/habr/upload_files/aec/1ee/948/aec1ee9480c0f0c8ec556e417e43511b.png)
![Norton Utilities на pico-xt (XMS) Norton Utilities на pico-xt (XMS)](https://habrastorage.org/getpro/habr/upload_files/bdc/0af/cd4/bdc0afcd41a17120d5ee400e46ab17a9.png)
У владельцев Мурмулятора v1.4, или Мурмулятора с навесной PSRAM, своп не включается, а задействуется внешняя память.
![Производительность в режиме swap Производительность в режиме swap](https://habrastorage.org/getpro/habr/upload_files/6cb/c33/058/6cbc33058a9540dcd001c92cd9244c9d.png)
![Производительность с подключеной PSRAM Производительность с подключеной PSRAM](https://habrastorage.org/getpro/habr/upload_files/47b/1fc/2e4/47b1fc2e4d9583bb679ad4c91101a97b.png)
VGA и EGA режимы на pico-xt поддерживаются крайне ограничено (мало памяти в микроконтроллере) и 90% игрушек в них работать не будет, хотя, некоторые утилиты и определят наличие соответствующего видеоадаптера, а стандартные для PC/XT MDA и CGA крайне убоги. Но! Разработчик прошивки предусмотрел поддержку TGA, поддержку которой, в свою очередь, имеют почти все игры тех лет.
А вот, например, культовый Принц Персии запускается в VGA режиме:
![Принц Персии на pico-xt (VGA) Принц Персии на pico-xt (VGA)](https://habrastorage.org/getpro/habr/upload_files/c66/5b2/39b/c665b239bde8ef46c3abca38dd205013.png)
![Принц Персии на pico-xt Принц Персии на pico-xt](https://habrastorage.org/getpro/habr/upload_files/d0c/f37/323/d0cf37323269cff23258bd8f57c54343.png)
Со звуком в pico-xt тоже всё в порядке - эмулируются Tandy Sound и Disney Sound Source. Т.е. игрушки, которые шли на Tandy 1000 (клоне ХТ) пойдут и на эмуляторе. Поддержки Sound Blaster'ов пока не завезли ((.
Wolf 3D тоже вполне можно запустить, но только в TGA режиме (wolf3d tandy), и он даже относительно играбелен:
![Wolf 3D на pico-xt TGA EMS/XMS Wolf 3D на pico-xt TGA EMS/XMS](https://habrastorage.org/getpro/habr/upload_files/0a4/346/4be/0a43464be096c95eec0beaae048b02a1.png)
![Секрет Острова Обезьян на pico-xt (VGA) Секрет Острова Обезьян на pico-xt (VGA)](https://habrastorage.org/getpro/habr/upload_files/ea0/62e/d7d/ea062ed7d13a6361b9e2bf4067a72701.png)
Для фанатов CP/M - её тоже можно запустить на pico-xt:
![CP/M-86 ver.1.1 на pico-xt CP/M-86 ver.1.1 на pico-xt](https://habrastorage.org/getpro/habr/upload_files/596/838/935/59683893559e9464a7b571ff988932c4.png)
Последняя версия эмулятора доступна тут: https://github.com/xrip/pico-xt/releases
Сам Мурмулятор: https://murmulator.ru/types
Пишите вопросы ниже, буду рад ответить, а возможно, что и ещё статью напишу...
Комментарии (13)
Javian
10.09.2024 19:02Надо наверное было на King's Bounty (1990) продемонстрировать видеорежимы - игра запускается в Hercules/CGA/EGA/VGA
Advisers
10.09.2024 19:02Интересно! Как насчет какого-нибудь браузера, походить по интернету?
mikeveng73 Автор
10.09.2024 19:02С этим пока никак - сетевых карточек и модемов в комплекте эмуляции не имеется.
tormozedison
10.09.2024 19:02Некоторые мало требовательные к объёму ОЗУ вещи (например, GW-BASIC) пойдут и без свопа, полезно приделать функцию его отключения в таких случаях для предотвращения износа флеша.
mikeveng73 Автор
10.09.2024 19:02Там своп на внешнюю SD-card, которые сейчас стоят копейки, т.е. смысла не имеет заморачиваться с этой кастрацией (имхо).
n2dt4qd2wg9b
10.09.2024 19:02+1Это класс, за это спасибо. Давно мечтал о мелком XT/AT совместимом.
С интересом слежу за развитием вашего проекта.
Молодцы, что опубликовали на Хабре, иначе бы я вас не узнал бы
n2dt4qd2wg9b
10.09.2024 19:02А когда подключаешь 8МБайт PSRAM ESP-PSRAM64H то сколько её становится доступной внутри 8088 машины? Что ещё она облегчает?
mikeveng73 Автор
10.09.2024 19:02Ну, если внимательно читать статью, то там написано, что своп отключается при подключении PSRAM ;)
В текущей сборке доступно 4 метра памяти в сумме (пофиг какой, psram или swap). Если надо заюзать именно 8, можно подсобрать отдельный билд, но я не вижу для ХТ необходимости в таком количестве памяти. Просто нет программ, которым столько нужно.
Ну и опять, если внимательно читать статью, то там есть 2 скриншота: один - перформанс со свопом, второй - с псрам. И с псрам оно изрядно быстрее.
xrip
Только я бы сказал, что поддержка VGA очень хорошая, EGA никакая, TGA почти на 100%, CGA тоже близко к 100% если не лезть в извращения с знакогенераторами и прочими вещами свойственным больше демкам, чем реальным продуктам.
mikeveng73 Автор
Данному нику - верим )) Так как он и есть основной разработчик pico-xt.