![]() |
Routines |
| Prev: A53C | Up: Map | Next: A581 |
|
Scrolls the message in the window by one pixel and, every sixteen pixels, adds the next character of the message on the right.
|
||||||||
| ScrollMessage | A544 | PUSH HL | Save the address of the message. | |||||
| A545 | LD HL,$BEA0 | Point HL at the top half of the area to scroll. | ||||||
| A548 | LD BC,$020E | Set the width of the area to 02 bytes and the height to 0E. | ||||||
| A54B | CALL ScrollAreaLeft | Scroll the area to the left by one pixel. | ||||||
| A54E | LD HL,$5113 | Point HL at the first screen address to copy. | ||||||
| A551 | CALL CopyColumn | Copy the column of pixels. | ||||||
| A554 | LD HL,$5033 | Point HL at the second screen address to copy. | ||||||
| A557 | CALL CopyColumn | Copy the column of pixels. | ||||||
| A55A | LD HL,$8F98 | Point HL at the lower half of the area to scroll. | ||||||
| A55D | LD BC,$080F | Set the width of the area to 08 bytes and the height to 0F. | ||||||
| A560 | CALL ScrollAreaLeft | Scroll the area to the left by one pixel. | ||||||
| A563 | POP HL | Restore the address of the message. | ||||||
| A564 | AND %00001111 | Keep the low four bits of the scroll counter. | ||||||
| A566 | RET NZ | Return unless a new character is due. | ||||||
| A567 | LD ($A921),A | Reset the scroll counter to zero. | ||||||
| A56A | LD A,($A922) | Fetch the character index from A922. | ||||||
| A56D | INC A | Add one. | ||||||
| A56E | LD ($A922),A | Store it. | ||||||
| A571 | CP $07 | Compare it with the length of the message. | ||||||
| A573 | RET NC | Return if the message has been completely printed. | ||||||
| A574 | CALL AddToAddress | Add the index to the address of the message. | ||||||
| A577 | LD A,(HL) | Fetch the character. | ||||||
| A578 | LD ($A59C),A | Store it in the character record. | ||||||
| A57B | LD DE,$A598 | Point DE at MessageCharacter. | ||||||
| A57E | JP PrintText | Jump to PrintText to print the character. | ||||||
| Prev: A53C | Up: Map | Next: A581 |