![]() |
Routines |
Prev: 44262 | Up: Map | Next: 44338 |
Used by the routine at Handler_UserInput.
|
||||||||
Handler_MatchItem | 44283 | PUSH HL | Stash HL, DE, BC and IX on the stack. | |||||
44284 | PUSH DE | |||||||
44285 | PUSH BC | |||||||
44286 | PUSH IX | |||||||
44288 | LD HL,(42950) | HL=*Pointer_Vocabulary. | ||||||
44291 | LD C,0 | C=0. | ||||||
44293 | JR Handler_MatchItem_2 | Jump to Handler_MatchItem_2. | ||||||
Handler_MatchItem_0 | 44295 | LD E,B | E=B. | |||||
44296 | LD D,0 | D=0. | ||||||
44298 | ADD HL,DE | HL+=DE. | ||||||
44299 | LD A,(HL) | A=*HL. | ||||||
44300 | CP 44 | Compare A with 44. | ||||||
44302 | JR Z,Handler_MatchItem_1 | Jump to Handler_MatchItem_1 if A is equal to 44. | ||||||
44304 | INC C | Increment C by one. | ||||||
44305 | JR Handler_MatchItem_2 | Jump to Handler_MatchItem_2. | ||||||
Handler_MatchItem_1 | 44307 | INC HL | Increment HL by one. | |||||
Handler_MatchItem_2 | 44308 | LD A,(HL) | Jump to MatchItem_Return if *HL is equal to 255. | |||||
44309 | CP 255 | |||||||
44311 | JR Z,MatchItem_Return | |||||||
44313 | LD IX,43055 | IX=FourLetterBuffer. | ||||||
44317 | LD B,4 | B=4. | ||||||
Handler_MatchItem_3 | 44319 | LD A,(IX+0) | Jump to Handler_MatchItem_0 if *IX+0 is not equal to *HL. | |||||
44322 | CP (HL) | |||||||
44323 | JR NZ,Handler_MatchItem_0 | |||||||
44325 | INC HL | Increment HL by one. | ||||||
44326 | INC IX | Increment IX by one. | ||||||
44328 | DJNZ Handler_MatchItem_3 | Decrease counter by one and loop back to Handler_MatchItem_3 until counter is zero. | ||||||
44330 | LD A,C | A=C. | ||||||
44331 | SCF | Set the carry flag to indicate that an item was successfully found. | ||||||
MatchItem_Return | 44332 | POP IX | Restore IX, BC, DE and HL from the stack. | |||||
44334 | POP BC | |||||||
44335 | POP DE | |||||||
44336 | POP HL | |||||||
44337 | RET | Return. |
Prev: 44262 | Up: Map | Next: 44338 |