Prev: 43183 Up: Map Next: 43264
43224: Clear Room Buffer
Used by the routine at DrawRoom.
First off, blank the screen.
ClearRoomBuffer 43224 LD B,24 Clear the bottom 24 lines using CL_LINE.
43226 CALL 3652
Clear the room buffer.
43229 LD BC,800 Set a counter in BC with the length of the room buffer (800 bytes).
43232 LD HL,41412 HL=BufferRoom.
ClearRoomBuffer_Loop 43235 LD A,0 Write 0 to *HL.
43237 LD (HL),A
43238 INC HL Increment the room buffer pointer by one.
43239 DEC BC Decrease the room buffer counter by one.
43240 LD A,B Jump to ClearRoomBuffer_Loop until the room buffer counter is zero.
43241 OR C
43242 JR NZ,ClearRoomBuffer_Loop
Clear the room attribute buffer. Setting each value to the INK value of the PAPER colour (?)
43244 LD BC,800 BC=Counter; the length of the room attribute buffer (800).
ClearRoomAttributeBuffer_Loop 43247 LD A,(23505) A=*ActiveRoom_PaperColour.
43250 SLA A Convert a PAPER value (using bits 3, 4 and 5) to an INK value (shifted left to bits 0, 1 and 2).
43252 SLA A
43254 SLA A
43256 LD (HL),A Write A to *HL.
43257 INC HL Increment the room attribute buffer pointer by one.
43258 DEC BC Decrease the room attribute buffer counter by one.
43259 LD A,B Jump to ClearRoomAttributeBuffer_Loop until the room attribute buffer counter is zero.
43260 OR C
43261 JR NZ,ClearRoomAttributeBuffer_Loop
43263 RET Return.
Prev: 43183 Up: Map Next: 43264