Prev: 58977 Up: Map Next: 59010
58986: Routine at E66A
Used by the routine at 58262.
58986 LD DE,22562 DE=22562 (attribute buffer location).
58989 LD HL,59043 HL=HomeAttributes.
The home block is 4x4 (4 rows of 4 bytes) but not all of it cycles attributes. Only 3x4 is used here.
58992 LD B,4 Set a counter in B for 4 rows.
58994 PUSH BC Stash the row counter on the stack.
58995 LD BC,3 Copy 0003 bytes from the attribute buffer to HomeAttributes.
58998 LDIR
One full row is 32 bytes, so this is 3 bytes less than one row. Hence this moves down one row, but back to the start of the line.
59000 EX DE,HL Add 0029 to the attribute buffer position.
59001 LD BC,29
59004 ADD HL,BC
59005 EX DE,HL
59006 POP BC Restore the row counter from the stack.
59007 DJNZ 58994 Decrease the row counter by one and loop back to 58994 until all the rows have been updated.
59009 RET Return.
Prev: 58977 Up: Map Next: 59010