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