
Сообщение от
MM
Может быть сделать 2 темы - по Intel-совместимому и DEC-совместимому советскому компу ?
Рaз уж пошло на то, не грех обсудить набросок фантомной архитектуры на базе Intel…
Но, совместимость с оригинальным РАДИО-86РК, естественно, не рассматривается.
Здесь я уже делился со своими соображениями, однако с частичной совместимостью.
Тогда как тут рассматривать совместимость необязательно.
Итак…
Адресное пространство
Если в ПК видеопамять 320×200 ≈63 Кб, то приложение может легко перезаписывать любые пиксели через слой банка «C». Но читать его не может, кроме как кодом по адресам буфера «E» или через префиксные коды процессора, перехватываемые логикой.
Сначала это может показаться запутанным. Но на уровне логики реализуется достаточно легко.
Код:
┌───────────────────────┐ ┌───────────────────────┬───────────────────────┐
│Чтение команды M1-цикла│ │Чтение данных из памяти│Запись данных в память │
╞═══════════════════════╡FFFF╞═══════════════════════╪═══════════════════════╡
│ Страница транзакций │ │ Страница УВВ │ Страница УВВ │
│ SYS:RAM «B/A» │ │ SYS:RAM «D» │ SYS:RAM «D» │
│ APP:RAM «A/B» │ │ APP:RAM «D» │ APP:RAM «D» │
├───────────────────────┤FF00├───────────────────────┼───────────────────────┤
│ Страница транзакций │ │ Страница стека │ Страница стека │
│ SYS:RAM «B/A» │ │ SYS:RAM «D» │ SYS:RAM «D» │
│ APP:RAM «A/B» │ │ APP:RAM «D» │ APP:RAM «D» │
├───────────────────────┤FE00├───────────────────────┼───────────────────────┤
│ Страница терминала │ │ Страница кучи │ Страница кучи │
│ SYS:RAM «G» │ │ SYS:RAM «H» │ SYS:RAM «H» │
│ APP:RAM «G» │ │ APP:RAM «H» │ APP:RAM «H» │
├───────────────────────┤FC00├───────────────────────┼───────────────────────┤
│ Страница │ │ Страница │ Страница │
│ SYS:RAM «B» │ │ SYS:RAM «B» │ SYS:RAM «C» │
│ APP:RAM «A» │ │ APP:RAM «A» │ APP:RAM «C» │
└───────────────────────┘0000└───────────────────────┴───────────────────────┘
- «A» - Страница Приложения
- «B» - Страница BIOS / БСВВ
- «C» - Страница Кода
- «D» - Страница Данных
- «G» - Страница Терминала / Графики
- «H» - Страница Кучи
Ограничения
Процессор можно использовать любой, но с подтверждением начала цикла чтения команды - M1.
Z80 мог бы подойти легко, но и ВМ80А с обвесом тоже годится ещё лучше, так как позволяет детектировать циклы доступа к стеку, под которые можно использовать отдельный буфер памяти «F».