;z80 ;assembler ;zx-spectrum KEY LD A,1 CP #FF JR Z,KEYS1 CP #FE RET Z CP #FD JR Z,KEYS2 DEC A JR Z,KEYS LD (KEY+1),A JP VIEV KEYS1 CALL CLS_EK LD A,10 LD (KEY+1),A JR KEY KEYS2 LD A,#FF LD (STR+1),A DEC A LD (KEY+1),A JR KEY KEYS CALL KLAVS RR C CALL NC,LEFT RR C CALL NC,RIGHT RR C CALL NC,UP RR C CALL NC,DOWN RR C CALL NC,FIRE ;----------------------------------- LD A,#FE IN A,(#FE) RRA JR C,CH_SPR1 LD A,#7F IN A,(#FE) RRA CALL NC,EXIT ;EXIT ;----------------------------------- CH_SPR1 LD A,0 XOR 1 LD (CH_SPR1+1),A JR Z,CH_SPR2 LD HL,BUFER5+336-48 JR CH_SPR3 CH_SPR2 LD HL,BUFER2+336-48 CH_SPR3 LD (CH_SPR+1),HL JP VIEV EXIT LD A,5 LD (STR+1),A RET LEFT LD A,(COORDX) OR A RET Z SUB 2 LD (COORDX),A RET RIGHT LD A,(COORDX) CP 255-16 RET NC ADD A,2 LD (COORDX),A RET DOWN LD A,(COORDY) CP 191-4 RET NC ADD A,2 LD (COORDY),A RET UP LD A,(COORDY) OR A RET Z SUB 2 LD (COORDY),A RET VIEV CALL SOHR VIV LD A,1 OR A CALL Z,VIEV_SP LD HL,(COORDX) CALL NPOS VIEV3 PUSH HL CH_SPR LD HL,BUFER2+336-48 LD DE,48 LD A,(COORDX) AND 7 JR Z,VIEV5 LD B,A VIEV6 OR A SBC HL,DE DJNZ VIEV6 VIEV5 PUSH HL MASK LD HL,BUFER7+336-48 OR A JR Z,VIEV8 LD B,A VIEV9 OR A SBC HL,DE DJNZ VIEV9 VIEV8 PUSH HL POP IX POP HL POP DE LD B,COORY VIEV7 LD A,D CP #58 RET NC PUSH DE LD A,(DE) AND (IX+0) OR (HL) LD (DE),A INC E INC HL INC IX LD A,(DE) AND (IX+0) OR (HL) LD (DE),A INC E INC HL INC IX LD A,(DE) AND (IX+0) OR (HL) LD (DE),A INC HL INC IX POP DE CALL DPIX_DE DJNZ VIEV7 RET VIEV_SP LD HL,BUFER9+336-48 LD (CH_SPR+1),HL LD HL,BUFER10+336-48 LD (MASK+1),HL RET SOHR LD HL,(COORDX) CALL NPOS LD DE,BUFER3 LD B,COORY SOHR1 LD A,H CP #58 RET NC PUSH HL LD A,(HL) LD (DE),A INC L INC DE LD A,(HL) LD (DE),A INC L INC DE LD A,(HL) LD (DE),A INC DE POP HL CALL DPIX_HL DJNZ SOHR1 RET VIEV_B PUSH AF LD HL,(COORDX) CALL NPOS LD DE,BUFER3 LD B,COORY VIEV_B1 LD A,H CP #58 JR NC,VIEV_B2 PUSH HL LD A,(DE) LD (HL),A INC L INC DE LD A,(DE) LD (HL),A INC L INC DE LD A,(DE) LD (HL),A INC DE POP HL CALL DPIX_HL DJNZ VIEV_B1 VIEV_B2 POP AF RET ;---------------------------------- NPOS LD A,L RLCA RLCA RLCA XOR H AND 199 XOR H RLCA RLCA LD L,A LD A,H AND A RRA SCF RRA AND A RRA XOR H AND 248 XOR H LD H,A RET ;--------------------------------- DPIX_DE INC D LD A,D AND 7 RET NZ LD A,E ADD A,#20 LD E,A RET C LD A,D SUB 8 LD D,A RET DPIX_HL EX DE,HL CALL DPIX_DE EX DE,HL RET UPIX_HL LD A,H DEC H AND 7 RET NZ LD A,L SUB #20 LD L,A RET C LD A,H ADD A,8 LD H,A RET UPIX_DE EX DE,HL CALL UPIX_HL EX DE,HL RET ;----------------------------------