Prev: 54730 Up: Map Next: 54778
54758: Copy Routine
Input
DE Source for image data
HL Screen buffer address for destination of image
B Number of lines to copy (height)
C Number of bytes to copy (width)
This routine copies bytes from DE TO HL and uses the BC register to track the number of bytes and the number of lines.
Copy_Routine 54758 PUSH BC Stashes BC (the counter) and HL (screen buffer address) on the stack.
54759 PUSH HL
54760 LD B,0 Copies bytes from DE TO HL x C number of times.
54762 EX DE,HL
54763 LDIR
54765 EX DE,HL Restores HL with the original screen buffer location.
54766 POP HL
54767 INC H Move to the next line down.
54768 LD A,H
54769 AND %00000111 Keep only bits 0-2.
54771 CALL Z,Calc_Attribute If this crosses a screen boundary then call Calc_Attribute.
54774 POP BC Grabs B and decreases it by one. Loop back round to Copy_Routine if B is not zero.
54775 DJNZ Copy_Routine
54777 RET Return.
Prev: 54730 Up: Map Next: 54778