С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
"Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.
Вот не знаю, зачем ПЗУ ставили в конце адресного пространства. У восьмиразрядных 8080 и Z80 по сбросу обнуляется указатель команд PC, так, может, чтобы иметь возможность загружать и запускать свой код с адреса 0.
А БК тут вообще не при чем, она PDP-совместимая и шестнадцатиразряднаяа CP/M делалась для 8-разрядных.
Это изза того что intel8080 процессор был на стоко тупо устроен. Он стартует с адреса 0 т.е. логично с этого адреса иметь ROM, но и векторы для "soft прерываний" RST 0,1,2,3,4,5,6,7 находятся там же рядом. А так как техника переписывания векторов довольно привлекательна то эта область должна быть в RАМ-е. Вот и выходили из этой ситуации по разному:
1. сделать стартовую схему которая после RESET-a вписывает по адресу 0 команды DI JP start_rom; или генерящую эти команды 1 раз после RESET-a на шине проца; или очищающую всю RAM NOP-ами (но вдруг прийдет сигнал прерывания до того как cpu достигнет ROM-области); (недостаток : во время старта может прийти NMI и обломится так как векторы еще неустановленны).
2. поставить ROM с 0 а на месте векторов разместить перевызовы по таблице векторов в RAM-e; (дополнительный перевызов - пустая трата времени);
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)