| Routines

62A0: Terminate a command

The main entry point is used by the routines at 6A46, 6FEF and 707F. Removes the uninterruptible subcommand routine address from bytes 0x6F and 0x70 of the character's buffer, which has the effect of making the routine at 6226 immediately hand control of the character back to the interruptible subcommand or the primary command.
62A0 | LD L,$70 | Byte 0x70 of the buffer contains the MSB of the uninterruptible subcommand routine address
62A2 | JR $62AA | Jump forward to replace it with 0
This entry point is used by the routines at 633C, 6390, 71E8, 7264, 7986, 799A, 7BA0, 7C3F and 7CC8. Removes the interruptible subcommand routine address from bytes 0x69 and 0x6A of the character's buffer, which has the effect of making the routine at 6226 immediately hand control of the character back to the primary command.
62A4 | LD L,$6A | Byte 0x6A of the buffer contains the MSB of the interruptible subcommand routine address
62A6 | JR $62AA | Jump forward to replace it with 0
This entry point is used by the routines at 62D7, 6496, 6B32, 6B58, 7B96, 7C3F, 7D84, 7D9E, 7DA7, F78E, F7E0 and F800. Removes the primary command routine address from bytes 0x63 and 0x64 of the character's buffer, which has the effect of making the routine at 6226 move immediately to the next command in the command list.
62A8 | LD L,$64 | Byte 0x64 of the buffer contains the MSB of the primary command routine address
62AA | LD A,($7FFD) | A=number of the character being worked on (0x98-0xAB)
62AD | LD H,A | Zero out the relevant routine address MSB (in byte 0x64, 0x6A or 0x70) in the character's buffer
62AE | LD (HL),$00
62B0 | JR $6254 | Re-enter the character-moving routine (6226) at the checkpoint for the interruptible subcommand