Нет проще. Добавь второй набор счетчиков развертки. Первый формирует границы окна Спектурума 256х192 точек, кадровые, строчные синхро- и гасящие импульсы. Перед левой границей окна надо сделать короткий импульс загрузки начальных значений счетчиков отображения слоя. Запись числа 1 соответствует аппаратному сдвигу слоя влево на одну точку вместе с атрибутами. Аналогично и для сдвига по-вертикали. Экран сделай вместо ПЗУ по адресу 0.
- - - Добавлено - - -
Ответь, что быстрее - записать смещение слоя в 3 регистра или в цикле делать сдвиг фона программно. Кому легче ? Z80 без разницы. Он или успеет это сделать за кадр или не успеет. Но атрибуты он все равно не сможет сдвинуть без аппаратного скроллинга. Задача предоставить новые возможности для облегчения написания игр кодерам.
- - - Добавлено - - -
Ну есть. Но до скорости плавности игровых приставок не дотягивают.
- - - Добавлено - - -
Эта операция нужна редко. А вот автоматическое заполнение атрибутов текущим атрибутом будет полезно. Этим можно имитировать атрибутые 8х8 точек, если 1х8 на надо.
К сожалению, предложенные выше возможности мало подходят для переделки старых игр. Даже если не делать аппаратный скроллинг. Но для реализации новых идей возможности достаточно хорошие.Предлагая сохранить организацию цвета ZX и в дополнительной плоскости, я исхожу из того, что это надо для резкого упрощения конверсии ZX-игр в бесклешинговый вариант. Не надо заботиться ни о пересчёте графики, ни о пересчёте цвета. А если экран выпрямить и ввести иную организацию цвета, то тогда придётся более существенно переделывать игру. Потому и экран выпрямлять вредно и цвет менять вредно.