Prev: EC65 Up: Map Next: ECA2
EC6F: Shift a sprite to the right and copy it into a working buffer
Used by the routine at EBE0.
Input
A Current frame number
EC6F LD ($ECDC),A Store the frame number.
EC72 LD HL,$ECE4 Put the address of the temporary store in HL.
EC75 LD DE,($ECE0) Put the next graphic to print in DE.
EC79 LD B,$10 16 pairs of cells to copy.
EC7B EX DE,HL Copy the byte from the graphic entry to the temporary store.
EC7C LD A,(HL)
EC7D EX DE,HL
EC7E LD (HL),A
EC7F INC HL Move to the next cell.
EC80 INC DE
EC81 EX DE,HL Copy the byte from the graphic entry to the temporary store.
EC82 LD A,(HL)
EC83 EX DE,HL
EC84 LD (HL),A
EC85 INC HL Move to the next cell.
EC86 INC DE
EC87 LD (HL),$00 Erase it.
EC89 INC HL Move to the next cell.
EC8A DJNZ $EC7B Loop back while there is more to copy.
EC8C LD A,($ECDC) Get the frame number.
EC8F LD B,A Store this in B.
EC90 PUSH BC
EC91 LD HL,$ECE4 Put the address of the temporary store in HL.
EC94 LD B,$30 30 cells to copy.
EC96 LD A,(HL) Get the data from screen.
EC97 RRA Shift it right.
EC98 PUSH AF Store AF.
EC99 LD (HL),A Set the data back.
EC9A INC HL Move to the next cell.
EC9B POP AF Restore AF.
EC9C DJNZ $EC96 Loop back if there are more cells.
EC9E POP BC Loop back until we get the right frame number to copy.
EC9F DJNZ $EC90
ECA1 RET
Prev: EC65 Up: Map Next: ECA2