|  | Routines | 
| Prev: 6DC5 | Up: Map | Next: 6DEF | 
| 
The address of this uninterruptible subcommand routine is placed into bytes 0x6F and 0x70 of a catapult pellet's buffer by the routine at 6D1C. It controls the pellet from the beginning of its vertical flight to the end, including any collision with a shield.
 
 | ||||||||
| 6DC6 | CALL $6214 | Update the SRB for the pellet's current location | ||||||
| 6DC9 | LD B,A | B=pellet's animatory state | ||||||
| 6DCA | LD A,D | A=pellet's y-coordinate | ||||||
| 6DCB | CP $98 | Has the pellet hit the ceiling of the top floor? | ||||||
| 6DCD | JP Z,$6D24 | Terminate the pellet if so | ||||||
| 6DD0 | DEC D | Up a level | ||||||
| 6DD1 | LD L,$71 | Byte 0x71 of the pellet's buffer holds the distance left to travel | ||||||
| 6DD3 | DEC (HL) | Has the pellet finished travelling? | ||||||
| 6DD4 | JP Z,$6D24 | Jump if so | ||||||
| 6DD7 | LD A,B | A=pellet's animatory state | ||||||
| 6DD8 | CALL $61B0 | Update the pellet's location and update the SRB | ||||||
| 
This entry point is used by the routine at 6D1C to check whether a pellet fired from a staircase has hit a shield.
 | ||||||||
| 6DDB | LD L,$61 | Byte 0x61 holds the pellet's y-coordinate | ||||||
| 6DDD | LD D,(HL) | Pick this up in D | ||||||
| 6DDE | INC D | D=y-coordinate of the pellet's potential target | ||||||
| 6DDF | INC L | Byte 0x62 holds the pellet's x-coordinate | ||||||
| 6DE0 | LD E,(HL) | Pick this up in E | ||||||
| 6DE1 | INC E | E=x-coordinate of the pellet's potential target | ||||||
| 
This entry point is used by the routine at F726 with DE holding the coordinates of ERIC's hand (and H=0xAC).
 | ||||||||
| 6DE2 | SET 7,E | E=128 + x-coordinate of the potential target | ||||||
| 6DE4 | PUSH HL | |||||||
| 6DE5 | CALL $6DEF | Has the pellet (or ERIC's hand) hit a shield? | ||||||
| 6DE8 | POP HL | |||||||
| 6DE9 | RET NC | Return if not | ||||||
| 6DEA | LD L,$71 | If it was a pellet that hit the shield, this sets its remaining distance to travel to 1, so it will be terminated the next time this routine is called | ||||||
| 6DEC | LD (HL),$01 | |||||||
| 6DEE | RET | |||||||
| Prev: 6DC5 | Up: Map | Next: 6DEF |