![]() |
Routines |
| Prev: 48754 | Up: Map | Next: 48904 |
|
Used by the routine at CheckBitAndProcessEntry.
Tests the action-taken flag and the top bits of the action flags before looking the object up.
|
||||
| InspectActionTakenFlag | 48785 | BIT 1,(IX+3) | Jump to ProcessEntryWithCounter if the action-taken flag is set. | |
| 48789 | JR NZ,ProcessEntryWithCounter | |||
| 48791 | LD A,(IX+3) | Jump to InspectActionTakenFlag_TestHighBit if either bit 6 or bit 7 of the action flags is set. | ||
| 48794 | AND 192 | |||
| 48796 | CP 0 | |||
| 48798 | JR NZ,InspectActionTakenFlag_TestHighBit | |||
| 48800 | LD A,(IX+0) | Call FetchObjectDataPointer to look up the current object. | ||
| 48803 | PUSH IX | |||
| 48805 | CALL FetchObjectDataPointer | |||
| 48808 | BIT 7,(IX+6) | Jump to ProcessEntryWithCounter if bit 7 of the looked-up object's byte at offset 6 is clear. | ||
| 48812 | POP IX | |||
| 48814 | JR Z,ProcessEntryWithCounter | |||
| 48816 | LD A,(IX+2) | Take the object id at offset 2 and call FetchObjectDataPointer to look it up. | ||
| 48819 | PUSH IX | |||
| 48821 | CALL FetchObjectDataPointer | |||
| 48824 | BIT 7,(IX+6) | Jump to ProcessEntryWithCounter if bit 7 of the looked-up object's byte at offset 6 is clear. | ||
| 48828 | POP IX | |||
| 48830 | JR Z,ProcessEntryWithCounter | |||
| InspectActionTakenFlag_SetTaken | 48832 | SET 1,(IX+3) | Mark the action taken so the script will not repeat it. | |
| 48836 | RES 0,(IX+3) | |||
| 48840 | OR 1 | Set A non-zero and jump back to ProcessEntryWithCounter. | ||
| 48842 | JP ProcessEntryWithCounter | |||
|
The top bit counts the entry down. The bit under it reads the record itself.
|
||||
| InspectActionTakenFlag_TestHighBit | 48845 | CP 128 | Jump back to ProcessEntryWithCounter if it is 128. | |
| 48847 | JR Z,ProcessEntryWithCounter | |||
| 48849 | CP 64 | Jump ahead to InspectActionTakenFlag_TestMarker if it is not 64. | ||
| 48851 | JR NZ,InspectActionTakenFlag_TestMarker | |||
| 48853 | LD A,(IX+0) | Call FetchObjectDataPointer to look up the current object. | ||
| 48856 | PUSH IX | |||
| 48858 | CALL FetchObjectDataPointer | |||
| 48861 | BIT 6,(IX+6) | Jump to ProcessEntryWithCounter if bit 6 of the looked-up object's byte at offset 6 is clear. | ||
| 48865 | POP IX | |||
| 48867 | JR Z,ProcessEntryWithCounter | |||
| 48869 | LD A,(IX+2) | Call FetchObjectDataPointer to look up the current object. | ||
| 48872 | PUSH IX | |||
| 48874 | CALL FetchObjectDataPointer | |||
| 48877 | BIT 6,(IX+6) | Jump to ProcessEntryWithCounter if bit 6 of the looked-up object's byte at offset 6 is clear. | ||
| 48881 | POP IX | |||
| 48883 | JP Z,ProcessEntryWithCounter | |||
| InspectActionTakenFlag_TestMarker | 48886 | BIT 2,(IX+3) | Jump to InspectActionTakenFlag_SetTaken if a marker on the action flags is clear. | |
| 48890 | JR Z,InspectActionTakenFlag_SetTaken | |||
| 48892 | PUSH IX | Call CheckBitAndProcessEntry to test bit and process entry. | ||
| 48894 | CALL CheckBitAndProcessEntry | |||
| 48897 | POP IX | |||
| 48899 | JR NZ,InspectActionTakenFlag_SetTaken | Jump back to InspectActionTakenFlag_SetTaken when CheckBitAndProcessEntry returns non-zero. | ||
| 48901 | JP ProcessEntryWithCounter | The check at CheckBitAndProcessEntry passed, so count the entry again from ProcessEntryWithCounter. | ||
| Prev: 48754 | Up: Map | Next: 48904 |