Prev: D351 Up: Map Next: D39B
D36A: Process Object Entry
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