Я тут заморочился разобраться с системой управления памятью Корвета, и понял, что с наскока не получится. Поэтому мне пришлось париться досконально, и в ходе этого разбирательства у меня родился небольшой справочник по ее работе, выраженный в двух таблицах. Основная задача была представить логику работы в виде, пригодном для максимально точной эмуляции. Таблицы составлены на основе схемы компьютера и карты прошивки ПЛМ, а затем сверены с документацией. В документации найдены небольшие огрехи ;).
Вот эти таблицы (копия есть на моем сайте). Первая - карта срабатывания блоков ПЛМ. Использование этой карты теоретически позволяет сэмулировать работу даже при нестандартных значениях системного регистра. Вторая - карта памяти в стандартных режимах в наглядном виде.
Хотел загрузить сюда, но при уменьшении получается нечитабельно, поэтому ссылки. UPD: Догадался упаковать в архив.
Расшифровка обозначений:
- RAM - основная память;
- GRAM - ОЗУ графического контроллера;
- TRAM - ОЗУ алфавитно-цифрового контроллера;
- ROM1, ROM2, ROM3 - блоки ПЗУ;
- DEVS - устройства ввода-вывода;
- REGS - регистры;
- KB - клавиатура.
Входы ПЛМ:
- /WR - сигнал записи от процессора;
- /RD - сигнал чтения от процессора;
- M10 - сигнал, соответствующий циклу чтения команды от контроллера прерываний;
- Dx - биты системного регистра;
- Ax - биты шины адреса;
Выходы ПЛМ:
- M1, M2 - код вида ОЗУ, подаваемый на дешифратор;
- /RG - выбор регистров;
- /DV - выбор устройств ввода-вывода;
- /KB - выбор клавиатуры;
- /R1, /R2, /R3 - выбор блока ПЗУ.
Столбцы таблицы:
- Маска адреса - участвующие в срабатывании блока ПЛМ биты шины адреса, расставленные в правильном порядке;
- Биты SYSREG - участвующие в срабатывании блока ПЛМ биты системного регистра, расставленные в правильном порядке;
- Диапазон адресов - диапазон, соответствующий полученной маске;
- Длина - размер диапазона в байтах;
- TRS80 и др. - признаки срабатывания блоков ПЛМ в зависимости от стандартных значений системного регистра. Наличие плюса означает, что при данном значении системного регистра и адреса на шине произойдет срабатывание блока ПЛМ, и обращение будет переключено от основного ОЗУ на соответствующее устройство.
Прочерк означает, что для данного блока ПЛМ значение сигнала безразлично.

