Координаты спрайта
В некоторых старых играх спрайты выводятся не вертикальными столбиками из байтов, а горизонтальными линиями из байтов. При этом, для экономии места, спрайты иногда перед выводом сдвигают программно на нужное количество битов. Чтобы облегчить доработку таких игр добавляются следующие переменные, где 0-7 = номер байта в линии спрайта, A-D (или E-H) = байты 1-4 для соответствующего режима цвета:
A0, A1, A2, A3, A4, A5, A6, A7,
B0, B1, B2, B3, B4, B5, B6, B7,
C0, C1, C2, C3, C4, C5, C6, C7,
D0, D1, D2, D3, D4, D5, D6, D7,
или
E0, F0, G0, H0,
E1, F1, G1, H1,
E2, F2, G2, H2,
E3, F3, G3, H3,
E4, F4, G4, H4,
E5, F5, G5, H5,
E6, F6, G6, H6,
E7, F7, G7, H7,
Например, для вывода с маской в байты A0-A7 (или E0-E7) записываются 1-8 байтов маски, а в байты B0-B7 (или F0-F7)— соответствующее количество байтов спрайта.
Координаты на экране левого байта линии спрайта предварительно задаются следующими переменными:
x — мл. байт координаты X в пикселах
xh — cт. байт координаты X в пикселах
или
xc — координата X в знакоместах
xs — смещение по-горизонтали в знакоместе
y — мл. байт координаты Y в пикселах
yh — cт. байт координаты Y в пикселах
или
yc — координата Y в знакоместах
ys — смещение по-вертикали в знакоместе
Это позволяет рисовать спрайты на экране с расположением с точностью до пиксела.