| The Hobbit (v1.0) | Routines |
| Prev: 73BE | Up: Map | Next: 73F0 |
|
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 |