Routines |
Prev: 47023 | Up: Map | Next: 47080 |
|
||||||||||||
47049 | PUSH HL | Store HL (pointer to current position in text to print) | ||||||||||
47050 | LD HL,57693 | Point HL at start of common words table | ||||||||||
47053 | SUB 91 | Subtract 91 to get absolute index of required entry in table | ||||||||||
This entry point is used by the routines at 47110, 47121, 47132 and 47143.
|
||||||||||||
47055 | JR Z,47075 | If index is zero (i.e. first entry is required) then skip ahead to 47075 | ||||||||||
47057 | CP 100 | If index is at least 100 then advance HL to second part of common words table and subtract 100 from required index (see trivia) | ||||||||||
47059 | CALL NC,47179 | |||||||||||
47062 | JR Z,47075 | If index is zero (i.e. first entry is required) then skip ahead to 47075 | ||||||||||
47064 | LD B,A | Load index into B | ||||||||||
47065 | PUSH BC | Store BC (B = remaining number of strings to skip, initially set to index of required entry in common words table) | ||||||||||
47066 | LD BC,65535 | Set BC to 65535 (repeat count for CPIR) | ||||||||||
47069 | XOR A | Set A to zero | ||||||||||
47070 | CPIR | Advance HL until (HL) = A, i.e. a zero (end of string) is found | ||||||||||
47072 | POP BC | Restore BC (B = remaining number of strings to skip) | ||||||||||
47073 | DJNZ 47065 | Loop back to 47065 | ||||||||||
47075 | CALL 46911 | Call text printing routine recursively to print the common word | ||||||||||
47078 | JR 47020 | Restore HL (pointer to current position in text to print) and process next character |
Prev: 47023 | Up: Map | Next: 47080 |