| Prev: 8A02 | Up: Map | Next: 8A33 |
8A1B: Scroll the text crawl row left by 1 pixel.
|
Shifts all 8 scanlines of character row 23 (the bottom character row) left by 1 pixel. Called twice per overview frame, producing a 2-pixel-per-frame horizontal scroll. New pixels enter as 0 from the right; leftmost pixels fall off the screen.
|
||||
| scroll_text_crawl | 8A1B | LD HL,$57FF | Start at the last byte of char row 23's bottom scanline. | |
| 8A1E | LD C,$08 | 8 scanlines to process. | ||
| scroll_crawl_outer | 8A20 | LD B,$20 | Bytes per scanline | |
| 8A22 | OR A | Clear carry before the first RL | ||
| scroll_crawl_inner | 8A23 | RL (HL) | ||
| 8A25 | DEC HL | |||
| 8A26 | DJNZ scroll_crawl_inner | |||
| 8A28 | LD DE,$00E0 | Load step offset DE=$E0 (= $100 − $20: one scanline period minus one row width). | ||
| 8A2B | OR A | Clear carry. | ||
| 8A2C | SBC HL,DE | Step HL back to the last byte of the previous scanline. | ||
| 8A2E | DEC C | Decrement outer counter and loop until all 8 scanlines are processed. | ||
| 8A2F | JP NZ,scroll_crawl_outer | |||
| 8A32 | RET | |||
| Prev: 8A02 | Up: Map | Next: 8A33 |