Prev: 79B6 Up: Map Next: 7A73
7A14: Inglish: Resolve The First Noun
Resolves the first noun of the clause into the current object, or counts another try in the third match buffer.
Inglish_ResolveTheFirstNoun 7A14 CALL Inglish_FindTheFirstNoun Call Inglish_FindTheFirstNoun to find the first noun.
7A17 JR NZ,Inglish_ResolveTheFirstNoun_CountTheThirdMatch Jump to Inglish_ResolveTheFirstNoun_CountTheThirdMatch if Inglish_FindTheFirstNoun returned an object.
7A19 LD A,($7940) Return if the grammar marker is not 01.
7A1C CP $01
7A1E RET NZ
7A1F LD A,($7956) Read the copied grammar marker.
7A22 LD ($B6E8),A Update *CurrentObject.
7A25 CALL Inglish_NoteTheSecondNoun Call Inglish_NoteTheSecondNoun to note the second noun.
7A28 CALL Inglish_TestTheScratchBits Call Inglish_TestTheScratchBits to test the scratch bits.
7A2B JR NZ,Inglish_ResolveTheFirstNoun_FindTheSecondNoun Jump to Inglish_ResolveTheFirstNoun_FindTheSecondNoun if Inglish_TestTheScratchBits returned with the zero flag clear.
7A2D RET Return.
Inglish_ResolveTheFirstNoun_CountTheThirdMatch 7A2E LD HL,$793F Point HL at the third match buffer.
7A31 INC (HL) Count one more in the third match buffer.
7A32 CALL Inglish_TestTheScratchBits Call Inglish_TestTheScratchBits to test the scratch bits.
7A35 JR Z,Inglish_ResolveTheFirstNoun_RunTheAction Jump to Inglish_ResolveTheFirstNoun_RunTheAction if Inglish_TestTheScratchBits returned zero.
7A37 CALL Inglish_NoteTheSecondNoun Call Inglish_NoteTheSecondNoun to note the second noun.
7A3A CALL Inglish_FindTheSecondNoun Call Inglish_FindTheSecondNoun to find the second noun.
Inglish_ResolveTheFirstNoun_TestForASecondNoun 7A3D JR Z,Inglish_ResolveTheFirstNoun Jump back to Inglish_ResolveTheFirstNoun if Inglish_FindTheSecondNoun found no second noun (FF).
7A3F LD A,($7953) Return if the phrase-byte flag reached zero.
7A42 DEC A
7A43 RET Z
7A44 LD A,($B6E8) Read *CurrentObject.
7A47 LD ($7956),A Update the copied grammar marker.
7A4A LD HL,$7940 Point HL at the grammar marker.
7A4D INC (HL) Count one more in the grammar marker.
7A4E JR Inglish_ResolveTheFirstNoun Jump back to Inglish_ResolveTheFirstNoun to run the grammar.
Inglish_ResolveTheFirstNoun_RunTheAction 7A50 CALL Inglish_AskWhetherToSuppress Call Inglish_AskWhetherToSuppress to run the action and see whether its message was held back.
7A53 JR Inglish_ResolveTheFirstNoun_TestForASecondNoun Jump back to Inglish_ResolveTheFirstNoun_TestForASecondNoun to read the next word.
Inglish_ResolveTheFirstNoun_FindTheSecondNoun 7A55 CALL Inglish_FindTheSecondNoun Call Inglish_FindTheSecondNoun to find the second noun.
7A58 JR NZ,Inglish_ResolveTheFirstNoun_ReadTheSecondObject Jump to Inglish_ResolveTheFirstNoun_ReadTheSecondObject if Inglish_FindTheSecondNoun found a second noun.
7A5A LD A,($7941) Return if the second grammar marker is not 01.
7A5D CP $01
7A5F RET NZ
7A60 LD A,($7957) Read the copied second marker.
7A63 LD ($B6E9),A Update *B6E9.
7A66 RET Return.
Inglish_ResolveTheFirstNoun_ReadTheSecondObject 7A67 LD A,($B6E9) Read *B6E9.
7A6A LD ($7957),A Update the copied second marker.
7A6D LD HL,$7941 Point HL at the second grammar marker.
7A70 INC (HL) Count one more in the second grammar marker.
7A71 JR Inglish_ResolveTheFirstNoun_FindTheSecondNoun Jump back to Inglish_ResolveTheFirstNoun_FindTheSecondNoun to run the grammar.
Prev: 79B6 Up: Map Next: 7A73