Prev: 43300 Up: Map Next: 43370
43335: Condition: Parser Fails
Calls the parser check indexed in JumpTable_ParserChecks and succeeds when it returns with the carry set.
Stores A at ScriptParserResult.
Input
IX Pointer to the script entry (opcode, check index)
Output
F The zero flag is set when the check fails
The operand selects a parser check from JumpTable_ParserChecks.
Condition_ParserFails 43335 LD E,(IX+1) Fetch the check number (the operand) from *IX+1 into E.
43338 PUSH IX Stash IX on the stack.
43340 LD IX,42873 Point IX at the parser-check jump table at JumpTable_ParserChecks.
Resolve the check routine address from that table.
43344 CALL GetTableEntry Call GetTableEntry.
Jump to that check, returning here at ParserFails_Return.
43347 LD DE,43352 Push the return address ParserFails_Return onto the stack.
43350 PUSH DE
43351 JP (HL) Jump to the check routine held in HL.
The check returns here with its result in A and the carry flag.
ParserFails_Return 43352 POP IX Restore the script pointer from the stack.
43354 LD (43014),A Store the check's result at ScriptParserResult.
43357 JR NC,ParserFails_Passed Jump to ParserFails_Passed if the check passed (carry clear).
43359 XOR A Clear A and set the zero flag; the parser check failed, so this condition succeeds.
43360 JP RunScript_SkipCondition_TwoBytes Jump to RunScript_SkipCondition_TwoBytes.
The check passed, so force this "fails" condition to fail.
ParserFails_Passed 43363 XOR A Clear A ready for RunScript_InvertConditionResult.
43364 CALL RunScript_InvertConditionResult Call RunScript_InvertConditionResult so the condition fails when the check passed.
43367 JP RunScript_SkipCondition_TwoBytes Jump to RunScript_SkipCondition_TwoBytes.
Prev: 43300 Up: Map Next: 43370