When i was a student back in the eighties i had the pleasure of using VMS on the uni’s VAX systems. We were very much constrained in our usage though so my expertise was very limited. I remember the versioning of files, and having to purge old versions to get under the quota requirements, but that’s about all that i remember. I now find myself with a little VAX/VMS system and system privileges – and i have no skills at all.
I started with the VAX/VMS primer which describes things like how to use the command line, how to use the editor, EDT, how filenames work, directories including the default directory, and few commands. It’s a gentle start but leaves a lot unsaid.
I don’t have a full manual set for MicroVMS 4.4. Instead i have found a mix of resources for various versions with OpenVMS probably having the most comprehensive documentation. I have spent a lot of time googling to discover things that are probably very obvious to a regular VMS user.
The rest of this page is really a set of adhoc notes. Don’t take them too seriously.
Built-in commands are described in the VAX/VMS Command Language User’s Guide
Hard disk: dua0
First floppy disk drive: dua1
Second floppy disk drive: dua2

Change to a specific directory: $ SET DEFAULT DISK$USER:[USERNAME.SUBDIRECTORY]
Move to a higher-level directory (Parent): $ SET DEFAULT [-.SUBDIRECTORY]
Move up two levels: $ SET DEFAULT [--]
Return to user login directory: $ SET DEFAULT SYS$LOGIN
Change to a new disk: $ SET DEFAULT DISK2:[000000]
$ show default
SYS$SYSROOT:[SYSMGR]
shows the current directory.
The root directory on a drive is 000000.
To see what is in the root directory:
$ dir dua0:[000000]
Directory DUA0:[000000]
000000.DIR;1 BACKUP.SYS;1 BADBLK.SYS;1 BADLOG.SYS;1
BITMAP.SYS;1 CONTIN.SYS;1 CORIMG.SYS;1 INDEXF.SYS;1
SYS0.DIR;1 SYSEXE.DIR;1 SYSMAINT.DIR;1 USER.DIR;1
VOLSET.SYS;1
Total of 13 files.
$
Subdirectories appear as files with a .DIR extension.
For the first level the 000000 is not required eg with the subdirectory sys0 and its subdirectory tmp:
$ dir dua0:[sys0]
Directory DUA0:[SYS0]
SYSCBI.DIR;1 SYSERR.DIR;1 SYSEXE.DIR;1 SYSHLP.DIR;1
SYSLIB.DIR;1 SYSMAINT.DIR;1 SYSMGR.DIR;1 SYSMSG.DIR;1
SYSTEST.DIR;1 SYSUPD.DIR;1
Total of 10 files.
$ dir dua0:[sys0.syshlp]
Directory DUA0:[SYS0.SYSHLP]
EDTHELP.HLB;1 EXAMPLES.DIR;1 HELPLIB.HLB;1 UAFHELP.HLB;1
Total of 4 files.
$
Console output can be redirected with /output=filename
Subdirectories are included with …
$ dir dua0:[000000...]*.dir
Directory DUA0:[000000]
000000.DIR;1 SYS0.DIR;1 SYSEXE.DIR;1 SYSMAINT.DIR;1
USER.DIR;1
Total of 5 files.
Directory DUA0:[SYS0]
SYSCBI.DIR;1 SYSERR.DIR;1 SYSEXE.DIR;1 SYSHLP.DIR;1
SYSLIB.DIR;1 SYSMAINT.DIR;1 SYSMGR.DIR;1 SYSMSG.DIR;1
SYSTEST.DIR;1 SYSUPD.DIR;1
Total of 10 files.
Directory DUA0:[SYS0.SYSHLP]
EXAMPLES.DIR;1
Total of 1 file.
Grand total of 3 directories, 16 files.
Size can be shown with /size (block =512B):
$ dir dua0:[000000] /size
Directory DUA0:[000000]
000000.DIR;1 1
BACKUP.SYS;1 0
BADBLK.SYS;1 0
BADLOG.SYS;1 0
BITMAP.SYS;1 16
CONTIN.SYS;1 0
CORIMG.SYS;1 0
INDEXF.SYS;1 1024
SYS0.DIR;1 1
SYSEXE.DIR;1 1
SYSMAINT.DIR;1 1
USER.DIR;1 1
VOLSET.SYS;1 0
Total of 13 files, 1045 blocks.
$
Total size of directories can be shown with grand_total.
$ dir dua0:[000000...]*.* /size /grand_total
Grand total of 10 directories, 176 files, 13800 blocks.
$
To mount a floppy disk:
$ mount dua1: <label>
to dismount a floppy disk:
$ dismount dua1:
Logical names are used extensively as a shorthand for things. They are revealed by show logical *
$ show logical *
(LNM$PROCESS_TABLE)
"SYS$COMMAND" = "_SALONE$OPA0:"
"SYS$DISK" = "SYS$SYSROOT:"
"SYS$ERROR" = "_SALONE$OPA0:"
"SYS$INPUT" = "_SALONE$OPA0:"
"SYS$OUTPUT" [super] = "_SALONE$OPA0:"
"SYS$OUTPUT" [exec] = "_SALONE$OPA0:"
"TT" = "OPA0:"
(LNM$JOB_800E4610)
"SYS$LOGIN" = "SYS$SYSROOT:[SYSMGR]"
"SYS$LOGIN_DEVICE" = "SYS$SYSROOT:"
"SYS$SCRATCH" = "SYS$SYSROOT:[SYSMGR]"
(LNM$GROUP_000001)
(LNM$SYSTEM_TABLE)
"$CONSOLE" = "_OPA0:"
"$DISK1" = "_DUA0:"
"$FLOPPY1" = "_DUA1:"
"$FLOPPY2" = "_DUA2:"
"$TERMINAL0" = "_TTA0:"
"$TERMINAL1" = "_TTA1:"
"$TERMINAL2" = "_TTA2:"
"$TERMINAL3" = "_TTA3:"
"ACP$BADBLOCK_MBX" = "MBA3:"
"DBG$INPUT" = "SYS$INPUT:"
"DBG$OUTPUT" = "SYS$OUTPUT:"
"DISK$MICROVMS" = "SALONE$DUA0:"
"LNK$LIBRARY" = "SYS$LIBRARY:IMAGELIB.OLB"
"LNK$LIBRARY_1" = "SYS$LIBRARY:STARLET.OLB"
"MTHRTL" = "SYS$SHARE:UVMTHRTL.EXE"
"SYS$ANNOUNCE" = ".Welcome to MicroVMS V4.0"
"SYS$COMMON" = "SALONE$DUA0:[SYS0.]"
"SYS$DISK" = "SALONE$DUA0:"
"SYS$ERRORLOG" = "SYS$SYSROOT:[SYSERR]"
"SYS$EXAMPLES" = "SYS$SYSROOT:[SYSHLP.EXAMPLES]"
"SYS$HELP" = "SYS$SYSROOT:[SYSHLP]"
"SYS$INSTRUCTION" = "SYS$SYSROOT:[SYSCBI]"
"SYS$LIBRARY" = "SYS$SYSROOT:[SYSLIB]"
"SYS$MAINTENANCE" = "SYS$SYSROOT:[SYSMAINT]"
"SYS$MANAGER" = "SYS$SYSROOT:[SYSMGR]"
"SYS$MESSAGE" = "SYS$SYSROOT:[SYSMSG]"
"SYS$SHARE" = "SYS$SYSROOT:[SYSLIB]"
"SYS$SPECIFIC" = "SALONE$DUA0:[SYS0.]"
"SYS$SYLOGIN" = "SYS$MANAGER:SYLOGIN.COM"
"SYS$SYSDEVICE" = "SALONE$DUA0:"
"SYS$SYSDISK" = "SYS$SYSROOT:"
"SYS$SYSROOT" = "SALONE$DUA0:[SYS0.]"
"SYS$SYSTEM" = "SYS$SYSROOT:[SYSEXE]"
"SYS$TEST" = "SYS$SYSROOT:[SYSTEST]"
"SYS$TOPSYS" = "SYS0"
"SYS$UPDATE" = "SYS$SYSROOT:[SYSUPD]"
"SYS$WELCOME" = "@SYS$MANAGER:WELCOME.TXT"
$
A logical can have more than one directory path so the command processor could search multiple directories for a file.
There are also symbols which seem to be effectively string variables.
EXE files are run using a run command.
Scripts are run with @ prefix.
$ @SYS$UPDATE:STABACKIT makes a standalone backup kit
There is a whole manual on backup and restore: VMS Backup Utility Manual.
A lot of other things are described by role in the System Manager’s Guide and the Operator’s Guide.