Внятно про адресное пространство
Код:
0h-8FFFh ОЗУ
9000h-AFFFh ОЗУ. Вторая плоскость видео ОЗУ
B000h-С7FFh ОЗУ. При подключении локальной сети из ПЗУ 2 в ОЗУ копируется BDOS CP/M
С800h-C9BFh ОЗУ. Системные переменные
С9C0h-CFFFh ОЗУ. Текстовый буфер видео ОЗУ
D000h-FFFFh ОЗУ. Первая плоскость видео ОЗУ
0h-FFh ПЗУ 1 (Сброс)
C000h-СFFFh ПЗУ 1 (Знакогенератор и графические функции) или
ПЗУ 2 (Бейсик в C000h-С7FFh и CP/M в C800h-СFFFh)
переключается через порт A8h
D000h-FFFFh ПЗУ 3 (Бейсик и Монитор)
Области ПЗУ и ОЗУ перекрываются. Команды работы со стеком и команды записи в память всегда обращаются к ОЗУ. А откуда читаются данные, зависит от того, в какой области выполняется код.
Код:
Код из 0-C7FFh Код из C800h-CFFFh Код из D000h-FFFFh
Чтение C000h-С7FFh ОЗУ ПЗУ ПЗУ
Чтение C800h-СFFFh ОЗУ ПЗУ ОЗУ
Чтение D000h-FFFFh ОЗУ ОЗУ ПЗУ
То есть, программа пользователя может использовать все 64 Кб ОЗУ. Только программа не может содержать исполняемый код выше адреса C7FFh. Переход по адресу выше C7FFh вызывает подключение ПЗУ к адресному пространству.