Prev: 85D9 Up: Map Next: 8606
85F6: Screen Address One Pixel Above
Moves a screen address up one pixel, wrapping through the Spectrum display layout.
Input
HL Current position
Output
HL Address for new position
Move the screen address up one pixel, wrapping the row.
ScreenPosition1PixelAbove 85F6 DEC H Move up one pixel.
85F7 LD A,H Invert the new line byte.
85F8 CPL
85F9 AND %00000111 Keep only bits 0-2.
85FB RET NZ Return if a character-row boundary was not crossed.
85FC LD A,L Subtract 20 from the column address.
85FD SUB $20
85FF LD L,A
8600 RET C Return if that wrapped into the previous third.
8601 LD A,H Add 08 to the line byte.
8602 ADD A,$08
8604 LD H,A
8605 RET Return.
View the equivalent code in;
Prev: 85D9 Up: Map Next: 8606