Routines |
Prev: 9BDC | Up: Map | Next: 9C78 |
Used by the routine at Action_Dir.
|
||||
9C41 | PUSH IX | Stash IX, IY and BC on the stack. | ||
9C43 | PUSH IY | |||
9C45 | PUSH BC | |||
9C46 | LD B,A | Stash A in the B register temporarily so it doesn't get overwritten. | ||
9C47 | CALL LocateLocation | Call LocateLocation. | ||
9C4A | LD A,(IX+$01) | |||
9C4D | LD C,A | Stash A in the C register temporarily so it doesn't get overwritten. | ||
9C4E | LD IX,$C060 | Set IX to $C060 which is 3 bytes less than the start of the object table due to the following line adding $0003 and moving us on to the first record. | ||
9C52 | CALL Step3ByteTable | Call Step3ByteTable. | ||
9C55 | JR Z,$9C6D | Jump to 9C6D if we've reached the end of the object data. | ||
9C57 | LD A,(IY+$00) | If the TODO is not $01 (TODO), then loop back round to 9C52 to move onto the next record. | ||
9C5A | CP $01 | |||
9C5C | JR NZ,$9C52 | |||
Success! We've found a record which matches $01 (TODO).
|
||||
9C5E | LD A,B | Restore the previous value of A from the B register. | ||
9C5F | CP (IY+$10) | |||
9C62 | JR NZ,$9C52 | |||
9C64 | LD A,C | |||
9C65 | SUB (IY+$02) | |||
9C68 | JR C,$9C74 | |||
9C6A | LD C,A | |||
9C6B | JR $9C52 | Jump to 9C52. | ||
9C6D | LD A,C | Restore the previous value of A from the C register. | ||
9C6E | POP BC | Restore BC, IY and IX from the stack. | ||
9C6F | POP IY | |||
9C71 | POP IX | |||
9C73 | RET | Return. | ||
9C74 | LD C,$00 | |||
9C76 | JR $9C6D | Jump to 9C6D. |
Prev: 9BDC | Up: Map | Next: 9C78 |