![]() |
Routines |
| Prev: B868 | Up: Map | Next: B8AA |
|
Used by the routine at DescribeObjectIfPresent.
Reads the link pointer beside the character lists and follows it.
|
||||
| FollowLinkPointer | B86A | PUSH AF | Point at the link pointer, then call FetchObjectPointerFromStack to fetch object pointer from stack. | |
| B86B | LD IX,$9FEE | |||
| B86F | CALL FetchObjectPointerFromStack | |||
| B872 | JR Z,FollowLinkPointer_HandResultCaller | Go to FollowLinkPointer_HandResultCaller if the object pointer is zero. | ||
| B874 | LD C,(IX+$00) | Read the record's flag byte and read the moved marker. | ||
| B877 | LD B,(IX+$01) | |||
| B87A | LD ($B868),BC | Store that flag word at B868. | ||
| B87E | LD L,(IX-$02) | Read the pointer saved ahead of this record. | ||
| B881 | LD H,(IX-$01) | |||
| B884 | LD ($9FEC),HL | Record the character script entry list. | ||
| B887 | CALL ProcessMemoryEntry | Call ProcessMemoryEntry to run memory entry. | ||
| B88A | POP AF | |||
| B88B | PUSH AF | Jump ahead to FollowLinkPointer_CopyLink if the saved result is zero. | ||
| B88C | AND A | |||
| B88D | JR Z,FollowLinkPointer_CopyLink | |||
| B88F | CALL ReadPointerFirstDisplay | Go to FollowLinkPointer_HandResultCaller if the display list was rebuilt. | ||
| B892 | JR Z,FollowLinkPointer_HandResultCaller | |||
| FollowLinkPointer_CopyLink | B894 | LD BC,($B868) | Read the word at B868 and store it in the word at ActiveTextPointer. | |
| B898 | LD ($A02B),BC | |||
| FollowLinkPointer_Call | B89C | CALL SaveTextPointer | Jump back to FollowLinkPointer_Call while it is not C0. | |
| B89F | CP $C0 | |||
| B8A1 | JR NZ,FollowLinkPointer_Call | |||
| B8A3 | LD HL,($A029) | Write 90 through the pointer at SavedTextPointer. | ||
| B8A6 | LD (HL),$90 | |||
| FollowLinkPointer_HandResultCaller | B8A8 | POP AF | Restore AF from the stack. | |
| B8A9 | RET | Return. | ||
| Prev: B868 | Up: Map | Next: B8AA |