| ← 987B | Map | 98E0 → |
98C0: Move a screen address down one pixel line
|
Advances HL to the next pixel row of the ZX display.
|
|||||||||||
|
|||||||||||
| screen_down_pixel | 98C0 | LD A,H | Take the pixel row within the cell (low 3 bits of H). | ||||||||
| 98C1 | AND $07 | ||||||||||
| 98C3 | CP $07 | ||||||||||
| 98C5 | JP Z,screen_down_pixel_0 | ||||||||||
| 98C8 | INC H | Still inside the cell: just step one pixel row. | |||||||||
| 98C9 | RET | ||||||||||
| screen_down_pixel_0 | 98CA | LD A,L | At a cell boundary: are we also at a third boundary? | ||||||||
| 98CB | AND $E0 | ||||||||||
| 98CD | CP $E0 | ||||||||||
| 98CF | JR Z,screen_down_pixel_1 | ||||||||||
| 98D1 | LD A,H | Same third: drop to the cell base and add one character row. | |||||||||
| 98D2 | SUB $07 | ||||||||||
| 98D4 | LD H,A | ||||||||||
| 98D5 | LD A,L | ||||||||||
| 98D6 | ADD A,$20 | ||||||||||
| 98D8 | LD L,A | ||||||||||
| 98D9 | RET | ||||||||||
| screen_down_pixel_1 | 98DA | LD A,L | Crossed a third: wrap the low byte and step into the next third. | ||||||||
| 98DB | SUB $E0 | ||||||||||
| 98DD | LD L,A | ||||||||||
| 98DE | INC H | ||||||||||
| 98DF | RET | ||||||||||
| ← 987B | Map | 98E0 → |
