This document is intended as an overview for beginners interested in using VMS-based computers in the OSU Physics Department. These computers are collectively known by the name OHSTPY. This document is not a complete guide to the use of OHSTPY; instructions for accessing more information are given in later sections.
The user interacts with the operating system by entering commands at a terminal, or from a workstation window. The system usually responds by sending text back to the terminal/window. Generally, commands are not case sensitive (upper case: ABC...Z, lower case: abcd...z) and may be abbreviated. An example of a DCL command and its response is:
$ DIRDirectory DEV$USER:[USERNAME] LOGIN.COM;1 EDTINI.EDT;1 Total of 2 files.
For clarity in this document, we will underline commands entered by the user. Also for clarity, the examples will be indented. Commands are not executed until the carriage return <CR >, which is not shown, is pressed. The dollar sign $ is the DCL prompt and is not typed by the user. The cursor is a unique postion on the screen and is usually indicated by a special blinking character. When a character is typed, it is entered at the cursor postion. The cursor character will not be shown here.
Local > C OHSTPY
telnet ohstpy.mps.ohio-state.edu
This form of the telnet command will almost always work. In some cases, the entire internet name is not required. For example, from a system in the Physics Department, this command is sufficient:
telnet ohstpy
On Microsoft Windows or Mac OS based systems, a windowed application like WinQVT/Net doesn't require a telnet command line, but rather that you pick the telnet object and supply a host name (i.e., internet name) to connect. Again, that name for our system is ohstpy.mps.ohio-state.edu
$ SET PASSWORD
Old password:
New password:
Verification:
The system prompts you for the old password, new password, and your new password
again as verification; all of which must be entered before the password is
modified. The passwords are not shown on the terminal screen.
The number of characters in the password must be greater than 5. Generally, a password of 6 to 10 characters in length is sufficient. You may use the 26 letters and the 10 digits. OHSTPY uses password history and a password dictionary to enforce good password selection. One technique for choosing a safe and acceptable password is the use of compound words of your own creation.
When you are done with your interactive session, log out of the system with the logout command:
$ logout
JOEUSER logged out at 12-DEC-1989 14:32:12.43
This is sufficient to end anything but an X session from a workstation. To end an X session, go to the Session Manager and select Quit from the Session pull-down menu. By default, the X Session Manager will display a confirmation window which you must respond to before your session is ended.
We use DCL commands to interact with the system or other users. The commands provide a computer language environment; there are conditionals, assignment statements, etc., typical of other high level computer languages.
There are several formats for entering DCL commands. Typically, a DCL command consists of three parts. They are the VERB, the QUALIFIER, and the PARAMETER. The DCL format is:
$ VERB [/QUALIFIER...] [PARAMETER[/QUALIFIER...]]...
where the square brackets indicate optional entries and the dots indicate
additional entries. The VERB is the DCL command. The QUALIFIERs and PARAMETERs
allow one to enter more specific information at the DCL level. QUALIFIERs are
preceded by slashes.
Typical examples of DCL commands of this type are:
$ directory/size/date login.com
$ dir/siz /dat login.com
$ dir/size
$ help
$ show users
$ purge/nolog *.*
$ print/queue=smith4035 file.dat
where the responses from the system are supressed. The first two examples give
identical results and illustrate how we may abbreviate commands. The *.* is a
wildcard file specification. Notice that QUALIFIERs may be assigned values - as
in the last example.
Some PARAMETERs or QUALIFIERs are required and if they are not entered initially, you may be prompted, for example:
$ print/que=smith2097
_File: login.com
Other types of commands may be more interactive, for example, the MAIL utility enters into a subcommand mode. A simple session may look like:
MAIL > send
To: bill
Subj: homework
Enter your message below. Press CTRL/Z when complete or CTRL/C to quit:
Please help me on problem 3 of our E+M homework!
Joeuser ^Z
MAIL > exit
At the DCL level, we invoke the MAIL utility which has its own prompt. The first MAIL command is send which enters into a prompting mode inquiring information about the message we want to send. After typing Joeuser, we press CTRL/Z, (hold the key marked Ctrl down and press the Z key), thus sending the message to bill and subsequently returning to the MAIL prompt. Entering exit at the MAIL prompt exits MAIL and returns to the DCL level.
As an example, we can get help on using the DCL PURGE command by typing HELP PURGE. (To see a list of most DCL commands, just type HELP.) Here's what you'll see:
$
HELP PURGE
PURGE
Deletes all but the highest-numbered versions of the
specified files.
Format:
PURGE [file-spec[,...]]
Additional information available:
PARAMETER QUALIFIERS
/BACKUP /BEFORE /BY_OWNER /CONFIRM /CREATED
/ERASE /EXCLUDE /EXPIRED /KEEP /LOG
/MODIFIED /SINCE
EXAMPLES
PURGE Subtopic?
At this point, you can get additional information by responding to the PURGE Subtopic
prompt. If you hit return at this prompt, you'll go up a level in the HELP ``tree''. If you type
CTRL-Z, you'll exit HELP.
There is also a local help tree which describes programs and environments specific to OHSTPY. This local help is accessible via the command TELL. TELL works in an identical fashion to HELP. TELL is extensive; the management trys to keep a TELL entry for every modification to user software and environments.
There are several ways that may help us save time entering commands.
Commands may be abbreviated as long as the abbreviation is not ambiguous. For example, when we compile a program:
$ fortran prog
$ fortra prog
$ fortr prog
$ fort prog
$ for prog
$ fo prog
%DCL-W-ABVERB, ambiguous command verb - supply more characters
\ FO \
It is generally not a good idea to abbreviate DCL commands to less than 3 or 4
letters. Experiment to see what you can get away with. Note that in this
example, we may not abbreviate the PARAMETER prog.
Pressing the ``up arrow'' key repeatedly at the DCL level recalls up to 20 previously entered DCL commands. We may simply re-enter any of these by pressing <CR > when it is visible. It is also possible to edit the command before re-entering it. When the command is visible, use the ``left arrow'' and ``right arrow'' keys to position the cursor. You may also use control characters to help edit the command, some of which are:
| CTRL/A | Toggles between insert and overstrike mode. |
| CTRL/H | Moves the cursor to the begining of the line. |
| CTRL/E | Moves the cursor to the end of the line. |
| CTRL/U | Deletes the characters to the left of the cursor. |
| CTRL/B | Same as the up arrow. |
| CTRL/F | Same as the right arrow. |
| CTRL/D | Same as the left arrow. |
| CTRL/Y | Interrupt. |
| CTRL/C | Interrupt. |
There is a way to view the (at most) 20 previously entered DCL commands with a
non-recallable DCL command. Namely:
$ recall/all
1 run prog
2 link prog
3 fortran prog
4 eve prog.for
5 purge
$ recall 4
eve prog.for
If we press <CR > at the last line, it will execute that command.
There may be a few commands we use a lot. If we wish, we may assign a command
to a DCL ``symbol''
and use the symbol in place of the command. The usefulness lies in
that the symbol may be easy to remember and much shorter than the actual command.
For example,
$ ds*d :== directory/size/date
$ show symbol dsd
$ DS*D == "DIRECTORY/SIZE/DATE"
$ dsd
Directory DEV$USER:[JOEUSER] LOGIN.COM;1 10 11-NOV-1989 04:04:16.48 EDTINI.EDT;2 6 11-NOV-1989 10:04:04.50 TEST.FOR;1 2 29-DEC-1989 15:57:07.75 TEST.FOR;2 2 31-DEC-1989 15:34:07.55 TEST.OBJ;1 2 31-DEC-1989 17:57:06.13 TEST.EXE;1 5 31-DEC-1989 17:57:07.12 Total of 7 files, 27 blocks.
Here, DSD is the convenient symbol that represents the much longer DCL command
DIRECTORY/SIZE/DATE. The star indicates where we may start to abbreviate.
Another example is:
$ pho*ne :== phone/noscroll
$ show symbol phon
PHO*NE == ``PHONE/NOSCROLL''
Use HELP to learn more about the SYMBOL definitions under ``:='' and ``=''.
Programs, data, source code, etc., reside in discrete units called files. Files are
stored on disks.
A disk has a directory structure so that files may be managed more easily.
Each file has a name or file specification. The full file specification of a file contains the disk, directory, file-name, extension, and version number. The syntax is shown by example,
$ purge
%PURGE-I-FILEPURG, DEV$USER:[JOEUSER.SOURCE]PROGRAM.FOR;4 deleted (9 blocks)
%PURGE-I-FILEPURG, DEV$USER:[JOEUSER.SOURCE]PROGRAM.FOR;3 deleted (8 blocks)
%PURGE-I-FILEPURG, DEV$USER:[JOEUSER.SOURCE]PROGRAM.FOR;2 deleted (4 blocks)
%PURGE-I-FILEPURG, DEV$USER:[JOEUSER.SOURCE]PROGRAM.FOR;1 deleted (3 blocks)
%PURGE-I-TOTAL, 4 files deleted (24 blocks)
$ dir/size
Directory DEV$USER:[JOEUSER.SOURCE] PROGRAM.FOR;5 12 Total of 1 files, 12 blocks.
(Recall that the DCL command PURGE deletes all files except the most recent versions.) A block is a unit of storage on the disk. By default 1 block is 512 bytes where one byte is one character. A diagram illustrates the main features of the file specification.
extension
|
DEV$USER:[JOEUSER.SOURCE]PROGRAM.FOR;4
| | | |
disk directory file-name version-number
This syntax is unique to VMS. Those familiar with UNIX might use the filename
/u2/joeuser/source/program.for for analogy.
In the above example, DEV$USER is a device name that refers to the user disk.
Most of the files that you own and want to maintain should be kept on this disk.
Files on DEV$USER are permanent and are backed up weekly.
This is the disk volume that is used when you first log in. Temporary space is available on DEV$SCRATCH.
You must be more careful with files on
DEV$SCRATCH because these files are not backed up as they are on
DEV$USER; they are also subject to periodic deletion by the operator. Therefore, please don't
store files on DEV$SCRATCH for more than 5 days. Use the commmand TELL SCRATCH for more
information.
Each user is allocated a finite amount of memory on the user disk, called the disk quota. Try running this program:
$ run diskuse
User [000045,000018] has 9509 blocks used, 491 available,
of 10000 authorized and permitted overdraft of 40000 blocks on DSA10:
Here the limit is 10000 blocks (about 5.12 Megabytes). The quota is calculated
using only the files on DEV$USER. Note that a synonym of of sorts for DEV$USER is
DSA10:. DEV$USER is a ``logical name'' - a VMS concept. Try
$ show logical dev$user
``DEV$USER'' = ``DSA10:[USER.]'' (LNM$SYSTEM_TABLE)
In our example, the default directory is [JOEUSER.SOURCE]. The period seperates
the main directory JOEUSER from the subdirectory SOURCE. To see what the
current default directory is, use the utility sd as follows,
$ sd
DEV$USER:[JOEUSER.SOURCE]
Try also:
$ sd ?
and
$ help show default
to obtain help.
In our example, the file-name is PROGRAM and the extension is FOR. The
combination PROGRAM.FOR is usually a sufficient abbreviation for most purposes.
This abbreviation refers to the most recent version of the file in the default
directory. The file-name should give some information about why it is being used.
The file-name PROGRAM may indicate that the file is a program, for example.
The extension is usually characteristic of the type of file. A FOR file, for
example, should be a FORTRAN source file. A short list of typical extensions and
the corresponding file types follows.
| EXTENSION | TYPE OF FILE |
| COM | Command file. |
| DAT | Data file. |
| DIR | Directory file. |
| DIS | Mail distribution file. |
| EXE | Executable file. |
| FOR | FORTRAN source file. |
| LIS | List file. |
| OBJ | Object file. |
| OLB | Library file. |
| TEX | LaTeX or TeX file. |
| TXT | Text file. |
Each time a file is modified, both the old version and the new version are kept
on disk. The way they are distinguished is by the version number. In our
example, before purging, there were five files. The oldest one was
PROGRAM.FOR;1 and the newest PROGRAM.FOR;5. After purging, only the most
recent one is left. Version numbers have no analog in UNIX and are truely a VMS
concept.
$ LSE PROG.FOR
Usage of EVE is briefly discussed below. However, the other editors listed might be more attractive for your purposes. For instance, LSE, which stands for Language Sensitive Editor, is used by one of the authors for all Fortran and C development. All 4 of these editors have online help accessible from within the editors themselves.
$ show symbol eve
EVE == ``EDIT/TPU/SECTION=SYS$SHARE:EVE$SECTION''
When EVE is
invoked, the screen is cleared and the text (if any) is displayed.
Three lines at the bottom of the
screen are used to display some information. The cursor is placed in the upper
left hand corner. The end of the file is marked with [End of file].
To invoke EVE,
$ EVE FILENAME.TXT
If the file FILENAME.TXT exists (in the current directory), it is read into
memory and only the first approximately twenty lines are initially
displayed on the screen. If, on the other hand, it doesn't exist, the buffer is
initially empty and the [End of File] appears in the upper left hand corner.
To exit from EVE and save the file, press CTRL/Z. Remember that the previous
versions are kept.
There are three types of online help for EVE that you can invoke. One type is
invoked at the DCL level and the other two from within EVE. Perhaps the best way
to learn EVE is to use it and make use of these help facilities.
The first way to obtain EVE help is with the HELP utility:
$ HELP EDIT/TPU
A second way to obtain EVE help is to invoke EVE, identify the help-key and
press it. (The help-key may be a dedicated key labeled Help or it may be the
the key labeled PF2. This depends on the terminal and the keyboard - eg:
PROCOMM usually uses the F2 key on the PC keyboard.) The screen will clear and a
diagram of the keypad should appear. For a VT100 terminal, it should look
something like:
_______________________________ _______________________________
|Move up| Move | Move | Move | | Find | HELP |Change | Do |
| | down | left | right | | | |directi| |
|_______|_______|_______|_______| |_______|_______|_______|_______|
|Select |Remove |Insert | Move |
To get help on commands, type a | | | here |by line|
command or ? and press RETURN. |_______|_______|_______|_______|
| |Move up| | Erase |
For a list of all key definitions | | | | word |
type KEYS and press RETURN, or |_______|_______|_______|_______|
press GOLD-HELP. | Move | Move | Move | |
| left | down | right | |
To show a key definition, use the |_______|_______|_______|Change |
command SHOW KEY. | Next screen |Previou| mode |
| |screen | |
|_______________|_______|_______|
Synonyms for the DO key:
PF4, DO
Buffer: HELP
Press the key that you want help on (RETURN to exit help):
This method provides a keypad oriented help. In the spirit of VMS, the responses
are not case sensitive and may be abbreviated. Note that there are instructions
at each stage.
To use the third online EVE help, still within EVE, identify the DO key and press it. (If there isn't a key labeled DO, use the keypad diagram to help find it. Try PF4. PROCOMM usually uses the Shift/F2 key.) A prompt should appear near the bottom of the screen. Enter help at this prompt. Immediately before pressing <CR >, the bottom of the screen should look something like:
.......
a(i+1)=4.0*b(i)-c(j)*c(i)/(5.43*a(i))
if(a(i+1).lt.20.0)then
call sub1a(a(i),a(i+1))
else
stop
end if
200 continue
end
[End of file]
Buffer: PROG.FOR | Write | Insert | Forward
Command: help
19 lines read from file DEV$USER:[JOEUSER]PROG.FOR;8
In the spirit of VMS, DO commands are not case sensitive and may be abbreviated.
A list of about 5 screens of commands is displayed.
To edit a previous version of the file, we simply have to be more specific with the file specification, for example:
$ dir *.for
Directory DEV$USER:[JOEUSER.SOURCE] PROG.FOR;8 PROG.FOR;7 PROG.FOR;6 Total of 3 files.$ eve prog.for;7
*** EDITING SESSION TERMINATED WITH CTRL/Z ***
$ dir *.forDirectory DEV$USER:[JOEUSER.SOURCE] PROG.FOR;9 PROG.FOR;8 PROG.FOR;7 PROG.FOR;6 Total of 4 files.
The most recent version is PROG.FOR;9 and the other three versions are unchanged.
$ SHOW DEFAULT
DEV$USER:[JOEUSER]
This command displays the current default disk DEV$USER and the default directory JOEUSER. To change the default disk to DEV$SCRATCH, try:
$ SET DEFAULT DEV$SCRATCH:[JOEUSER]
$ SHOW DEFAULT
DEV$SCRATCH:[JOEUSER]
$ SET DEFAULT DEV$USER:[JOEUSER]
$ SHOW DEFAULT
DEV$USER:[JOEUSER]
There is a DCL symbol that allows us to move about more easily.
$ SHOW SYMBOL SD
SD == ``@MISC_COM:SD_COM''
$ SD
DEV$USER:[JOEUSER]
$ SD DEV$SCRATCH:
DEV$SCRATCH:[JOEUSER]
$ SD <
DEV$USER:[JOEUSER]
$ SD ?Set/Show Default Format: SD Show current default SD * List subdirectories under this one SD NODE:: Translates to SET HOST NODE SD :: Translates to SET HOST SYS$NODE SD ^^ Go to top level of current directory + SD ^ Go up one subdirectory level + SD >TWO Go to .TWO of this subdirectory level + SD < Restore most recent previous directory + SD . Restore default directory (SYS$LOGIN) + SD .TWO Set Default to [Current.TWO] + SD ONE.TWO.THREE Set Default to [ONE.TWO.THREE] + + = > Redifines SD_SAVED_DIRECTORY = last Default directory setting
The first command shows that SD is defined as a symbol. (Because of the ``@'' we know that SD executes a COMmand file. This COMmand file may be viewed with EVE as using the command,
$ EVE/READ MISC_COM:SD_COM.COM
The COMmand file is made up of DCL commands, and is called a ``COMMAND PROCEDURE''.
To create sub-directories, use the DCL command CREATE/DIRECTORY:
$ SD .
DEV$USER:[JOEUSER]
$ CREATE/DIR
_File: [.SUBDIR]
$ DIR SUBDIR.DIRDirectory DEV$USER:[JOEUSER] SUBDIR.DIR;1 Total of 1 file.$ SD.SUBDIR
$ SD
DEV$USER:[JOEUSER.SUBDIR]
$ DIR
%DIRECT-W-NOFILES, no files found
$ SD Ù
DEV$USER:[JOEUSER]
The first command brings us to our default login directory - if we are not already
there. The second command creates the sub-directory DEV$USER:[JOEUSER.SUBDIR].
The third command shows that creating this sub-directory has also created a file
named DEV$USER:[JOEUSER]SUBDIR.DIR;1 The fourth command moves us into the newly
created sub-directory. The fifth command shows that there aren't any files in the
sub-directory. The sixth command moves us back up (one level) to the main
directory.
After the sub-directory is created, we may create files in it. Try to keep only a few files in each sub-directory, perhaps about a screen-full with DIR. A purpose of sub-directories is to make it possible to easily maintain files.
Since VMS tries to save all previous versions, it is up to us to clean up. In practice, old versions of a file are not used except perhaps as a temporary form of backup. (There are of course exceptions to this rule.) VMS provides an easy way to delete all but the most recent version (highest version number). We illustrate:
$ dir prog.forDirectory DEV$USER:[JOEUSER] PROG.FOR;10 PROG.FOR;9 PROG.FOR;8 PROG.FOR;7 PROG.FOR;6 PROG.FOR;5 PROG.FOR;4 PROG.FOR;3 PROG.FOR;2 PROG.FOR;1 Total of 10 files.$ purge/nolog
$ dir prog.forDirectory DEV$USER:[JOEUSER] PROG.FOR;10 Total of 1 file.
Learn more about deleting files with either of the following:
$ help delete
$ help purge
The VAX is a multi-user, time-sharing, computer. Typically, approximately 100 users may be logged on at the same time (during working hours SP 94). There are over 500 accounts listed in the file userlist. There are several ways to communicate with other users. This section gives a brief introduction to some of the methods.
$ fingerMonday, July 11, 1994 3:20PM-EDT Up 43 17:19:23 40+1 Jobs on OHSTPX Load ave 1.39 1.42 1.49 User Personal Name Job Subsys Terminal Console Location ACOSTA Darin Acosta 21C001A0 *DCL* PHYVSH$FTA15 ALLEN Brent H. Allen 2040988A *DCL* LTA9668PHDS7A/PHDS7A_P2 ARUN Arun K. Tripathi 20409681 *DCL* 1:01.NTY6 hepw04.hep.phys.ksu ATL Ann T. Lawrence 2020FC2A *DCL* OHSTPW$NTY5 maps4.mps.ohio-stat ATWOOD Bruce Atwood 2021BC40 MAIL OHSTPW$LTA7321PHDS7I/PHDS7I_P3 ... ... ... ... ... ... JOEUSER Joe User 2040485D RLOGIN FTA78 20409664 *DCL* 3:23.NTY3 capemay.mps.ohio-st 20409478 LSEDIT FTA120 20409279 FINGER FTA121 204040E9 LSEDIT FTA75 20404B03 RLOGIN FTA77 20609202 LSEDIT OHSTPZ$NTY1 ohstpx.mps.ohio-sta 20606481 DTEPAD OHSTPZ$NTY6 ohstpx.mps.ohio-sta ... ... ... ... ... ... YEMING Ming Ye 2060B292 *DCL* OHSTPZ$LTA9765LAT_AA0004001118 YUEYANG Yue Yang 20218C66 NEWS OHSTPW$NTY10 china.mps.ohio-stat YWB Wenbin Yu 2060ACFF *DCL* OHSTPZ$NTY12 brighton.mps.ohio-s ZQMA Ma Zhenqiang 2040969B NEWS LTA9675PHDS7H/PHDS7H_P16$ show users/fullVAX/VMS User Processes at 11-JUL-1994 15:26:08.70 Total number of users = 78, number of processes = 179 Username Node Process Name PID Terminal <login > PHYVS9 DECW$LOGINOUT 210001A7 <login > PHYVSB DECW$LOGINOUT 214002A6 ACOSTA PHYVSH ACOSTA 21C001A0 FTA15: ... ... ... ... ... JOEUSER OHSTPX Joe 20409664 VTA5382: NTY3: (capemay.mps.ohio-state.edu) ... ... ... ... ... YWB PHYVSJ BATCH_546 22000BC5 (batch) ZQMA OHSTPX ZQMA 2040969B LTA9675: (PHDS7H/PHDS7H_P16)
With FINGER, we see a list (truncated here in this example) of all the users logged in presently. The columns give various information. The first column lists the USERNAMEs. Each person is locally (on OHSTPY) refered to by this USERNAME. The second column lists the user's name as entered by a system manager (John Heimaster et al) when the account is started. The third column lists the corresponding program that is being run. For example, JOEUSER (our fictitious user) is running the image FINGER. (Note that FINGER abbreviates some utility names which are not in the spirit of VMS and these abbreviations are sometimes not valid DCL abbreviations.) If the user is not running a program and is at the DCL level, we see that the image is *DCL*. The fourth and fifth columns give information about what terminal is being used.
The DCL command SHOW USERS also lists the USERNAMEs, however, it gives other types of information. The second column lists the Process Name, which you may change with the DCL command,
$ set process/name="Joe"
The quotes help preserve the case. The third column lists the PID (Process ID number). The last two columns list more terminal information - beyond the scope of this section.
If you create a plan in your login directory, other people may view it with FINGER. The file must be named PLAN.TXT. Here is an explicit example:
$ sd .
DEV$USER:[JOEUSER]
$ eve finger.pln
*** EDITING SESSION TERMINATED WITH CTRL/Z ***
$ set file plan.txt/protection=w:re
$ finger joeuserJOEUSER Joe E. User 2040485D RLOGIN FTA78 20409664 *DCL* 3:43.NTY3 capemay.mps.ohio-st 20409478 LSEDIT FTA120 20409279 FINGER FTA121 204040E9 LSEDIT FTA75 20404B03 RLOGIN FTA77 20609202 LSEDIT OHSTPZ$NTY1 ohstpx.mps.ohio-sta 20606481 DTEPAD OHSTPZ$NTY6 ohstpx.mps.ohio-sta Plan: I'm just an average joe. My office number is 292-5555. I have no personal life, so I have no home phone.
After the word ``Plan'', the file FINGER.TXT that was created is displayed. You may finger any user this way, even when he is not logged on. Try it.
The SEND command may send lines of text to the other user's terminal screen. For example, JOEUSER SENDs a message to MARY. At JOEUSER's terminal,
$ send mary
MARY: Hello Mary MARY:
At MARY's teminal,
$ JOEUSER(VTA5833) - Hello Mary $
MARY may respond by sending text back to JOEUSER with the
SEND JOEUSER command.
Another more sophisticated method of interactive communication uses the PHONE utility. Try first:
$ help phone
When PHONE is invoked, the screen clears and splits into three areas. At the
top of the screen appears a prompting and system message area. The default prompt
within PHONE is the percent sign. (Try entering help at the % prompt -
%
help - to
get more help.) Below this top area are two areas - a split screen - where
messages either appear or are entered. The user types in the upper half of the
split screen. The other user's message appears in the bottom part of the split
screen. Note that the characters are sent as they are typed.
To successfully invoke PHONE, the other user must respond. If JOEUSER wants to call MARY, he may initiate the utility by using:
$ phone mary
The system displays at his terminal the three windows described above. A message that JOEUSER is calling is sent to MARY. MARY's display and subsequent responce may look like:
$ OHSTPY::JOEUSER is phoning you on OHSTPY:: (10:24:10) $ OHSTPY::JOEUSER is phoning you on OHSTPY:: (10:24:10) $ OHSTPY::JOEUSER is phoning you on OHSTPY:: (10:24:10)$ phone answer
Her screen clears and displays the same three windows. Try it with a friend to get used to it.
$ help mail
Then, to obtain even more help, enter HELP at the MAIL prompt. Below is a detailed example showing how to obtain help with the MAIL command DIRECTORY.
MAIL > helpHELP Allows you to obtain information about the Mail Utility. To obtain information about all of the MAIL commands, enter the following command: MAIL > HELP * To obtain information about individual commands or topics, enter HELP followed by the command or topic name. Format: HELP [topic] Additional information available: /EDIT /PERSONAL_NAME /SELF /SUBJECT ANSWER ATTACH BACK COMPRESS COPY CURRENT DEFINE DELETE DIRECTORY EDIT ERASE EXIT EXTRACT FILE FIRST Folders FORWARD GETTING_STARTED HELP KEYPAD LAST MAIL MARK MOVE NEXT PRINT PURGE QUIT READ REMOVE REPLY SEARCH SELECT SEND SET-SHOW SPAWN V5_CHANGESTopic? dirDIRECTORY Displays a list of the messages in the current mail file, including message number, sender's name, date, and subject. If "folder-name" is omitted, MAIL displays a directory of the currently selected folder. If there is no currently selected folder, MAIL displays a directory of the NEWMAIL folder (if unread messages exist) or the MAIL folder. (See the SELECT command for information about selecting messages.) You create a new set of selected messages everytime you use any directory qualifier except the /EDIT qualifier. Format: DIRECTORY [folder-name] Additional information available: Parameters Qualifiers /BEFORE /CC_SUBSTRING /EDIT /FROM_SUBSTRING /FOLDER /FULL /MARKED /NEW /REPLIED /SINCE /START /SUBJECT_SUBSTRING /TO_SUBSTRING ExamplesDIRECTORY Subtopic? examplesDIRECTORY Examples 1. MAIL > DIRECTORY MAIL # From Date Subject 1 MARK 11-APR-1988 The Yen 2 MARK 11-APR-1988 The Buck 3 BILL 13-APR-1988 The Pound 4 BILL 13-APR-1988 The Dollar 5 BILL 14-APR-1988 The Cent 6 MARK 17-APR-1988 The Dime This example shows how to display a listing of all the messages in the current folder by using the DIRECTORY command. 2. MAIL > DIRECTORY/SUBJECT_SUBSTRING= POUND # From Date Subject 3 BILL 13-APR-1988 The Pound This example shows how to use the /SUBJECT_SUBSTRING qualifier to find messages that contain the text POUND in the subject field. 3. MAIL > DIRECTORY/SINCE=13-OCT MAIL # From Date Subject 1 MARK 13-OCT-1988 The Yen 2 MARK 13-OCT-1988 The Buck 3 BILL 15-OCT-1988 The Pound 4 BILL 17-OCT-1988 The Dollar 5 BILL 20-OCT-1988 The Cent 6 MARK 21-OCT-1988 The Dime This example shows how to use the /SINCE qualifier with the DIRECTORY command to display a listing of all the mail messages received on or after October 13, 1988 in the current folder. 4. MAIL > DIRECTORY/FOLDER Listing of folders in DISK$:[BACON]MAIL.MAI;1 Press CTRL/C to cancel listing MAIL NEW_HIRES PROJECTS SALES_LEADS This example shows how to display a listing of all the folders in the current mail file. DIRECTORY Subtopic?
Note that in this example, only the underlined commands are entered, everything
else is displayed by the MAIL utility.
If we are MAILing a message to a person with an account on OHSTPY, we need the USERNAME. However, if we are sending a message to a person over the network, we may need to use a full computer address. A typical computer address is the ``INTERNET'' address. JOEUSER's and MARY's INTERNET addresses are respectively
JOEUSER@OHSTPY.MPS.OHIO-STATE.EDU
MARY@OHSTPY.MPS.OHIO-STATE.EDU
Anyone on this system (OHSTPY) simply appends
@OHSTPY.MPS.OHIO-STATE.EDU
to his USERNAME to obtain his INTERNET address.
As an example of how the INTERNET address is used in MAIL, suppose JOEUSER wishes to send a message to MARY. His interactive session may look like:
MAIL > send
To: mary@ohstpy.mps.ohio-state.edu
Subj: What's Your Sign?
If JOEUSER is MAILing from OHSTPY, he may have used the following:
MAIL > send
To: mary
Subj: What's Your Sign?
to obtain the same result.
Generally, if you know someone with an account on a
node other than OHSTPY, you may exchange computer addresses without
the computer,
eg: via telephone or in person. You may also be able to obtain a person's
email address via the facility WHOIS. Use HELP WHOIS for details.
PMDF MAIL is a program which functions similarly to MAIL, with enhancements to make it easier to do tasks like sending multi-part mailings or maintaining mailing lists. For more information try the following HELP commands:
$ HELP PMDF MAIL
$ HELP PMDF DB
A final note on MAIL: Over the years, we've noticed that the most common problem users have with MAIL, (or PMDF MAIL for that matter), is accidental deletion of MAIL's files. Please DO NOT use the DCL DELETE command on any files with the extension MAI, for example MAIL.MAI. Always use the MAIL or PMDF MAIL DELETE command to remove old or unwanted messages. If the presence of mail files in your login directory bothers you, use the MAIL or PMDF MAIL command SET MAIL_DIRECTORY command to make a special mail subdirectory in which to hide these files away.
NEWS allows the user to REGISTER newsgroups of particular interest, making it possible to ignore the hundreds of newsgroups you'll never care to read. Posting is also possible, though a very good rule of thumb is to read a particular news group for a while to familiarize onesself with the process a bit before participating. Here're a few tips to remember before posting:
There are several online documents with instructions on the use of NEWS. Use the command TELL NEWS_6 for more information.
This section is designed as an introduction to programming on the VAX. There are several minimal steps needed to create and run a program. These steps are briefly:
Each of these are describe below.
Use EVE to create the source-code file. the file-specification extention should reflect the computer language that is being used:
| Language | File |
| FORTRAN | PROG.FOR |
| PASCAL | PROG.PAS |
| C | PROG.C |
The file-name is ours to make up - here we use PROG in all three cases.
To give a specific example, we write a simple program in FORTRAN. (At this point, the reader is assumed to be familiar with FORTRAN.)
$ EVE PROG.FOR
*** EDITING SESSION TERMINATED WITH CTRL/Z ***
$ TYPE PROG.FORPROGRAM PROG C+ C THIS EXTREMELY SIMPLE PROGRAM ADDS TWO NUMBERS AND PRINTS THE RESULT TO C THE TERMINAL SCREEN. REMEMBER, THE STATEMENTS MUST START IN COLUMN 7. C- INTEGER I,J C+ C ASSIGN THE VALUES TO THE TWO VARIABLES I AND J C- I=1002 J=321 C+ C PRINT I+J=RESULT TO UNIT=6 (THE TERMINAL SCREEN) WITH THE DEFAULT C FORMAT (INDICATED BY THE *) C- WRITE(6,*) I, ' + ', J, ' = ', I+J C STOP END$ DIR PROGDirectory DEV$USER:[JOEUSER] PROG.FOR;1 Total of 1 file.
We use the TYPE command to show what the file perhaps should look like when we are done and the DIRECTORY command to see that we have one file with the PROG file-name. This file of course is the source-code file PROG.FOR.
After creating the source-code, we run a utility to compile it into an object file. This object file is not a text file and is not human readable.
Each of the languages need to be compiled with a different compiler. Use the commands
$ help fortran
$ help pascal
$ help cc
to obtain extensive online help regarding these utilities.
To compile our simple example program PROG.FOR, we enter:
$ fortran prog
$ dirDirectory DEV$USER:[JOEUSER] PROG.FOR;1 PROG.OBJ;1 Total of 2 files.
The DIR simply shows us that the compiler produced the OBJ file. Note that with
the FORTRAN compiler, we do not need to specify the FOR extension since this is
the default.
If our program is written in PASCAL and if PROG.PAS is the source-code file then
$ pascal prog
would produce the file PROG.OBJ. Similarily, if our program is written in C and if PROG.C is the source-code file then
$ cc prog
would produce the file PROG.OBJ.
After we produce the object file, we need to run another utility to link up our program with any subroutines that we may have called. Try the command
$
help link
LINK
Invokes the VMS Linker to link one or more object modules into a
program image, and defines execution characteristics of the image.
For a complete description of the linker, including more information
about the LINK command, see the VMS Linker Utility Manual.
Format:
LINK file-spec[,...]
Additional information available:
Parameters Command_Qualifiers
/BRIEF /CONTIGUOUS /CROSS_REFERENCE /DEBUG
/EXECUTABLE /FULL /HEADER /MAP /P0IMAGE /PROTECT
/SHAREABLE /SYMBOL_TABLE /SYSLIB /SYSSHR /SYSTEM
/TRACEBACK /USERLIBRARY
Positional_Qualifiers
/INCLUDE /LIBRARY /OPTIONS /SELECTIVE_SEARCH /SHAREABLE
Examples
LINK Subtopic?
to obtain extensive help on link.
In our simple example, we simply enter:
$ link prog
$ dirDirectory DEV$USER:[JOEUSER] PROG.EXE;1 PROG.FOR;1 PROG.OBJ;1 Total of 3 files.
The DIR shows us that LINK produced another file, namely PROG.EXE. LINK took as input the file PROG.OBJ, where the OBJ is the default extension, and generated our executable file PROG.EXE.
The same command LINK is used to link programs written in the other languages.
At this point, we are ready to run the program. Try
$ help run
to get help on this command.
We may simply run our example program interactively as follows,
$
run prog
1002 + 321 = 1323
FORTRAN STOP
The default extension for the RUN command is EXE.
It is possible to run a program as a batch job rather than interactively. As an example of how we may run our simple example program this way, we first produce a command file and then SUBMIT it to a batch queue. Try
$ help submit
to get more help. Of course, it may not be necessary to run small programs in batch - we use our example program only as an illustration.
$ eve prog.com
*** EDITING SESSION TERMINATED WITH CTRL/Z ***
$ dirDirectory DEV$USER:[JOEUSER] PROG.COM;1 PROG.EXE;1 PROG.FOR;1 PROG.OBJ;1 Total of 4 files.$ type prog.com$! $! this command file is used to run PROG in batch. $! <- following "!" are comments. $! $ run dev$user:[joeuser]prog !Enter the command that will run the program. $ exit !Put this optional DCL command at the end.$ submit prog
Job PROG (queue SYS$BATCH, entry 535) pending
$ show queue/all sys$batchGeneric batch queue SYS$BATCH Jobname Username Entry Status ------- -------- ----- ------ MR101 FIRSTUSER 507 Executing INT3 OTHERUSER 532 Pending PROG JOEUSER 535 Pending
The EVE command is used to create the command file. The DIRECTORY command verifies that the file PROG.COM is present. The TYPE command simply displays the file we made. The SUBMIT command submits the command file to the batch queue SYS$BATCH. The SHOW command shows us that we are placed at the end of the batch queue after two other entries. We wait until turn is up before our program is run. The output is written to the file DEV$USER:[JOEUSER]JOEUSER.LOG by default. Try the commands
$ show queue/all
to learn more about the possible queues.
$ fortran/debug/nooptimize prog
$ link/debug prog
$ run prog
When the command run prog is issued, a prompt like the following is displayed:
VAX DEBUG Version V6.0DS-004
%DEBUG-I-INITIAL, language is FORTRAN, module set to PROG
DBG >
Debugger commands issued at the DBG > prompt allow the user to interactively
walk through the code using the STEP and GO commands, examine variable contents using
the EXAMINE command, and change variable contents using the DEPOSIT command.
Use the debugger command SET MODE SCREEN for full-screen debugging and source display.
The VMS debugger is easy to use, and the 5 commands mentioned here will likely be sufficient to debug
most run-time errors. Help is available online from within the debugger; please use the debugger
help on these commands to learn more.
IMSL contains subroutines for tasks like eigensystem analysis, linear systems evaluations, and evaluation of differential equations. There are several sets of hardcopy documentation available, as well as an online help system accessible via the following commands:
$ tutorialThe following tutorial programs are available: EDT The "old" VAX editor, EDT; use and extension. IMSL Standard numerical subroutines; calling sequences, applications. TCP Wollongong TCP/IP package (TELNET, FTP); ignore "MAIL" section. TTYPE Touch typing course. VMS VMS commands, file creation, mail, etc.Type a program name, or QUIT to exit: IMSL
Note the other entries in the TUTORIAL
main menu. If you like a little structure
and this is all completely new to you, you might be interested in running the VMS
tutorial. The EDT tutorial isn't bad either, and the keypad layout which EDT uses
can be duplicated by all other editors supported on OHSTPY.
The Digital Extended Math Library is a collection of public and proprietary mathematical subroutines. Included in the library are VLIB, BLAS, and LAPACK, as well as routines for doing FFTs, convolution filters, and more. Use the command HELP DXML for more information, including linking instructions.
GNUPLOT is a shareware program that
can generate 2 and 2 dimensional plots from intrinic functions and from
datafiles. GNUPLOT
has an online help, as well as an extensive manual. For more information, use
the command TELL GNUPLOT.
PHYSICA is another shareware program that has graphics and
mathematical analysis capabilities. For more information, use
the command TELL TRIUMF.
$ laser tex_root:[documentation]local-latex-guide.ps smith2097
You will be asked by LASER if you want two-sided output; please answer yes. A copy of the local guide will then print out on the laser printer in Room 2097 Smith. Instructions in the local guide on how to process a DVI file are applicable for both TEX and LATEX sources.