`Copy_Array C_POINTER($1;$2) C_LONGINT($3;$4) C_LONGINT($i;$j;$n;$Size) C_POINTER($Ptr1;$Ptr2) C_LONGINT($From;$n) $Ptr1:=$1 $Ptr2:=$2 Case of \ (Count parameters=2) $Copy4D:=True \ (Count parameters=3) $From:=$3 $n:=Size of array($Ptr1->)-$3+1 $Copy4D:=False \ (Count parameters=4) $From:=$3 $n:=$4 $Copy4D:=False End case If ($Copy4D) COPY ARRAY($Ptr1->;$Ptr2->) Else $Size:=Size of array($Ptr1->) If ($Size<($From+$n)) $n:=$Size-$From+1 End if $Size:=Size of array($Ptr2->) Case of \ ($Size=$n) \ ($Size>$n) DELETE ELEMENT($Ptr2->;$n+1;$Size-$n) \ ($Size<$n) INSERT ELEMENT($Ptr2->;$Size+1;$n-$Size) End case $j:=0 For ($i;$From;$From+$n-1) $j:=$j+1 $Ptr2->{$j}:=$Ptr1->{$i} End for End if