Как написать игру для ZX Spectrum на ассемблере


         

Окна в игре MICRONAUT ONE - часть 6


Зеркальное отображение окон не будет полноценным, если «переворачивать» только пиксели, нужно также отображать и атрибуты. Процедура, выполняющая такую операцию, в общем должна быть похожа на только что описанную, она будет даже несколько проще благодаря тому, что сами байты в этом случае отображать уже не требуется. Если вам понятен принцип работы предыдущей подпрограммы, то с этой вы разберетесь без труда, посему приводим ее исходный текст без лишних предисловий и комментариев:

MARV LD BC,(LEN) LD A,(ROW) LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD DE,#5800 ADD HL,DE LD A,(COL) ADD A,L LD L,A LD D,H LD A,C ADD A,L DEC A LD E,A MARV1 PUSH BC PUSH DE PUSH HL SRL C JR NC,MARV2 INC C MARV2 LD A,(HL) EX AF,AF' LD A,(DE) LD (HL),A EX AF,AF' LD (DE),A INC HL DEC DE DEC C JR NZ,MARV2 POP DE POP HL LD BC,32 ADD HL,BC EX DE,HL ADD HL,BC POP BC DJNZ MARV1 RET




Содержание  Назад  Вперед