Prev: 46243 Up: Map Next: 46333
46273: Find The First Noun
Used by the routines at InitialiseDisplayBuffer and ReadDisplaySetupFlag.
Finds the first noun. A value of 5 at DisplayMode takes the noun already prepared in the flag bytes. Otherwise, when bit 7 of DisplayModeFlag is clear, it scans objects from ObjectTablePointer with the handler at ProcessObjectEntryAlternate or ProcessObjectEntry.
FindFirstNoun 46273 LD A,(40975) Jump to CheckFlagAndSetDisplay if the display mode is 5.
46276 CP 5
46278 JR Z,CheckFlagAndSetDisplay
46280 LD A,(45427) Read the display mode flag.
46283 BIT 7,A Go to FindFirstNoun_ProcessObjects if bit 7 of the display mode flag is clear.
46285 JR Z,FindFirstNoun_ProcessObjects
This entry point is used by the routine at CheckFlagAndSetDisplay.
FindFirstNoun_NoAction 46287 LD A,255 Set the zero flag.
46289 CP 255
46291 RET Return.
FindFirstNoun_ProcessObjects 46292 PUSH IY Keep the schedule entry and read the object table pointer.
46294 LD IX,(45438)
46298 LD A,(40989) Read the object attribute value.
46301 AND %00000001 Keep only bit 0.
46303 LD (41016),A Store it in the object attribute flag.
46306 LD A,(40975) Compare *DisplayMode with 5.
46309 CP 5
46311 LD IY,54171 Go to FindFirstNoun_ProcessLoop, keeping the picture record at ProcessObjectEntryAlternate, if the display mode is below 5.
46315 JR C,FindFirstNoun_ProcessLoop
46317 LD IY,54122 Point at the routine at ProcessObjectEntry.
FindFirstNoun_ProcessLoop 46321 CALL CheckFlagAndSetDisplay_ProcessPointer Call CheckFlagAndSetDisplay_ProcessPointer to follow the display pointer.
46324 CP 255 See whether the entry is the end marker.
46326 LD (45438),IX Store the object pointer at ObjectTablePointer.
46330 POP IY Restore the saved schedule entry from the stack.
46332 RET Return.
View the equivalent code in;
Prev: 46243 Up: Map Next: 46333