Prev: 59513 Up: Map Next: 59572
59516: Scroll the screen up 6 rows
Used by the routine at 60539.
59516 LD HL,59372 Set the instruction at 59371 to 'LD BC,32'
59519 LD (HL),32
59521 LD L,239 Set the instruction at 59374 to 'LDIR'
59523 LD (HL),176
59525 LD B,6 6 rows will be scrolled on
59527 PUSH BC Save the primary screen row counter
This entry point is used by the routine at 64618.
59528 LD B,19 There are 19 screen rows to move up
59530 LD DE,22528 DE=destination attribute file address (top row)
59533 LD HL,22560 HL=source attribute file address (second row from the top)
59536 PUSH BC Save the secondary screen row counter
59537 PUSH HL Save the source attribute file address
59538 PUSH DE Save the destination attribute file address
59539 CALL 59368 Move one screen row up
59542 POP HL HL=source attribute file address
59543 LD C,32 Point HL at the next row down in the attribute file
59545 ADD HL,BC
59546 EX DE,HL Transfer this address to DE
59547 POP HL HL=destination attribute file address
59548 ADD HL,BC Point HL at the next row down in the attribute file
59549 POP BC Restore the secondary screen row counter to B
59550 DJNZ 59536 Jump back until all 19 screen rows have been moved up
59552 LD HL,32767 32767 holds the y-coordinate of the topmost row of the play area on screen
59555 INC (HL) Increment this
59556 LD HL,4895 L=31 (rightmost screen column), H=19 (bottom row of the screen)
59559 PUSH HL Save the screen coordinates briefly
59560 CALL 59148 Print a tile at screen coordinates (L,19)
59563 POP HL Restore the screen coordinates to HL
59564 DEC L Have we printed every tile in the row yet?
59565 JP P,59559 Jump back if not
59568 POP BC Restore the primary screen row counter to B
59569 DJNZ 59527 Jump back until 6 rows have been scrolled on
59571 RET
Prev: 59513 Up: Map Next: 59572