-
Ассемблер z80 и RAM
Здравствуйте,
Пожалуйста, подскажите, какую область памяти "правильно" использовать для хранения данных в случае например кодирования под ZX Spectrum 48k? В большинстве примеров используется "addr", или "address", вместо конкретных адресов. Пишут, что всё от 0x5CB6 до 0xFFFF доступно для использования, но каждый блок адресов для чего-то используется. Нужно использовать место между RAMTOP и UDG? Или сразу ниже RAMTOP и идти вниз? Или вверх от 0x5CB6 (после system variables)? Или место между STKEND и адресом на который указывает SP?
-
Обычно между RAMTOP и FFFF. В загрузчике делается CLEAR на адрес расположения кода минус один. Например, код с 32768 = CLEAR 32767, а потом загружаем код с 32768.
Если не пользоваться процедурами ПЗУ, которым нужны системные переменные, то можно занимать всю память с 0x5B00 до 0xFFFF (адреса 0x4000..0x5AFF отведены под экран)
-
Также учитываем, что видео память работает медленнее чем обычная с 0x8000.
Плюс нюансы страниц памяти 128К модели, которые здесь обсуждались не раз.