![]() |
Routines |
| Prev: 6670 | Up: Map | Next: 66F0 |
|
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 | Next: 66F0 |