Как стать автором
Обновить

pico-xt — старая добрая PC/XT на Мурмуляторе

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.2K
Всего голосов 27: ↑27 и ↓0+39
Комментарии61

Комментарии 61

Только я бы сказал, что поддержка VGA очень хорошая, EGA никакая, TGA почти на 100%, CGA тоже близко к 100% если не лезть в извращения с знакогенераторами и прочими вещами свойственным больше демкам, чем реальным продуктам.

Данному нику - верим )) Так как он и есть основной разработчик pico-xt.

Есть ли в планах сделать вывод в HDMI? И возможно ли это?

С этим сложности, проще использовать переходник VGA->HDMI

Исходники всех проектов и HDMI и Pico-xt открыты, можете сами оценить, просто там или сложно :)

КМК, при наличии в продаже готового шилда с HDMI к raspberry pi pico за сущие копейки приблизительно двести рублей, и уже решенной задачей по формированию цифрового сигнала в формате DVI/HDMI, возится с формированием аналогового VGA сигнал можно только "из любви к искусству" или just for fun.

Кстати, у меня появилась шальная/дикая/дурная идея (нужное подчеркнуть), а что если в pico-xt добавить второй RP2040 который будет изображать из себя VGA card и звуковушку (covox/adlib/sb), благо ресурсов будет хватать (одно ядро занято на 60%, а второе ядро вообще простаивает). Если это взлетит то у любителей ретрожелезяк появится вариант с новодельной VGA, созданной не за счет каннибализации старого железа, а на новой элементной базе с новыми видеоинтерфейсами.

В Pico-XT, а тем более в Pico-286 и так эмулируются все разумные звуковухи:

PC Speaker

MIDI (только на 286)
Tandy Sound
COVOX
SB 16 (только на 286 с бутербродной PSRAM)
AdLib
Creative Music System (GameBlaster)

У меня была мысль сделать видеокарту на ISA шине на основе пикогуся или isa blaster https://github.com/scrapcomputing/ISABlaster, но дальше идеи дело не пошло, так как много возни с отладкой на реальном железе

В Pico-XT, а тем более в Pico-286 и так эмулируются все разумные звуковухи:

PC Speaker

MIDI (только на 286)
Tandy Sound
COVOX
SB 16 (только на 286 с бутербродной PSRAM)
AdLib
Creative Music System (GameBlaster)

Странно, на гитхабе https://github.com/xrip/pico-xt черным по белому написано что "AdLib emulation, use Ctrl + Tab + A. Default value - it is OFF (experimental, not recomended)"

Да и про SB и MIDI там нет упоминаний :(

И кстати, а можно получить ссылку на репозиторий Pico-286? А то поиск какой то мусор сыпет.

Чукча не писатель, чукча программист, доки писать не самое увлекательное занятие :)

SB и MIDI это только в 286

https://github.com/xrip/pico-286

Собранные бинарники есть в группе мурмулятора (https://t.me/ZX_MURMULATOR/86869) , я ника не оформлю репу, написав внятный ремди и не выложу релизы

Спасибо!

Надо наверное было на King's Bounty (1990) продемонстрировать видеорежимы - игра запускается в Hercules/CGA/EGA/VGA

King's Bounty какраз не запускается, толи я не подобрал версию, толи там есть какие то хитрости. Лучше Monkey Island

Может в VGA не стартовать, если ОЗУ не хватает для 256 цветов.

Интересно! Как насчет какого-нибудь браузера, походить по интернету?

С этим пока никак - сетевых карточек и модемов в комплекте эмуляции не имеется.

Можно приделать проводной сетевой интерфейс примерно так, как это сделано на платформе КРИСС, затем попробовать пробросить сеть в Arachne.

Я думаю, что если делать, то уже нормальный способ - эмуляцию NE2000 или COM-порт+модем. Но пока оно неактуально. Почти всем хватает обычной SD-Card и связи с хост-компом по USB. Оно же пока игрушка, чтобы поиграть в старые игрушки, а не терминальная станция. Есть сборка VersaTerm под RP2040 - вот там - терминальная станция (насколько я помню)

Некоторые мало требовательные к объёму ОЗУ вещи (например, GW-BASIC) пойдут и без свопа, полезно приделать функцию его отключения в таких случаях для предотвращения износа флеша.

Там своп на внешнюю SD-card, которые сейчас стоят копейки, т.е. смысла не имеет заморачиваться с этой кастрацией (имхо).

Это ещё терпимо, хотя тоже не очень, главное, не прямо на флэш самого RP2040.

О как, можно, оказывается, подключить внешнее ОЗУ, и своп отключается, вот это круто реально.

Это класс, за это спасибо. Давно мечтал о мелком XT/AT совместимом.

С интересом слежу за развитием вашего проекта.

Молодцы, что опубликовали на Хабре, иначе бы я вас не узнал бы

Ну, если внимательно читать статью, то там написано, что своп отключается при подключении PSRAM ;)
В текущей сборке доступно 4 метра памяти в сумме (пофиг какой, psram или swap). Если надо заюзать именно 8, можно подсобрать отдельный билд, но я не вижу для ХТ необходимости в таком количестве памяти. Просто нет программ, которым столько нужно.
Ну и опять, если внимательно читать статью, то там есть 2 скриншота: один - перформанс со свопом, второй - с псрам. И с псрам оно изрядно быстрее.

