Prev: B868 Up: Map Next: B8AA
B86A: Follow The Link Pointer
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