PDP-11 Blinkenlights
Захотел недавно улучшить свой эмулируемый PDP-11 добавив ему панель со светодиодами как на реальных машинах. Для этого можно использовать оригинальную панель, но её сложно достать и стоит дороговато. Поэтому я пошел по другому пути и буду делать панель сам, за основу возьму схему и патчи для simh с блога The Ancient Bits adventure. Получится хоть и не полная копия т.к. там только 16 светодиодов под data + под чётность и ошибки, но мне этого достаточно.
Вот ссылка на проект - https://github.com/jguillaumes/retroutils
Панель я буду подключать к Raspbery PI, но можно собрать и на Arduino и подключать практически к любому ПК. Возможно это, благодаря клиент-серверной реализации, где simh будет в роли клиента, а сервер может быть и програмный, например есть версия на java
Так как сборка simh с патчем немного запутанная, то опишу как собирал я.
Прежде чем собирать simh нужно собрать библиотеку libblinken.a из каталога retroutils/BlinkenServer/BlinkenClient
Эта библиотека должна попасть в:
/usr/local/include
/usr/local/lib
Ставим патч(https://github.com/jguillaumes/retroutils/blob/master/simh-patches/pdp11-blinken.patch) на Simh 4.0 beta. Патч для simh лучше ставить руками т.к. он рассчитан на бета версию в которой постоянно идут изменения и у меня он уже не ставился.
Затем нужно в каталог simh/PDP11 закинуть файлы из каталога BlinkenClient т.к. некоторые файлы нужны оттуда для сборки.
Ну и собираем:
$make USE_NETWORK=1 pdp11
Так как детали для панели я еще только заказал, то решил пока использовать JBlinkenServer на java который скомпилировал в Netbeans IDE под Win7
Теперь запускаем JBlinkenServer на ПК и он начинает слушать порт 11696 и запускаем на Raspbery PI simh. Включаем индикацию:
sim> SET BLNK ENABLE
sim> ATTACH BLNK udp:ip-address:11696
Грузим RSX-11M+ и любуемся :)
Я так же сравнивал полученую индикацию с реальными машинами на видио с ютуба, похоже что все работает правильно.
Вот ссылка на проект - https://github.com/jguillaumes/retroutils
Панель я буду подключать к Raspbery PI, но можно собрать и на Arduino и подключать практически к любому ПК. Возможно это, благодаря клиент-серверной реализации, где simh будет в роли клиента, а сервер может быть и програмный, например есть версия на java
Так как сборка simh с патчем немного запутанная, то опишу как собирал я.
Прежде чем собирать simh нужно собрать библиотеку libblinken.a из каталога retroutils/BlinkenServer/BlinkenClient
Эта библиотека должна попасть в:
/usr/local/include
/usr/local/lib
Ставим патч(https://github.com/jguillaumes/retroutils/blob/master/simh-patches/pdp11-blinken.patch) на Simh 4.0 beta. Патч для simh лучше ставить руками т.к. он рассчитан на бета версию в которой постоянно идут изменения и у меня он уже не ставился.
Затем нужно в каталог simh/PDP11 закинуть файлы из каталога BlinkenClient т.к. некоторые файлы нужны оттуда для сборки.
Ну и собираем:
$make USE_NETWORK=1 pdp11
Так как детали для панели я еще только заказал, то решил пока использовать JBlinkenServer на java который скомпилировал в Netbeans IDE под Win7
Теперь запускаем JBlinkenServer на ПК и он начинает слушать порт 11696 и запускаем на Raspbery PI simh. Включаем индикацию:
sim> SET BLNK ENABLE
sim> ATTACH BLNK udp:ip-address:11696
Грузим RSX-11M+ и любуемся :)
Я так же сравнивал полученую индикацию с реальными машинами на видио с ютуба, похоже что все работает правильно.
- Simh 29-06-14, 19:40
Уже пропатченый simh тут - https://github.com/jguillaumes/simh
