Prev: 7197 Up: Map Next: 71ec
71d6: Convert a Y,X pixel coordinate to an ATTRIBUTE_FILE address.
Used by the routines at 61a0, 61ad, 62ca, 6fc5, 7134, 7197 and 7638.
Input
H Vertical coordinate in pixels (0-191).
L Horizontal coordinate in pixels (0-255).
Output
HL An address in the attribute file.
71d6 ld a,l Horizontal coordinate. Example, if $B8:
71d7 rrca A=01011100, C=0
71d8 rrca A=00101110, C=0
71d9 rrca A=00010111, C=0
71da and $1f A=00010111 <- screen width?
71dc ld l,a L=$17
71dd ld a,h Vertical coordinate. Example, if $68:
71de rlca A=00110100, C=0
71df rlca A=00011010, C=0
71e0 ld c,a Backup value to C
71e1 and $e0 A=00000000
71e3 or l A=00010111
71e4 ld l,a L=$17 <- new LSB of attribute file
71e5 ld a,c Restore the row value
71e6 and $03 A=00000010 <- top of screen?
71e8 or $58 A=01011010
71ea ld h,a H=$5A <- ATTRIBUTE_FILE address (>= 5800)
71eb ret Return HL=5A17
Prev: 7197 Up: Map Next: 71ec