+ pop iy ; iy = return address
+ pop de ; de = destination pointer
+ pop hl ; hl = source pointer
+ pop bc ; bc = count
+ push bc
+ push hl
+ push de
+ ld a,b
+ or c
+ jr z,1$
+ ldir
+1$:
+ pop hl ; return hl = original destination pointer
+ push hl
+ jp (iy)