![]() |
Routines |
| Prev: 42300 | Up: Map | Next: 42369 |
|
Scrolls the message in the window by one pixel and, every sixteen pixels, adds the next character of the message on the right.
|
||||||||
| 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 |