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 |