![]() |
Routines |
| Prev: 50AA | Up: Map | Next: 50E2 |
|
Used by the routine at 52A0.
|
||||||||
| 50B9 | LD HL,$5000 | 5000=display file address | ||||||
|
This entry point is used by the routines at 51A0, 52A0, 53B1 and 54A0 with HL holding the appropriate display file address.
|
||||||||
| 50BC | PUSH HL | Save the display file address | ||||||
| 50BD | LD L,A | L=message number | ||||||
| 50BE | BIT 7,A | Is the message number < 0x80? | ||||||
| 50C0 | JR Z,$50C8 | Jump if so | ||||||
| 50C2 | LD H,$50 | Point HL at the appropriate entry in the message address table at 50F4 | ||||||
| 50C4 | LD E,(HL) | E=LSB of the message address | ||||||
| 50C5 | INC HL | Point HL at the MSB | ||||||
| 50C6 | JR $50CC | |||||||
| 50C8 | LD H,$FE | Use the regular message address table for message numbers < 0x80 | ||||||
| 50CA | LD E,(HL) | E=LSB of the message address | ||||||
| 50CB | INC H | Point HL at the MSB | ||||||
| 50CC | LD D,(HL) | Now DE=address of the message to print | ||||||
| 50CD | LD HL,$5B00 | Prepare the message in screen-ready form in the buffer at 5B00 | ||||||
| 50D0 | PUSH HL | |||||||
| 50D1 | CALL $6B1B | |||||||
| 50D4 | POP HL | |||||||
| 50D5 | POP DE | Restore the display file address to DE | ||||||
| 50D6 | PUSH DE | Display the message on-screen | ||||||
| 50D7 | LD C,$20 | |||||||
| 50D9 | LDIR | |||||||
| 50DB | POP DE | |||||||
| 50DC | INC D | |||||||
| 50DD | BIT 0,H | |||||||
| 50DF | JR NZ,$50D6 | |||||||
| 50E1 | RET | |||||||
| Prev: 50AA | Up: Map | Next: 50E2 |