После прочтения одной строки пикселей с ковра надо переставлять стек на следующую строку, это даст дополнительные расходы (умноженные на высоту спрайта в пикселях).
Если читать спрайт записанный отдельно, то переставлять стек не надо, POP-аешь себе до конца.
Кстати, прерываний бояться не надо. Есть способ восстанавливать испорченное слово из регистровой пары.
Посмотри исходники которые дал Jerry, например файл core_sprite1, процедура sprite_noroll. Там графика читается в BC и если приходит прерывание, из BC восстанавливается.



Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
- Если у нас ковёр это три трети по 32х8 знакомест, то чем он отличается от ОБЫЧНОГО экрана Спектрума, где как раз такая адресация и применяется? Или в ковре спрайты лежат, как в линейном буфере, а не через 8 строк, как в стандартном экране Спека? Так вы скажите 



