В данном случае речь не только о клешинге. Аппаратный сдвиг фона необходим. Мы же игры будем делать цветные. Как же сдвинуть фон влево на 1-2 точки, если цвета зависят от атрибутов. Да и не хватит скорости у Z80 даже черно-белую картиннку сдвинуть. Если мы не сделаем скроллинг одна стрелялка-леталка так и не появится. Нет у Z80 на это возможностей.Зачем усложнять? Проблему быстрого сдвига экрана решает удвоение клока Z80, что намного разумнее, чем вводить кучу сумматоров и усложнять себе программирование. Даже без всяких наворотов получится много деталей, зачем же ещё усложнять ради одной игры леталки-стрелялки, которая скорее всего и не появится.
Второй экран тоже нужен. В играх вместо второго экрана использовали буфер в основной памяти, затем копировали на экран. Но скорости Z80 не хватает для копирования всего экрана. Поэтому надо убрать операцию копирования - просто меняем экраны между собой. Это делается мгновенно. Один байт атрибута на 8 точек тоже надо. Цветов всего 15. Хоть как-то увеличим разнообразие тайлов и спрайтов. Все, что описано желательно сделать.
Аппаратный скроллинг сделать не сложно. Для этого надо три регистра для записи смещения по-горизонатали и вертикали. В начале окна из них будем загружать начальные значения в счетчики - и все !




Ответить с цитированием