Prev: 47023 Up: Map Next: 47080
47049: Text printing: Print an entry from the common words table
Used by the routines at 46902, 47154, 47162 and 47170.
Input
A (Entry at 47049 only) 91 + index of required entry in common words table
A (Entry at 47055 only) Index of required entry in list of texts
HL (Entry at 47055 only) Start address of a list of texts
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