| Routines

20665: Print a message centred across the entire screen

Used by the routine at 21152.
Input
A | Message number
20665 | LD HL,20480 | 20480=display file address
This entry point is used by the routines at 20896, 21152, 21425 and 21664 with HL holding the appropriate display file address.
20668 | PUSH HL | Save the display file address
20669 | LD L,A | L=message number
20670 | BIT 7,A | Is the message number < 128?
20672 | JR Z,20680 | Jump if so
20674 | LD H,80 | Point HL at the appropriate entry in the message address table at 20724
20676 | LD E,(HL) | E=LSB of the message address
20677 | INC HL | Point HL at the MSB
20678 | JR 20684 |
20680 | LD H,254 | Use the regular message address table for message numbers < 128
20682 | LD E,(HL) | E=LSB of the message address
20683 | INC H | Point HL at the MSB
20684 | LD D,(HL) | Now DE=address of the message to print
20685 | LD HL,23296 | Prepare the message in screen-ready form in the buffer at 23296
20688 | PUSH HL
20689 | CALL 27419
20692 | POP HL
20693 | POP DE | Restore the display file address to DE
20694 | PUSH DE | Display the message on-screen
20695 | LD C,32
20697 | LDIR
20699 | POP DE
20700 | INC D
20701 | BIT 0,H
20703 | JR NZ,20694
20705 | RET |