![]() |
Routines |
Prev: 59513 | Up: Map | Next: 59572 |
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 |