Это я забыл про ещё две процедуры для сохранения и восстановления объектов из буфера на экран.
Потому что автор как-то странно определял какой игрок был последним - первый или второй. А определял он игрока по экранном адресу вывода цифры счёта. И если адрес был не как у первого игрока, то игроки обменивались при запуске. А так как при смене адресации всё перестало совпадать, то и обмен происходил после каждого запуска игры.
Пришлось вникать в работу. И это реально самая сложная процедура, которая проверяет положение стенок раунда, соседних кирпичей и обрабатывает их, а потом обводит оставшиеся кирпичи линией в один пиксель. Да ещё и рисует тень. Вот эта тень мне много крови попила. Да и вообще работу с цветом на Специалисте сложно назвать простой и удобной :) Особую "радость" добавило наличие яркого чёрного цвета на Специалисте.
Я конкретно завис на баге, когда я умирал прижавшись к правому краю и всё потом вешалось. Думал уже всё бросить. А оказалось, что виной всему была тень от одной из искр. Она выходила за пределы буфера. В случае с линейной адресацией эта тень просто попадала на следующую линию с противоположной стороны приходясь на бортик, а в моём случае с организацией в столбик эта тень переходила на следующий столбик, то есть за пределы буфера и портила данные.
Вроде всё, что нашёл я поборол. Даже прошёл игру полностью с бесконечными жизнями. Но я проходил версию, когда некоторые буферы поместил в экранную область для визуального контроля. А сейчас я всё спрятал в пользовательское ОЗУ. Надеюсь, что это ничего не нарушит.
Скорость по-прежнему никак не трогал. Неравномерность движения без возможности использовать halt, как на Спектруме всё-таки видна. Наверное, это как-то можно побороть, но я пока не думал в эту сторону.
Таким образом, первый этап я завершил - получил работоспособную версию на 16 цветов для компьютера Специалист-МХ Турбо (с Z80). Предлагаю всем заинтересованным лицам посмотреть и погонять её.
Честно говоря, не знаю теперь хватит ли моего энтузиазма для перевода кода с Z80 на i8080. Формально задача выполнена - Batty на Специалисте теперь есть. Но у меня была цель запустить игру на моём реальном Лике, а там нет ни цвета, ни тем более Z80.

