
Сообщение от
SfS
1. Существенное ограничение процессора Z80 - это доступ лишь к 64к памяти. Я немного помозговал и придумал вот что: Если на шину адреса повесить сумматор, который на входе получает 16 бит с щины данных и, скажем 24 бита с некоего 24хбитного регистра базового адреса, а на выходе сумматора - 24хбитная сумма, то можно полностью виртуализовать адресное пространство. То есть все программы могут получить столько памяти сколько им надо, причем не надо будет соблюдать кратность странице. То есть неважно будет с какого адреса программа должна запускаться и в какой она загружена. В идеале можно добавить еще и регистр конечного адреса и контролировать куда обращается программа. В случае, если произошел выход за пределы диапазона адресов - генерится прерывание.
Для совместимости оставить порт расширения 128к, но порт будет выбирать не страницу памяти напрямую, а регистр базового адреса этой страницы.
Вообще я думаю, что для каждого окна адресного пространства процессора в 16К нужен свой регистр базового адреса. Таким образом получаем необходимость иметь 8 регистров базового адреса (8 страниц по 16 к). Плюс к этому хочется иметь возможность аппаратно запретить запись в любое из 4х окон (для эмуляции ПЗУ).
Насколько я понимаю организовать сумматор 16 + 24 и схему управления на ПЛИС несложно.