Prev: 72b6 Up: Map Next: 72ef
72d0: Convert a Y,X pixel coordinate to a DISPLAY_FILE address.
Used by the routines at 62ca, 6fc5, 706d, 7134, 71f2, 7207 and 7638.
Input
H Vertical position in pixels (0-191).
L Horizontal position in pixels (0-255).
Output
HL An address in the display file.
72d0 ld a,l Horizontal coordinate. Example, if $B8:
72d1 rrca A=01011100, C=0
72d2 rrca A=00101110, C=0
72d3 rrca A=00010111, C=0
72d4 and $1f A=00010111 <- screen width?
72d6 ld l,a L=$17
72d7 ld a,h Vertical coordinate. Example, if $68:
72d8 rlca A=00110100, C=0
72d9 rlca A=00011010, C=0
72da and $e0 A=00000000
72dc or l A=00010111
72dd ld l,a L=$17 <- new LSB of attribute file
72de ld a,h Vertical coordinate. Example, if $68:
72df and $07 A=00000100
72e1 ex af,af' Puts the value into the shadow register
72e2 ld a,h Vertical coordinate. Example, if $68:
72e3 rrca A=00110100, C=0
72e4 rrca A=00011010, C=0
72e5 rrca A=00001101, C=0
72e6 and $18 A=00001000
72e8 or $40 A=00101000
72ea ld h,a HL=$48
72eb ex af,af' Get the shadow register value
72ec or h A=00101100
72ed ld h,a H=$4C <- DISPLAY_FILE address (>= 4000)
72ee ret Return HL=4C68
Prev: 72b6 Up: Map Next: 72ef