User's Manual

PMAC User Manual
258 Writing a Host Communications Program
This is done through software programming. In order to do this, an IBM-PC compatible computer
running the PMAC Executive Software is needed, (or some suitable terminal software) talking to PMAC
through the RS232/422 port (using, of course, an RS232/422 cable connected from the computer’s COM
port to the PMAC J4 connector on the front bezel).
Within the PMAC memory, there is a section of 10 registers or memory locations which contain the VME
bus base address information, address modifier and don’t care bits information, interrupt level and vector
number, and the VME bus base address for dual ported RAM (if used). These memory locations start a
the PMAC X memory location X:$0783 and continue up through location X:$078C.
Write values to these registers based upon the addresses and modes of operation selected for the PMAC
VME through the RS232/422 port by using either the PMAC write memory command (W), or by using the
VME Bus Address Configuration menu option in the PMAC Executive Software.
Before going through an example, the above registers need to be explained in some detail.
Address Modifier
The address modifier (AM) is simply a 5-bit code sent out on the bus by the host computer (or master
device) each time a read or write is performed. This AM informs slaves (cards on the VME bus listening to
the master) what type of address is being sent, i.e. whether it is a short (16-bit), standard (24-bit), or
extended (32-bit) address (for more information, consult a VME bus specification manual). Tell PMAC
(the slave) what AM to use. The factory default for this register is $39, specifying standard 24-bit
addressing. While there is many address modifiers possible, only three are commonly used with PMAC
VME:
PMAC VME Default Setup Register Values
PMAC Memory
Address
Default
Values
Description
X:$0783 $39 Address modifier (AM)
X:$0784 $04 Address modifier Don’t care bits (In this example, address modifier bit 2 is a
do not care bit, thus allowing AM = $29 or AM = $2D.)
X:$0785 $FF PMAC base address bits A31 - A24 (not used when using A16 or A24 address
bus)
X:$0786 $7F PMAC base address bits A23 - A16 (not used when using A16 address bus)
X:$0787 $A0 PMAC base address bits A15 - A08. Selects base address with any address
bus width, which must
be an even number (i.e. address bit A08 must be 0).
X:$0788 $02 Interrupt level.
X:$0789 $A1 Interrupt vector number, which is the upper number of a vector pair (in this
example, we have the vector pair A0-A1).
X:$078A $00 Dual ported RAM starting address bits A23 - A20.
X:$078B $60 Use $E0 with DPRAM.
Use $60 without DPRAM.
X:$078C $10 Address bus width select:
$30 selects A16 address bus*
$10 selects A24 address bus*
$00 selects A32 address bus*
*Add $80 to these values when using DPRAM.