Что такое неиспользуемый адрес памяти? - PullRequest
0 голосов
/ 12 октября 2018

Чтение этой HTML-страницы о выделении памяти Commodore 64 , поскольку меня интересует старое компьютерное оборудование, я наткнулся на ячейку таблицы, которая утверждает, что адрес памяти не используется.Что именно это влечет за собой?Означает ли это, что если вы хотите поместить что-то в этот адрес, вы можете поместить все, что хотите?Смущен, и был бы признателен за все ответы.Благодарю.enter image description here

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

LT, DR .

Это относится к адресу оперативной памяти, который не используется подпрограммами BASIC или KERNAL и бесплатен для общего программирования.

Long Объяснение:

Страница, на которую вы ссылаетесь, является действительно хорошим ресурсом, но она слишком подробна, если вы не знакомы с самой системой.Я рекомендую понять общую схему памяти, прежде чем углубляться в такие подробности.

Ниже приведена общая карта памяти, взятая из COMPUTE!Журнал 32

enter image description here

c64 Карта памяти легко конфигурируется.Вы можете видеть области ввода-вывода и ПЗУ, расположенные в верхней части области ОЗУ.В архитектуре C64 всегда есть скрытая RAM под областями ROM.Вы можете отключить области ПЗУ, которые вам не нужны, чтобы получить доступ к ОЗУ внизу и переключиться обратно на ПЗУ (или ввод / вывод), когда это необходимо.Вы также можете переместить экранную область куда угодно.

Только область между $ 0000- $ 0400, которая называется рабочей памятью, является фиксированной, поскольку эта область используется операционной системой (интерпретатор BASIC и процедуры KERNAL),Если вы хотите использовать память в рабочей памяти без каких-либо странных побочных эффектов, вы должны закрыть BASIC или KERNAL ROM.

Например: если вы закрываете BASIC rom, вы можете безопасно использовать адреса нулевых страниц от $ 2 до$ 90

Хотя есть умные решения.Подобно утилитам, при условии, что вы не будете использовать набор данных, он находится в буфере наборов данных ($ 033C-$ 03FB) или использует экранную память в качестве временного буфера и эффективно заполняет экран искаженными символами.

Я также должен напомнить, что первая страница памяти (от $ 0000 до $ 00FF) чрезвычайно важна для CPUS семейства 6502.Эта область называется нулевой страницей.Инструкции, работающие на нулевой странице, занимают на один байт меньше памяти и выполняются на один цикл быстрее.Кроме того, индексируемые косвенные и косвенные индексируемые режимы памяти доступны только на нулевой странице.

Если вам нужно сохранить конфигурацию памяти по умолчанию и при этом все еще нужны переменные нулевой страницы, вам необходимо найти неиспользуемый адрес на нулевой странице.Это основная причина, по которой они называются «Неиспользуемые» в подробной карте памяти.

Обратите внимание: пользовательские ML-программы обычно размещаются в $ C000- $ D000, который не затрагивается интерпретатором BASIC, и называютсякак «Свободный баран»

0 голосов
/ 12 октября 2018

Карты памяти обычно должны указывать, какие программы используют эту память.Если они говорят «не используется», это означает, что указанные программы не используют этот адрес.Здесь вы можете увидеть это лучше: https://www.c64 -wiki.com / wiki / Zeropage :

Эти адреса Zeropage полезны и важны при программировании C64 - настолько полезны, чтовнутренние ПЗУ системы KERNAL и BASIC используют большинство из них, оставляя лишь несколько из них, которые полностью «безопасны» для программистов на машинном языке для использования в своих собственных целях, без риска сбоя системы.

Итаккарта памяти действительна только для KERNAL и BASIC.

Другие программы, включая вашу, могут без риска получать доступ к неиспользуемым адресам.Если загружены другие программы, вы должны выяснить, какие адреса принимаются ими.Вы также можете получить доступ к другим адресам - даже если они используются другими программами - если вы точно знаете , что происходит потом ...

...