Prev: 43257 Up: Map Next: 43297
43266: Scroll Area Left
Used by the routines at ShowTitleMenu and ScrollMessage.
Scrolls a rectangular area of the screen one pixel to the left, and increases the scroll counter at ScrollCounter.
Input
B The width of the area in bytes
C The height of the area in pixel lines
HL The pixel position of the right end of the bottom line of the area
ScrollAreaLeft 43266 CALL GetScreenAddress Convert the pixel position into a screen address.
43269 LD A,B Fetch the width.
43270 LD (43276),A Store it in the operand of the instruction at 43275.
ScrollAreaLeft_Line 43273 PUSH HL Save the address of the right end of the line.
43274 XOR A Clear the carry flag.
43275 LD B,0 Set the number of bytes in the line (this is patched at 43276).
ScrollAreaLeft_Byte 43277 RL (HL) Rotate the byte left through the carry flag.
43279 DEC L Move onto the next byte to the left.
43280 DJNZ ScrollAreaLeft_Byte Jump back until the line has been done.
43282 POP HL Restore the address of the right end of the line.
43283 CALL MoveUpALine Move up a pixel line.
43286 DEC C Decrease the number of lines by one.
43287 JR NZ,ScrollAreaLeft_Line Jump back until all of the lines have been done.
43289 LD A,(43297) Fetch the scroll counter.
43292 INC A Add one.
43293 LD (43297),A Store it.
43296 RET Return.
Prev: 43257 Up: Map Next: 43297