Да, сорри, был невнимателен.

Заявлена поддержка USB flash. Её в OTG? Какую ФС на флешке и какой макс объем?

ps2_keyboard подключать GP0,1?

А PS2_mouse GP14-15? она в XT поддерживается?

Какой i2c rtc поддерживается?

По звуку, есть два: PCM5102(А) к GP26-28 или TDA1387 к GP26-28 какой предпочтительнее на будущее?

Есть leftout=GP23; rightout=GP21; beepout=GP25. beepout это PC Speaker? а leftout и rightout d XT не используется?

COM port к GP16,17 он в XT поддерживается?

Спасибо

USB-flash - в данном случае, это режим, когда Мурмулятор становится внешней флешкой для хост-компа, т.е. оттуда можно записывать напрямую на SD-card, подключенную к пике, и можно писать на диски, примонтированные к XT.

Да, PS/2 клавиатура на первых двух PIO, см. схему мурмулятора.

Мышь пока не поддерживается. Есть версии прошивки с эмуляцией мышки на джойстике, но оно не прижилось, т.к. реально на ХТ мышь нигде не нужна по большому счёту. Но если возникнет нужда, прикрутим.

RTC не поддерживается. А нужен?

PCM5102 звучит громче (если прямо на уши), но он не доступен к прямой напайке на Мурмулятор - только внешним блоком, TDA1387 - разведен на плату версии 1.4

GP23; rightout=GP21; beepout=GP25 - все используются. Пищалка - это пищалка, а звук - это звук, там Disney Sound Source (стерео-Covox) и прочие ништяки живут.

COM-порт тоже пока никому не понадобился на ХТ, хотя, были позывы с подключением модема. Пока - нереализовано. Эти пины пока занимает джойстик, но если проект будет развиваться, не исключено, что там появится и поддержка COM-порта.

Пару раз на рубеже 80-90хх сталкивался с проектами по реализации сети на COM-портах.

Причём речь не о мультиплексоре, а о общей шине по аналогии с эзернет на коаксиальном кабеле. В такую сетку можно шлюз включить из "взрослой" Rpi :)

В принципе можно сделать по аналогии к k-line, совмещая rx и tx в одном. И скорости таковы, что, имхо, отражения не будут критичны. Можно, конечно согласовать концы ,100 ом резисторами.это если использовать витую в качестве медиа среды.

есть стандарт - I²C, по которому вполне можно соединить платы физически,

Пример схемотехники шины I2C. Показаны один ведущий (master) и три ведомых (slave) устройства.
Пример схемотехники шины I2C. Показаны один ведущий (master) и три ведомых (slave) устройства.

но внутри ДОС надо будет какой-то драйвер подключать, проще всего использовать от NE2000, физический уровень которого уже завести на I²C. Но это надо сильно заморочаться... Пока оно не сильно нужно, но перспективно - это да.

Попробую сделать на макетке обвязку для пико и собрать мурмулятор. Как раз для экспериментов купил psram...
Можно связать и с большим братом-компьютером и как бк для авто.
И2с очень сильно не любит помехи.
Я в принципе предлагаю вам для простой 2х проводной, вешающейся на uart, с развязкой или через чип интерфейса клайн или 2х транзисторов или ОУ типа lm358..
Снаружи внешняя подтяжка.
И расстояние определяется собственно скоростями уарт.
В автомобилях этот интерфейс с 90х связывает блоки между собой.
Ох, номер протокола iso с ходу не вспомню. Но крайне дуракоустойчивый интерфейс, пока не пробьет транзисторы.
Можно тогда мурмулятор использовать и как бортовой компьютер.

Ну, пока оно никому не нужно. Опять же, чтобы такое отлаживать, надо иметь оборудование, которым с мурмулятора управлять. И вот конкретно для автомобиля я бы лично не взялся что-то ваять... безопасность важнее всяких фишечек и рушечек.

