| Routines

28744: Make BOY WANDER fire his catapult (4)

The address of this uninterruptible subcommand routine is placed into bytes 111 and 112 of BOY WANDER's buffer by the routine at 28733. At this point BOY WANDER's catapult is fully raised, and so a pellet is launched.
Input
H | 167 (BOY WANDER)
28744 | LD L,111 | Replace the address of this uninterruptible subcommand routine in bytes 111 and 112 of BOY WANDER's buffer with 28775
28746 | LD (HL),103
28748 | LD L,96 | Byte 96 of BOY WANDER's buffer holds his animatory state (57/185)
28750 | LD A,(HL) | Pick this up in A
28751 | ADD A,70 | Now A=127 or 255 (catapult pellet)
28753 | INC L | Pick up BOY WANDER's coordinates in DE
28754 | LD D,(HL)
28755 | INC L
28756 | LD E,(HL)
28757 | LD H,170 | 170=character number of BOY WANDER's catapult pellet
This entry point is used by the routine at 62495 with H=171 (ERIC's catapult pellet).
28759 | LD (HL),E | Fill in the initial coordinates and animatory state of the catapult pellet
28760 | DEC L
28761 | LD (HL),D
28762 | DEC L
28763 | LD (HL),A
28764 | LD L,111 | Place the address of the uninterruptible subcommand routine at 27932 into bytes 111 and 112 of the catapult pellet's buffer
28766 | LD (HL),28
28768 | INC L
28769 | LD (HL),109
28771 | INC L | Initialise the pellet's remaining distance to travel (13 spaces)
28772 | LD (HL),13
28774 | RET |