Prev: 42300 Up: Map Next: 42369
42308: 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 42308 PUSH HL Save the address of the message.
42309 LD HL,48800 Point HL at the top half of the area to scroll.
42312 LD BC,526 Set the width of the area to 2 bytes and the height to 14.
42315 CALL ScrollAreaLeft Scroll the area to the left by one pixel.
42318 LD HL,20755 Point HL at the first screen address to copy.
42321 CALL CopyColumn Copy the column of pixels.
42324 LD HL,20531 Point HL at the second screen address to copy.
42327 CALL CopyColumn Copy the column of pixels.
42330 LD HL,36760 Point HL at the lower half of the area to scroll.
42333 LD BC,2063 Set the width of the area to 8 bytes and the height to 15.
42336 CALL ScrollAreaLeft Scroll the area to the left by one pixel.
42339 POP HL Restore the address of the message.
42340 AND %00001111 Keep the low four bits of the scroll counter.
42342 RET NZ Return unless a new character is due.
42343 LD (43297),A Reset the scroll counter to zero.
42346 LD A,(43298) Fetch the character index from 43298.
42349 INC A Add one.
42350 LD (43298),A Store it.
42353 CP 7 Compare it with the length of the message.
42355 RET NC Return if the message has been completely printed.
42356 CALL AddToAddress Add the index to the address of the message.
42359 LD A,(HL) Fetch the character.
42360 LD (42396),A Store it in the character record.
42363 LD DE,42392 Point DE at MessageCharacter.
42366 JP PrintText Jump to PrintText to print the character.
Prev: 42300 Up: Map Next: 42369