{
{    The purpose of this request is to move a block of memory from one location
{  to another.  A ring number based on validation privileges is used in the
{  source address rather than the ring number provided.  This allows some users
{  to read memory segments while other users are not allowed to read them.
{
{    Users with the "read_system_memory" validation capability and those
{  running with system administrator capability are given a source ring number
{  such that they can read system memory segments.  Other users are given a
{  source ring number equal to their "minimum_ring" validation privilege so
{  that they may read segments down to that ring.
{
{    No special ring privilege is given for the destination address.  Therefore
{  the destination must be writable by the caller of this interface.
{
{    Any segment access conditions that occur as a result of the memory move
{  are converted to a status and returned in the status parameter.
{
{       DUP$MOVE_BYTES (SOURCE, DESTINATION, LENGTH, STATUS)
{
{ SOURCE: (input) This parameter specifies the source address of the block of
{       memory to be moved.  As explained above, a ring number different than
{       the one specified is actually used to read the source block.
{
{ DESTINATION: (input, indirectly output) This parameter specifies the
{       destination address of the block of memory to be moved.
{
{ LENGTH: (input) This parameter specifies the length of the block of memory to
{       be moved.
{
{ STATUS: (output) This parameter returns the request status.
{       CONDITIONS:
{             ame$input_after_eoi
{             pme$system_condition
{

