Prev: 6720 Up: Map Next: 676F
672E: Clear Play-Area
Used by the routine at PrintHeader.
ClearPlayArea 672E LD HL,$5820 Clear 02E0 bytes of the attribute buffer from 5820 to 5AFF.
6731 LD DE,$5821
6734 LD BC,$02DF
6737 LD (HL),$00
6739 LDIR
673B LD HL,$4800 Clear 1000 bytes of the screen buffer from 4800 to 57FF.
673E LD DE,$4801
6741 LD BC,$0FFF
6744 LD (HL),L
6745 LDIR
6747 LD HL,$4020 Point HL to screen buffer position 4020 and DE to screen buffer position 4021.
674A LD DE,$4021
674D LD B,$07 Set a counter in B for 07 character rows.
ClearPlayArea_RowLoop 674F PUSH BC Save the row counter on the stack.
6750 LD B,$08 Set a counter in B for 08 pixel lines.
ClearPlayArea_LineLoop 6752 PUSH BC Stash the row counter and screen position pointers on the stack.
6753 PUSH DE
6754 PUSH HL
6755 LD BC,$001F Clear 1F bytes across the line.
6758 LD (HL),B
6759 LDIR
675B POP HL Restore the screen position pointers.
675C POP DE
675D INC H Move down one pixel line.
675E INC D
675F POP BC Restore the line counter and loop back to ClearPlayArea_LineLoop until all 08 lines are cleared.
6760 DJNZ ClearPlayArea_LineLoop
6762 LD H,$40 Move to the next character row by resetting H and D to 40 then adding 20 to both L and E.
6764 LD D,H
6765 LD A,$20
6767 ADD A,L
6768 LD L,A
6769 LD E,A
676A INC E
676B POP BC Restore the row counter and loop back to ClearPlayArea_RowLoop until all 07 rows are cleared.
676C DJNZ ClearPlayArea_RowLoop
676E RET Return.
Prev: 6720 Up: Map Next: 676F