Prev: 59405 Up: Map Next: 59458
59406: Scroll the screen left 8 columns
Used by the routine at 61882.
59406 LD HL,59372 Set the instruction at 59371 to 'LD BC,31'
59409 LD (HL),31
59411 LD L,239 Set the instruction at 59374 to 'LDIR'
59413 LD (HL),176
59415 LD B,8 There are 8 columns to scroll on
59417 PUSH BC Save the column counter
59418 LD B,20 There are 20 rows to be scrolled left
59420 LD HL,22529 Point HL at the attribute byte for the cell at screen coordinates (1,0)
59423 LD D,H Point DE at the attribute byte for the adjacent cell on the left
59424 LD E,L
59425 DEC E
59426 PUSH BC Save the row counter
59427 PUSH HL Save the source attribute file address
59428 CALL 59368 Shift this row of the screen left
59431 POP HL Restore the source attribute file address to HL
59432 LD C,32 Point HL at the next row down in the attribute file
59434 ADD HL,BC
59435 POP BC Restore the row counter to B
59436 DJNZ 59423 Jump back until all 20 rows have been scrolled left
59438 LD HL,32766 32766 holds the x-coordinate of the leftmost column of the play area on screen
59441 INC (HL) Increment this x-coordinate
59442 LD HL,4895 L=31 (rightmost screen column), H=19 (bottom row of the screen)
59445 PUSH HL Save the screen coordinates
59446 CALL 59148 Print a tile at screen coordinates (31,H)
59449 POP HL Restore the screen coordinates to HL
59450 DEC H Have we printed every tile in the column yet?
59451 JP P,59445 Jump back if not
59454 POP BC Restore the column counter to B
59455 DJNZ 59417 Jump back until 8 columns have been scrolled on
59457 RET
Prev: 59405 Up: Map Next: 59458