Prev: ACE6 Up: Map Next: AD32
ACFB: Handler: Match Item
Used by the routine at Handler_UserInput.
Output
F The carry flag is set to indicate that an item was found
Handler_MatchItem ACFB PUSH HL Stash HL, DE, BC and IX on the stack.
ACFC PUSH DE
ACFD PUSH BC
ACFE PUSH IX
AD00 LD HL,($A7C6) HL=*Pointer_Vocabulary.
AD03 LD C,$00 C=00.
AD05 JR Handler_MatchItem_2 Jump to Handler_MatchItem_2.
Handler_MatchItem_0 AD07 LD E,B E=B.
AD08 LD D,$00 D=00.
AD0A ADD HL,DE HL+=DE.
AD0B LD A,(HL) A=*HL.
AD0C CP $2C Compare A with 2C.
AD0E JR Z,Handler_MatchItem_1 Jump to Handler_MatchItem_1 if A is equal to 2C.
AD10 INC C Increment C by one.
AD11 JR Handler_MatchItem_2 Jump to Handler_MatchItem_2.
Handler_MatchItem_1 AD13 INC HL Increment HL by one.
Handler_MatchItem_2 AD14 LD A,(HL) Jump to MatchItem_Return if *HL is equal to FF.
AD15 CP $FF
AD17 JR Z,MatchItem_Return
AD19 LD IX,$A82F IX=FourLetterBuffer.
AD1D LD B,$04 B=04.
Handler_MatchItem_3 AD1F LD A,(IX+$00) Jump to Handler_MatchItem_0 if *IX+00 is not equal to *HL.
AD22 CP (HL)
AD23 JR NZ,Handler_MatchItem_0
AD25 INC HL Increment HL by one.
AD26 INC IX Increment IX by one.
AD28 DJNZ Handler_MatchItem_3 Decrease counter by one and loop back to Handler_MatchItem_3 until counter is zero.
AD2A LD A,C A=C.
AD2B SCF Set the carry flag to indicate that an item was successfully found.
MatchItem_Return AD2C POP IX Restore IX, BC, DE and HL from the stack.
AD2E POP BC
AD2F POP DE
AD30 POP HL
AD31 RET Return.
Prev: ACE6 Up: Map Next: AD32