Конечно, наверное немного не в тему.
Администрация, надеюсь, не будет против маленького пиара полёта фантазии…
Имеeтся Страница на Хабре для ознакомления с концептуальной частью идеи.
Ссылки на Эмулятор и некоторые исходники черновых набросков для симуляции/синтеза находятся на странице так же…
Всё это творение появилась в одном из ностальгических приступов на фоне затворничества 2020 года.
Основной целью было попытаться разработать некое устройство процессорного класса, где система команд не имела бы неясных битовых полей эзотерического назначения.
(Для сравнения, у i8080 и i8086 в битовых полях команд прослеживается отголосок восьмеричной системы счисления во всём, от кода команд до полей операндов. И многое там просто эзотерично, пока не ознакомишься с архитектурой достаточно глубоко.)
Основополагающим во всей концепции является максимальная открытость и развёрнутость во всём.
Все команды имеют код, смежный со смысловым значением читаемого визуально в стиле акына: Что видится и читается, то и железом исполняется.
Конечно, за год весь материал успел устареть.
Но базовые принципы не изменились.
Сейчас прорабатывается карта устройств ввода-вывода.
Но, концептуально сохраняется акцент на максимальную развёрнутость, чтобы самой карты УВВ не было вовсе.
Например, для работы с устройствами ввода-вывода выделено 10 архитектурных регистра общего назначения D0…D9:
╔════╤════════╤════════════════════════════════════════════════════════════════╗
║ D9 │ ИМС │ Описание доступа к ресурсам микросхемы через РОН процессора ║
╠════╪════════╪════════════════════════════════════════════════════════════════╣
║0x32│ i8232 │ D0 - Регистр Данных ║
║ │1816ВЕ32│ D1 - Регистр Статуса ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x45│ i8245 │ D0 - Данные ║
║ │ │ D1 - Адрес ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x53│ i8253 │ D0/D1/D2 - Каналы Счётчиков 0/1/2 ║
║ │К580ВИ53│ D3 - Регистр Статуса Таймера ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x55│ i8255 │ D0/D1/D2 - Порты A/B/C ППА ║
║ │К580ВИ55│ D3 - Регистр Статуса ППА ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x57│ i8257 │ D0/D2/D4/D6 - Каналы 0/1/2/3: ПДП Адрес ║
║ │ │ D1/D3/D5/D7 - Каналы 0/1/2/3: ПДП Счёт ║
║ │К580ВТ57│ D8 - Регистр Статуса ПДП ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x72│ i8272 │ D0 - Регистр Статуса ║
║ │FDD Unit│ D1 - Регистр Данных ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x75│ i8275 │ D0 - Регистр Данных ║
║ │К580ВГ75│ D1 - Регистр Статуса ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x79│ i8279 │ D0 - Регистр Данных ║
║ │К580ВВ79│ D1 - Регистр Статуса ║
╟────┼────────┼────────────────────────────────────────────────────────────────╢
║0x93│ FD1793 │ D0 - Регистр Команд / Регистр Статуса ║
║ │ │ D1 - Регистр Дорожки ║
║ │ │ D2 - Регистр Сектора ║
║ │1818ВГ93│ D3 - Регистр Данных ║
╚════╧════════╧════════════════════════════════════════════════════════════════╝
Тем самым, в D9 помещается серийный индекс номенклатуры микросхемы, а с D0…D8 работают уже как с внутренними регистрами самой микросхемы УВВ.
То есть, разработчику, имеющему опыт работы с конкретной ИМС УВВ не нужно никаких команд типа IN/OUT.
Естественно, в эмуляторе пока практически мало чего реализовано, так как он работает сейчас в тестовом режиме, чтобы создать хоть какую-то среду разработки/отладки кода и оценить, насколько сама идея жизнеспособна.