![]() |
Routines |
Prev: 6B48 | Up: Map |
Used by the routine at 6000.
|
||||||||||||||
6B75 | PUSH BC | Save the tile counter. | ||||||||||||
6B76 | PUSH HL | Save the maze layout data address. | ||||||||||||
6B77 | EX DE,HL | Transfer the display file address to HL. | ||||||||||||
6B78 | CALL $6C0F | Set HL' to the corresponding attribute file address (always 5800). | ||||||||||||
6B7B | EX DE,HL | Transfer the display file address back to DE. | ||||||||||||
6B7C | EXX | Exchange registers. | ||||||||||||
6B7D | POP DE | Restore the maze layout data address to DE'. | ||||||||||||
6B7E | POP BC | Restore the tile counter to BC'. | ||||||||||||
6B7F | LD A,(DE) | Pick up a tile identifier. | ||||||||||||
6B80 | INC DE | Point DE' at the next tile identifier. | ||||||||||||
6B81 | CP $00 | Is the current tile blank? | ||||||||||||
6B83 | JR Z,$6B9D | Jump if so. | ||||||||||||
6B85 | CP $02 | Is the current tile a flower? | ||||||||||||
6B87 | JR Z,$6BA1 | Jump if so. | ||||||||||||
6B89 | CP $03 | Is the current tile an arrow (entrance or exit)? | ||||||||||||
6B8B | JR Z,$6B95 | Jump if so. | ||||||||||||
6B8D | CP $09 | Is the current tile a tunnel entrance? | ||||||||||||
6B8F | JR Z,$6B99 | Jump if so. | ||||||||||||
6B91 | LD A,$3D | Wall tile (INK 5). | ||||||||||||
6B93 | JR $6BA3 | |||||||||||||
6B95 | LD A,$38 | Arrow tile (INK 0). | ||||||||||||
6B97 | JR $6BA3 | |||||||||||||
6B99 | LD A,$3F | Tunnel entrance (INK 7). | ||||||||||||
6B9B | JR $6BA3 | |||||||||||||
6B9D | LD A,$3E | Blank tile (INK 6). | ||||||||||||
6B9F | JR $6BA3 | |||||||||||||
6BA1 | LD A,$3C | Flower (INK 4). | ||||||||||||
6BA3 | LD (HL),A | Set the attribute byte. | ||||||||||||
6BA4 | INC HL | Move HL' along the attribute file. | ||||||||||||
6BA5 | DEC BC | Decrement the tile counter. | ||||||||||||
6BA6 | LD A,B | Have we finished setting the attribute bytes yet? | ||||||||||||
6BA7 | OR C | |||||||||||||
6BA8 | JR NZ,$6B7F | Jump back if not. | ||||||||||||
6BAA | EXX | Exchange registers. | ||||||||||||
The attribute bytes have been set. Time to draw the maze tiles.
|
||||||||||||||
6BAB | PUSH HL | Save the maze layout pointer. | ||||||||||||
6BAC | LD A,(HL) | Pick up a tile identifier in A. | ||||||||||||
6BAD | LD H,$00 | Point IX at the graphic data for the corresponding tile (at 7BF7+8*A). | ||||||||||||
6BAF | LD L,A | |||||||||||||
6BB0 | ADD HL,HL | |||||||||||||
6BB1 | ADD HL,HL | |||||||||||||
6BB2 | ADD HL,HL | |||||||||||||
6BB3 | LD IX,$7BF7 | |||||||||||||
6BB7 | EX DE,HL | |||||||||||||
6BB8 | ADD IX,DE | |||||||||||||
6BBA | EX DE,HL | |||||||||||||
6BBB | LD L,$08 | Draw the tile. | ||||||||||||
6BBD | LD A,(IX+$00) | |||||||||||||
6BC0 | LD (DE),A | |||||||||||||
6BC1 | INC D | |||||||||||||
6BC2 | INC IX | |||||||||||||
6BC4 | DEC L | |||||||||||||
6BC5 | JR NZ,$6BBD | |||||||||||||
6BC7 | INC E | Point DE at the display file address for the next tile. | ||||||||||||
6BC8 | JR Z,$6BCE | |||||||||||||
6BCA | LD A,D | |||||||||||||
6BCB | SUB $08 | |||||||||||||
6BCD | LD D,A | |||||||||||||
6BCE | POP HL | Restore the maze layout pointer to HL. | ||||||||||||
6BCF | INC HL | Move along to the next maze tile identifier. | ||||||||||||
6BD0 | DEC BC | Decrement the tile counter. | ||||||||||||
6BD1 | LD A,B | Have we drawn all the tiles yet? | ||||||||||||
6BD2 | OR C | |||||||||||||
6BD3 | JR NZ,$6BAB | Jump back if not. | ||||||||||||
6BD5 | RET |
Prev: 6B48 | Up: Map |