Я не говорю как критичный компонент в авто, это удобный, настраиваемый показометр.
А предлагалась шина связи очень простая, развязанная и очень дуракоустойчивая.
Например https://static.chipdip.ru/lib/454/DOC014454810.pdf L9637, iso9141, предшественник CAN и параллельно с ним продолжающий использоваться, максимум на сигнальной шине 36 вольт и переполюсовка 24 вольта.

Зря вы это "предлагаете". Он просто никому не нужно. Если будете себе делать, а потом всем покажете готовое решение, с разводкой и софтом - скажут спасибо.

Я купил на Авито у Доброго, не знаю, кто у Вас он, набор и как раз попробую уарт связь по этому интерфейсу с обычным компом. И при успешном прохождении попробую связать три компа на одну сигнальную пару.
Уточни пожалуйста, для хт и других есть уарт (ком-порт, стык с2 и прочие) с эмулятора на выводы?

Зря вы это "предлагаете". Он просто никому не нужно. Если будете себе делать, а потом всем покажете готовое решение, с разводкой и софтом - скажут спасибо.

Наверное это "Стык С2" у УКНЦ. https://habr.com/ru/articles/80078/

сом порт я бы заюзал для принтера epson lx300

интересно бейсик может в порт отправлять данные...

... это чисто для демонстрации, покопаться, научить, детям показать, но эта возня так мило затягивает!

Документация у вас на высоте!

Если я пикаю pc-speaker-ом, то этот звук выйдет из: pcm5102/tda1387 или GP25=beepout или из Диснея?

Нет, в i2s спикер не работает, как я помню, только в режиме без внешнего DAC. Надо бы починить...

В I2S все звуки это PCM поток который транслируется на лево/право, бипер там не задействован в принципе, потому что не задействован физически :)

В вот в режиме PWM спикер удостоен своего персонального пина, и звучит прямо очень аутентично.

Не, я про то, что можно это "пофиксить", т.е. вплести пищалку в существующий PCM канал. Я что-то такое где-то уже делал, но не помню где ))

Blackstrip Shell ведь потянет? С какой скоростью?

Не пробовал. Запускал Windows 2.0 - тормоза изрядные, но с натяжкой можно считать работоспособной.

А что насчет замены RPI2040 если платформа такая кривая может быть связаться с разработчиками RepkaPi и попросить ребят выпустить что-то посодержательнее по памяти? Ну 256КБ это сегодня совсем печальная история.

Ну, не такая она и кривая, за свои деньги )) + Raspberry выпустила уже новый чип RP2350/54, там памяти в два раза больше, на нём уже можно заказать Raspberry Pi Pico 2, и ребята собираются выпустить Мурмулятор 2.0.

Глянул у них спеку на сайте, но для PC/XT нужно хотя бы 640 KB, а лучше 1 MB ;)

А заменить Raspbery Pico можно на какую-то железку где побольше SRAM?

Если вы читали статью, то там написано, что данный вопрос на пике решён тем, что добавлен своп-файл на сд-карточку, или подключением PSRAM.

Да, читал. Видел, что сделано оверлеями, но это какое-то костыльное решение. Понятное дело, что наверное для MS-DOS там производительности SD карточки вполне достаточно, но как-то это некрасиво.

В конце 80х встретил и такую редкость как pc jr. И там 128кб было. И 512 и 256 штатно можно было выбрать на материнской плате перемычками.
Так что это нормально.

НЛО прилетело и опубликовало эту надпись здесь

Ну, вы же не будете спорить, что если игра позволяет отображение в CGA и TGA, то TGA всегда симпатичнее ))

Это все очень крутая, но изотэрика, к тому-же родившееся далеко позже платформа потеряла актуальность. Даже игр которые использовали 160х100 16 цветовой режим, который описан как официальный и тех нет. Да даже композитные цвета мало кто юзает (я кроме маньяк мэншен то и не вспомню). Так что CGA оценена очень точно )

Я прекрасно осознаю, что мне сейчас напихают три метра минусов в панамку, но... А что-то немного более полезное не пробовали?

Пробовал. Не помогает ))

Витаминки и сок сельдирея?

Реально ли добавить поддержку клавиатуры, не поддерживающей обратную совместимость со стандартом PS/2 (только USB)? Рано или поздно они все такими будут.

Реально. Есть прошивки для Мурмулятора с поддержкой USB-клавиатур, джойстиков и мышей

Табличка с сайта https://murmulator.ru/do
Табличка с сайта https://murmulator.ru/do

А ещё есть переходник с USB на PS/2, который можно самостоятельно сваять на ещё одной пике: https://github.com/No0ne/ps2x2pico

Спасибо!

Если здесь есть представители проекта КРИСС, было бы интересно и эту платформу перевести на такой вид внешнего ОЗУ, как здесь.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации