User's Manual
PMAC Dual-Ported RAM User Manual
26 Dual-Ported RAM Automatic Functions
Note:
If the {size} requested in the DEFINE GATHER {size} command is smaller
than required to hold an even multiple of the requested data, the actual data storage
will go beyond the requested {size} to the next higher multiple of memory words
required to hold the data. For example, if gathering one 24-bit value and one 48-bit
value, three words of memory is needed. If the {size} specified is 4000 words
(not a multiple of 3), the actual storage size will be 4002 words (the next higher
multiple of 3).
PMAC to Host Transfer (memory locations set by PMAC)
Address Description
0x07FC (Y:$D1FF) Data Gather Buffer Size.
0x07FC (X:$D1FF) PMAC Data Gather Buffer Storage Address. If I45 = 2 and the
buffer's end has been reached (this index is greater than or equal to
the size), the DEFINE GATHER command must be issued again to
allow gathering to restart.
0x0800 ($D200) Start of Data Gather Buffer (not changeable).
The data format for the Data Gathering to the Dual Port Format is that 24-bit values are sign-extended to
32-bits. 48-bit values are treated as 2 24-bit values: each half is sign-extended to 32 bits, for a total of 64
bits. The data is provided in Intel format, with the low address containing the least significant word.
The variables that control the Data Gathering are as follows: I19 determines the rate at which this buffer is
updated by the PMAC in units of servo cycles. I20 to I44 to determine what data (PMAC addresses) is to
be gathered. I45 determines if the data will be stored in PMAC's main memory or the DPRAM.
On-line commands GATHER and ENDGATHER enable and disable the Data Gathering. These commands
do not affect the Background data-reporting buffer but could affect the Servo fixed data reporting function.
If the GATHER command is issued with I48=0, the data gathering function will start. If the GATHER
command is issued with I48=1, the servo fixed data reporting function will start instead of the data
gathering function.
It is possible to execute both the servo fixed data reporting function and the data gathering function
simultaneously. After setting I48 to 1, the first GATHER command activates the servo fixed data reporting
function described earlier. The next GATHER command will activate the data gathering function. The
ENDGATHER command stops the function started by the most recent GATHER command. If both functions
are running, two ENDGATHER commands must be issued to stop them both.
To enable this function:
1. Set I19 = update period (in servo cycles).
2. Set I45 = data storage location and mode (2 or 3).
3. Issue a DEFINE GATHER {size} (Determine buffer size).
4. Issue GATHER command (if I48=1 issue GATHER GATHER command).
To disable this function:
1. Issue ENDGATHER command, or
2. Set I19 = 0.