|
RUSH
#01
29 мая 1999 |
|
Spectrum программинг - Зеркальное отображение байтов и Восстановление фона из буфера.

Привет всем! Сегодня я хотел бы
рассказать о двух вещах, знать о которых
будет, думаю, полезно всем, кто занимается
игрушками.
Первое: зеркальное отображение байтов
(понятно, для чего это надо?). Алгоритм не
мой, сразу скажу. Обнаружил я его в
DIZZY-XX demo by VAV/MEGACODE. С адреса,
кратного 256 (например, #8000)
располагается таблица (256 байт)
зеркальных байтов (для 0 это #00, для #01
это #80 и т.д). Когда нам нужен
mirror-байт, к примеру, для 1, то делаем
так: ...
LD A,1
LD E,A
LD D,#80
LD A,(DE) ;A=#80, если таблица
сформирована правильно ...
Второе: восстановление фона из буфера
(при печати спрайтов с маской). Во время
сохранения фона перед каждой линией
изображения сохраняем адрес, куда она
выводится. При этом рабочий буфер
увеличится на (высота окна*2), однако и
скорость восстановления увеличится, за
счет того, что не надо будет вычислять
следующую экранную линию. Пример процедуры
восстановления:
LD HL,BUFER
LD A,HIGH ;высота M1 LD E,(HL)
INC HL
LD D,(HL)
INC HL
LDI
LDI
LDI ;ширина 3 байта
DEC A
JR NZ,M1
RET
Скорость можете подсчитать сами.
Вот, пожалуй, и все на сегодня. See
you later! Bye!
Другие статьи номера:
Похожие статьи:
В этот день... 17 ноября