README.md
ORNL Virtual Disk Package
-------------------------
By: Kenneth J. Cross
Oak Ridge National Laboratory
Bldg. 3500, MS-7
P.O. Box X
Oak Ridge, TN 37830
Phone: (615) 574-5729
The following package includes:
UIC Description
-------- -----------
[313,20] AVD -- Associate virtual disk utility
[313,21] DVD -- Dissociate virtual disk utility
[313,22] Virtual disk device driver (VD:)
[313,10] HELLO and BYE sources with modifications
*******************************************
editor's note: The modified sources to HELLO
and BYE were deleted. The sources are liscensed
software and as such cannot be distributed. Users
are encouraged to submit SLP files when they wish
to modify a DEC source module.
To try and help matters along I ran CMP and
compared Ken's HELLO.MAC with HELLO.DEC. HELLO.DEC
is the version of HELLO.MAC that comes on an
11M v3.2 release kit. The output file is HELLO.CMP.
I did the same for BYE. I ran CMP and compared
Ken's BYE.MAC with BYE.DEC. BYE.DEC is the version
of BYE.MAC that comes on an 11M v3.2 release kit.
The output file is BYE.CMP.
***********************************************
[313,24] HELLO and BYE command files
[313,30] TRMSET -- Sets terminal characteristics at LOGIN
Introduction
------------
If you are unfamiliar with Virtual Disks, you should find out about them.
Unfortunately, I didn't have time to write up a thorough description of
what VD's are. They are described by Ralph Stammerjohn (the original
inventor/author to whom all praise and glory belongs) on the Spring '79
DECUS tape. I presented a paper on VD's at the Fall '80 DECUS in San
Diego and the write-up in the Proceedings of that Symposium describes
VD's, how they work, and how great they are.
The following discussion assumes a rudimentary knowledge of VD's and
how they work.
Virtual Disk Driver
-------------------
First of all is the virtual disk driver VDDRV. It has changed very little
from the original Stammerjohn version, except for some protection
mechanisms to make sure the host disk (i.e., the disk on which the VD
is allocated) has not been changed. VDDRV is really trivial (which is
the beauty of the entire VD package).
AVD and DVD
-----------
There are two other utility programs called AVD and DVD. (I have changed
the meaning of these from the original "Allocate Virtual Disk" and
"Deallocate Virtual Disk" to "Associate Virtual Disk" and "Dissociate
Virtual Disk" since there was some confusion with the MCR ALLocate
operation.)
AVD and DVD have been changed considerably from the original Stammerjohn
version. The reason for the changes were to enable a large number of
unsophisticated users to use VD's easily.
It usually happened that every time you logged on and ran AVD to get a
virtual disk, it was a different virtual disk unit every time, e.g.,
VD1: one day and VD5: the next. So we had AVD pick the first available
VD unit and assign it to the logical device name VS: for that user.
For example, if VD0: and VD1: are in use, then running AVD will generate
the equivalent of the MCR command "ASN VD2:=VS:/LOGIN". Note that VD2:
is the first available VD unit and the /LOGIN prevents the (non-
privileged) user from accidentally removing the assignment. In this
manner, you always could reference the virtual disk as VS:.
If you need more than one VD, then AVD assigns the first one to VS:, the
next one to VS1:, etc.
Major modifications include:
1. The format of AVD is now
>AVD filespec
where "filespec" is the file specification of the virtual
disk file on a host disk.
AVD automatically determines the first available virtual
disk unit (VD:) and assigns it to the first available
logical device name VS: for the user. For example,
>AVD DISK1
Will assign the virtual disk DISK1 to VD:, and assign
VD: to VS: for the user.
>AVD DISK2
Will then assign DISK2 to VD1: and VD1: to VS1:. The idea
is to always be able to refer to your virtual disk as VS:,
no matter what VD: it is really assigned to.
A /VM switch on AVD also assigns the virtual disk to logical
device VM:, i.e., "ASN VD:=VM:".
2. AVD /HELP provides some help.
3. AVD /ID and DVD /ID prints the version numbers of the tasks.
4. AVD and DVD both have /NM switches to suppress informational
messages.
5. AVD has a /LI switch to list the current assignments for all
the virtual disks. A /BR switch gives a brief listing.
6. DVD /ALL will dissociate all virtual disks in use by this
terminal. It simply checks all VS: assignments for the
terminal and dissociates them. (DVD /ALL is used on logout.)
There are a number of other features that would only be appreciated by
a close inspection of the sources. These include protection features
and PIPUTL for error handling.
HELLO and BYE
-------------
***********************************************************************
editor's note: The modified sources to HELLO and BYE were deleted. This
is liscensed software and as such cannot be distributed. Submitors are
encouraged to submit SLP files when they wish to modify a DEC source module.
I ran CMP and compared HELLO and BYE as modified by Ken with the HELLO
and BYE supplied by DEC on an 11M v3.2 release kit. The results of the
comparison are in HELLO.CMP and BYE.CMP.
*************************************************************************
The modifications to HELLO and BYE are not required to implement the
---
rest of the virtual disk package. The mod to HELLO checks for a
command file in LB:[201,1] that corresponds to the UIC of the person
logging on, e.g., if they are logging onto UIC [123,321], then HELLO
looks for file LB:[201,1]123321.CMD. If it finds it, then it is executed
with the terminal privileged and slaved.
---------------------------------------
After the command file is finished, then the user is logged on non-privileged.
If that file is not found, then HELLO looks for LB:[201,1]123321.PRV.
If it exists, it is executed (again with the terminal privileged
and slaved) and the person is logged on privileged.
We use these files to automatically AVD a virtual disk for people when
they log onto the system. Examples have been provided on the tape:
007020.PRV and 350010.CMD. They would be used with UIC's [7,20] and
[350,10], respectively.
The modification to BYE simply runs DVD to dissociate any virtual
disks the user had while he was logged on. We have found this to be
an essential clean-up operation when using virtual disks. (The changes
to BYE would have been unnecessary if RSX-11M would run a command file
on logout like it does on login.)
TRMSET
------
Our system has many people connecting with different types of terminals
on different lines all the time. So we wrote this simple little
program called "TRMSET" that sets the terminal characteristics for
users when they log in (TRMSET is automatically run by HELLO when
you log in).
TRMSET sends the escape sequence to request a terminal to identify
itself. Many terminals respond with an identification string of some
sort. TRMSET then sets the terminal characteristics for that type
of terminal. Currently, TRMSET recognizes VT100's, LA120's, VT52,
and VT55.
If a terminal doesn't respond within a time-out period, then TRMSET
sets some default characteristics based on the baud rate of the line.
Finally
-------
The usual DECUS caveat applies: if it wipes out your system, too bad.
But we have had very good luck with it, and would be interested in
hearing of problems.