Using DECnet under VMS is of course much easier then using it under Linux. But you have to deal with that vintage VMS/VAX stuff. VMS is a very rich and comfortable operating system, but some of its concepts are now rather unfamiliar.

This tutorial is valid for simulated and physical VAXes.

The simulated VAX becomes node address 2.20, and is named “SIMVAX”.
The physical VAX 3200 is node 2.21 and is named “VX3200”.

Setup a VAX emulation with SimH

Before trashing the physical VAX, I setup a SimH-Simulation.

Explaining SimH is far beyond the scope of this tutorial.

Here is the startup file:

; uvax.vaxsim
;
; See also: http://www.wherry.com/gadgets/retrocomputing/vax-simh.html

; simulates my uVAX, 3200 (label on box says "uVAX II/GPX")
load -r ../../../emulation/simh/ka655x.bin
; I have 2x 8MB
set cpu 16m

; save NVR in file
attach nvr nvram.bin

; I have aTK50
set TQ0 enable
set TQ0 WRITEENABLE
set TQ TK50
set TQ1 disable
set TQ2 disable
set TQ3 disable

sh tq
sh tq0


; I have one RD54
set RQ0 enable
set RQ0 writeenable
set RQ0 RD54
set RQ1 disable
set RQ2 disable
set RQ3 cdrom

attach RQ0 vms5.2-1.durd_54
attach RQ3 ../../../os/openvms/openvms-vax-7.3.iso


sh rq
sh rq0

; no rl01/02
set rl disable

; Network on UBUNTU
set xq enabled
set xq
; MAC-ID for DECnet addr 2.20
set xq mac=AA-00-04-00-14-08
attach xq0 eth0
sh xq

echo
echo ### Booting VAX CPU ....
echo ###
echo ### After the >>> prompt enter:
echo ### >>> b dua0 /r5:1
echo ###

set console telnet=23
boot cpu

You see that the network card’s MAC-ID is already defined by a DECnet node address. The VAX gets DECnet node address “2.20”, so the MAC-ID is AA-00-04-00-14-08.

I let this simulation run on an Ubuntu host, here “linux1”:

Attention: Due to limitations of SimH’s network drivers, the simulated VAX can not connect to the machine it is running on. So if the simulated VAX “SIMVAX” runs onUbuntu installation “linux1”, there will be no network connection between SIMVAX and linux1. All other connection (SIMVAX - linux2, linux1 - linux2, etc) will work well.!

You start the simulated vax by running something like

$ sudo ~/simh/vax uvax.vaxsim

Then you have to start a VT100-emulation and connect it over telnet to SimH’s host machine. The simulated VAX will then start running.

Setup a physical VAX

On the physical VAX, no MAC-ID setup is necessary. But you have to connect it to your network.

 

microvax3200_front03

microvax3200_back

The VAX 3200 network adapter is a DEQNA, the connector on the BA23 box is a “AUI” SubD -connector. It is “10baseT”, meaning running at 10MBit/sec. To connect it to modern ethernet, a “Medium Attachement Unit” (MAUI) is required, this is the grey box on the picture. It is an 1$ eBay item.

Booting the VAX from console

After the (physical or virtual) VAX is powered on, it self-tests and then waits for a boot-command. On the >>> prompt type

>>>boot DUA0:

and wait until you’re able to “Login:”. Then login as SYSTEM, you should get the “$” prompt.

Setup DECnet

There are two tools to use:

  • The installation procedure “NETCONFIG” guides you through first-time installation of DECnet.
  • All DECnet setup is done with the “Network Control Program”, short “NCP”.
    Google for “DECnet for Open VMS Network Management Utilities” to get the full NCP -Manual.

We do only minimal configuration: set name and node address of local host, and define some other node addresses. The DECnet term for “localhost” is “executor”.

I show the input for the virtual VAX “simvax”. For the physical “vx3200”, you have to exchange “simvax” with “vx3200” and “2.20” with 2.21”

1) Stop DECnet

$ run sys$system:ncp
NCP> set executor state off

 

2) Setup a new DECnet configuration

$ @sys$manager:netconfig
        DECnet-VAX network configuration procedure 

This procedure will help you define the parameters needed to get DECnet
running on this machine. You will be shown the changes before they are
executed, in case you wish to perform them manually.

What do you want your DECnet node name to be?          [oldnam]: simvax
What do you want your DECnet address to be?                  : 2.20
Do you want to operate as a router?        [NO (nonrouting)]:
Do you want a default DECnet account?                    [NO]: yes
Do you want default access to the TASK object disabled? [YES]: no
Do you want a default account for the MAIL object?     [YES]:
Do you want a default account for the FAL object?        [NO]: yes
Do you want a default account for the PHONE object?    [YES]:
Do you want a default account for the NML object?      [YES]:

Then scroll through the generated script files, and agree to execute it.

3) Clear all existing node settings with NCP:

$ run sys$system:ncp
NCP> clear node *
NCP> purge node *
NCP> exit

NCP has a permanent and a volatile configuration database, so you must both CLEAR and PURGE .

4) Use NCP to define other DECnet nodes

We will add three nodes (2 Ubuntu, 1 other VAX) to the VAX’s name table:

 

 $ run sys$system:ncp
NCP>define node 2.10 name linux1
NCP>define node 2.11 name linux2
NCP>define node 2.21 name vx3200
NCP>set known nodes all
NCP>show node *

Known Node Volatile Summary as of 21-MAR-1999 15:45:26

Executor node = 2.20 (SIMVAX)

State                    = on
Identification           = SIMHVAX

Node           State     Active Delay  Circuit    Next node
Links
2.10 (LINUX1)                               QNA-0          0
2.11 (LINUX2)                               QNA-0          0
2.21 (VX3200)                               QNA-0          0

 

5) Reboot

I found this necessary sometimes ...

 

That’s it.

6) Enter the new SIMVAX node into other DECnet nodes

In this test setup, all nodes must have a list of all other nodes (until I understand more about DECnet administration).

This means editing “/etc/decnet.conf” on Linux nodes,
and executing

 “NCP>define node ...” 

on VMS nodes.

7) Test

Just look at another machine with the “directory” command. For example, look onto my Eclipse installation on Ubuntu node “linux2”.

Beware: If you doing this on a simulated VAX running under SimH on “linux1”, you can not access “linux1” itself! But other nodes (like “linux2”) must be reachable.

Type

$ dir linux2"joerg joerg"::[home.joerg.eclipse]

and get:

 

 Directory LINUX2"joerg password"::HOME:[JOERG.ECLIPSE] 

ABOUT.HTML;1     ABOUT_FILES.DIR;1 ARTIFACTS.XML;1  CONFIGURATION.DIR;1
DROPINS.DIR;1    ECLIPSE.;1       ECLIPSE.INI;1    EPL-V10.HTML;1  
FEATURES.DIR;1   ICON.XPM;1       LIBCAIRO-SWT.SO;1 NOTICE.HTML;1   
P2.DIR;1         PLUGINS.DIR;1    README.DIR;1