Prev: 73BE Up: Map Next: 73F0
73D7: Message code $0B: call a sub-message
Interprets the message at a relative address (the signed byte after the code, counted from that byte) as a subroutine, by calling 72E8 recursively, and then continues with the current message. This lets common phrases be shared between messages.
73D7 INC IX Step past this code, to its jump-distance byte
73D9 PUSH IX HL = that same address...
73DB POP HL
73DC PUSH HL ...save it, ready to measure the jump from
73DD LD E,(IX+$00) E = the signed jump distance
73E0 LD D,$00
73E2 BIT 7,E Negative?
73E4 JR Z,$73E8
73E6 LD D,$FF If so, sign-extend it into D
73E8 ADD HL,DE HL = the address of the sub-message
73E9 CALL $72E8 Print it, as a complete message in its own right
73EC POP IX Restore IX to just after the jump-distance byte, so the outer message carries on from there
73EE XOR A Already printed
73EF RET
Prev: 73BE Up: Map Next: 73F0