Prev: 59572 Up: Map Next: 59632
59575: Scroll the screen down 6 rows
Used by the routine at 60539.
59575 LD HL,59372 Set the instruction at 59371 to 'LD BC,32'
59578 LD (HL),32
59580 LD L,239 Set the instruction at 59374 to 'LDIR'
59582 LD (HL),176
59584 LD B,6 6 rows will be scrolled on
59586 PUSH BC Save the primary screen row counter
This entry point is used by the routine at 64618.
59587 LD B,19 There are 19 screen rows to move down
59589 LD DE,23136 DE=destination attribute file address (bottom row)
59592 LD HL,23104 HL=source attribute file address (second row from the bottom)
59595 PUSH BC Save the secondary screen row counter
59596 PUSH HL Save the source attribute file address
59597 PUSH DE Save the destination attribute file address
59598 CALL 59368 Move one screen row down
59601 POP HL HL=source attribute file address
59602 LD BC,65504 Point HL at the next row up in the attribute file
59605 ADD HL,BC
59606 EX DE,HL Transfer this address to DE
59607 POP HL HL=destination attribute file address
59608 ADD HL,BC Point HL at the next row up in the attribute file
59609 POP BC Restore the secondary screen row counter to B
59610 DJNZ 59595 Jump back until all 19 screen rows have been moved down
59612 LD HL,32767 32767 holds the y-coordinate of the topmost row of the play area on screen
59615 DEC (HL) Decrement this
59616 LD HL,31 L=31 (rightmost screen column), H=0 (top row of the screen)
59619 PUSH HL Save the screen coordinates briefly
59620 CALL 59148 Print a tile at screen coordinates (L,0)
59623 POP HL Restore the screen coordinates to HL
59624 DEC L Have we printed every tile in the row yet?
59625 JP P,59619 Jump back if not
59628 POP BC Restore the primary screen row counter to B
59629 DJNZ 59586 Jump back until 6 rows have been scrolled on
59631 RET
Prev: 59572 Up: Map Next: 59632