Можно не всё сдвигать:
A0 A1 A2 A3 A4 A5 A6 A7
A13 A8 A9 A10 A11 A12 0 1
ну и с процессора аналогично.
Вид для печати
Ага, так проще :)
В какой-то кнжке я читал, что действительно, у РУ5 4 матрицы от РУ6. Только, А7 там коммутирует не шину данных, а номер блока (это как выбор - пречердж банка в новых синхронных драмах).
Однако, есть успешный опыт замены РУ5 в Экспрессе на буржуйские без какой-либо переделки, о чем я писал на соседнем форуме:
Цитата:
Сообщение от HardWareMan
Обыскал весь подфорум Специалиста и не нашёл тему про неправильную работу теста RAM-диска. Пишу сюда.
Нашли мне ошибку, что мой тест памяти/RAM-диска Специалиста МХ неправильно находит объём RAM-диска - всегда проверяет весь объём, все 512 кБайт. Набегами разбирался в коде программы и ... ничего не нашёл. Наличие страницы RAM-диска (одной из восьми) у меня определяется по записи и чтению в первую ячейку памяти каждой страницы. Всё бы хорошо, но после записи в несуществующую страницу (в верхнюю, например, а ОЗУ физически меньшего размера) определённого числа, оно потом же и считывается?! Я бы грешил на эмулятор, но в реальном компьютере (я использую Сябр с мапером МХ) тоже самое. И задержки делал и разные числа писал - бестолку.
Проверял так. Поставил в панельку под микросхему RAM-диска ОЗУ размером 128 кБайт (UT1024), отогнул 30 вывод (СЕ) и подал на него +5 вольт. Я подумал, что в своей программе напортачил, применяю стандартную Тест_МХ. И что? Там также: S1 - первая страница памяти, S2 - вторая страница памяти. Всё, должны существующие страницы для проверки кончится. Не тут-то было - тест идёт дальше - S3 и S4 нашёл, но ведь микросхема же 128 кБайт, где этот тест нашёл ещё 128 кБайт?
Значит не только я столкнулся с такой проблемой наличия не существующих страниц RAM-диска, но и разработчики Теста_МХ. Интересно они это заметили в 90-е года?
Как данные могут сохраняться, если ни одно устройство на шине не выбрано? Смотрите свою схему и адресацию. А еще, если диск организован на одном чипе то появляется мирроринг, ты это учитываешь?
Нумеровать их. Т.е., сначала убеждаешься в работоспособности первой ячейки каждой страницы, прогоняя все возможные. На этом этапе можно отсеять несуществующие физически страницы (если у микросхем раздельные CS). Потом обнуляешь первый байт всех страниц (с учетом коррекции на предыдущем этапе), а после начинаешь нумеровать их. Причем, сначала считываешь значение, если оно равно 0 то записываешь номер (от 1 конечно) и идешь к следующей, а вот если там будет число (по идее - номер первой страницы или 1) то прекращаешь. И пройденное количество страниц и будет настоящим размером памяти.
Забыл сказать, можно предварительно сохранять текущее содержимое этих байт в основном ОЗУ, выполняя тем самым неразрушающий тест.
Я же говорю, пронумеруй их. И посмотри сколько страниц.
А нужно сначала записать в первые ячейки всех теоретически возможных страниц их номера, а уже после этого - прочитать и посмотреть что читается. Причем писать начиная со старшей страницы и вниз, а читать - с нулевой и вверх. тогда если например есть 4 страницы вместо 8 - при чтении вместо 0-1-2-3-4-5-6-7 будет 0-1-2-3-0-1-2-3.