Prev: 56403 Up: Map Next: 56457
56439: Draw/erase graphics - graphic tile out of bounds
Used by the routine at 56216.
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).
56439 INC HL Move HL to the next address in the graphics data
56440 LD C,(HL) This address contains the number of bytes in the tile graphic
56441 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 56272, 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
56442 LD D,0
56444 LD E,C DE now contains number of bytes left to draw in the current graphics tile
56445 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
56446 LD A,(60112) Get tile counter (number of tiles in current graphic)
56449 DEC A Decrement counter
56450 LD (60112),A ...and re-store
56453 JP NZ,56230 Still tiles to draw/erase? If so, go draw/erase them
56456 RET All graphic tiles are now drawn/erased.
Prev: 56403 Up: Map Next: 56457