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