| Routines

653C: Put ERIC midstride, or raise his arm while writing on a blackboard

Used by the routines at 657F, 65E4, 6652 and F650.
Input
A | ERIC's next animatory state (midstride or arm up)
B | ERIC's post-midstride animatory state
DE | ERIC's post-midstride coordinates
HL | ERIC's midstride coordinates
653C | PUSH HL | Store ERIC's midstride/arm-up animatory state and coordinates briefly
653D | PUSH AF
653E | LD HL,$AC63 | Point HL at byte 0x63 of ERIC's buffer
6541 | LD (HL),B | Store ERIC's post-midstride animatory state and coordinates in bytes 0x63, 0x64 and 0x65 of his buffer
6542 | INC L
6543 | LD (HL),D
6544 | INC L
6545 | LD (HL),E
6546 | CALL $6214 | Update the SRB for ERIC's current location
6549 | POP AF | Restore ERIC's midstride/arm-up animatory state and location to A and DE
654A | POP DE
654B | CALL $61B0 | Update ERIC's animatory state and location and update the SRB
654E | LD L,$04 |
6550 | LD A,($7FFC) | 7FFC holds the ASCII code of the last keypress
6553 | BIT 5,A | Was the last keypress upper case (fast)?
6555 | JR Z,$6559 | Jump (with L=4: fast) if so
6557 | LD L,$09 | Otherwise set L=9 (slow)
6559 | LD H,L | Set appropriate values for ERIC's main action timer (7FE8) and midstride action timer (7FE9)
655A | LD ($7FE8),HL
655D | JP $FE52 | Make a walking (or writing-on-board) sound effect