ivagor, большое спасибо! Твоё мнение для меня имеет очень большое значение.

Следующим этапом планирую заняться редуцированием цветов. А то сейчас, несмотря на мои изначальные попытки сделать универсальную версию с условной компиляцией, версия для обычного Специалиста, но с процессором Z80, перестала работать корректно - на экране какой-то мусор из кирпичей и прочие артефакты. Наверняка какая-нибудь мелочь, но тоже потребует времени. Большее опасение вызывает полностью ч/б версия, так как то, что получается при отключенном цвете, выглядит, прямо скажем, так себе (см. ниже). Собственно, в это можно поиграть, если запустить версию из предыдущего моего сообщения на обычном Специалисте+Z80. Наверное, стоит подумать над текстурами для кирпичей или что-то вроде того.



Ну и потом стОит всё-таки собраться с духом и адаптировать всё под i8080. А вот эта задача будет уже посерьёзнее. Мало того, что там всё завязано на регистры IX и IY, так ещё и свободной памяти сейчас осталось в районе 768 байт. Но, с памятью можно выкрутиться, задействовав экранное ОЗУ и закрасив эту область в чёрный цвет. А вот с IX и IY пока думаю, что можно придумать. Дело в том, что каждый спрайт на экране - это объект со своими свойствами (координатами, текущим адресом на экране, применённым бонусом, адресом графики и т.д.) и обращение к каждому этому свойству идёт через регистры IX или IY с нужным смещением. Пока лучшее, что придумалось - это перед каждым обращением к любой процедуре, работающей с таким объектом, просто копировать эти свойства в жёстко заданную область памяти, а если там что-то в результате работы процедуры поменялось, эти свойства копировать обратно. Ну и, соответственно, потом вместо индексных регистров со смещением просто обращаться к абсолютным адресам. Мне кажется, что так будет быстрее, чем городить какой-то огород из кучи проверок и переходов.