Prev: 54677 Up: Map Next: 54729
54702: Draw Tile Block Reflected
Used by the routine at DrawSidePictures.
The same as DrawTileBlock, except that each row is drawn from right to left and each tile is reflected, which makes a reflection of the block.
Input
B The width of the block
C The height of the block
DE The address of the numbers of the tiles
HL The screen address of the top right
A' The attribute
Draw each row from right to left.
DrawTileBlockReflected 54702 PUSH BC Stash the size and the screen address on the stack.
54703 PUSH HL
Draw a tile, reflected.
DrawTileBlockReflected_Tile 54704 LD A,(DE) Fetch the number of the tile.
54705 INC DE
54706 XOR %01000000 Reflect it horizontally.
54708 PUSH BC Stash the counters on the stack.
54709 LD BC,(41487) Fetch TileSetAddress.
Draw the tile.
54713 CALL DrawTile Call DrawTile.
54716 POP BC Restore the counters from the stack.
54717 DEC L Move on to the next column to the left.
54718 DJNZ DrawTileBlockReflected_Tile Jump to DrawTileBlockReflected_Tile if there are tiles left in the row.
Move down a row.
54720 POP HL Restore the screen address of the row from the stack.
54721 CALL MoveDownRow Call MoveDownRow.
54724 POP BC Restore the size from the stack.
54725 DEC C Count down the rows.
54726 JR NZ,DrawTileBlockReflected Jump to DrawTileBlockReflected if there are rows left.
54728 RET Return.
Prev: 54677 Up: Map Next: 54729