How to copy array?
Why not use FOR?
SetLength(DataR,Length(input));for i:=Low(input) to High(input) do DataR[i]:=input[i];
BTW: if you want to have arrays passing as parameter, you should declare them as a type, eg:
type TMyArray = array of byte;
and use TMyArray as parameters type.
Edit: I was notified about i lower value. In my original post it was for i:=0, but i:=Low(input) is safer and more pure.