| Routines

28160: Print a message

Used by the routines at 28186 and 28357.
Input
DE | Display file address
HL | Message address
28160 | LD A,(HL) | Pick up the ASCII code of the next character to print
28161 | ADD A,A | Have we reached the end of the message?
28162 | RET Z | Return if so
28163 | NOP |
28164 | NOP |
28165 | INC HL | Point HL at the next character in the message
28166 | PUSH HL | Save this pointer for now
28167 | PUSH DE | Save the display file address
28168 | LD H,15 | Point HL at the base address of the graphic data for the font character (in the ROM)
28170 | LD L,A
28171 | ADD HL,HL
28172 | ADD HL,HL
28173 | LD B,8 | Print the character on the screen
28175 | LD A,(HL)
28176 | LD (DE),A
28177 | INC L
28178 | INC D
28179 | DJNZ 28175
28181 | POP DE | Restore the display file address to DE
28182 | POP HL | Restore the pointer to the next character in the message
28183 | INC E | Point DE at the next display file location
28184 | JR 28160 | Jump back to print the next character