![]() |
Routines |
Prev: 6670 | Up: Map |
Used by the routine at 621E. Returns with the zero flag set if the sniper (who is not visible at this point) has an x-coordinate that would place him on screen and at least 8 x-coordinates away from Sam.
|
||||||||||
66D8 | LD L,$01 | Point HL at byte 0x01 of the sniper's buffer | ||||||||
This entry point is used by the routine at 62DB with HL pointing at byte 0x01 of the sniper's buffer.
|
||||||||||
66DA | LD A,($E601) | A=Sam's x-coordinate | ||||||||
66DD | SUB (HL) | Subtract the sniper's x-coordinate | ||||||||
66DE | JR NC,$66E2 | Jump if the result is non-negative | ||||||||
66E0 | NEG | Negate the (negative) result | ||||||||
66E2 | CP $08 | Is Sam less than 8 x-coordinates away from the sniper? | ||||||||
66E4 | RET C | Return with the zero flag reset if so | ||||||||
66E5 | LD A,($7FFE) | A=x-coordinate of the leftmost column of the play area on screen | ||||||||
66E8 | SUB $02 | Is the sniper off-screen to the left or right? | ||||||||
66EA | SUB (HL) | |||||||||
66EB | ADD A,$20 | |||||||||
66ED | RET NC | Return with the zero flag reset if so | ||||||||
66EE | XOR A | Set the zero flag | ||||||||
66EF | RET |
Prev: 6670 | Up: Map |