Routines |
Prev: 7CD4 | Up: Map | Next: 7CFC |
This returns the same position on the next scanline down.
Given a screen address, this returns the same horizontal position but on the next scanline down.
|
||||||||||||
next_scanline_down | 7CE9 | INC H | Incrementing H moves us to the next minor row | |||||||||
7CEA | LD A,H | |||||||||||
7CEB | AND $07 | Unless we hit an exact multiple of eight - in which case we stepped to the next third of the screen | ||||||||||
7CED | RET NZ | Just return if we didn't | ||||||||||
7CEE | PUSH DE | Borrow DE for scratch | ||||||||||
7CEF | LD DE,$F820 | Step back by a third ($F8), then to the next major row ($20) | ||||||||||
7CF2 | LD A,L | Unless we will hit a boundary in doing that | ||||||||||
7CF3 | CP $E0 | |||||||||||
7CF5 | JR C,next_scanline_down_0 | Skip, if we won't | ||||||||||
7CF7 | LD D,$FF | If we will then step back by a minor row, then to the next major row | ||||||||||
next_scanline_down_0 | 7CF9 | ADD HL,DE | Step | |||||||||
7CFA | POP DE | Restore | ||||||||||
7CFB | RET | Return |
Prev: 7CD4 | Up: Map | Next: 7CFC |