Prev: 46410 Up: Map Next: 46500
46440: Match The Second Noun
Matches the second noun, using the second set of variables: 40976, 45433, 46409, 45440, RoomGraphicsParameter and 45432. The tests are the same shape as FindFirstNoun.
MatchSecondNoun 46440 LD A,(40976) Jump to CheckFlagAndSetDisplayParameter if the display mode is 5.
46443 CP 5
46445 JR Z,CheckFlagAndSetDisplayParameter
46447 LD A,(45433) Jump ahead to MatchSecondNoun_SaveFrame if bit 7 of display mode flag (45433) is clear.
46450 BIT 7,A
46452 JR Z,MatchSecondNoun_SaveFrame
This entry point is used by the routine at CheckFlagAndSetDisplayParameter.
MatchSecondNoun_Next 46454 LD A,255 Mark the entry as finished.
46456 CP 255 See whether this byte is the end marker.
46458 RET Return.
Read the pointer at 45440, then read the object attribute at ObjectAttributeValue.
MatchSecondNoun_SaveFrame 46459 PUSH IY Keep the schedule entry and read the pointer at 45440.
46461 LD IX,(45440)
46465 LD A,(40989) Read the object attribute value, keep the selected bits of 255 and store it in the object attribute flag.
46468 AND 1
46470 LD (41016),A
46473 LD A,(40976) Read the display mode.
46476 CP 5
46478 LD IY,54171 Point at the routine at ProcessObjectEntryAlternate.
46482 JR C,MatchSecondNoun_CheckEnd Jump ahead to MatchSecondNoun_CheckEnd if display mode (40976) is below 5.
46484 LD IY,54122 Point at the routine at ProcessObjectEntry.
MatchSecondNoun_CheckEnd 46488 CALL TestEndMarker Call TestEndMarker to test for the end marker.
46491 CP 255 See whether the entry is the end marker.
46493 LD (45440),IX
46497 POP IY
46499 RET Return.
View the equivalent code in;
Prev: 46410 Up: Map Next: 46500