User's Manual
PMAC Dual-Ported RAM User Manual
6 Dual-Ported RAM Communications
Note:
This dynamic addressing scheme provides the capability for addressing up to 1M
byte of DPRAM in 16K byte blocks, by changing the value of base + $121 on the
fly. However, PMAC VME currently utilizes only a single 16 Kbyte block (8K x
16), so the base + $121 register only has to be written to once every time PMAC is
powered up or reset.
At this point, the starting address of DPRAM is fully specified. However, we need to check two more
register locations in PMAC’s memory for having appropriate values. Location X:$078B must have a value
of $E0 to enable the DPRAM chip installed on the PMAC VME and we must modify the value in location
X:$078C (the address width register) by adding $80 to the existing value. For this example, our PMAC
register values would be:
PMAC Address Value
X:$0783 $39
X:$0784 $04
X:$0785 $00
X:$0786 $7F
X:$0787 $A0
X:$0788 $02
X:$0789 $A1
X:$078A $10
X:$078B $E0
X:$078C $90
The shaded registers above contain the values we changed (from example 2.0) to enable DPRAM. A
simple write command followed by a SAVE command to PMAC will put these values into their
appropriate registers and make them permanent:
WX$0783,$39,$4,$0,$7F,$A0,$02,$A1,$10,$E0,$90
SAVE
Remember that these values must be saved with the SAVE command and then the card reset (with the $$$
command, the INIT/ input line pulled low, or power cycled) before these new values will take effect.
After this, writing $3F to $7FA121 (base + $121) will allow us to start using dual ported RAM.
Using the Dual Ported RAM (PC and VME)
The mapping of memory addresses between the host computer on one side, and PMAC's address space on
the other side, is quite simple. Using this memory is a matter of matching the addresses on both sides. To
PMAC, DPRAM simply appears as extra memory in the range $D000 to $DFFF, which can be thought of
as 4K of double (48-bit) words or 8K of single (24-bit) words, in both X and Y memory (remember, X and
Y memory in PMAC are 24-bit locations.).