Prev: 39175 Up: Map Next: 39224
39200: Advance HL down one pixel row in display file
Used by the routine at 39125.
Input
HL Points to a byte in display file
Output
HL Points to the byte in display file below HL (input)
39200 INC H Increase H by 1 (i.e. advance HL by 256)
39201 LD A,H If at least one of the three rightmost bits of H are set (i.e. we haven't crossed over from one third of the display to the next third) then return (as HL now points to next pixel row down)
39202 AND 7
39204 RET NZ
39205 LD A,H Else we must have been in the bottom pixel row of a character row, so decrease H by 8 (1 to go back up, then 7 pixel rows up to the top of that character row)
39206 SUB 8
39208 LD H,A
39209 LD A,L Advance L by 32 bytes to move down one character row, so now the top of the next character row down...
39210 ADD A,32 ...
39212 LD L,A ...
39213 RET NC If L hasn't gone over 256 (i.e. we haven't moved 32 bytes on from the top pixel row of the bottom character row of the third) then return else move down by a third
39214 LD A,H
39215 ADD A,8
39217 LD H,A
39218 XOR 88 If we have not reached the start of the attribute file, then return...
39220 RET NZ ...
39221 LD H,64 ...else wrap back round to the start of display file again
39223 RET Return
Prev: 39175 Up: Map Next: 39224