| Routines

F280: Terminate a command

The main entry point is used by the routines at 7A57, F600, F6DE, F748 and F7BF. Removes the primary command routine address from bytes 0x08 and 0x09 of the character's buffer, which has the effect of making the routine at F1FC move immediately to the next command in the command list.
F280 | LD L,$09 | Byte 0x09 of the buffer contains the MSB of the primary command routine address
F282 | JR $F28A | Jump forward to replace it with 0
This entry point is used by the routines at 621E, F359, F383, F5AC, F5CE, F6E9 and F846. Removes the interruptible subcommand routine address from bytes 0x0E and 0x0F of the character's buffer, which has the effect of making the routine at F1FC immediately hand control of the character back to the primary command.
F284 | LD L,$0F | Byte 0x0F of the buffer contains the MSB of the interruptible subcommand routine address
F286 | JR $F28A | Jump forward to replace it with 0
This entry point is used by the routines at FA83 and FB4B. Removes the uninterruptible subcommand routine address from bytes 0x12 and 0x13 of the character's buffer, which has the effect of making the routine at F1FC immediately hand control of the character back to the interruptible subcommand or the primary command.
F288 | LD L,$13 | Byte 0x13 of the buffer contains the MSB of the uninterruptible subcommand routine address
F28A | LD A,($7FFB) | A=number of the character being moved (0xD7-0xE5)
F28D | LD H,A | Zero out the relevant routine address MSB (in byte 0x09, 0x0F or 0x13) in the character's buffer
F28E | LD (HL),$00
F290 | JP $F24D | Re-enter the character-moving routine (F1FC) at the checkpoint for the interruptible subcommand