Recently I was given an old DECserver 200/MC. This is a device that connects serial ports on the DECserver over an Ethernet LAN to one or more VMS computers. It uses a protocol called LAT, which stands for Local Area Terminal. When I used VAXen many years ago I remember using LAT to connect from a terminal to various machines.
This particular DECserver has 8 25-pin serial ports and an AUI connector for the LAN. I found some information somewhere on the web that told me the first serial port was the console port, so I connected a VT420 to it and plugged in the power (there is no on/off switch). I got nothing on the screen. Then I connected the console port to my Windows PC and ran my terminal emulator, when I did this I got some garbage characters. I checked the serial line settings on the VT420 and on my PC, they were both set to 9600,N,8,1. At this point I was beginning to suspect a faulty DECserver.
Then, thanks to a posting on comp.os.vms, I discovered that there is a way to reset the DECserver to factory settings. To do this I pressed and held the reset button while I powered on the DECserver, I held the button down for a good 30 seconds and then let go. After that the console port burst into life. I learned several things at this point: The DECserver serial line settings can be changed, it can remember the settings for a very long time without power (I am guessing it uses NVRAM rather than a battery), and my VT420 is faulty!
I could now see from the console that the DECserver was trying to download firmware. It seems that the DECserver does not have all the software onboard. Instead it uses MOP (Maintenance and Operations Protocol) to download the firmware from a computer on the network. So my next challenge was to get it to do this. I went down some blind alleys before getting this right. Allow me to explain.
I found a Hoffman Labs web page at http://126.96.36.199/node/183 (please don’t ask me why the URL uses an IP address, I don’t know) that explained how to set up DECservers and I noticed that it mentioned DECnet. So, the first thing I did was to go and find out how to set that up. At first I thought I would use the most recent version, which is Phase V, but I found it somewhat impenetrable, and on the advice of experts on comp.os.vms, I decided to switch back to Phase IV instead. Phase IV is much easier to install, configure and maintain, and I am also told it uses a lot less memory.
The blind alley that I went down was that I did not apparently need to configure DECnet at all (I mean get it to the point where I can use SET HOST etc), but some DECnet components are used (in Phase IV at least). Nevertheless I decided to set up DECnet anyway and will add a blog entry about this another day. I am not sure what the minimum necessary steps are, I suspect that it might be to just install DECnet and then change SYSTARTUP_VMS.COM to uncomment the START/NETWORK DECNET line, but I have not tried this. One other thing to be aware of is that if, like me, you are also using TCP/IP, then you must not be running TCP/IP at the time that you start DECnet, and indeed this is the order in which things are done in SYSTARTUP_VMS.COM. This is apparently because DECnet Phase IV wants to change the physical address of the network interface to a number derived from SCSSYSTEMID, which is also related to the DECnet address.
So, now that I had DECnet up and running, I needed to set things up so that the DECserver could find and download the firmware. The Hoffman Labs web page http://188.8.131.52/node/232 lists the file names for various DECservers, including mine, which is PR0801ENG.SYS. I discovered, thanks once more to Hoffman Labs, that I needed to install a layered product to get this file, the product name is DECserver 200 for VMS and I found that the package was in directory DS2033 on disc 4 of a 1999 set of Software Product Library CDs. The command I used to install the package was:
$ @sys$update:vmsinstal ds2033 dka400:[ds2033.kit]
Once it was installed I had to run @SYS$COMMON:[DECSERVER]DSVCONFIG.COM. I selected the option Add a DECserver and then answered the questions as follows:
DECserver type? DS200
DECnet node name for unit? DS200
DECnet node address for unit? 13.1
Ethernet address of unit? 08-00-2b-11-c6-88
DECnet Service Circuit-ID [SVA-0]?
Of course you need to enter the MAC address printed on the back of your own DECserver. I also chose a DECnet address using an area different to all the other machines on my DECnet network (they all use area 1, I chose area 13).
At this point I turned on the DECserver, hopeful that it would now download the firmware. However, it still said that it could not download it. There were no OPCOM messages on the VAX console. So after another post to comp.os.vms I realised that I had to look in SYS$MANAGER:OPERATOR.LOG. Sure enough there were some error messages, here is what I found:
From node 1.1 (VAX1), 1-SEP-2007 21:21:07.94
Circuit SVA-0, Line open error, File open error, Load file
%MOM-E-OPENIN, error opening SYS$COMMON:[MOM$SYSTEM]PR0801ENG.SYS; as input
-RMS-E-FNF, file not found
Node = 13.1 (DS200), Ethernet address = 08-00-2B-11-C6-88
So DSVCONFIG did not set things up so that the firmware file could be found. It seems that this is because the DECserver software I have predates the MOM system that I appear to be running. The solution therefore was to add the directory containing the firmware to the MOM search list, so I added the following line to SYSTARTUP_VMS.COM:
$ DEFINE/SYSTEM MOM$SYSTEM_SOFTID MOM$SYSTEM, MOM$LOAD, SYS$COMMON:[DECSERVER]
Once I did this the DECserver was able to download its firmware at long last! Now all I needed to do was to set up LAT, which would allow me to use the DECserver to connect to any of the VAXen on the LAN. Again I went down a blind alley at first, thinking that I would have to tell the DECserver which VAXen it could connect to. But it turned out to be much simpler than that, all you need to do on the VAXen is to start LAT on each one with the following command:
And that is it, apart from making sure that this too was in SYSTARTUP_VMS.COM. Now from the DECserver I could list the nodes and services using SHOW NODES and SHOW SERVICES and just issue a CONNECT <service name> and I was in!