User's Manual

PMAC User Manual
260 Writing a Host Communications Program
Bits A19-A14 of DPRAM base address must be specified by the host computer every time the system is
powered up or reset. The host computer does this by writing a byte to the mailbox IC at the mailbox base
address + $121. The low six bits of this byte represent bits A19-A14 of the DPRAM base address.
For example, with the mailbox base address at $7FA000 and the DPRAM base address at $780000, bits
19 to 14 of the DPRAM base address can be represented as 100000 binary, or $20hex, so the host
computer would write a byte value of $20 to bus address $7FA121.
(The VME controller IC on PMAC uses this IC to permit dynamic switching between multiple pages of
DPRAM. The DPRAM IC on PMAC VME has only one page, but this page must still be dynamically
selected by this operation.)
DPRAM Enable
This register (X:$078B) enables or disables the DPRAM. Write a $60 to this register if not using
DPRAM; write an $E0 to this register if using DPRAM.
Address Bus Width
This register (X:$078C) states what size address bus being using, and whether DPRAM is installed or not.
Select the proper value from the following table.
Address Bus Width Register Setup Values
Bus Width No DPRAM DPRAM
16-bit $30 $B0
24-bit $10 $90
32-bit $00 $80
Saving These Setup Values
Once these settings have been made, save them to non-volatile memory. Then reset the card ($$$
command), because PMAC only copies these values into the working registers on power-up/reset.
Example:
If the VME address $7FA000 has been selected for the base address of the PMAC VME, the address
width is 24 bits and no DPRAM is installed. An AM of $39 is being used with a do not care bit value of
$04 and interrupt level 2 using interrupt vectors $A0 and $A1 (which happen to be the factory defaults).
The only real work to do is to break up the base address into four pieces. It is sometimes best to rewrite
the address in binary, and label the address bits, starting with A0 as the rightmost bit:
Address Bit A31 A24 A23 A16 A15 A8 A7 A0
Binary
0000 0000 0111 1111 1010 0000 0000 0000
Hex
00 7F A0 00
Clearly, there is a value of $00 for address bits A31 - A24, $7F for address bits A23 - A16, $A0 for bits
A15 - A8 and $00 for bits A7 - A0. Now write these values into the appropriate PMAC registers using
the PMAC Executive Software or a suitable terminal communication program. The register values would
then 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
$00
X:$078B
$60
X:$078C
$10