![]() |
Routines |
| Prev: D351 | Up: Map | Next: D39B |
|
Used by the routines at CheckFlagAndSetDisplay_CheckObjects, ReadCharacterRecordWord and ReadCharacterRecordValue.
Steps through the objects and marks each one that passes the attribute test.
|
||||
| ProcessObjectEntry | D36A | PUSH BC | Keep the schedule entry. | |
| D36B | PUSH DE | |||
| D36C | PUSH IY | |||
| ProcessObjectEntry_0 | D36E | CALL FetchNextObject | Call FetchNextObject to fetch the next object. | |
| D371 | JR Z,ProcessObjectEntry_Next | Go to ProcessObjectEntry_Next if the next object id is FF. | ||
| D373 | LD BC,$0007 | Point IY seven bytes further on (0007) and call CompareFollowingFields to compare the location data. | ||
| D376 | PUSH IY | |||
| D378 | ADD IY,BC | |||
| D37A | CALL CompareFollowingFields | |||
| D37D | POP IY | Jump back to ProcessObjectEntry_0 while the room fields do not match. | ||
| D37F | JR NZ,ProcessObjectEntry_0 | |||
| D381 | LD A,($A038) | Jump ahead to ProcessObjectEntry_Next if the object attribute flag is not zero. | ||
| D384 | AND A | |||
| D385 | JR NZ,ProcessObjectEntry_Next | |||
| D387 | LD A,(IX+$00) | Call CheckObjectLocationMatch to check object location match. | ||
| D38A | PUSH IX | |||
| D38C | CALL CheckObjectLocationMatch | |||
| D38F | POP IX | Restore the object pointer from the stack. | ||
| D391 | JR Z,ProcessObjectEntry_0 | Go back to ProcessObjectEntry_0 for the next object if this one did not match. | ||
| ProcessObjectEntry_Next | D393 | LD A,(IX+$00) | Read the record flag. | |
| D396 | POP IY | Restore the saved schedule entry, the saved source and the saved count from the stack. | ||
| D398 | POP DE | |||
| D399 | POP BC | |||
| D39A | RET | Return. | ||
|
View the equivalent code in;
|
||||
| Prev: D351 | Up: Map | Next: D39B |