Copies a block of data from a specified source location in any address space to a specified destination in any address space.
[ lStatus = ] VxiMove ( lSrcMode, lSrcAddr, lDstMode, lDstAddr, lLength, lWidth )
The VxiMove procedure syntax has the following parts:
|
Name |
Type |
Description |
|
lStatus |
Long |
Status |
|
lSrcMode |
Val Long |
Source access mode |
|
lSrcAddr |
Val Long |
Source address |
|
lDstMode |
Val Long |
Destination access mode |
|
lDstAddr |
Val Long |
Destination address |
|
lLength |
Val Long |
Number of elements to transfer |
|
lWidth |
Val Long |
Width in bytes of elements (1, 2 or 4) |
The function may be used when a direct read and write from a VXI bus address is required.
The lSrcMode and lDstMode parameters are specified as follows:
Bits 0,1 - VXI address space:
|
1 |
A16 |
|
2 |
A24 |
|
3 |
A32 |
Bits 2,3,4 - Access Privilege:
|
0 |
Nonprivileged data access |
|
1 |
Supervisory data access |
|
2 |
Nonprivileged program access |
|
3 |
Supervisory program access |
|
4 |
Nonprivileged block access |
|
5 |
Supervisory block access |
Bit 7 - Byte Order:
|
0 |
Motorola (MSB first) |
|
1 |
Intel (LSB first) |
All other bits should be 0.
If lStatus is negative, an error has occurred. Otherwise, the function is successful.
The following command moves 2KB from A24 space at 0x300000 to A16 space at 0xC800. The tranfer is word wide, nonprivileged data in Motorola byte order:
VxiMove (2, 0x300000, 1, 0xC800, 0x800, 2)