Prev: 9DC0 Up: Map Next: 9ECA
9E2C: Animate: Laser Beam
LaserBeam_Animate 9E2C CALL $A796
9E2F LD D,(IX+$01)
9E32 LD A,(IX+$02)
9E35 BIT 2,A
9E37 JR Z,LaserBeam_Animate_1
9E39 LD L,A
9E3A LD A,$08
9E3C BIT 0,L
9E3E JR Z,LaserBeam_Animate_0
9E40 NEG
LaserBeam_Animate_0 9E42 ADD A,L
9E43 LD E,A
9E44 LD H,D
9E45 PUSH HL
9E46 CALL ScreenAddress
9E49 LD (IX+$02),E
9E4C LD A,$FF
9E4E XOR (HL)
9E4F LD (HL),A
9E50 POP HL
9E51 CALL AttributeAddress
9E54 LD A,(IX+$07)
9E57 LD (HL),A
9E58 LD A,(IX+$06)
9E5B SUB $08
9E5D LD (IX+$06),A
9E60 AND $F8
9E62 JR NZ,LaserBeam_Animate_1
9E64 RES 2,(IX+$02)
LaserBeam_Animate_1 9E68 EXX
9E69 LD BC,$031C
9E6C LD E,$E0
9E6E EXX
9E6F LD E,$03
9E71 PUSH IX
9E73 POP BC
9E74 INC BC
9E75 INC BC
9E76 INC BC
LaserBeam_Animate_2 9E77 LD A,(BC)
9E78 XOR (IX+$02)
9E7B AND $F8
9E7D JR NZ,LaserBeam_Animate_3
9E7F EXX
9E80 LD A,B
9E81 LD B,C
9E82 LD C,E
9E83 EXX
9E84 INC BC
9E85 DEC E
9E86 JR NZ,LaserBeam_Animate_2
9E88 LD (IX+$00),$00
9E8C RET
LaserBeam_Animate_3 9E8D LD A,(BC)
9E8E BIT 2,A
9E90 JR NZ,LaserBeam_Animate_4
9E92 DEC (IX+$06)
9E95 LD A,(IX+$06)
9E98 AND $07
9E9A RET NZ
9E9B LD A,($5E40)
9E9E AND $03
9EA0 OR $04
9EA2 OR (IX+$06)
9EA5 LD (IX+$06),A
9EA8 LD A,(BC)
9EA9 OR $04
9EAB LD (BC),A
9EAC RET
LaserBeam_Animate_4 9EAD LD A,(BC)
9EAE LD L,A
9EAF LD A,$08
9EB1 BIT 0,L
9EB3 JR Z,LaserBeam_Animate_5
9EB5 NEG
LaserBeam_Animate_5 9EB7 ADD A,L
9EB8 LD (BC),A
9EB9 LD H,D
9EBA CALL ScreenAddress
9EBD EXX
9EBE LD A,B
9EBF LD B,C
9EC0 LD C,E
9EC1 EXX
9EC2 XOR (HL)
9EC3 LD (HL),A
9EC4 INC BC
9EC5 DEC E
9EC6 JP NZ,LaserBeam_Animate_2
9EC9 RET
Prev: 9DC0 Up: Map Next: 9ECA