А как быть в случае со стеком если попадаешь на границу перехода одного из трёх блоков экранной памяти ?
Заново считать SP для первого знакоместа новой строки.
Кстати, я еще встречал другой вариант, может с ним проще:
pop hl ; читаем из памяти 2 байта спрайта
ld (addr),hl ; помещаем по нужному адресу экрана