Prev: A53C Up: Map Next: A581
A544: Scroll Message
Used by the routines at ScrollStageMessage, ScrollTimeOutMessage and PauseGame.
Scrolls the message in the window by one pixel and, every sixteen pixels, adds the next character of the message on the right.
Input
HL The address of the message
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