(c) Волчков Евгений (Hacker
Rowdy), г.Чита, 1996.
В те времена, когда я еще с
натугой понимал Ассемблер, мне
посчастливилось купить первый
том сериала книг о графике.
Очень полезная программа, опуб-
ликованная в книге, вычисляла
адрес в дисплейном файле по
координатам, заданным в знако-
местах. В оригинале, как вы, ко-
нечно, знаете, она выглядит так:
140.
LD DE,(COORDS)
LD A,E
AND #18
OR #40
LD H,A
LD A,E
AND #07
OR A
RRA
RRA
RRA
RRA
ADD A,D
LD L,A
2
После того как я, не без по-
мощи вашей литературы, повысил
свои знания Ассемблера, я нат-
кнулся как-то опять на эту прог-
рамму и возле команды OR A с
удивлением прочитал комментарий
"Сбросим флаг CARRY". Но ведь
перед OR A стоит AND #07, кото-
рая, следуя книге "ZX Spectrum &
TR-DOS", всегда, вне зависимос-
ти от получаемого результата,
СБРАСЫВАЕТ флаг CARRY, т.е. эту
небольшую подпрограмму можно ис-
пользовать с таким же успехом,
но просто убрав OR A. Кроме то-
го, длину подпрограммы можно
уменьшить, если поставить 3 би-
та, означающие номер ряда, на
свое место при помощи команды
RRCA. Таким образом 5 команд:
140.
OR A
RRA
RRA
RRA
RRA
заменяем на 3:
RRCA
RRCA
RRCA
2
Мы выигрываем сразу в двух
областях - уменьшаем на два бай-
та подпрограмму, которая и без
того мала, а также сокращаем
время ее исполнения (хотя и не-
намного, но для динамических игр
это может оказаться полезным).
********************************