
Сообщение от
Vital72
... а если ещё кто-то использует MOV A, A и т.д. для циклов задержки... ммм... красота
Этот вопрос уже обсуждали.
В основном, подобные MOV'ы для задержки нужны в каких-нибудь самодельных контроллерах НГМД и т.д.
Даже подпрограммы магнитофонного ввода/вывода не используют их для задержки.
Так или иначе, таких программ ничтожно мало.
И потом, не нужно забывать: Что перехват таких префиксов с помощью К155СП1 легко заблокировать, форсируя сброс префиксного регистра и К155ТМ2.
Следует учесть и то, что поддержать функционирование "новой архитектуры" на порядок сложнее, чем вернуть всё в исходное состояние, заземлив вывод Сброса триггера ТМ2.

Сообщение от
cy6
Отключив дешифратор, который формирует чип-селект для устройств в/в и ПЗУ, мы получаем мертвый компьютер, который навеки выполняет RST 7.
Ну, не совсем «RST 7» с кодом FF, так как на шине данных РК в режиме чтения наблюдается либо код 82, либо 83…

Сообщение от
cy6
Все дело в чип-селектах, Карл! ) На адресацию, ИД7 вообще никак не влияет. На схемах с РУ5, озу вообще к дешифратору не подключена.
Принципиально рассматриваю только оригинальную схему, так как варианты с РУ5 - это уже «доработка доработанного клона».

Сообщение от
cy6
А также, размер ОЗУ больше 256кб для 8-битки, это бессмысленно и беспощадно.
Просто за всю историю восьмибиток таких экспериментов проделывалось крайне мало, а тем более, никто у себя дома не пытался развернуть подобие 8-битного мэйнфрейма и столкнуться с резкой нехваткой памяти.

Сообщение от
cy6
Когда говорят о расширении памяти, говорят о дополнительных линиях адреса.
В нашем случае, достаточно две новые линии адреса. 00b, 01b, 10b, 11b. Что полностью соответствует номерам страниц.
Через порт страницы и параграфы можно переключать на долговременной основе.
Как уже разъяснялось выше, в конкретном случае префиксы играют роль не «переключалок страниц», а служат «дескрипторами ресурсов»…

Сообщение от
cy6
Вопрос только как выглядит код, который к таким страницам обращается.
Можно вывести что то в порт регистра управления страницами, а можно написать MOV A, A.
Ну и какая разница? В обоих случая используются две разные команды. но второй путь более мудреный и нечитаемый.
Примерно, вот так:
Код:
MOV C,C ; Префикс для "CGA-графики"
LXI SP,CGA1 ; Ссылка на строку с указанием ресурса
; Теперь этим префиксом доступна графика
LXI H,8000H ; Иницируем указатель
LOOP:
MOV C,C ; Префикс "дескриптора CGA-графики"
MOV M,L ; Заполняем графический буфер паттерном
INX H
MOV A,H
ANA A
JP LOOP ; Заполняем все 32 Кб счёта
HLT
CGA1: DB '/DEV/CGA/',0
Или с «адаптированной мнемоникой»:
Код:
LXI SP7,CGA1; Ссылка на строку с указанием ресурса
; Теперь этим префиксом доступна графика
LXI H,8000H ; Иницируем указатель
LOOP:
MOV M7,L ; Заполняем графический буфер паттерном
INX H
MOV A,H
ANA A
JP LOOP ; Заполняем все 32 Кб счёта
HLT
CGA1: DB '/DEV/CGA/',0
Гораздо интереснее поглядеть на код, который всеми страницами управляет…