Prev: 7CE0 Up: Map Next: 7CFC
7CF1: Call an interruptible subcommand
Used by the routines at 7CFC, 7D30, 7D9E, F300 and F400. Drops the return address from the stack and copies its LSB into byte 0x63 of the character's buffer (where the LSB of the address of the primary command routine is held), copies the address of the interruptible subcommand routine from BC into bytes 0x6A and 0x6B of the character's buffer, and then jumps to that routine.
Input
BC Interruptible subcommand routine address
H Character number (0x98-0xA9)
7CF1 LD L,$6A Copy the routine address from BC into bytes 0x69 and 0x6A of the character's buffer
7CF3 LD (HL),B
7CF4 DEC L
7CF5 LD (HL),C
7CF6 POP DE Drop the return address off the stack and place its LSB into byte 0x63 of the character's buffer; this ensures that when the interruptible subcommand has finished, control resumes in the caller of this routine
7CF7 LD L,$63
7CF9 LD (HL),E
7CFA PUSH BC Make an indirect jump to the routine address in BC
7CFB RET
Prev: 7CE0 Up: Map Next: 7CFC