Prev: 67C6 Up: Map Next: 6859
6802: Track the photon bolt on screen
Used by the routine at 5F89.
6802 LD A,($5DDE)
6805 BIT 0,A
6807 RET NZ
6808 LD A,($5DCB) Is a bike being blown up?
680B BIT 7,(HL)
680D RET NZ Return if it is
680E LD A,($5DD8)
6811 CP C
6812 RET NZ
This entry point is used by the routine at 663D.
6813 LD A,($5DCB) Is a bike being blown up?
6816 BIT 7,A
6818 RET NZ Return if it is
6819 LD DE,($5DDC) Get the next photon bolt graphic
681D LD IX,($5DDA) Get the screen location for it
6821 LD L,(IX+$00) Put the display position in HL
6824 LD H,(IX+$01)
6827 LD A,($5DD8) Get current photon bolt offset
682A ADD A,L
682B LD L,A Adjust display file to the right place
682C LD A,(HL) Get the current display file offset
682D INC A Is there anything here (eg: tree)?
682E DEC A
682F JR NZ,$6886 Jump forward if there is something here
6831 LD B,$08 8 lines
6833 LD A,(DE) Get character
6834 OR (HL) Merge it with what's on screen and store it
6835 LD (HL),A
6836 INC H Move to next line
6837 INC DE
6838 DJNZ $6833
683A LD H,(IX+$02) Get attribute address
683D LD A,$07 Set white INK
683F OR (HL) Merge which what's there and store it
6840 LD (HL),A
6841 LD A,($5DD9) Get photon bolt distance
6844 DEC A One less
6845 JR Z,$686B Jump if we've finished firing
6847 DEC IX Back to offset store
6849 DEC IX
684B DEC IX
684D LD ($5DDA),IX Store next screen location
6851 LD ($5DDC),DE Store next graphic
6855 LD ($5DD9),A Store next distance
6858 RET
Prev: 67C6 Up: Map Next: 6859