Routines |
Prev: 7208 | Up: Map | Next: 725D |
The address of this uninterruptible subcommand routine is placed into bytes 0x11 and 0x12 of the bike's buffer by the routine at 725E. It controls the bike when it is wheeling along on its own (after ERIC has dismounted), or when ERIC is standing on the saddle.
|
||||
720A | LD HL,$7FF0 | 7FF0 holds the bike's momentum | ||
720D | LD A,(HL) | Pick this up in A | ||
720E | SUB $07 | Is it time for the bike to come to rest? | ||
7210 | JR NC,$7227 | Jump if not | ||
It's time for the bike to come to rest.
|
||||
7212 | LD L,$ED | HL=7FED (ERIC's status flags) | ||
7214 | BIT 7,(HL) | Is ERIC standing on the saddle of the bike? | ||
7216 | JR Z,$721A | Jump if not | ||
7218 | LD (HL),$10 | Set bit 4 at 7FED: ERIC is falling and will not land on his feet | ||
721A | LD H,$D3 | 0xD3=bike | ||
721C | CALL $61B4 | Update the SRB for the bike's current animatory state and location | ||
721F | DEC A | A=animatory state of the bike resting on the floor | ||
7220 | LD L,$12 | Remove the address of this routine from bytes 0x11 and 0x12 of the bike's buffer | ||
7222 | LD (HL),$00 | |||
7224 | JP $6130 | Update the bike's animatory state and update the SRB | ||
The bike still has some momentum left. Check whether it has hit anything.
|
||||
7227 | LD (HL),A | Set the bike's remaining momentum at 7FF0 | ||
7228 | LD HL,($D300) | E=bike's x-coordinate, A=bike's animatory state | ||
722B | LD A,L | |||
722C | LD E,H | |||
722D | CALL $7000 | Check for walls, closed doors or ALBERT in the bike's path | ||
7230 | LD L,$ED | HL=7FED (ERIC's status flags) | ||
7232 | JR NC,$723A | Jump if ALBERT's not impeding the bike's progress | ||
7234 | BIT 7,(HL) | Is ERIC standing on the saddle of the bike? | ||
7236 | JR Z,$7244 | Jump if not | ||
7238 | LD (HL),$10 | Set bit 4: ERIC is falling and will not land on his feet | ||
723A | JR NZ,$7244 | Jump if there are no walls or closed doors in the bike's path | ||
723C | BIT 7,(HL) | Is ERIC standing on the saddle of the bike? | ||
723E | JR Z,$721A | Jump if not | ||
7240 | LD (HL),$40 | Set bit 6: ERIC has hit a wall or closed door while standing on the saddle of the bike | ||
7242 | JR $721A | |||
7244 | LD H,$D3 | 0xD3=bike | ||
7246 | CALL $7250 | Move the bike and one space forward and update the SRB | ||
7249 | LD A,($7FED) | 7FED holds ERIC's status flags | ||
724C | RLCA | Is ERIC standing on the saddle of the bike? | ||
724D | RET NC | Return if not | ||
This entry point is used by the routine at 725E.
|
||||
724E | LD H,$D2 | 0xD2=ERIC | ||
This entry point is used by the routine at 76AC.
|
||||
7250 | CALL $61B4 | Update the SRB for the character's current animatory state and location | ||
7253 | RLCA | |||
7254 | RRCA | |||
7255 | JR C,$7259 | Jump if the character is facing right | ||
7257 | DEC E | |||
7258 | DEC E | |||
7259 | INC E | Now E=x-coordinate of the spot in front of the character | ||
725A | JP $7BEB | Update the character's location, update the SRB, and scroll the screen if necessary |
Prev: 7208 | Up: Map | Next: 725D |