Например, читаем из КД, записываем в основное ОЗУ и можно чтобы адреса были одинаковые. Например
org 8000h
lxi h,4000h
mov a,m ;прочитали из КД
mov m,a ;записали в основное ОЗУ
inx h
и т.д.
Можно тоже самое только наоборот - прочитали из ОЗУ и записали в КД.
Ну и появляется возможность копирования из одной страницы КД в другую.
Другой вариант использования такой штуки - "эмуляция ПЗУ" (название условное).
Например выполняем программу с КД (со страницы включенной на чтение) и можем писать в основное ОЗУ "под себя".
На векторе можно было отдельно задать номер "банка" КД для обращения к нему стеком. Т.е. те команды, которые читают или записывают в стек обращались к КД. Иногда это довольно удобная штука (например при выводе графики читаем с КД используя pop). Правда потом, когда на вектор начали ставить z80, который не генерирует STEC, это сигнал пришлось генерировать отлавливая коды команд обращения к стеку (примерно так, как в орионе в одном из адаптеров z80 отлавливали ei/di для извлечения звука).
Да, и еще вопрос - на X1 выведены только 14 адресных линий? Не совсем понял, почему отлавливается именно обращение к области 4000-7FFF? Может все-таки обращением к X1 считается обращение к области, для которой в порте 80h задано 01 (а для X2 - 10)? Просто если наружу выходят только 14 линий (это точно?), то все области для которых в 80h будет записано 01 будут "отзеркалены" (для X2 соответсвенно где 10).
Т.е. после
mvi a,01010101b
out 80h
содержимое областей 0000-3FFF, 4000-7FFF, 8000-BFFF, C000-FFFF будет одинаковым?
Просто я помню прокол с основным ПЗУ, когда я (вслед за b2m) считал что оно "отзеркалится" во любом окне, если задать 00 в соотетствующие биты порта 80h, а оказалось не так.





) считал что оно "отзеркалится" во любом окне, если задать 00 в соотетствующие биты порта 80h, а оказалось не так.
Ответить с цитированием