| Function | 
 | Copy specified RAM block to a specified location | 
| Purpose | 
 | Copy memory block within RAM | 
| Syntax | 
 | void copyMemoryBlock (uns16 from, uns16 to, uns8 length) | 
| Parameters | 
 | • from: starting address of the block to be copied • to: destination address • length: block length in bytes | 
| Return value | 
 | – | 
| Output values | 
 | – | 
| Preconditions | 
 | • Either traditional or linear addresses can be used. • Upward overlapping the source and the destination RAM blocks being copied is not allowed. • Avoid writing to RAM areas dedicated to OS, otherwise OS can collapse. See the IQRF OS User’s guide, RAM map. | 
| Remarks | 
 | See IQRF OS User’s guide, RAM map and Example E06–RAM. | 
| Side effects | 
 | FSR0 and FSR1 registers are modified. | 
| See also | 
 | |
| Example 1 | 
 | copyMemoryBlock(0x2390, 0x23C0, 10); // copy 10 B block from 0x2390 to 0x23C0 | 
| Example 2 | 
 | copyMemoryBlock(bufferRF+10, bufferCOM+1, 8); // 8 bytes copied: // bufferCOM[1] = bufferRF[10] ... bufferCOM[8] = bufferRF[17] | 
| Example 3 | 
 | copyMemoryBlock(array+0, array+1, sizeof(array)–1); // Upward, not allowed | 
| Example 4 | 
 | copyMemoryBlock( array+1, array+0, sizeof(array)-1 ); // Downward, allowed |