Routines |
Prev: 27464 | Up: Map | Next: 27606 |
Used by the routine at 24576.
|
||||||||||||
27509 | PUSH BC | Save the tile counter. | ||||||||||
27510 | PUSH HL | Save the maze layout data address. | ||||||||||
27511 | EX DE,HL | Transfer the display file address to HL. | ||||||||||
27512 | CALL 27663 | Set HL' to the corresponding attribute file address (always 22528). | ||||||||||
27515 | EX DE,HL | Transfer the display file address back to DE. | ||||||||||
27516 | EXX | Exchange registers. | ||||||||||
27517 | POP DE | Restore the maze layout data address to DE'. | ||||||||||
27518 | POP BC | Restore the tile counter to BC'. | ||||||||||
27519 | LD A,(DE) | Pick up a tile identifier. | ||||||||||
27520 | INC DE | Point DE' at the next tile identifier. | ||||||||||
27521 | CP 0 | Is the current tile blank? | ||||||||||
27523 | JR Z,27549 | Jump if so. | ||||||||||
27525 | CP 2 | Is the current tile a flower? | ||||||||||
27527 | JR Z,27553 | Jump if so. | ||||||||||
27529 | CP 3 | Is the current tile an arrow (entrance or exit)? | ||||||||||
27531 | JR Z,27541 | Jump if so. | ||||||||||
27533 | CP 9 | Is the current tile a tunnel entrance? | ||||||||||
27535 | JR Z,27545 | Jump if so. | ||||||||||
27537 | LD A,61 | Wall tile (INK 5). | ||||||||||
27539 | JR 27555 | |||||||||||
27541 | LD A,56 | Arrow tile (INK 0). | ||||||||||
27543 | JR 27555 | |||||||||||
27545 | LD A,63 | Tunnel entrance (INK 7). | ||||||||||
27547 | JR 27555 | |||||||||||
27549 | LD A,62 | Blank tile (INK 6). | ||||||||||
27551 | JR 27555 | |||||||||||
27553 | LD A,60 | Flower (INK 4). | ||||||||||
27555 | LD (HL),A | Set the attribute byte. | ||||||||||
27556 | INC HL | Move HL' along the attribute file. | ||||||||||
27557 | DEC BC | Decrement the tile counter. | ||||||||||
27558 | LD A,B | Have we finished setting the attribute bytes yet? | ||||||||||
27559 | OR C | |||||||||||
27560 | JR NZ,27519 | Jump back if not. | ||||||||||
27562 | EXX | Exchange registers. | ||||||||||
The attribute bytes have been set. Time to draw the maze tiles.
|
||||||||||||
27563 | PUSH HL | Save the maze layout pointer. | ||||||||||
27564 | LD A,(HL) | Pick up a tile identifier in A. | ||||||||||
27565 | LD H,0 | Point IX at the graphic data for the corresponding tile (at 31735+8*A). | ||||||||||
27567 | LD L,A | |||||||||||
27568 | ADD HL,HL | |||||||||||
27569 | ADD HL,HL | |||||||||||
27570 | ADD HL,HL | |||||||||||
27571 | LD IX,31735 | |||||||||||
27575 | EX DE,HL | |||||||||||
27576 | ADD IX,DE | |||||||||||
27578 | EX DE,HL | |||||||||||
27579 | LD L,8 | Draw the tile. | ||||||||||
27581 | LD A,(IX+0) | |||||||||||
27584 | LD (DE),A | |||||||||||
27585 | INC D | |||||||||||
27586 | INC IX | |||||||||||
27588 | DEC L | |||||||||||
27589 | JR NZ,27581 | |||||||||||
27591 | INC E | Point DE at the display file address for the next tile. | ||||||||||
27592 | JR Z,27598 | |||||||||||
27594 | LD A,D | |||||||||||
27595 | SUB 8 | |||||||||||
27597 | LD D,A | |||||||||||
27598 | POP HL | Restore the maze layout pointer to HL. | ||||||||||
27599 | INC HL | Move along to the next maze tile identifier. | ||||||||||
27600 | DEC BC | Decrement the tile counter. | ||||||||||
27601 | LD A,B | Have we drawn all the tiles yet? | ||||||||||
27602 | OR C | |||||||||||
27603 | JR NZ,27563 | Jump back if not. | ||||||||||
27605 | RET |
Prev: 27464 | Up: Map | Next: 27606 |