Routines
 Prev: 35914 Up: Map Next: 36203
36147: Draw the current room to the screen buffer at 28672
 Used by the routine at 35090. 36147 CALL 36203 Fill the buffer at 24064 with attribute bytes for the current room 36150 LD IX,24064 Point IX at the first byte of the attribute buffer at 24064 36154 LD A,112 Set the operand of the 'LD D,n' instruction at 36188 (below) to 112 36156 LD (36189),A 36159 CALL 36171 Draw the tiles for the top half of the room to the screen buffer at 28672 36162 LD IX,24320 Point IX at the 256th byte of the attribute buffer at 24064 in preparation for drawing the bottom half of the room; this instruction is redundant, since IX already holds 24320 36166 LD A,120 Set the operand of the 'LD D,n' instruction at 36188 (below) to 120 36168 LD (36189),A 36171 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 room) to the screen buffer at 28672. 36173 LD E,C E holds the LSB of the screen buffer address 36174 LD A,(IX+0) Pick up an attribute byte from the buffer at 24064; this identifies the type of tile (background, floor, wall, nasty, ramp or conveyor) to be drawn 36177 LD HL,32928 Move HL through the attribute bytes and graphic data of the background, floor, wall, nasty, ramp and conveyor tiles starting at 32928 until we find a byte that matches the attribute byte of the tile to be drawn; note that if a graphic data byte matches the attribute byte being searched for, the CPIR instruction can exit early, which is a bug 36180 LD BC,54 36183 CPIR 36185 LD C,E Restore the value of the tile counter in C 36186 LD B,8 There are eight bytes in the tile 36188 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 36190 LD A,(HL) Copy the tile graphic data to the screen buffer at 28672 36191 LD (DE),A 36192 INC HL 36193 INC D 36194 DJNZ 36190 36196 INC IX Move IX along to the next byte in the attribute buffer 36198 INC C Have we drawn 256 tiles yet? 36199 JP NZ,36173 If not, jump back to draw the next one 36202 RET
 Prev: 35914 Up: Map Next: 36203