Shiftdata2 -  Carl Anthony Edwards Thursday, 28th March 1991

This is simply a procedure which compiles a routine which will shift an
integer multiple of 32 bytes quickly. For speed, no checks are made to see
if the destination overlaps the source block so care must be taken in its
use. Unlike 'Shiftdata', the source and destination memory ptr's are not
updated using writeback. Instead the value entered into R3 and R4 at the
start of the routine are used.

This routine may most easily be installed using the 'Install' routine within
the 'Library' section. See relevant documentation as to how to do this.

Usage :

Simply call the routine with the register R0 = source memory base
                                          R1 = destination memory base
                                          R2 = data size DIV 32
                                          R3 = source memory increment
                                          R4 = destination memory increment

On exit, R0 = pointer to next location to read from
         R1 = pointer to next location to write to
         R2 = 0
         R3 = preserved
         R4 = preserved
         R5-R12 are corrupted
