Prev: B54A Up: Map Next: B5A4
B568: Match The Second Noun
Matches the second noun, using the second set of variables: A010, B179, B549, B180, RoomGraphicsParameter and B178. The tests are the same shape as FindFirstNoun.
MatchSecondNoun B568 LD A,($A010) Jump to CheckFlagAndSetDisplayParameter if the display mode is 05.
B56B CP $05
B56D JR Z,CheckFlagAndSetDisplayParameter
B56F LD A,($B179) Jump ahead to MatchSecondNoun_SaveFrame if bit 7 of display mode flag (B179) is clear.
B572 BIT 7,A
B574 JR Z,MatchSecondNoun_SaveFrame
This entry point is used by the routine at CheckFlagAndSetDisplayParameter.
MatchSecondNoun_Next B576 LD A,$FF Mark the entry as finished.
B578 CP $FF See whether this byte is the end marker.
B57A RET Return.
Read the pointer at B180, then read the object attribute at ObjectAttributeValue.
MatchSecondNoun_SaveFrame B57B PUSH IY Keep the schedule entry and read the pointer at B180.
B57D LD IX,($B180)
B581 LD A,($A01D) Read the object attribute value, keep the selected bits of FF and store it in the object attribute flag.
B584 AND $01
B586 LD ($A038),A
B589 LD A,($A010) Read the display mode.
B58C CP $05
B58E LD IY,$D39B Point at the routine at ProcessObjectEntryAlternate.
B592 JR C,MatchSecondNoun_CheckEnd Jump ahead to MatchSecondNoun_CheckEnd if display mode (A010) is below 05.
B594 LD IY,$D36A Point at the routine at ProcessObjectEntry.
MatchSecondNoun_CheckEnd B598 CALL TestEndMarker Call TestEndMarker to test for the end marker.
B59B CP $FF See whether the entry is the end marker.
B59D LD ($B180),IX
B5A1 POP IY
B5A3 RET Return.
View the equivalent code in;
Prev: B54A Up: Map Next: B5A4