![]() |
Routines |
| Prev: 62669 | Up: Map | Next: 62705 |
|
Used by the routines at 28143 (to check whether a shield has been hit) and 63270 (to make the safe flash). If the pellet's potential target or the safe is on-screen, this routine returns with the carry flag reset and HL holding the attribute file address.
|
||||||
| 62674 | LD HL,32512 | 32512 holds the leftmost column of the skool on screen (0-64) | ||||
| 62677 | LD A,E | Set A to the true x-coordinate of the potential target | ||||
| 62678 | AND 127 | |||||
| 62680 | SUB (HL) | Return with the carry flag set if the pellet is off-screen to the left | ||||
| 62681 | RET C | |||||
| 62682 | CP 32 | The screen is 32 columns wide | ||||
| 62684 | CCF | Return with carry flag set if the pellet is off-screen to the right | ||||
| 62685 | RET C | |||||
|
The potential target is on-screen.
|
||||||
| 62686 | LD L,A | L=screen x-coordinate (0-31) of the potential target | ||||
| 62687 | LD A,D | A=screen y-coordinate (2, 8 or 14) of the potential target | ||||
| 62688 | SUB 152 | |||||
| 62690 | RRCA | A=64 (top floor), 1 (middle floor), or 193 (bottom floor | ||||
| 62691 | RRCA | |||||
| 62692 | RRCA | |||||
| 62693 | LD H,A | Save this floor indicator in H for now | ||||
| 62694 | AND 224 | A=64 (top floor), 0 (middle) or 192 (bottom) | ||||
| 62696 | ADD A,L | Add the screen x-coordinate to get the LSB of the attribute file address of the potential target | ||||
| 62697 | LD L,A | Copy the LSB to L | ||||
| 62698 | LD A,H | A=0 (top floor) or 1 (middle floor or bottom floor) | ||||
| 62699 | AND 3 | |||||
| 62701 | ADD A,88 | Add 88 to get the MSB of the attribute file address of the potential target | ||||
| 62703 | LD H,A | Copy the MSB to H | ||||
| 62704 | RET | Return with the carry flag reset | ||||
| Prev: 62669 | Up: Map | Next: 62705 |