Prev: 28210 Up: Map Next: 28382
28363: Screen Address One Pixel Above
Used by the routines at HandlerTerrainDots, DrawPlayer, MaskSprite and DrawTwoBytes.
Input
HL Current position
Output
HL Address for new position
Calculates the new address for writing a sprite pixel, in an upward direction, taking into consideration the screen memory layout.
ScreenPos1PixelAbove 28363 DEC H Decrement H to move up one pixel on screen.
28364 LD A,H Store the inverted result in A.
28365 CPL
28366 AND %00000111 Keep only bits 0-2.
28368 RET NZ If a character line has not been crossed then return.
28369 LD A,L Else subtract 32 from L.
28370 SUB 32
28372 LD L,A
28373 CPL Invert the bits in A.
28374 AND %11100000 Keep only bits 5-7.
28376 RET Z If a new section of the screen has not been crossed then return.
28377 LD A,H Else add 8 to H and return.
28378 ADD A,8
28380 LD H,A
28381 RET
Prev: 28210 Up: Map Next: 28382