Цитата Сообщение от AlexCrush
Расскажу-ка я свои мысли про регенерацию в Magic 5 и 6.
Регенерацией занимается видеоконтроллер. В ру5 надо регенерировать только нижние 7 бит (факт из советской книжки про м\с памяти). То есть для полной регенерации достаточно прочитать информацию из 128 ячеек, лишь бы они все были в разных рядах (или как там с терминологией, в общем чтобы адресные сигналы подаваемые во время RAS были разные). На экране 128 байт без учета аттрибутов - это 4 строки. Одна экранная строка - 64 мкс. 4*64=256 мкс,что значительно меньше чем паспортные 2 мс. Даже если предположить (правда это было опровергнуто опытами), что надо регенерировать все 8 бит адреса, то получим 512 мкс, что тоже весьма хорошо. Для того чтобы каждые 4 строки экрана были в разных рядах (RAS) надо всего лишь поменять хитрым образом адресные сигналы, идущие на мультиплексор адреса памяти.
порядок:
A0 A1 A2 A3 A4 A8 A9 (а дальше порядок не важен) A5 A6 A7 A10 A11 A12 A13 A14 A15
Примерно так и сделано в Magic5. Проблема с тем, что на бордюре такая регенерация обломается решены радикально - даже во время изображения бордюра видеоконтроллер продолжает читать информацию из памяти. Неважно откуда, главное что младшие 7 бит "перепутанного" адреса перебираются в любом случае за 4 экранных строки. ВСЕ!
Спасибо разработчикам Magic5 за столь простое и надежное решение.
Когда я заменял в своем Magic5 ру5 на ру7 пришлось порядок адресов измененять так, чтобы перебор был 256 разных адресов, получилось что то вроде A0 A1 A2 A3 A4 A8 A9 A10 ... то же не плохо, 512 мкс.
При последующем апгрейде до мегабайтного симма перепутывание чуть усложняется, но проблему регенерации решает именно оно.
Только не надо полагаться на то что предельный период регенерации у ру5 будет больше 2 мс - встречаются всякие экземпляры.
Браво! Снимаю шляпу перед разработчиками Magic5. О таком решении я тоже думал при разработке ZX-Next, но из-за желания сделать схему универсальной (для РУ5/7), пошел по другому пути - попросил напарника, кодирующего NEXT ROM VIDEO изменить порядок перебора адресов вне экрана (там их перебирал видеопроцессор на Z80). В результате достигли того же, вписав период регенерации в паспортные значения.
Остается только сожалеть, что другие разработчики не решали эту проблему. Причины, в общем-то, понятны: в фирменных моделях адресация ОЗУ, стандартная, а срисовывали оттуда. Только вот забыли что у 4164 паспортный период регенерации 4 миллисекунды, а не 2, как у 565РУ5.