Prev: 44944 Up: Map Next: 44983
44959: Parser: Validate Two Direct Objects
Used by the routines at Action_Throw and Action_Place.
Output
F The zero flag is set when the command has two valid direct objects
F The carry flag is set when the command is malformed
Parser_ValidateTwoDirectObjects 44959 CALL Parser_ValidateDirectObject Call Parser_ValidateDirectObject.
44962 RET C Return if there is no direct object in the user input (so the command is malformed).
A now contains the count of the number of valid direct objects.
44963 CP 1 Jump to ValidateTwoDirectObjects if the number of valid direct objects in the user input is not 1.
44965 JR NZ,ValidateTwoDirectObjects
There is only one valid direct objects in the user input and the command needs two...
Print "Please be more specific.".
44967 CALL Response_PleaseBeMoreSpecific Call Response_PleaseBeMoreSpecific.
44970 SCF Set the carry flag.
44971 RET Return.
There are two or more valid direct objects in the user input.
ValidateTwoDirectObjects 44972 CP 3 Jump to ValidateTwoDirectObjects_TooMany if the number of valid direct objects in the user input is greater than or equal to 3.
44974 JR NC,ValidateTwoDirectObjects_TooMany
44976 AND A Set zero flag.
44977 RET Return.
There are more than two valid direct objects in the user input.
Print "Please rephrase that.".
ValidateTwoDirectObjects_TooMany 44978 CALL Response_PleaseRephraseThat Call Response_PleaseRephraseThat.
44981 SCF Set the carry flag.
44982 RET Return.
View the equivalent code in The Jewels Of Babylon.
Prev: 44944 Up: Map Next: 44983