Prev: A064 Up: Map Next: A08D
A07A: Draw Attributes Unchanged
The attribute routine for an entity which has not moved. Every cell under the entity is set to the attribute of the entity, a row at a time working up from the bottom row.
Input
B The width of the sprite in cells
C The number of rows of cells
D The attribute of the entity
E The attribute of the room
AttrDrawUnchanged A07A POP HL Restore the attribute address from the stack.
This entry point is used by the routine at AttrDrawMovingUp.
AttrDrawUnchanged_Row A07B PUSH BC Stash the width and the number of rows on the stack.
A07C PUSH HL Stash the attribute address on the stack.
AttrDrawUnchanged_Cell A07D LD (HL),D Write the attribute of the entity to the cell.
A07E INC L Move to the next cell.
A07F DJNZ AttrDrawUnchanged_Cell Decrease the width by one and loop back to AttrDrawUnchanged_Cell until the row is done.
A081 POP HL Restore the attribute address from the stack.
A082 LD BC,$0020 BC=0020.
A085 AND A Move up a row.
A086 SBC HL,BC
A088 POP BC Restore the width and the number of rows from the stack.
A089 DEC C Decrease the number of rows by one and loop back to AttrDrawUnchanged_Row until all of the rows have been set.
A08A JR NZ,AttrDrawUnchanged_Row
A08C RET Return.
Prev: A064 Up: Map Next: A08D