|  | Routines | 
| Prev: E661 | Up: Map | Next: E682 | 
| 
Used by the routines at Controls_CheckRight and Controls_CheckLeft.
 | ||||
| Home_DefaultAttributes | E66A | LD DE,$5822 | DE=5822 (attribute buffer location). | |
| E66D | LD HL,$E6A3 | HL=HomeAttributes. | ||
| 
The home block is 04x04 (04 rows of 04 bytes) but not all of it cycles attributes. Only 03x04 is used here.
 | ||||
| E670 | LD B,$04 | Set a counter in B for 04 rows. | ||
| Home_DefaultAttributes_Loop | E672 | PUSH BC | Stash the row counter on the stack. | |
| E673 | LD BC,$0003 | Copy 0003 bytes from the attribute buffer to HomeAttributes. | ||
| E676 | LDIR | |||
| 
One full row is 20 bytes, so this is 03 bytes less than one row. Hence this moves down one row, but back to the start of the line.
 | ||||
| E678 | EX DE,HL | Add 001D to the attribute buffer position. | ||
| E679 | LD BC,$001D | |||
| E67C | ADD HL,BC | |||
| E67D | EX DE,HL | |||
| E67E | POP BC | Restore the row counter from the stack. | ||
| E67F | DJNZ Home_DefaultAttributes_Loop | Decrease the row counter by one and loop back to Home_DefaultAttributes_Loop until all the rows have been updated. | ||
| E681 | RET | Return. | ||
| Prev: E661 | Up: Map | Next: E682 |