OpenVMS notes
This page is mostly a reminder for myself.
Setting up SIMH
I used Peter Hicks's tutorial on setting up OpenVMS on a Raspberry Pi to install SIMH and OpenVMS.
I used Phillip Wherry's tutorial to fill in the gaps – like how to get TCP/IP to start up when the emulated VAX boots.
The VMS-Ports Sourceforge site has some VMS installation hints, including Layered Products.
Post-install optimisation
- Run
@SYS$UPDATE:LIBDECOMP.COM
after installation and uncompress the system libraries. This will increase the disk space used by VMS, but also speed up the emulated system.
Disabling password expiry
By default the SYSTEM
password will expire every 30 days. On emulated systems, this tends to be quite annoying. AUTHORIZE
(UAF
) can be used to disable password expiry.
$ MCR AUTHORIZE UAF> modify system /FLAGS=DISPWDDIC Disable checking against password dictionary UAF> modify system /FLAGS=DISFORCE Don't force password changing after expiry UAF> modify system /FLAGS=DISPWDHIS Disable password history checking UAF> modify system /nopwdlifetime No password expiry UAF> exit
To change a password, use MCR AUTHORIZE MODIFY /PASSWORD
. The help page for this command (mcr authorize help mod/pass
) is very informative.
Disabling VAXcluster
$ MCR SYSGEN SYSGEN> USE CURRENT SYSGEN> SET VAXCLUSTER 0 SYSGEN> WRITE CURRENT SYSGEN> EXIT $ @SYS$UPDATE:AUTOGEN %AUTOGEN-I-BEGIN, GENPARAMS phase is beginning. %AUTOGEN-I-NEWFILE, A new version of SYS$MANAGER:VMSIMAGES.DAT has been created. You may wish to purge this file. %AUTOGEN-I-REPORT, AUTOGEN has produced some informational messages which have been stored in the file SYS$SYSTEM:AGEN$PARAMS.REPORT. You may wish to review the information in that file. %AUTOGEN-I-NEWFILE, A new version of SYS$SYSTEM:SETPARAMS.DAT has been created. You may wish to purge this file. %AUTOGEN-I-END, GENPARAMS phase has successfully completed. $ REBOOT
Finding the VMS system's IP address
$ ucx show interface Packets Interface IP_Addr Network mask Receive Send MTU DE0 10.0.0.226 255.0.0.0 2230 2 1500 LO0 127.0.0.1 255.0.0.0 3 3 4096 $ SHOW NET Product: DECNET Node: SIMH Address(es): 1.576 Product: TCP/IP Node: simh.homenet.philpem.me.uk Address(es): 10.0.0.2
Renaming a node
Starting and stopping SIMH when the host boots/shuts down
Starting is easy using a systemd service config file.
I'm trying to figure out how to do shutdown… this may help.
Licensing
The HP hobbyist licensing scheme has apparently ended, and VAX VMS is no longer supported.
There is an example hobbyist licence (without the keys) on the VCFED forum. This lists the 112 PAK features which a Hobbyist licence would enable.
OpenVMS software
As they're useless without a licence PAK…
- OpenVMS 7.3 VAX, archived by
fsck.technology
. - VAX Haven CD image archive, includes some of the OpenVMS Layered Products and Software Products Library CDs.
- ZX.net.nz has an archive of OpenVMS and Layered Product patches.
DEC software ("layered products")
The de.openvms.org Software Product Library Overview is extremely useful for finding software packages, and identifying which Layered Products CD they're on.
The OpenVMS VAX Consolidated Distribution User's Guide (only 11 pages!) explains how to use these CDs.
Installing VAX-11 RSX on SIMH
For example, to install VAX-11 RSX (RSX-11 emulation):
- Search for RSX in the Library Overview – you'll find it's on CD 4 of the March 2001 software set.
- Mount disk 4
- Exit the VAX console telnet session
- In the SIMH console:
attach RQ3 -r VAXBINMAR014.iso
thencontinue
- Reopen the VAX console telnet session
mount/over=id dua3:
- Install VAX-11 RSX:
set def dua3:[RSXA025.DIR]
- For some reason Polycenter (“product install”) won't install this, so use
@SYS$UPDATE:VMSINSTAL RSXA025 DUA3:[RSXA025.KIT]
There is a menu on the CDs which can display and search the index – this can be run with:
DEFINE CD_DIRECTORY DUA3: RUN CD_DIRECTORY:CDMENU
To switch CDs:
DISMOUNT DUA3: ! Close the VAX console telnet session and switch to SIMH simh> attach RQ3 -r VAXBINMAR012.iso simh> continue ! Switch back to the VAX console and reconnect
Usage notes
- FAQs and useful info:
- SIMH
- Press Ctrl-E (if using SIMH native console) to drop back to the emulator. This doesn't work if SIMH is set to host a Telnet session as the console.
- Line editing – see https://marc.vos.net/books/vms/help/line_editing/
- Ctrl-A – switch between overstrike and insert mode
- Ctrl-E – move to EOL
- Ctrl-H – move to beginning of line
- Ctrl-U – delete from beginning of line to the cursor
- Text editing with
EDIT
(EVE) – see http://www0.mi.infn.it/~calcolo/OpenVMS/ssb71/6489/6489p010.htm- Ctrl-Y exits without saving
- Ctrl-Z exits and saves
- Clear the screen
TYPE/PAGE NLA0:
- Adding new disks
- Use
INITIALIZE
to initialise them
- Helpful commands to add to the
system
account'sLOGIN.COM
$ CLS == “TYPE/PAGE NLA0:”
$ SHUTDOWN == “@SYS$SYSTEM:SHUTDOWN 0 SHUTDOWN YES NO LATER NO NONE”
$ REBOOT == “@SYS$SYSTEM:SHUTDOWN 0 SHUTDOWN YES NO LATER YES NONE”
$ SHUTDOWN1 == “@SYS$SYSTEM:SHUTDOWN”
$ SET term/vt100
Copying files into the emulated VAX
The SIMH FAQ gives a few ways to do this:
- Using a pseudo-tape-drive with the
ANSIFILES
tape format:- In SIMH:
sim> attach ts0 –f ansifiles Hobbyist-USE-ONLY-VA.TXT,*.exe,
- In VMS:
mount MSA0: SIMH %MOUNT-I-MOUNTED, SIMH mounted on _MSA0: $ @MSA0:Hobbyist-USE-ONLY-VA.TXT
- Alternatively create an ISO9660 CD image and mount it
There is one further option available if TCP/IP is configured: enable FTP and use it to upload the files to the VAX.
Text files may need to have their file attributes set in order to be usable by VMS:
DIRECTORY/FULL
will display the file's attributes.- A file transferred in binary mode will likely have the attributes:
Fixed 512 byte records
.
- To set the attributes, use:
$ SET FILE/ATTRIBUTE=RFM:STMLF
for files with LF line endings$ SET FILE/ATTRIBUTE=RFM:STM
for files with CRLF line endings
Filesystem arcana
show device
will show a list of all devices the system knows about.
[000000]
is the root directory of a device.DIR SIMH$DUA0:[000000]
will show the root directory on deviceDUA0
.DIR [000000]
will show the root directory onSYS$SYSROOT
andSYS$COMMON
[-]
is the parent directorySET DEF [-]
is equivalent tocd ..
in UNIX/Linux or Windows.