Routines
 Prev: 35388 Up: Map Next: 35515
35445: Draw the current cavern to the screen buffer at 28672
 Used by the routine at 34436. 35445 LD IX,24064 Point IX at the first byte of the attribute buffer at 24064 35449 LD A,112 Set the operand of the 'LD D,n' instruction at 35483 (below) to 112 35451 LD (35484),A 35454 CALL 35466 Draw the tiles for the top half of the cavern to the screen buffer at 28672 35457 LD IX,24320 Point IX at the 256th byte of the attribute buffer at 24064 in preparation for drawing the bottom half of the cavern; this instruction is redundant, since IX already holds 24320 35461 LD A,120 Set the operand of the 'LD D,n' instruction at 35483 (below) to 120 35463 LD (35484),A 35466 LD C,0 C will count 256 tiles The following loop draws 256 tiles (for either the top half or the bottom half of the cavern) to the screen buffer at 28672. 35468 LD E,C E holds the LSB of the screen buffer address 35469 LD A,(IX+0) Pick up an attribute byte from the buffer at 24064; this identifies the type of tile to draw 35472 LD HL,32800 Move HL through the attribute bytes and graphic data of the background, floor, crumbling floor, wall, conveyor and nasty tiles starting at 32800 until we find a byte that matches the attribute byte of the tile to be drawn 35475 LD BC,72 35478 CPIR 35480 LD C,E Restore the value of the tile counter in C 35481 LD B,8 There are eight bytes in the tile 35483 LD D,0 This instruction is set to either 'LD D,112' or 'LD D,120' above; now DE holds the appropriate address in the screen buffer at 28672 35485 LD A,(HL) Copy the tile graphic data to the screen buffer at 28672 35486 LD (DE),A 35487 INC HL 35488 INC D 35489 DJNZ 35485 35491 INC IX Move IX along to the next byte in the attribute buffer 35493 INC C Have we drawn 256 tiles yet? 35494 JP NZ,35468 If not, jump back to draw the next one The empty cavern has been drawn to the screen buffer at 28672. If we're in The Final Barrier, however, there is further work to do. 35497 LD A,(33799) Pick up the number of the current cavern from 33799 35500 CP 19 Is it The Final Barrier? 35502 RET NZ Return if not 35503 LD HL,40960 Copy the graphic data from 40960 to the top half of the screen buffer at 28672 35506 LD DE,28672 35509 LD BC,2048 35512 LDIR 35514 RET
 Prev: 35388 Up: Map Next: 35515