Routines |
Prev: 6B48 | Up: Map | Next: 6BD6 |
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 | Next: 6BD6 |