Prev: 96B3 Up: Map Next: 9ACD
9A85: Routine at 9A85
Used by the routines at Action_Talkto and 96B3.
Input
A The index to search for
9A85 PUSH DE Stash DE and BC on the stack.
9A86 PUSH BC
9A87 LD B,A B=A (search key).
9A88 LD HL,$CACB HL=CACB.
9A8B LD DE,$0007 DE=$0007.
9A8E LD A,(HL) If the current pointer matches our key jump to 9A9A.
9A8F CP B
9A90 JR Z,$9A9A
9A92 CP $FF If we've reached the termination character then jump to 9A9A.
9A94 JR Z,$9A9A
9A96 ADD HL,DE Increase the pointer address by $0007 (using DE).
9A97 JP $9A8E Jump to 9A8E.
9A9A POP BC Restore BC and DE from the stack.
9A9B POP DE
9A9C PUSH HL IY=HL.
9A9D POP IY
9A9F RET Return.
This entry point is used by the routines at Action_Examine and 96B3.
9AA0 PUSH IY Store IY and IX on the stack.
9AA2 PUSH IX
9AA4 CALL $9A85 Call 9A85.
9AA7 CP $FF Jump to 9AC8 if the termination character was reached.
9AA9 JR Z,$9AC8
9AAB LD L,(IY+$04) HL=
9AAE LD H,(IY+$05)
9AB1 PUSH HL IX=HL.
9AB2 POP IX
9AB4 LD A,B
9AB5 CALL IndexIdTable Call IndexIdTable.
9AB8 CP $FF Jump to 9AC8 if the termination character was reached.
9ABA JR Z,$9AC8
9ABC LD L,(IX+$01) Store ... TODO
9ABF LD H,(IX+$02)
9AC2 LD (IY+$02),L
9AC5 LD (IY+$03),H
9AC8 POP IX Restore IX and IY from the stack.
9ACA POP IY
9ACC RET Return.
Prev: 96B3 Up: Map Next: 9ACD