Пока мы треплемся Дима Быстров работает.

Вот что он ответил на некоторые мои вопросы.

Дима Быстров:
"1. У тебя трассировка происходит перебором на каждом шаге всех клеточек? Это
можно существенно ускорить, если на каждом шаге перебирать только клеточки,
изменённые на предыдущем шаге (кроме карты нужно 2 списка: один обрабатываем,
другой генерируем).

2.
/=== Begin Windows Clipboard ===/
LD (BL22SP+1),SP
LD BC,SPR ;Высчитываем адрес спрайта
ADD HL,HL ;HL=HL*32
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,BC
/=== End Windows Clipboard ===/
20+65

Это можно ускорить:
SP на каждом вызове будет одинаковое, так что сохранять для всех клеток
незачем.
ld a,l
rrca
rrca
rrca
ld h,a
and #e0
ld l,a
xor h
add a,'SPR
ld h,a
46 против 65

А вообще-то ускорять незачем, т.к. клеточек на экране всего 144 - выигрыш 5616
тактов "

Поучиться, как всегда, есть чему. Мотаем на ус!
Итого, ко всем моим ускорениям, он ускорил еще на 2880 тактов Кто ускорит еще?