Prev: DC53 Up: Map Next: DC89
DC77: Draw/erase graphics - graphic tile out of bounds
Used by the routine at DB98.
Input
HL Contains address of the vertical pixel offset in the graphic tile data
Gone 'out of bounds' on horizontal screen position so there's no need to draw this tile. Skip to the next one (checking if there are any left).
DC77 INC HL Move HL to the next address in the graphics data
DC78 LD C,(HL) This address contains the number of bytes in the tile graphic
DC79 INC HL Move HL to point to the start of the graphics data itself
Also jump in at to this point from the check at DBD0, if out of bounds on vertical position (into bottom 3rd of screen)
HL Pointing at address of first graphics byte in tile
C Number of bytes in next tile graphic
DC7A LD D,$00
DC7C LD E,C DE now contains number of bytes left to draw in the current graphics tile
DC7D ADD HL,DE ...Add to current graphics address pointer to skip over the rest of the tile graphics (as there's no need to draw them)
Decrement the tile counter and check to see if all tiles of the graphic have been drawn
DC7E LD A,($EAD0) Get tile counter (number of tiles in current graphic)
DC81 DEC A Decrement counter
DC82 LD ($EAD0),A ...and re-store
DC85 JP NZ,$DBA6 Still tiles to draw/erase? If so, go draw/erase them
DC88 RET All graphic tiles are now drawn/erased.
Prev: DC53 Up: Map Next: DC89