Термин «слот», используемый в этой главе, аналогичен понятию «банк памяти»: каждый из четырёх слотов представляет собой адресное пространство размером 64 Кб, и процессор для каждой четверти (страницы) своего адресного пространства может указать, содержимое какого слота будет отображаться в неё. В этом смысле он напоминает слот картриджа, то есть разъём, в который вы вставляете картридж. Кроме того, сигнал на шине картриджа для выбора этого слота памяти естественно назвать сигналом выбора слота, поэтому слот памяти называется «слотом». Данный термин («слот») здесь используется при рассмотрении программной архитектуры, и никак не связан с одноимённым аппаратным компонентом. Упомянутый компонент в дальнейшем будет называется «шиной картриджа» или «слотом картриджа».
Если в микропроцессорной системе с общей шиной используется множество банков памяти, и отсутствует специальный сигнал выбора (сигнал выбора слота), подаваемый на каждый модуль памяти, подключённый к шине, то это приведёт к тому, что несколько устройств, занимающих одно и то же адресное пространство, одновременно подключаются к шине, даже если они не осуществляют операции чтения/записи по установленному на шине адресу. Это может привести к повышению нагрузки на шину вплоть до возникновения коллизий, приводящих к сбоям в работе. Однако этого можно избежать, если каждый модуль (набор модулей) памяти индивидуально выбирается сигналом выбора слота. Кроме того, поскольку программы, которые занимают один и тот же диапазон адресов в адресном пространстве, могут одновременно располагаться в памяти, появляется дополнительное преимущество в гибкости и расширяемости системы.
Устройство управления физическими страницами ОЗУ.
Поддержка начинается с MSX 2.
Порты управления:
Порт | Логическая страница | Диапазон адресов |
---|---|---|
FC | 0 | 0x0000–0x3FFF |
FD | 1 | 0x4000–0x7FFF |
FE | 2 | 0x8000–0xBFFF |
FF | 3 | 0xC000–0xFFFF |
Четыре слота памяти, доступные в базовой конфигурации, называются первичными слотами. Если вы хотите добавить в систему большее количество слотов (для добавления оперативной или постоянной памяти или регистров устройств, проецируемых в адресное пространство), расширьте первичные слоты вторичными. Другими словами, чтобы выбрать вторичный слот, сначала выберите первичный слот, к которому подключён вторичный слот, а затем выберите вторичный слот, который был добавлен.
Сигнал /BUSDIR управляет направлением буфера двунаправленной шины данных расширенной шины картриджа.
Картриджи, содержащие только устройства памяти (оперативной или постоянной) — например, игровые картриджи, — могут не обрабатывать сигнал /BUSDIR, за счёт чего сложность схемы и соответственно цена таких картриджей может быть снижена. Однако картридж, включающий устройство ввода/вывода, которое передаёт сигнал в процессор, должен установить сигнал /BUSDIR в низкий уровень на время передачи данных процессору, указав тем самым направление, в котором должен работать буфер. Регистр выбора слота для создания сигнала выбора вторичного слота размещается по адресу памяти 0xFFFF вторичного слота. Для того, чтобы можно было отличить наличие по этому адресу регистра выбора вторичного слота от ОЗУ, при чтении из этого регистра его содержимое должно инвертироваться. Такой подход позволит создавать вторичные слоты для одного или нескольких первичных.
Модули памяти:
Объём памяти отображаемый на экране:
вычисляется по содержимому ячейки SubROM, записанному по адресу 0x3763.
Объём памяти в Кбайтах. вычисляется по формуле:
USER RAM: = ((Значение из 0x3763)+2)*16
В результате получим (6+2)*16=128. По умолчанию в 0x3763 записано число 6.
Обратная формула:
Значение ячейки 0x3763 = Объём памяти(Кбайт)/16-2
Объём памяти (Кбайт) | Значение ячейки 0x3763 |
---|---|
128 | 0x06 |
256 | 0x0E |
512 | 0x1E |
1024 | 0x3E |
2048 | 0x7E |
4096 | 0xFE |
Программы для тестирования памяти:
testram.zip, https://msxhub.com/TESTRAM
Всегда показывает: Base RAM: 064k size