![]()  | 
Routines | 
| Prev: 54089 | Up: Map | Next: 54122 | 
| 
 
Used by the routines at Handler_FindCharacterAction, 41565, 51497, FetchObjectDataPointer and 56428.
 
 
  | 
||||||||||||||||||
| SearchThreeByteTable | 54094 | EXX | Switch to the shadow registers. | |||||||||||||||
| 54095 | LD E,3 | Set the length of the data in E (3 bytes). | ||||||||||||||||
| 
 
This entry point is used by the routine at SearchTwoByteTable.
 
 | 
||||||||||||||||||
| SearchTable_Start | 54097 | PUSH IX | Copy the table for searching into HL (using the stack). | |||||||||||||||
| 54099 | POP HL | |||||||||||||||||
| 54100 | LD B,A | Copy the table ID into B. | ||||||||||||||||
| 54101 | LD D,0 | Reset D to 0 for the length offset calculation. | ||||||||||||||||
| SearchTable_Loop | 54103 | LD A,(HL) | Fetch a byte from the table. | |||||||||||||||
| 54104 | CP B | Jump to SearchTable_Return if the byte is the table ID we're searching for or if the termination character has been reached (255). | ||||||||||||||||
| 54105 | JR Z,SearchTable_Return | |||||||||||||||||
| 54107 | CP 255 | |||||||||||||||||
| 54109 | JR Z,SearchTable_Return | |||||||||||||||||
| 54111 | ADD HL,DE | Move to the next table entry. | ||||||||||||||||
| 54112 | JP SearchTable_Loop | Jump back to SearchTable_Loop. | ||||||||||||||||
| 
 
Either the table ID was matched, or the terminator was reached.
 
 | 
||||||||||||||||||
| SearchTable_Return | 54115 | PUSH HL | Copy the table pointer into IX (using the stack). | |||||||||||||||
| 54116 | POP IX | |||||||||||||||||
| 54118 | CP 255 | Set the zero flag if the termination character was reached (255). | ||||||||||||||||
| 54120 | EXX | Switch back to the normal registers. | ||||||||||||||||
| 54121 | RET | Return. | ||||||||||||||||
| Prev: 54089 | Up: Map | Next: 54122 |