Prev: 784B Up: Map Next: 7931
7917: Write Attribute Data
Used by the routine at DisplayTitleScreen.
Input
DE Attribute data
HL Attribute buffer location
B Width
C Length
Convert length into number of character blocks.
WriteAttributeData 7917 SRA C Divide the length by 08 and store the result in C.
7919 SRA C
791B SRA C
WriteAttributeData_Loop 791D PUSH HL Stash HL and BC on the stack.
791E PUSH BC
WriteAttributeData_CopyLoop 791F LD A,(DE) Copy a byte from the source address to the destination address in the attribute buffer.
7920 LD (HL),A
7921 INC HL Increment both the source and destination addresses.
7922 INC DE
7923 DJNZ WriteAttributeData_CopyLoop Decrease the width counter by one and loop back to WriteAttributeData_CopyLoop until the counter is zero.
7925 POP BC Restore BC and HL from the stack.
7926 POP HL
7927 PUSH DE Stash DE on the stack.
7928 LD DE,$0020 HL+=0020.
792B ADD HL,DE
792C POP DE Restore DE from the stack.
792D DEC C Decrease the height counter by one and jump back to WriteAttributeData_Loop until the counter is zero.
792E JR NZ,WriteAttributeData_Loop
7930 RET Return.
Prev: 784B Up: Map Next: 7931