![]() |
Routines |
| Prev: 43300 | Up: Map | Next: 43370 |
|
Calls the parser check indexed in JumpTable_ParserChecks and succeeds when it returns with the carry set.
Stores A at ScriptParserResult.
|
||||||||||||
|
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 |