Кажется, я знаю, как назвать своё "произведение" на Z80; про идею я
писал несколько раз, а кратко это:
1. "системный" режим, без которого запрещена работа с портами и выполнение части команд;
2. аккуратное переключение в системный режим при входе в прерывание;
3. память, полностью состоящая из переключаемых страниц.
Всё. Этого достаточно для полноценной защиты память, многозадачности, виртуальной память и
многого другого интересного, что характерно для "взрослых" компьютеров.
Логично, что требуется простой дешифратор команд, распознающий некоторые команды (программного прерывания RST XX для входа в системный режим, разрешения/запрета/переключения режимов аппаратного прерывания и ещё некоторых для их запрета нафиг - замены на NOP на буфере шины данных); пока не знаю, что будет лучше - GAL или просто ПЗУ системы РТ/РФ - вопрос в том, что хочется и проще и чтоб на 20 мГц работало (но только если основная часть заведётся на 20).
Остальное всё - простое, хотя и местами расточительное (буферизация всех шин, 22 бита адреса, полностью оконная память). Как делать прерывания - в основном понятно, но пока печально (хочется и быстро и гибко и без особых микросхем, но и без требований к источнику прерывания - чтоб при отсутствии обработчика прерывание не залипало навсегда). Какое-то рещение я набросал, оно приятное, гибкое, на 7 источников с полностью програмными приоритетами (а не как daisy chain), на тактовой 20 мегагерц скорее всего жить будет, но микросхемок там кучка. Пока обдумываю (тем более, что это уже отдельный модуль и не на первое время).
А запускать я там хочу несколько копий CP/M под минимальным гипервизором. И называть Алдан - вот такая игрушка для МНС.