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


         

код команды NOP SPROR EQU


PTBL SPRPUT EQU 0 ; код команды NOP SPROR EQU #B6 ;код команды OR (HL) SPRAND EQU #A6 ;код команды AND (HL) SPRXOR EQU #AE ;код команды XOR (HL) PUSH HL LD (MODE),A ;устанавливаем способ объединения ; изображений LD A,(HL) ;количество знакомест в спрайте INC HL PUSH HL ;умножаем на 3 (результат в HL) LD L,A LD H,0 LD E,L LD D,H ADD HL,HL ADD HL,DE POP DE ADD HL,DE ;начало данных, описывающих пиксели EX DE,HL PTBL1 PUSH AF PUSH BC LD A,(HL) ;вертикальная координата в спрайте INC HL PUSH HL ADD A,B CP 24 JR NC,PTBL4 ;если знакоместо выходит за пределы экрана PUSH DE CALL 3742 ;получаем адрес строки экрана POP DE EX (SP),HL LD A,(HL) ;горизонтальная координата в спрайте EX (SP),HL ADD A,C CP 32 JR NC,PTBL4 ;если знакоместо выходит за пределы экрана ADD A,L LD L,A LD B,8 PUSH HL ;сохраняем адрес экрана PTBL2 LD A,(DE) MODE NOP LD (HL),A INC DE INC H DJNZ PTBL2 POP BC ;восстанавливаем адрес экрана в BC LD A,B ;определяем адрес атрибутов AND #18 SRA A SRA A SRA A ADD A,#58 LD B,A POP HL ;восстанавливаем адрес данных INC HL LD A,(HL) ;переносим байт атрибутов в видеобуфер DEC HL LD (BC),A PTBL3 POP BC POP AF INC HL INC HL DEC A JR NZ,PTBL1 POP HL RET PTBL4 LD HL,8 ADD HL,DE EX DE,HL POP HL JR PTBL3

Описывающий
прямоугольник

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