Trailing-Edge
-
PDP-10 Archives
-
6.1_emacs_manuals_1er
-
manuals/tops20-users.manual
There are no other files named tops20-users.manual in the archive.
DECSYSTEM-20 User's Guide
Order No. AA-4179B-TM
May 1977
Contents Of This Manual
The DECSYSTEM-20 User's Guide describes the most frequently used
TOPS-20 commands and programs; it does not include every feature,
subcommand, or switch. Part I shows how to combine use of the
commands and programs to get a particular task done, while Part II
provides a more detailed description of their function, format and
operation along with hints, error messages and examples.
This document supersedes the document of the same name, Order No.
DEC-20-OUGAA-A-D, published April 1976 and its update, Order No.
DEC-20-OUGAA-A-DN1, published October 1976.
Operating System and Version: TOPS-20 V02
Software Version: FORTRAN V02
COBOL V10
BASIC-PLUS 2 V01
EDIT V02
ALGOL V02
To order additional copies of this document, contact The Software
Distribution Center, Digital Equipment Corporation, Northboro,
Massachusetts ????
Page 2
First Printing, March 1976
Revised, October 1976
Revised, May 1977
The information in this document is subject to change without notice
and should not be construed as a commitment by Digital Equipment
Corporation. Digital Equipment Corporation assumes no responsibility
for any errors that may appear in this manual.
The software described in this document is furnished under a license
and may be used or copied only in accordance with the terms of such
license.
Digital Equipment Corporation assumes no responsibility for the use or
reliability of its software on equipment that is not supplied by
DIGITAL.
Copyright (C) 1976, 1977 by Digital Equipment Corporation
The postage-prepaid READER'S COMMENTS form on the last page of this
document requests the user's critical evaluation to assist us in
preparing future documentation.
The following are trademarks of Digital Equipment Corporation:
DIGITAL DECSYSTEM-20 MASSBUS
DEC DECsystem-10 OMNIBUS
PDP DECtape OS/8
DECUS DIBOL PHA
UNIBUS EDUSYSTEM RSTS
COMPUTER LABS FLIP CHIP RSX
COMTEX FOCAL TYPESET-8
DDT INDAC TYPESET-10
DECCOMM LAB-8 TYPESET-11
Page 3
CONTENTS
Page
To The Reader
How To Use This Manual
Conventions
PART I USING THE DECSYSTEM-20
CHAPTER 1 COMPONENTS OF THE TOPS-20 OPERATING SYSTEM
1.1 COMMAND LANGUAGES
1.1.1 THE TOPS-20 Command Language
1.1.2 The Batch Command Language
1.2 SYSTEM PROGRAMS
CHAPTER 2 GIVING TOPS-20 COMMANDS
2.1 GETTING THE SYSTEM'S ATTENTION (CTRL/C)
2.2 THE TOPS-20 PROMPT (@) AND OTHER PROGRAM
PROMPTS
2.3 OBTAINING A LIST OF TOPS-20 COMMANDS
2.4 THE PARTS OF A TOPS-20 COMMAND
2.5 OBTAINING INFORMATION ABOUT THE PARTS OF A
COMMAND
2.6 TYPING COMMANDS
2.6.1 Recognition Input
2.6.2 Abbreviated Input
2.6.3 Combined Recognition and Abbreviated
Input
2.6.4 Subcommands
2.7 CORRECTING TYPING ERRORS
2.7.1 Erasing One Character (DELETE)
2.7.2 Reprinting a Line (CTRL/R)
2.7.3 Erasing An Entire Line (CTRL/U)
2.7.4 Erasing A Single Field Of A Command
(CTRL/W)
2.8 ADDING REMARKS AT THE END OF A COMMAND (!)
2.9 SPACES, TABS, LOWERCASE AND FORMFEED
CHAPTER 3 JOBS
3.1 STARTING COMMUNICATION WITH TOPS-20
3.2 CREATING A JOB - THE LOGIN COMMAND
3.2.1 User Names
3.2.2 Passwords
3.2.3 Account Descriptors
3.2.4 LOGIN.CMD And BATCH.CMD Files
3.2.5 COMAND.CMD Files
3.2.6 Autologout
3.3 ENDING A JOB
3.4 SUBMITTING A BATCH JOB
3.4.1 Creating A Control File
3.4.2 Submitting A Control File To The Batch
System (SUBMIT)
3.4.3 Checking A Batch Job
3.4.4 Examining The Output From A Batch Job
Page 4
CONTENTS (CONT.)
Page
3.5 GETTING INFORMATION ABOUT JOBS AND USERS
3.6 IF THE SYSTEM STOPS
CHAPTER 4 SYSTEM STORAGE DEVICES
4.1 DISK STORAGE
4.1.1 File Structures
4.1.2 Directories
4.1.2.1 CONNECT
4.1.2.2 ACCESS
4.1.3 File Protection
4.1.3.1 Directory Protection Numbers
4.1.3.2 File Protection Numbers
4.1.3.3 Checking Protection Numbers
4.1.3.4 Printing A File Protection Number
4.1.3.5 Changing A File Protection Number
4.1.4 Groups
4.1.5 Accounts
4.1.6 Deleted Disk Files
4.1.7 Regulating Disk File Storage
4.1.8 Temporary Files
4.2 MAGNETIC TAPE STORAGE
4.2.1 Assigning A Tape Drive To Your Job
4.2.2 Setting Tape Parameters
4.2.3 Positioning The Tape
4.2.4 Using The DUMPER Program
CHAPTER 5 FILE SPECIFICATIONS
5.1 COMPLETE FORM OF A FILE SPECIFICATION
5.2 DEVICE NAMES - DEV:
5.3 DIRECTORY NAMES - <DIR>
5.3.1 Project Programmer Numbers - [Proj,Prog]
5.4 FILE NAMES - NAME
5.5 FILE TYPES - .TYP
5.6 GENERATION NUMBERS - .GEN
5.7 FILE ATTRIBUTES - ;A, ;P, ;T
5.8 SPECIFYING GROUPS OF FILES USING * AND %
5.9 SPECIFYING SPECIAL CHARACTERS - CTRL/V
5.10 TYPING FILE SPECIFICATIONS
5.11 SEPARATING FILE SPECIFICATIONS WITH COMMAS
5.12 LOGICAL NAMES
5.12.1 Defining, Printing And Removing A
Logical Name
5.12.2 Using A Logical Name
5.12.2.1 The Logical Name DSK:
5.12.2.2 Library Directories
5.12.2.3 The Logical Name SYS:
CHAPTER 6 CREATING AND EDITING FILES
6.1 CREATING A FILE
6.2 EDITING A FILE
6.3 EDITING A FILE IN ANOTHER DIRECTORY
6.4 RECALLING ARGUMENTS TO CREATE AND EDIT
COMMANDS
Page 5
CONTENTS (CONT.)
Page
CHAPTER 7 RUNNING SYSTEM PROGRAMS AND USER PROGRAMS
7.1 RUNNING SYSTEM PROGRAMS
7.2 GIVING COMMANDS TO SYSTEM PROGRAMS
7.3 GETTING INFORMATION ABOUT SYSTEM PROGRAMS
7.4 THE SWITCH.INI OPTION FILE
7.5 RUNNING USER PROGRAMS
7.6 CONTROLLING PROGRAMS AND COMMANDS
7.6.1 Typing CTRL/C To Halt Execution
7.6.2 Typing CTRL/O To Stop Output To
Your Terminal
7.6.3 Typing CTRL/T To Print The Run Status
7.7 RUNNING PROGRAMS WITHOUT DESTROYING MEMORY
CHAPTER 8 PRODUCING AND RUNNING YOUR OWN PROGRAMS
8.1 PRODUCING A SIMPLE PROGRAM
8.1.1 Writing The Source Program
8.1.2 Entering The Program Into A File
8.1.3 Executing The Program
8.1.4 Debugging The Program
8.1.5 Saving The Program For Future Use
8.2 PREPARING A MULTI-MODULE PROGRAM
8.2.1 Writing The Program Modules
8.2.2 Entering The Modules Into Files
8.2.3 Executing The Program
8.2.4 Producing A Cross-Reference Listing
8.2.5 Using Subroutine Libraries
8.2.5.1 Entering The Subroutines Into Files
8.2.5.2 Compiling The Subroutines
8.2.5.3 Creating The Library File
8.2.5.4 Using The Library File
8.2.5.5 Changing A Subroutine In The Library
8.2.6 Saving The Program For Future Use
8.2.7 Saving Arguments In Indirect Files
8.2.8 Comparing Changes In Files
8.3 THE LOAD-CLASS COMMANDS (COMPILE, LOAD,
EXECUTE, DEBUG)
8.3.1 Object (Relocatable) And Executable
Programs
8.3.1.1 Using Relocatable Object Programs
8.3.1.2 Saving Executable Programs
8.3.2 Selecting A File And Recognizing
The Programming Language
8.3.2.1 Using Non-standard File Types
8.3.2.2 Using The File Type .REL
8.3.2.3 Examples
8.3.3 Re-producing Only Out-of-date Object
Programs
8.3.4 Recalling Arguments To LOAD-class Commands
8.3.5 Taking Arguments From An Indirect File
8.3.6 Appending Files To Produce One Source
8.3.7 Passing Switches To The LINK Program
8.3.8 Specifying Special Actions With Switches
CHAPTER 9 CONTROLLING YOUR TERMINAL
9.1 SETTING THE TERMINAL SPEED
9.2 DECLARING THE TERMINAL TYPE
9.3 CONTROLLING TERMINAL OUTPUT
9.3.1 Starting And Stopping Terminal Output
Page 6
CONTENTS (CONT.)
Page
9.3.2 Printing Formfeeds
9.3.3 Simulating Formfeeds
9.3.4 Setting The Page Length
9.3.5 Simulating Tab Stops
9.3.6 Setting The Line Width
9.4 USING UPPERCASE AND LOWERCASE LETTERS
9.4.1 Raising Lowercase Letters In Input
9.4.2 Printing Lowercase Letters In Output
9.4.3 Testing For Lowercase Letters
9.5 TALKING TO OTHER USERS
PART II COMMAND AND PROGRAM DESCRIPTIONS
ACCESS Grants "owner" and "group" privileges to a
specified directory.
ALGOL How to prepare and run an ALGOL program
APPEND Adds a source file(s) to a destination file
ASSIGN Allocates an input/output device to your job
BACKSPACE Rewinds a magnetic tape
BASIC How to prepare and run a BASIC program
BATCH How to prepare and run a Batch job
BREAK Breaks all links to or from your terminal
CLOSE Closes all files which are currently open
COBDDT Debugs COBOL programs
COBOL How to prepare and run a COBOL program
COMPILE Translates a source program
CONNECT Connects your job to a specified directory
CONTINUE Resumes execution of a stopped program
COPY Copies a source file to a destination
CREATE Runs EDIT to create a new program
CREF Produces a cross-reference listing of a
program
DAYTIME Prints the day, date, and time
DDT (command) Transfers control to a debugger
DDT Debugs programs
DEASSIGN Deallocates an input/output device
DEBUG Prepares your program for debugging
DEFINE Defines logical names
DELETE Identifies files for eventual deletion
DIRECTORY Prints information about specified files
DUMPER Saves files on magnetic tape
EDIT (command) Runs EDIT to change or create
a file
EDIT Changes the contents of a file
EOF Writes an end-of-file mark on magnetic tape
EXECUTE Compiles, loads, and starts your program
EXPUNGE Erases previously deleted files
FDIRECTORY Prints all the information about a file(s)
FILCOM Compares two files
FORDDT Debugs FORTRAN programs
FORTRAN How to prepare and run a FORTRAN program
GET Places an executable program in memory
HELP Prints information about programs
INFORMATION Prints system and job information
LOAD Compiles and loads a program into memory
LOGIN Declares that you want to use the system
LOGOUT Ends your job
MACRO How to prepare and run a MACRO program
Page 7
CONTENTS (CONT.)
Page
MAIL Sends a message to another user
MAKLIB Creates and edits subroutine libraries
MERGE Weaves an executable program into memory
PLEASE Starts communication with the operator
POP Returns you to the next higher process
PRINT Prints a file(s) on the line printer
PUSH Creates an inferior process
RDMAIL Prints the contents of your mail
RENAME Changes the name of a file
RESET Clears your job without logging off the
system
REWIND Rewinds a magnetic tape
RUN Runs a program from your directory
SAVE Saves the program in memory in a disk file
SDISMOUNT Informs the system that a file structure
is no longer needed
SET Sets various job parameters
SKIP Advances a magnetic tape over files and records
SMOUNT Requests that a file structure be mounted
SORT Orders records within a file
START Starts the program in memory
SUBMIT Places your job in the Batch input queue
SYSTAT Prints system status information
TALK Links your terminal to another terminal
TDIRECTORY Prints time-ordered information about a file(s)
TERMINAL Sets terminbl parameters
TMOUNT Requests a tape drive for your job
TRANSL Translates directory names to proj-prog numbers
nType prints a file on your terminal
UNDELETE Restores a previously deleted disk file
UNLOAD Rewinds a magnetic tape onto the source reel
VDIRECTORY Prints frequently-used file information
APPENDIX A STANDARD FILE TYPES
FIGURES
FIGURE 2-1 The Fields Of A Command
4-1 File-Sharing Group
4-2 Library Group
4-3 Teacher-Student Group
8-1 Source, Object, and Executable Programs
TABLES
TABLE 3-1 Illegal Commands In Batch Jobs
4-1 Directory Protection Digits
4-2 File Protection Digits
5-1 Device Names
5-2 Special System Programs And Commands
5-3 Symbolic Generation Numbers
7-1 Commands And Programs That Check SWITCH.INI
7-2 CTRL/T Status Messages
Page 8
CONTENTS (CONT.)
Page
7-3 Unexpected Process Termination Messages
8-1 LOAD-class Command Standard File
Specifications
II-1 BASIC Commands
II-2 Batch Commands
II-3 COBDDT Commands
II-4 COMPILE Command Switches
II-5 CREATE Command Switches
II-6 DEBUG Command Switches
II-7 DUMPER Commands
II-8 File Descriptor Block (FDB) Entries
II-9 EDIT Command Switches
II-10 EDIT Commands
II-11 EDIT Parameters
II-12 EXECUTE Command Switches
II-13 FILCOM Switches
II-14 FORDDT Commands
II-15 INFORMATION Parameters
II-16 LOAD Command Switches
II-17 MAKLIB Switches
II-18 PRINT Command Switches
II-19 RDMAIL Switches
II-20 SET Command Parameters
II-21 SORT Switches
II-22 SUBMIT Command Switches
II-23 Terminal Parameters
A-1 Standard File Types
Page 9
To The Reader
The DECSYSTEM-20 User's Guide is written for the user who knows the
information in Getting Started With DECSYSTEM-20 but who needs to know
more detail about the system to complete a job. Before reading this
manual, you should know how to do all of the following:
1. Turn on your terminal (in some cases you should also know how
to connect to the DECSYSTEM-20 via your telephone).
2. Log in to the system.
3. Use EDIT to enter information into a file.
4. Run a system program, or give an EXECUTE command to run your
own program.
5. Use a few TOPS-20 commands such as DIRECTORY, SYSTAT and
PRINT.
If you do not know these procedures, using this manual will be easier
after you read Getting Started With DECSYSTEM-20. In addition, if you
plan to create data or program files, it is recommended that you read
the EDIT User's Guide before using this manual. The EDIT User's Guide
is written for both the beginner and experienced DECSYSTEM-20 user.
It explains how to name, create, change and save files using EDIT.
The manual assumes that you have a job to get done: either developing
your own programs or using an application program such as RUNOFF or
SORT. You do not have to understand assembly language programming to
use this manual.
How To Use This Manual
This manual is not intended to be read from cover to cover. However,
you should read the nine chapters in Part I that introduce many of the
commands and programs you can use to get your work done. Then, after
learning about a command or program, refer to the more complete
description in Part II.
If there is a specific function you want the system to perform, find
the method by referring to the Table of Contents, which includes a
1-line description of commands and programs.
Page 10
Conventions Used In The DECSYSTEM-20 User's Guide
Symbol Represents
_ (Underline) Anything you type or are expected to type
on your terminal. Any printing the system does is not
underlined.
Indicates when you should press the RETURN key.
\ (Backslash) Indicates when you should press the RUBOUT
or DELETE key.
dev: Any physical or logical device or structure name. You
must include the colon when a device, structure or
logical name is used as part of a file specification.
Examples:
LPT: (line printer)
MTA3: (magnetic tape unit number 3)
DSK: (current connected structure)
PS: (Public Structure)
<dir> A directory name enclosed in either angle < > or
square [ ] brackets. Examples:
[JONES]
<SIDLEY>
<HOLLICK-KENYON>
[proj,prog] A project-programmer number. Examples:
[2,235]
[1,236]
[4,551]
account An account descriptor that is either an account string
or an account number. Examples:
10300
OVERHEAD
DIRECT-LABOR
prot A 6-digit (octal) file or directory protection number.
Examples:
777700
777752
filespec A single file specification consisting of a device
name, file structure name or logical name (optional,
if the current connected structure is implied); a
directory name enclosed in brackets (optional, if the
current connected directory is implied); a file name,
type (optional); and a generation number (optional).
Examples:
MTA2:MYFILE
<BOURKE>DESERT.LOC.8
TRIAL.RUN
<BAKER>*.FOR
ADMIN:<LIMON>STOCK.PRI.
Page 11
DSK:<SCHIED>TEST.FOR
ACCT:<HURLEY>HIST.CBL.2;P777752;A123;T
Conventions Used In The DECSYSTEM-20 User's Guide (Continued)
Symbol Represents
filespecs One or more file specifications separated by commas.
Spaces and tabs can be placed after commas. Examples:
TRIAL.RUN, <BOURKE>DESERT.LOC.8
MODULE.NUM.3, PULSE.LEN, DIPOLE.MNT, LIFT.FRC
name.typ.gen Any file name, type, and generation number. Example:
NATION.CAP.7
POPUL.DEN.16
destination A file to which data is being transferred.
file
output file A file that is created as a result of a command.
file structure One or more disk packs logically grouped and
referenced under one name. Examples:
File structure ADMIN: could be comprised of two
disk packs containing administrative files.
JFN A valid (octal) job file number. Example:
23
CHAPTER 1
COMPONENTS OF THE TOPS-20 OPERATING SYSTEM
A timesharing operating system allows many people to use a computer at
the same time. As a timesharing user, you can create and run your own
programs. Alternatively, you can share other users' programs or use
standard programs provided with the system. Although you can benefit
from sharing programs and data, the system also allows you to keep
information confidential.
The Timesharing Operating System, TOPS-20, is a program that makes it
possible to timeshare the DECSYSTEM-20 computer. (An operating system
can also be called a monitor or supervisor.) The TOPS-20 Operating
System performs varied services for users by responding to the
commands and programs they use.
1.1 COMMAND LANGUAGES
The following paragraphs briefly introduce you to the TOPS-20 command
language and the Batch command language.
1.1.1 The TOPS-20 Command Language
As a timesharing user, your work is accomplished by giving TOPS-20
commands from your terminal. With these commands, you can manipulate
files, retrieve system information, run programs, and perform many
other operations.
1.1.2 The Batch Command Language
If you frequently give a fixed set of commands, you can store them in
a control file instead of repeatedly typing the commands on your
terminal. You can submit a control file to the Batch system via a
punched card deck or your terminal. Submitting this file creates a
job and the Batch system executes the commands stored in the control
file. After executing the last command in the control file, the Batch
system ends the job. A control file can contain almost any
combination of TOPS-20 commands, program commands, and Batch commands.
COMPONENTS OF THE TOPS-20 OPERATING SYSTEM Page 1-2
1.2 SYSTEM PROGRAMS
You can run any one or more than one of a collection of programs
provided with the DECSYSTEM-20. These system programs help you get
your work done easily and quickly. Some of the more commonly used
system programs are the programming languages (ALGOL, BASIC, COBOL,
and FORTRAN), the EDIT program, and the SORT program.
You can give the command:
@DIRECTORY (OF FILES) SYS:
This command prints the names of the available system programs on your
terminal. You can also give the HELP command to print information
about selected programs.
CHAPTER 2
GIVING TOPS-20 COMMANDS
This chapter describes:
1. Getting the system's attention (CTRL/C)
2. The TOPS-20 prompt (@) and other program prompts
3. Obtaining a list of TOPS-20 commands
4. The parts of a TOPS-20 command
5. Obtaining information about the parts of a command
6. Typing commands
7. Correcting typing errors
8. Adding remarks
9. Spaces, tabs, lowercase, and formfeed.
2.1 GETTING THE SYSTEM'S ATTENTION (CTRL/C)
Before you can log in, you must type a CTRL/C to get the attention of
the TOPS-20 Operating System. To do this, press the key labeled CTRL
(CTRL is an abbreviation for Control) and, at the same time, type a C.
Typing a C in this way is referred to as typing a CTRL/C. In fact,
you can type any control character by pressing the CTRL key and, at
the same time, typing the appropriate character. There are many
control characters that you may use frequently. (Refer to the chart
on the back of the Part I divider for a brief description of commonly
used control characters.) After you type the CTRL/C, the system
prints a greeting message followed by an @ sign on the next line. The
greeting message varies from system to system, but it is similar to
the sample below.
CTRL/C
2102 Development System, TOPS-20 Monitor 2(233)
@
2102 Development System is the name of the particular TOPS-20
installation that you are using; it is usually replaced by your
system's name. TOPS-20 Monitor 2(233) is the version of the TOPS-20
Operating System that is in use; this number changes as the system
software develops.
GIVING TOPS-20 COMMANDS Page 2-2
If you type anything other than a CTRL/C, the system warns you by
ringing the terminal's bell and ignores your input.
If you have typed a CTRL/C and the system is not available for use, it
prints one of the following messages or it does not respond at all.
?LOGGING IN ON LOCAL TERMINALS IS CURRENTLY DISALLOWED
?LOGGING IN ON REMOTE TERMINALS IS CURRENTLY DISALLOWED
FULL
Contact your system manager for the times when the system will be
available. When the system resumes operation, it prints the following
messages on your terminal:
System restarting, wait...
and after a few moments:
[FROM OPERATOR: SYSTEM IN OPERATION]
If you want to see the information in the greeting message again, give
the INFORMATION (ABOUT) VERSION command.
2.2 THE TOPS-20 PROMPT (@) AND OTHER PROGRAM PROMPTS
On the line immediately below the greeting message, the system prints
an @ sign. This is the TOPS-20 prompt; after it is printed, you can
give a TOPS-20 command.
Once you give a command, the system either carries out the command or,
if it encounters an error, rejects the command. In the case of an
error, you can reissue the command correctly. When the system
finishes processing the command, it prints the @ prompt; at this time
you can give another command. If the system does not print the @,
type two CTRL/Cs and try again.
You can give different classes of commands at different times,
depending on whether you are at TOPS-20 command level or at command
level for the program you are running. The system prints a prompt to
help you remember at which command level you are. For program command
level, a prompt is an asterisk or some other distinctive character, or
the program name followed by a right-angle bracket. Whenever the
system prints the @ prompt, you can type only TOPS-20 commands and
program names; whenever the system prints another prompt, you can
type only commands that that program accepts. For example, if you
enter the program command DUMPER and the system prints:
DUMPER>
you are at DUMPER command level and can type only the valid DUMPER
commands listed in Part II. Another program command is SORT. If you
type SORT and the system prints an *, you are at SORT command level
and can type only SORT commands. Many programs use the asterisk as
their prompt, so always remember which program you are using. (If you
forget, type a CTRL/C, give the TOPS-20 command INFORMATION (ABOUT)
VERSION, read the program name from the second line, and then give the
CONTINUE command.)
If you are at command level in a particular program, you can return to
TOPS-20 command level by typing two CTRL/Cs; the system prints the
TOPS-20 prompt, @. If you are using either BASIC or EDIT, you must
give either the MONITOR command (for BASIC) or the E command (for
EDIT) to return to TOPS-20 command level.
GIVING TOPS-20 COMMANDS Page 2-3
2.3 OBTAINING A LIST OF TOPS-20 COMMANDS
After the system prints an @, you can type a question mark to print a
list of the TOPS-20 commands. If you want to stop the printout of
these commands, type a CTRL/O. CTRL/O suppresses the printed output
but the system program continues to process the command. If you type
a second CTRL/O, the output on your terminal will continue at the
point where the process is currently executing. Therefore, it is
possible to peruse long printouts by typing CTRL/Os to stop and start
it again. When the process is complete, the @ sign appears indicating
you are at TOPS-20 command level and can enter another command. The
example below shows the process of typing the ? then stopping the
printout by typing a CTRL/O. Anything you would type is underlined.
HINT
Refer to the PAGE argument of the
TERMINAL command if you have a display
terminal and want to control information
from moving off the screen.
CTRL/C
2102 Development System, TOPS-20 Monitor 2(233)
@?
Commands are:
ACCESS
ADVISE
APPEND
ASSIGN
ATTACH
BACKSPACE
BREAK
CLOSE
COMPILE
CONNECT
CONTINUE
COPY
CREATE
CREF
CSAVE
DAYTIME CTRL/O
DDT
DEASSIG ^O...
@
One of the commands is the DAYTIME command. This command prints the
date and time on your terminal; it is one of the few commands that do
not require you to be logged in to the system. To give the DAYTIME
command, type DAYTIME and press the key labeled RETURN. (This key may
be labeled CR or CAR RET and is located at the right side of the
keyboard.) The system prints the day and time in a message similar to
the one below:
@DAYTIME
Friday, January 16, 1976 10:17:11
@
In the above example and in the rest of the manual, anything you type
(or are supposed to type) is underlined. If, in typing the command,
you mistype DAYTIME, you can erase one character at a time by pressing
the DELETE key. (The DELETE key may be labeled RUBOUT or DEL.) For
every character you delete, the system prints the deleted character
followed by a backslash; refer to the example below. (If you give
GIVING TOPS-20 COMMANDS Page 2-4
the TERMINAL command to set display mode for a VT05, VT50 or VT52
terminal, the system removes the deleted character from the screen
rather than printing the deleted character followed by a backslash.)
@DATT\YTIME
Friday, January 16, 1976 10:17:44
@
Type the three letters DAT. Press the DELETE key to delete the T; the
system prints a T followed by a backslash. Type the correct
character, Y, and the letters TIME; then press the RETURN key.
You can use the following commands without being logged in to the
system:
ATTACH, BREAK, DAYTIME, INFORMATION, LOGIN, LOGOUT, SET, SYSTAT,
TERMINAL, and UNATTACH.
If you try to give any other command before logging in, the system
responds by printing the message ?LOGIN please.
The next section describes the parts of a TOPS-20 command, using the
LOGIN command as an example.
2.4 THE PARTS OF A TOPS-20 COMMAND
Each TOPS-20 command contains a combination of the following parts:
1. A command name
2. Guide words
3. Arguments
4. Switches
5. Subcommands
6. A command terminator
A command name identifies the command and describes its function.
Guide words describe the kind of argument that you should type. The
argument is the information acted upon by the command; a file name,
for example, is a common argument. Switches and subcommands modify or
specialize the function of the command in which they appear. The
command terminator is a carriage return/linefeed sequence (generated
by pressing the RETURN, CR, or CAR RET key) or a linefeed (generated
by pressing the LF, or LINEFEED, key).
Terminate a 1-line command by pressing the RETURN key. For example,
the following DIRECTORY command is a 1-line command.
@DIRECTORY (OF FILES) TEST.FOR
<NESTLE>
TEST.FOR.3
@
To include subcommand(s), terminate the command line by typing a comma
and pressing the RETURN key. The system prints @@ to indicate you can
type subcommands. Terminate each subcommand by pressing the RETURN
key. After typing the last subcommand, press the RETURN key; the
GIVING TOPS-20 COMMANDS Page 2-5
system responds with the subcommand prompt @@; press the RETURN key
again. The following DIRECTORY command lists all your deleted (but
not erased) files.
@DIRECTORY (OF FILES) ,
@@DELETED (FILES ONLY)
@@
<NESTLE>
TEST.FOR.2
.QOR.1
.REL.3
TOTAL OF 3 FILES
@
Each part of a TOPS-20 command or subcommand (subcommands contain
names, guide words, and arguments of their own) is referred to as a
field and is separated from each adjacent field by a space. For
example, the next diagram shows the fields of the LOGIN command.
@LOGIN (USER) user name (PASSWORD) password (ACCOUNT) account
! ! ! ! ! ! ! !
terminator
! ! ! ! ! ! argument
! ! ! ! ! guide word
! ! ! ! argument
! ! ! guide word
! ! argument
! guide word
command name
Figure 2-1 The Fields Of A Command
Type the command name, press the ESC key. Type an argument after the
system prints a guide word. The latter procedure is repeated until
you reach the end of the command and press the RETURN key. If you
make a mistake in typing a command, you can erase using the DELETE
key, CTRL/W and CTRL/U. Refer to Section 2.6 for more information on
typing commands.
2.5 OBTAINING INFORMATION ABOUT THE PARTS OF A COMMAND
You already know that typing a question mark after an @ prints a list
of the TOPS-20 commands. When you are unsure of a command or
subcommand argument, you can also type a question mark to print some
helpful information about what you should type. Use the TERMINAL
command as an example. Type TERM and press the ESC key; the system
prints INAL (MODE IS). Now type a question mark; the system prints a
list of all the arguments you can type, then reprints the command.
@TERMINAL (MODE IS) ? ONE OF THE FOLLOWING:
33
35
37
EXECUPORT
FLAG
GIVING TOPS-20 COMMANDS Page 2-6
FORMFEED
FULLDUPLEX
HALFDUPLEX
HELP
IMMEDIATE
INDICATE
LA30
LA36
LENGTH
LINE-HALFDUPLEX
LOWERCASE
NO
PAGE
RAISE
SPEED
TABS
TERMINET
TI
TYPE
VT05
VT50
VT52
WIDTH
@TERMINAL (MODE IS)
Give the WIDTH argument. Type WID and press the ESC key; the system
prints TH (OF LINE IS).
@TERMINAL (MODE IS) WIDTH (OF LINE IS)
Type another question mark to find out what argument the system
expects you to give. The system prints NUMBER and reprints the
command.
@TERMINAL (MODE IS) WIDTH (OF LINE IS) ? NUMBER
@TERMINAL (MODE IS) WIDTH (OF LINE IS)
Choose a number (the example uses 70); type it, and press the RETURN
key.
@TERMINAL (MODE IS) WIDTH (OF LINE IS) 70
@
If the system prints CONFIRM WITH CARRIAGE RETURN, you are at the end
of the command; press the RETURN key to confirm the command and have
the system perform the operation you requested.
@RESET ? CONFIRM WITH CARRIAGE RETURN
@RESET
@
2.6 TYPING COMMANDS
You can type TOPS-20 commands by using recognition input, abbreviated
input or full input.
To use recognition input, type a portion of the command and press the
ESC key. The system completes as much of the command as it can and/or
rings the terminal's bell asking you to type more. Continue typing,
pressing the ESC key and letting the system complete the command.
GIVING TOPS-20 COMMANDS Page 2-7
To use abbreviated input, type just the unique portion of the command
name, arguments, and subcommands separating the fields with a space.
File specifications cannot be abbreviated. Note that as the TOPS-20
system is developed, the unique portion may change. For this reason,
abbreviated input is not recommended for Batch control files.
When using full input, type complete command names, arguments and
subcommands, using a space to separate fields. Commands in Batch
control files should use full input.
The LOGIN command, which identifies you to the system, is used in the
following examples of recognition input and abbreviated input.
2.6.1 Recognition Input
When you give a command using recognition input, type a portion of the
command, then press the ESC key. The system responds by printing a
guide word, by printing the rest of an argument, by ringing the
terminal's bell asking you to type more, or by printing a ? showing
that you made an error. Continue typing and pressing the ESC key
until the command is complete.
The LOGIN command can be given using recognition input as shown in the
following example. In the notation used below, you type the
underlined portions of the command. At the point where the
underlining stops, press the ESC key. This notation is used to show
recognition input throughout the rest of the manual.
@LOGIN (USER) STEWART (PASSWORD) (ACCOUNT) 14569
To give the command, type LOG and press the ESC key; the system
finishes printing the LOGIN command name, i.e., it prints IN, then it
prints the guide word (USER). Type your user name (here it is
STEWART) and press the ESC key; the system prints (PASSWORD). Type
your password (it is not printed) and press the ESC key; the system
prints (ACCOUNT). Type your account (here it is 14569) and press the
RETURN key.
Should you try to use recognition in a place where its use is
ambiguous, the system rings your terminal's bell. Try typing more
information, or type a question mark to discover what the system
expects you to type. (You cannot use the question mark when typing a
file specification.) Try recognition by repeating the following
example. Type INFO and press the ESC key; the system prints RMATION
(ABOUT). Type a T, then press the ESC key. The system rings the
terminal's bell, so type a ? to find out what to type. The system
prints TAPE-PARAMETERS and TERMINAL-MODE: you are able to conclude
that the system could not complete the argument because the letter T
is ambiguous. Type an A and press the ESC key; this time the system
prints PE-PARAMETERS. Press the RETURN key to complete the command.
@INFORMATION (ABOUT) T? ONE OF THE FOLLOWING:
TAPE-PARAMETERS
TERMINAL-MODE
@INFORMATION (ABOUT) TAPE-PARAMETERS
SET TAPE DENSITY 1600
SET TAPE PARITY ODD
SET TAPE FORMAT CORE-DUMP
SET TAPE RECORD-LENGTH 512
@
GIVING TOPS-20 COMMANDS Page 2-8
You can use recognition in typing arguments, subcommands, and file
specifications. When typing file specifications, you can use an
additional character, CTRL/F, which recognizes only the current file
name, type, or generation number. Refer to Section 5.10 for the
explanation of file specification recognition.
Should you try to use recognition where it is not allowed, the system
prints a question mark and cancels the command.
ESC
@LOGIN (USER) ?
@
Should you try to use recognition where it is not appropriate (such as
at the end of a command or when a password is required), the system
prints a ? or rings the terminal's bell. Press the RETURN key.
ESC
@RESET ?
@
NOTE
You cannot use recognition on the
arguments to the PRINT command, the
SUBMIT command, and commands to any
program that has an asterisk prompt.
You must type these command arguments
without using recognition. If you try
to use recognition, the ESC key is
entered into the command line as a $
sign.
2.6.2 Abbreviated Input
When you give a command using abbreviated input, type only enough of
the command to distinguish it from any other command. For example,
there are several TOPS-20 commands that start with the letter A:
ACCESS, ADVISE, APPEND, ASSIGN, and ATTACH. To identify any one of
these commands, type only two letters. For example, AP identifies the
APPEND command; AT identifies the ATTACH command.
This same principle applies to arguments and subcommands. In the
INFORMATION command, there are two arguments beginning with T:
TAPE-PARAMETERS and TERMINAL-MODE. To get information about your
default tape parameters, type just the abbreviation TA.
@INFORMATION (ABOUT) T? ONE OF THE FOLLOWING:
TAPE-PARAMETERS
TERMINAL-MODE
@INFORMATION (ABOUT) TA
SET TAPE DENSITY 1600
SET TAPE PARITY ODD
SET TAPE FORMAT CORE-DUMP
SET TAPE RECORD-LENGTH 512
@
GIVING TOPS-20 COMMANDS Page 2-9
Three subcommands under the DIRECTORY command begin with a D: DATES,
DELETED, and DOUBLESPACE. To print the write dates of all your COBOL
source files, use the argument *.CBL for a file specification, then
type just the abbreviation DA.
@DIRECTORY (OF FILES) *.CBL,
@@D? One of the following:
DATES
DELETED
DOUBLESPACE
@@DA
@@
<MCKIE>
Write
COMPUT.CBL.1 25-Jan-76
NUMBER.CBL.2 30-Jan-76
Total of 2 files
@
The same LOGIN command as stated in the previous example can be given
with the abbreviated command:
@LOG STEWART 14569
To give the command, type LOG and leave a space; type your user name
(here it is STEWART) and leave a space; type your password (it is not
printed) and leave a space; type your account (here it is 14569) and
then press the RETURN key.
For most commands, the first three letters are enough to distinguish
one command from another, but the commands shown in the table below
have special abbreviations.
Table 2-1
Accepted Command Abbreviations
Command Accepted Abbreviation
CONTINUE CON
CONNECT CONN
EXECUTE EX
EXPUNGE EXP
LOGIN LOG
LOGOUT LOGO
Abbreviated input is the fastest possible way to give any TOPS-20
command; however, it does require you to know the exact format of the
command.
CAUTION
As the system develops, new commands
will be added and existing abbreviations
may change. If you want to be sure a
Batch control file will work in the
future, always use the full command;
never abbreviate.
GIVING TOPS-20 COMMANDS Page 2-10
2.6.3 Combined Recognition And Abbreviated Input
You can mix the two methods of typing commands to suit your needs.
Generally you will incorporate abbreviated input for the parts of the
command you know, and use recognition input for the parts of the
command about which you are unsure. The LOGIN command can be given
using the combination of input methods shown in the example below.
@LOG STEWART (ACCOUNT) 14569
To give this command, type LOG and leave a space; type your user name
(here it is STEWART) and leave a space; type your password and press
the ESC key. After the system prints (ACCOUNT), type 14569 and press
the RETURN key.
2.6.4 Subcommands
Some TOPS-20 commands, e.g., DIRECTORY and DELETE, have subcommands
that modify the operation of the main command. Subcommands give the
main commands more flexibility and eliminate the need for different
commands that perform very similar functions.
To give a subcommand with a command, first give the command, but
instead of terminating it by pressing the RETURN key, type a comma,
then, press the RETURN key. The system prints two @ signs on your
terminal. Use recognition or abbreviated input on the subcommands, or
type a ? to get a list of the valid subcommands. Continue giving as
many subcommands as you desire. After you have typed the last
subcommand, press the RETURN key twice: once to terminate the
subcommand and a second time to terminate the command.
The example below shows the DIRECTORY command and some of its
subcommands. The DIRECTORY command lists the names of your files.
@DIRECTORY (OF FILES) ,
@@? ONE OF THE FOLLOWING:
ACCOUNT
ALPHABETICALLY
CHECKSUM
CHRONOLOGICAL
CRAM
DATES
DELETED
DOUBLESPACE
EVERYTHING
FIND
GENERATION-RETENTION-COUNT
LENGTH
LPT
NO
OUTPUT
PROTECTION
REVERSE
SEPARATE
SIZE
TIMES
USER
@@DATES (OF) ? ONE OF THE FOLLOWING:
CREATION
READ
WRITE
GIVING TOPS-20 COMMANDS Page 2-11
@@DATES (OF) CREATION
@@
<SAMBERG>
CREATION
HFTELL.FOR.1 16-Jan-76
MAST.MST.1 9-Jul-75
MF.EXE.2 9-Jul-75
.MAC.1 9-Jul-75
.REL.2 9-Jul-75
MONSYM.MAC.1 31-Oct-75
OQUE.MAC.1 6-Aug-75
SPRINT.EXE.1 6-Nov-75
Total of 8 Files
@
To give the command, type DIR and press the ESC key; the system
prints ECTORY (OF FILES). Type a comma and press the RETURN key; the
system prints two @ signs. Type a question mark to list the available
subcommands and select DATES. Type DA and press the ESC key; the
system prints TES (OF). Type a second question mark to find out what
to type for this field. The options are: CREATION, READ and WRITE.
Type a C and press the ESC key; the system prints REATION. Press the
RETURN key once to end the DATES subcommand and a second time to end
the entire command. The system prints a list of all your file
specifications followed by the dates they were created.
2.7 CORRECTING TYPING ERRORS
There are four characters that help you to correct typing mistakes.
They are: DELETE, CTRL/R, CTRL/U, and CTRL/W.
2.7.1 Erasing One Character (DELETE)
Whenever you want to erase one character, press the DELETE key. (The
DELETE key may also be labeled RUBOUT or DEL.) Each time you press the
DELETE key, the system erases the last remaining character you typed
and prints the erased character followed by a backslash (\).
The DELETE key erases the character immediately preceding the current
typing position. Pressing the DELETE key again deletes the character
before that, and so forth. Most TOPS-20 commands allow you to delete
past the current field, which means you can delete past a space, tab,
or punctuation. If you are typing a command that does not allow you
to delete past fields, the system rings your terminal's bell. The
following example illustrates the use of the DELETE key in typing the
TERMINAL command.
@TERMINAL (MODE IS) PIGEE\G\I\P\PAGE (MODE)
GIVING TOPS-20 COMMANDS Page 2-12
To give the above command, type TE and press the ESC key; the system
prints RMINAL (MODE IS). Type PIGE, then press the DELETE key four
times; the system prints E\G\I\P\. Type P and press the ESC key;
the system completes the argument.
NOTE
If you have a display terminal (a VT05,
VT50, or VT52) and give the TERMINAL
command to declare that you have such a
terminal, the system removes deleted
characters from the screen instead of
printing each character followed by a
backslash.
2.7.2 Reprinting A Line (CTRL/R)
When you have done a lot of editing within a line, you may want to
check your work by typing a CTRL/R to reprint the current line.
CTRL/R
@TERMINAL (MODE IS) PIGEE\G\I\P\PAGE (MODE)
@TERMINAL (MODE IS) PAGE (MODE)
To give the above command, type TER and press the ESC key; the system
prints MINAL (MODE IS). Type PIGE and delete the four characters,
then type a P and press the ESC key. Type a CTRL/R. The system
reprints the current command on the next line. If you have a display
terminal, the system overprints the current line instead of printing
the current command on the next line.
Many programs do not reprint the prompt character if you type a
CTRL/R. You are still at command level in that program, but the
prompt is not printed because the system has reprinted only the
characters you typed. Type a CTRL/R while giving a command to the
FILCOM program; the asterisk prompt is not reprinted.
@FILCOM
CTRL/R
*TEST.FIL
TEST.FIL
2.7.3 Erasing An Entire Line (CTRL/U)
When you want to cancel a command, type a CTRL/U, which deletes the
unwanted line and prevents the system from acting on it. The system
prints three Xs before printing the prompt character. If you have a
display terminal, the system removes the line from your screen instead
of printing the three Xs.
CTRL/U
@TERMINAL (MODE IS) LENGTHXXX
@
GIVING TOPS-20 COMMANDS Page 2-13
To give the above command, type TER and press the ESC key; the system
prints MINAL (MODE IS). Type LENGTH, then type a CTRL/U. The system
prints three Xs and the prompt character.
2.7.4 Erasing A Single Field Of A Command (CTRL/W)
If you want to erase an entire field of a command, type a CTRL/W. The
system prints an underline (_) and you are allowed to continue typing
the command. The underline character may be a backarrow (_) on some
terminals. If you have a display terminal, the system removes the
field from the screen instead of printing the underline or backarrow.
CTRL/W
@TERMINAL (MODE IS) LENGTH_PAGE
To give the above TERMINAL command, type TER and press the ESC key;
the system prints MINAL (MODE IS). Type LENGTH, then type a CTRL/W to
erase the field. After the system prints the underline, type the
correct argument PAGE. If you are using CTRL/W in commands that
contain punctuation, the CTRL/W deletes all the characters from the
present position back to (but not including) the punctuation
character. The next CTRL/W you give deletes the punctuation character
and the text preceding it, back to the next punctuation character, the
beginning of the line, or the beginning of the field. For example,
type FILCOM and press the RETURN key; then type MTA1:TESTING=DATA.
@FILCOM
*MTA1:TESTING=DATA
Type a CTRL/W; the system erases the command back to the equal sign.
Type a CTRL/R to reprint the line.
CTRL/W CTRL/R
*MTA1:TESTING=DATA_
MTA1:TESTING=
Type a second CTRL/W followed by a CTRL/R; the system has deleted the
command back to the colon.
* CTRL/W CTRL/R
MTA1:TESTING=_
MTA1:
2.8 ADDING REMARKS (!)
To add a few words as comments, type an ! and add the comments.
Terminate the comment with another ! or, if you are at the end of a
line, press the RETURN key. The text from the ! to the next ! or
the end of the line does not affect the command.
@DELETE (FILE) PROCED.OLD !OUT OF DATE
PROCED.OLD.2 [OK]
@
GIVING TOPS-20 COMMANDS Page 2-14
The ! feature is useful for saving output for reference and for
teaching others. You can also type a complete line as a comment by
starting the line with a ! and ending it with a ! or RETURN; this
is useful in eliminating errors when you are conversing with another
user while linked via the TALK command. Many comments output by the
system are enclosed in !s.
2.9 SPACES, TABS, LOWERCASE, AND FORMFEED
You can place spaces and tabs before and after command names, guide
words, and arguments without affecting the command.
Lowercase letters can be used anywhere in commands.
Formfeed, obtained by typing a CTRL/L, can be used instead of a
carriage return/linefeed sequence. The formfeed performs the command
termination and starts output from the command at the top of the next
page if you have set the proper terminal parameters. Refer to Chapter
9 for more information about your terminal.
CHAPTER 3
JOBS
In timesharing, the term "job" refers to the entire time you interact
with the computer (from LOGIN to LOGOUT). You create a job when you
successfully complete LOGIN. If in trying to create a job (LOGIN),
you give an invalid user name, password, or account descriptor, the
system prints a message and prevents you from continuing. After you
successfully create a job, you can access any system resource to which
you are entitled and perform many processes. A process is one
specific activity that is identified inside your job. You initiate a
process by entering a command to the system. These commands are
prefixed by an @.
You can have more than one job at a time. The differences between
jobs are their job numbers (assigned by the system for identification)
and their contents (which you determine).
To create a job, you must:
1. Type a CTRL/C
2. Give the LOGIN command.
3.1 STARTING COMMUNICATION WITH TOPS-20
To signal TOPS-20 to start processing your commands, you must type a
CTRL/C. If you are connected to the DECSYSTEM-20 by a telephone line,
DO not type this initial CTRL/C since the system automatically gives a
CTRL/C at the time it answers the telephone.
CTRL/C
2102 Development System, TOPS-20 Monitor 2(233)
@
Once the system prints an @ on the line after the greeting line, you
can give the LOGIN command.
3.2 CREATING A JOB -- THE LOGIN COMMAND
To start working with the system, you must give the LOGIN command.
The LOGIN command requires you to know your user name, password and
account descriptor. You can obtain these identifiers from your system
manager. Refer to Section 2.6.1 if you need additional information
about the LOGIN command.
JOBS Page 3-2
@LOGIN (USER) STEWART (PASSWORD) (ACCOUNT #) 10300
Job 16 on TTY24 16-Jan-76 10:26
@
3.2.1 User Names
Each user is identified to the system and to other users by a user
name. A user name is comprised of up to 39 alphanumeric characters
(hyphens are also allowed) and is usually your surname. A user name
identifies your job, logged-in directory, and any messages which you
can send or receive.
3.2.2 Passwords
Because your user name is known to many DECSYSTEM-20 users, it does
not provide the security necessary in a large data processing system.
Therefore, each user selects a password (comprised of up to 39
alphanumeric characters, including hyphens) that is a secret between
the system manager and the user. You must supply your password when
you log in.
Whenever you type your password, it is not printed on the terminal;
this prevents other people from learning it and logging in to the
system without proper authorization.
3.2.3 Account Descriptors
Your account descriptor is charged with all bills that you accumulate
while using the system. An account descriptor is comprised of up to
39 alphanumeric characters. Some users; however, are restricted to
using only numeric accounts. In this case, the system modifies the
format of the LOGIN command to print the guide words (ACCOUNT #)
instead of (ACCOUNT).
Once you log in to the system, all charges are made to the account you
gave in the LOGIN command. These charges include bills for use of
central processor unit (CPU) time and for file storage. Give the SET
ACCOUNT command if you need to change your account during a job.
3.2.4 LOGIN.CMD And BATCH.CMD Files
You can create a LOGIN.CMD file that is read by the system every time
you log in. You can also create a BATCH.CMD file that is read by the
system every time a submitted Batch job gets logged in.
Once you complete a successful LOGIN command, the system executes any
TOPS-20 commands you have stored in a LOGIN.CMD file kept in your
logged-in directory, i.e., the one with the same name as your user
name. After executing these commands, the system prints any output
from the commands followed by the message END OF LOGIN.CMD and the
TOPS-20 prompt @. You are not required to have a LOGIN.CMD file;
create the file only if it is convenient.
If you submit a Batch job, the system takes commands from the file
BATCH.CMD instead of LOGIN.CMD, because some commands often stored in
LOGIN.CMD are illegal in a Batch job (refer to Table 3-1).
JOBS Page 3-3
You can place any system commands or program commands in the LOGIN.CMD
file; the system executes them each time you log in. The most common
commands to place in the LOGIN.CMD file are TERMINAL commands (to
declare the type of terminal you have) and DEFINE commands (to define
logical names).
The following example shows how to create the file LOGIN.CMD and place
a few commands in it.
@CREATE (FILE) LOGIN.CMD
Input: LOGIN.CMD.1
00100 DEFINE LIB: <FORTRAN-LIBRARY>
00200 INFORMATION LOGICAL-NAMES
00300 TERMINAL LA36
00400 $
*E
[LOGIN.CMD.1]
@
Now, when you log in, the system executes the commands and the output
appears as follows.
@LOGIN (USER) MCKIE (PASSWORD) (ACCOUNT #) 10300
Job 15 on TTY1 5-Jan-76 16:57
LIB => <FORTRAN-LIBRARY>
End of LOGIN.CMD.1
@
If there is an error in one of the commands, the system processes all
the commands up to the one in error, prints the following message and
stops reading the file.
% Error while reading LOGIN.CMD.1, file aborted.
Make sure you can give the commands exactly as you have entered them
into the file. If not, correct any errors, and try the file again.
3.2.5 COMAND.CMD Files
You can also create a file called COMAND.CMD. Each time you log in to
the system or give a PUSH command, the system takes TOPS-20 commands
from the file COMAND.CMD located in your logged-in directory.
COMAND.CMD, LOGIN.CMD, and BATCH.CMD have the same format and use,
except that LOGIN.CMD and BATCH.CMD are read only after you start a
job, whereas COMAND.CMD is also read whenever you give a PUSH command.
As with the LOGIN.CMD and BATCH.CMD files, COMAND.CMD is not required;
you can create it at your convenience.
The most common entries in the COMAND.CMD file are SET commands and
commands that run programs. The following example shows the output
when the user gives a PUSH command.
@PUSH (COMMAND LEVEL)
TOPS-20 Command processor 2(236)
END OF COMAND.CMD.1
@
If there is an error in one of the commands, the system processes all
the commands up to the one in error, prints the following message and
stops reading the file.
JOBS Page 3-4
% Error while reading COMAND.CMD.1, file aborted.
Check the commands in the file and correct any errors.
3.2.6 Autologout
If you type the initial CTRL/C and fail to log in within 5 minutes,
the system stops accepting commands and prints the LOGOUT message. In
order to start the LOGIN process again, you must type another CTRL/C.
The example below shows the autologout message.
AUTOLOGOUT
Killed Job 8, TTY 30, at 16-Jan-76 22:16:05
Used 0:0:0 in 0:5:15
This autologout feature detects extraneous jobs that may get the
system's attention, but which do not have the proper authorization to
utilize system resources.
3.3 ENDING A JOB
When you have completed your work, end the job by giving the LOGOUT
command. The LOGOUT command is described in Part II of this manual.
The example below shows a typical LOGOUT command.
@LOGOUT
Killed Job 32, User ESTEY, Account 10300, TTY 75,
at 18-Oct-76 10:10:35, Used 0:0:22 in 0:23:7
3.4 SUBMITTING A BATCH JOB
If you have a procedure that you execute frequently, you may want to
submit it as a Batch job rather than repeatedly executing it from your
terminal. In batch processing, the term "job" refers to the entire
stream (or list) of user commands contained in a Batch control file.
To submit a Batch job, enter the commands you would normally type on
your terminal into a file called a Batch control file. Use the SUBMIT
command to tell the system what file you want to submit. The Batch
system creates a job for you, connects the job to the directory where
you are connected at the time you give the SUBMIT command, executes
the commands stored in your BATCH.CMD file (instead of LOGIN.CMD),
executes the commands stored in your control file, and records the
results in a log file. The control file can have any file name, but
should have the file type .CTL. The log file has the same name as the
control file and the file type .LOG.
It is best to fully type each command and argument in the control file
rather than abbreviated or recognition input. Precede each TOPS-20
command or subcommand with an @ and precede each program command with
an *.
Make sure each subcommand is preceded by only a single @ sign and that
you include an extra line for the RETURN that terminates the command,
also preceded by a single @ sign. Refer to Example 11 in the DUMPER
description in Part II for a complete example showing how subcommands
are included in the control file and printed in the log file.
JOBS Page 3-5
If you want a control character entered into the file, type an
up-arrow (^) followed by the character. For instance, to enter a
CTRL/C, type ^C. If you want a line sent without the terminating
carriage return and linefeed characters, precede the line in the
control file with an =.
The following commands are not permitted in a Batch job; if you
include them, the system issues a fatal error message.
Table 3-1
Illegal Commands In Batch Jobs
ATTACH
SET CONTROL-C-CAPABILITY (OF PROGRAM)
SET TIME-LIMIT (TO)
These commands are used very infrequently, but still be sure they are
not in your control file, your BATCH.CMD file, or your COMAND.CMD
file.
The following example uses a Batch control file and shows how you
would run the FILCOM program to compare two files.
3.4.1 Creating A Control File
First, create the control file using EDIT. Place all the commands you
would normally type directly into the file.
@CREATE (FILE) TEST.CTL
Input: TEST.CTL.1
00100 @FILCOM
00200 *TEST.FOR=DIFFER.FOR,ADDEM.FOR/A
00300 @PRINT TEST.FOR
00400 $
*E
[TEST.CTL.1]
@
3.4.2 Submitting A Control File To The Batch System (SUBMIT)
Second, submit your control file to the Batch system using the SUBMIT
command. The Batch system puts your job in the waiting line, which is
referred to as the input queue (as opposed to the line printer output
queue). Each time the Batch system is able to run another job, it
selects one from the input queue.
The next example shows how to submit the sample TEST job. Remember
that because the control file has the file type .CTL, you do not have
to include the file type in your command.
@SUBMIT TEST
[INP:TEST=/Seq:7631/Time:0:05:00]
@
JOBS Page 3-6
3.4.3 Checking A Batch Job
If you want to check the progress of your job, give the SUBMIT command
without any arguments. The system prints a list of all the jobs in
the Batch queue and their status. The column heading STS is an
abbreviation for the word status. If the word RUN appears in this
column, then the Batch system is running your job. If nothing appears
in this column, you must wait until the Batch system finishes another
job and selects your job to run.
@SUBMIT
INPUT QUEUE:
STS JOB SEQ PRIO TIME USER
--- ------ ----- ---- -------- --------
RUN TEMP 7624 10 00:05:00 BLOUNT
RUN TEST 7631 10 00:05:00 ESTEY
BUILD 7628 10 00:10:00 BATOR
TOTAL: INP: 3 jobs; 00:20:00 Runtime
@
As you can see, the TEST job is running. To find out what program it
is using, give the SYSTAT command.
@SYSTAT ESTEY
JOB LINE PROGRAM USER
35* 75 EXEC ESTEY
39 45 FILCOM ESTEY
@
Job number 35 is your current job, and job 39 is the Batch job that is
running the FILCOM program. You can keep giving SYSTAT commands or
SUBMIT commands until the job no longer appears. At that time it is
finished and you can examine the output stored in the log file.
Refer to Section 3.5 to learn how to get more information about your
jobs.
3.4.4 Examining The Output From A Batch Job
To examine the output from the job, type the log file on your
terminal; normally, the log file is automatically sent to the line
printer.
@TYPE (FILE) TEST.LOG
11:48:54 BAJOB BATCON version 102(2057) running TEST sequence 7631 in stream 1
11:48:54 BAFIL Input from PS:<ESTEY>TEST.CTL.1
11:48:54 BAFIL Output to PS:<ESTEY>TEST.LOG.1
11:48:54 BASUM Job parameters
Time:00:05:00 Unique:YES Restart:NO Output:LOG
11:48:54 MONTR
11:48:55 MONTR 2102 Development Sys., TOPS-20 Monitor 2(256)
11:48:56 MONTR @LOGIN ESTEY 10300
11:48:56 MONTR Job 36 on TTY135 26-Oct-76 11:48
11:48:59 MONTR @
11:48:59 MONTR [CONNECTED TO PS:<ESTEY>]
11:48:59 MONTR @SET TIME-LIMIT 300
11:49:00 MONTR @@FILCOM
JOBS Page 3-7
11:49:03 USER
11:49:03 USER **TEST.FOR=DIFFER.FOR,ADDEM.FOR/A
11:49:05 USER
11:49:05 USER %files are different
11:49:06 USER
11:49:06 USER *^C
11:49:07 MONTR @@PRINT TEST.FOR
11:49:11 MONTR [LPT:TEST=/Seq:7637/Limit:23, 1 File]
11:49:11 MONTR @^C
11:49:13 MONTR @LOGOUT
11:49:16 MONTR Killed Job 36, User ESTEY, Account 10300, TTY 135,
11:49:16 MONTR at 26-Oct-76 11:49:16, Used 0:0:2 in 0:0:18
@
Each line in the log file contains the time that line was processed by
the Batch system. Following the time stamp is a code that indicates
whether the job is at TOPS-20 command level (MONTR) or at a program
command level (USER). The rest of the line contains system output and
the corresponding line in the control file. The first command is the
FILCOM command. The system has printed the @ sign and the control
file contains @FILCOM, a combination that produces the @@ sign line.
Before giving a command contained in any line preceded by an @ sign,
the system assures the job is at TOPS-20 command level. Verify this
action in the example above, where the user runs FILCOM. The command
following the command to FILCOM is a PRINT command. Because the job
was at FILCOM command level, the system has to give a CTRL/C to return
to TOPS-20 command level before giving the PRINT command.
Any line preceded by an asterisk is assumed to be a command to a
program and the system does not precede it with a CTRL/C.
For more information, refer to the description of the Batch commands.
3.5 GETTING INFORMATION ABOUT JOBS AND USERS
To get a list of all the users who have created jobs, give the command
SYSTAT, which stands for system status. Refer to Part II for an
explanation of the output of the SYSTAT command. The next example
shows the SYSTAT command.
@SYSTAT
Fri 16-Jan-76 15:19:52 Up 14:49:59
19+8 Jobs Load av 1.24 1.97 1.73
JOB LINE PROGRAM USER
8 101 PLOT PLTSPOOL
9 20 PTYCON PLTSPOOL
10 24 EXEC DENNIS
11 17 EXEC MILLER
12 27 EXEC KIRSCHEN
14 12 EXEC ALLEN
15 23 VBOOT COHEN
16 4 EXEC KNIGHT
17 22 EXEC MACK
18 30 EXEC WALSH
20 37 EXEC OSMAN
22 13 EXEC HELLIWELL
23 10 VBD DECENZO
24* 15 EXEC MCKIE
25 41 EXEC JUD
JOBS Page 3-8
26 42 EXEC HURLEY
27 DET EXEC EIBEN
31 40 CREF MURPHY
1 70 PTYCON OPERATOR
2 75 EXEC OPERATOR
3 72 LPTSPL OPERATOR
4 74 EXEC OPERATOR
5 73 BATCON OPERATOR
6 76 PTPSPL OPERATOR
7 77 OPLEAS OPERATOR
28 102 EXEC OPERATOR
@
To find out if a particular user has created any jobs, give the SYSTAT
command, leave a space and type (or use recognition on) the user's
name. Refer to the description of the SYSTAT command.
The next example checks to see if user MURPHY has any jobs. It turns
out that he has one; job 31 is running the CREF program on terminal
40.
@SYSTAT MURPHY
31 40 CREF MURPHY
@
If you want to find out your job number, user name, or terminal
number, give the INFORMATION (ABOUT) JOB-STATUS command. Refer to
Part II for a description of the INFORMATION command.
@INFORMATION (ABOUT) JOB-STATUS
Job 13, User MONROE, Account 10300, TTY102
@
3.6 IF THE SYSTEM STOPS
The system may unexpectedly stop due to an error. This error implies
that the part of the computer that controls your terminal is not
working. In such a situation, your terminal does not print or receive
what you type. If recovery is possible, the system prints:
[DECSYSTEM-20 continued]
All you may lose is a few seconds of typing. After [DECSYSTEM-20
continued] is printed on your terminal, you can continue the tasks you
were doing before the stoppage.
In situations where a fatal error occurs (the entire main computer is
not working), your terminal stops printing and the system prints the
message:
%DECSYSTEM-20 NOT RUNNING
Shortly, the system restarts and prints:
System restarting, wait...
and after a few monents
[FROM OPERATOR: SYSTEM IN OPERATION]
JOBS Page 3-9
You must type a CTRL/C and log in to the system. If you have set the
speed of your terminal line, you may have to reset it depending on the
default speed determined by the system manager.
Depending on the operation you were performing, some of the files you
were using may be incomplete or missing. Contact the operator or
system manager if you want to restore a file that was saved on a
system backup tape. Many systems make backup tapes at the end of each
day, so make sure you contact the operator before needlessly
reentering a lost file.
NOTE
If you have given the TERMINAL (MODE IS)
PAGE command, do not assume the system
has stopped until you type a CTRL/Q.
This will cause your terminal to print
output that may be waiting because you
have reached the end of a page.
CHAPTER 4
SYSTEM STORAGE DEVICES
This chapter discusses the two media on which you can store your
files - disk and magnetic tape.
4.1 DISK STORAGE
The DECSYSTEM-20 keeps most of its information in disk files. A file
is a collection of related data treated as a unit and is uniquely
identified with a file specification. The system stores and retrieves
a file on disk by its file specification. (Refer to Chapter 5, FILE
SPECIFICATIONS, for their format and use.) The following paragraphs
discuss the features of the disk file system and how to use them.
4.1.1 File Structures
One feature on the DECSYSTEM-20 allows your system manager to group
files on separate disk packs. Each group of one or more disk packs is
called a structure and is referenced under one name. The name of a
structure consists of alphanumeric characters followed by a colon.
You can create and reference files on a structure by specifying the
structure name in the device field (dev:) of a file specification.
@LIST ACCTG:<OSMAN>MYFILE.CBL
dev:<dir>name.type
SYSTEM STORAGE DEVICES Page 4-2
One important file structure remains on line at all times during
system operation. This file structure is called the public structure
and has been given the name PS:. The public structure (PS:) contains
all the necessary accounting information to allow users to log in to
the system. Therefore, every user of the system has a directory on
the public structure. When you log in, you are connected to your
logged-in directory on PS:. Refer to Section 4.1.2 for more
information about your logged-in directory and files.
Depending on how the system manager has organized your installation,
you can own or use additional files on structures other than PS:.
These structures also contain directories and files. They can be
mounted (put on line) and dismounted by the operator as requests for
their use are made. Two commands, SMOUNT and SDISMOUNT, allow you to
request the mounting and dismounting of structures.
SMOUNT informs the system (and the operator if the structure is not
mounted) that you require the use of a particular structure other than
PS:. This command increments a count, called the mount count, of the
number of users who have given the SMOUNT command for that structure.
When this count is greater than zero, you are assured that a structure
will remain on line. Therefore, you should always give the SMOUNT
command before using any files on a structure other than PS:.
SDISMOUNT informs the system that you no longer require the use of a
structure and decrements the mount count. Ask your system manager if
you can use structures other than PS: and obtain the names of those
structures. Then turn to the complete descriptions of SMOUNT and
SDISMOUNT in Part II of this manual.
Once a structure is mounted, you can use any directories and files on
that structure according to the "all user" protection codes set for
those directories and files. (Refer to Section 4.1.3 for more
information on the three types of directory and file protection
codes.)
If you would like to know which structures are presently mounted, give
the INFORMATION (ABOUT) STRUCTURE * command.
@INFORMATION (ABOUT) STRUCTURE (NAME) *
Status of structure PS:
Mount count: 0, open file count: 22, units in structure: 2
Public Domestic
No users have PS: SMOUNTed
Users ACCESSing PS: OPERATOR, BELANGER, FRIES, DIPACE, MACK,
POWERS
Users CONNECTed to PS: OPERATOR, BELANGER, MACK, POWERS
Status of structure 4SQM:
Mount count: 3, open file count: 2, units in structure: 1
Domestic
Users who have SMOUNTed 4SQM: FRIES
Users ACCESSing 4SQM: FRIES
Status of structure ADMIN:
Mount count: 2, open file count: 0, units in structure: 1
Domestic
Users who have SMOUNTed SNARK: DIPACE
Users ACCESSing SNARK: DIPACE
Users CONNECTed to SNARK: DIPACE
@
SYSTEM STORAGE DEVICES Page 4-3
4.1.2 Directories
The system stores your files on an area of disk called a directory.
The user name you enter in a LOGIN command is the name of the
directory called your logged-in directory. This directory is located
on the public structure (PS:). PS: contains all your accounting
information and some or all of your files. (It is possible that in
addition to your logged-in directory, you have the use of other
directories and files.) When you log in to the system, you are
connected to your logged-in directory on PS: and can use any of the
files in that directory.
If you require the use of another directory as an "owner" and know its
password (or have the proper privileges), you can give the CONNECT or
ACCESS command. Both the CONNECT and ACCESS commands grant you
"owner" privileges to other directories. When you CONNECT or ACCESS a
directory, you always retain your "owner" privileges to your logged-in
directory.
4.1.2.1 CONNECT - The CONNECT command connects you to a different
directory and disconnects you from the current directory. You can
connect to a user directory or a files-only directory on the public
structure, where you logged in, or on another on-line structure.
CONNECTing to a directory grants you "owner" privileges to the files
in that directory. You still retain "owner" and "group" privileges to
the files in your logged-in directory. However, your default
directory (the directory the system assumes when you do not specify it
in a file specification) is now the connected directory, not your
logged-in directory.
Your "owner" privileges for a directory are valid as long as you are
connected to that directory. The "owner" privileges terminate when
you connect to another directory.
When you give the CONNECT command for a directory that is located on a
structure different from the one to which you are currently connected,
your default structure also changes. If you do not redefine DSK:
with a logical name, the system assumes both the currently connected
directory and currently connected structure whenever you omit them in
a file specification. (Refer to Section 5.12.) This means that if
you leave the directory name out of a file specification, the system
uses your currently connected directory.
The same is true if you leave the structure name out of a file
specification; the system uses your currently connected structure.
The following examples illustrate the effects of giving the CONNECT
command to directories on structure PS: and on different structures.
SYSTEM STORAGE DEVICES Page 4-4
User BAKER logs in to the system and is connected to the directory
<BAKER> on structure PS:. Whenever BAKER omits the directory name
and/or structure name from a file specification, the system uses the
logged-in directory <BAKER> and the public structure PS:.
@LOGIN (USER) BAKER (PASSWORD) (ACCOUNT #)10300
Job 25 on TTY75 20-OCT-76 14:56
@
After logging in, BAKER CONNECTs to directory <CHARLES> on PS:. If
BAKER later omits the directory name and/or structure name in a file
specification, the system uses the connected directory <CHARLES> as
the default directory and the connected structure PS: as the default
structure.
@CONNECT (TO DIRECTORY) <CHARLES> (PASSWORD)
@
SYSTEM STORAGE DEVICES Page 4-5
User BAKER now CONNECTs to directory <SMITH> on structure ADMIN1: and
subsequently omits the structure and/or directory name from a file
specification. The system uses the connected directory <SMITH> as the
default directory and the connected structure ADMIN1: as the default
structure.
@CONNECT (TO DIRECTORY) ADMIN1:<SMITH> (PASSWORD)
@
If you forget to which directory or structure you are connected, give
the INFORMATION (ABOUT) JOB-STATUS command.
@INFORMATION (ABOUT) JOB-STATUS
Job 13, User BAKER, ADMIN1:<SMITH>, Account 10300, TTY25
@
If you are connected to your logged-in directory, the system does not
print the directory name after your user name.
Refer to Part II of this manual for a complete description of how to
use the CONNECT command.
SYSTEM STORAGE DEVICES Page 4-6
4.1.2.2 ACCESS - The ACCESS command also allows you to gain "owner"
privileges to user directories, but without changing your connected
(default) directory or structure. When you ACCESS a directory you are
always working in your currently connected directory. Therefore,
unless you specify otherwise, the latest version of any file you
update is placed in your connected directory, not in the ACCESSed
directory. Because your connected directory has not changed, you must
specify the directory name in any file specification pertaining to
this ACCESSed directory. Also, if the directory you ACCESS is located
on a different on-line structure than your currently connected
directory, you must specify the structure name in any file
specification. (Remember, the system uses your currently connected
directory and structure.)
The ACCESS command gives more extensive privileges than those of the
CONNECT command. ACCESS grants you "owner" privileges to a directory
and files and, in addition, grants you the same "group" member
privileges as the logged-in user (or "real" owner) of the directory
you have ACCESSed. Therefore, you can access a directory as an
"owner" and can access, as a "group" member, all the directories that
are members of the same group(s) of which the ACCESSed directory is a
member. Refer to Section 4.1.4 for a description of how users and
directories are established in groups.
You can give the ACCESS command to more than one directory during a
job session. You can access a directory on one structure and then
access a directory on a different structure. Provided each directory
you access is located on a different structure, the "owner" and
"group" privileges you gain for all directories will remain in effect
throughout your entire job session (from LOGIN to LOGOUT) or until a
structure is dismounted. However, if you access two or more
directories on the same structure, only the privileges for the last
directory you ACCESSed will remain in effect (until you log out or the
structure is dismounted). You will always retain your "owner"
privileges to your logged-in directory on PS:. However, when you give
the ACCESS command to a different directory on PS:, you lose your
"group" privileges to your logged-in directory.
The following examples illustrate the effects of giving the ACCESS
command to directories on structure PS: and on different structures.
SYSTEM STORAGE DEVICES Page 4-7
User BAKER logs in and is connected to directory <BAKER> on PS:.
@LOGIN (USER) BAKER (PASSWORD) (ACCOUNT #) 10300
Job 14 on TTY75 25-OCT-76 13:21
@
After logging in, BAKER ACCESSes directory <CHARLES> on structure PS:
and gains "owner" and "group" privileges to that directory.
@ACCESS (TO DIRECTORY) <CHARLES> (PASSWORD)
@
SYSTEM STORAGE DEVICES Page 4-8
BAKER now ACCESSes directory <JONES> on the same structure, PS:, and
gains "owner" and "group" privileges to that directory. The
privileges granted for directory <CHARLES> are no longer in effect.
@ACCESS (TO DIRECTORY) <JONES> (PASSWORD)
@
If BAKER now ACCESSes directory <SMITH> on structure ADMIN1:, the
privileges granted for directory <JONES> on PS: are still valid in
addition to the privileges now granted for directory <SMITH> on
ADMIN1:.
@ACCESS (TO DIRECTORY) ADMIN1:<SMITH> (PASSWORD)
@
The privileges remain for the two ACCESSed directories <JONES> and
<SMITH> until BAKER logs out of the system or structure ADMIN1: is
dismounted (while BAKER is not using any files). If structure ADMIN1:
is dismounted, BAKER would only lose privileges to directory <SMITH>.
SYSTEM STORAGE DEVICES Page 4-9
If BAKER requires "group" privileges again to his logged-in directory,
he can give the ACCESS command with no arguments for directory
<BAKER>. The privileges granted for directory <JONES> are now
terminated.
@ACCESS (TO DIRECTORY)
@
Refer to Part II of this manual for a complete description of how to
use the ACCESS command.
4.1.3 File Protection
The DECSYSTEM-20 has a flexible and convenient file system. The
TOPS-20 file system allows you to protect your files from some users
and yet grant access to other users who need them. The file
protection system works in the following way. Suppose you are user
FLETCHER and give the TYPE command to print the file <KOHN>NAMES.CBL.1
on your terminal. Before printing the file, the system checks the
protection on the directory <KOHN> to see if you are permitted to read
the names of the files in that directory. If you are not allowed to
access the directory in the manner you request, the system prints an
error message and cancels the command.
@TYPE (FILE) <KOHN>NAMES.CBL.1
?Directory access privileges required
@
If the directory protection allows you the access you request, the
system checks the protection on the individual file (here it is
NAMES.CBL.1). If you are not allowed to access the file in the manner
you request, the system prints an error message and cancels the
command.
@TYPE (FILE) <KOHN>NAMES.CBL.1
?READ PROTECT VIOLATION FOR FILE <KOHN>NAMES.CBL.1
@
If the file protection permits you to access the file, the system
allows you to do so. In this example, the system prints the file on
your terminal.
SYSTEM STORAGE DEVICES Page 4-10
@TYPE (FILE) <KOHN>NAMES.CBL.1
MURPHY
MILLER
BOSACK
HURLEY
@
The access to each directory and file is determined by a protection
number. Each directory protection number and file protection number
consists of six digits divided into three fields of two digits each.
The first 2-digit field specifies the owners' access, the second
2-digit field specifies the group members' access, and the last field
specifies all other users' ("world") access.
PROTECTION CODE
dd dd dd
Owner Group All Users
If a protection number is 775240, 77 specifies the owner's access, 52
specifies group members' access, and 40 specifies all other users'
access.
4.1.3.1 Directory Protection Numbers - The digits in a protection
number have different meanings, depending on whether they are in a
directory protection number or in a file protection number. Table 4-1
lists the directory protection digits.
Table 4-1
Directory Protection Digits
Digits Permit
77 Full access to the directory is permitted.
40 Access to files in the directory according
to the protection number on the individual
files is permitted. To undelete and
expunge the entire directory (though these
digits permit expunging files on an
individual basis), you must also assign the
digits 10. To create files, you must also
assign the digits 04.
10 Connect to the directory without giving a
password, undelete files, expunge the
entire directory, change times, dates and
accounting information for files is
permitted. All other access is governed by
the protection on the individual file.
04 Create files in the directory.
00 Access to the directory is not permitted.
SYSTEM STORAGE DEVICES Page 4-11
These protections are additive. Therefore, to be able to access the
directory according to the protection on the individual files and be
able to create files in the directory, you would add the 40 to 04 to
get 44. The directory protection number 774000 allows the owner full
access, allows members of the group to access the directory according
to protection on the individual files, and prohibits all other users
from accessing the directory. The default directory protection is
777700. If you want to change your directory protection number or to
find out what your directory protection number is, contact the
operator or system manager.
4.1.3.2 File Protection Numbers - Table 4-2 lists the file
protection digits.
Table 4-2
File Protection Digits
Digits Permit
77 Full access to the file.
40 Read the file.
20 Write and delete the file.
04 Append to the file.
02 List the file specification
using the DIRECTORY command.
Any user's access to a file is subject to a check. First, the
directory protection is checked, then the protection on the individual
file is checked. Generally, the default protection for both
directories and files is 777700, which means that the owner of a file
and the members of his group have full access, and all other users
have no access to the files.
Another common file protection number is 777752. This gives the owner
and members of his group full access and lets all other users execute
and read the file and list the file specification with a DIRECTORY
command.
4.1.3.3 Checking Protection Numbers - To check protection numbers,
the system starts with the two rightmost digits and moves left until
it has added in the highest level of access you are granted. Thus,
you do not restrict the members of your group by assigning the file
protection number 770052, because they will get at least the execute,
read, and directory list access (52) granted to all users.
The system checks a file or directory protection number in the
following way:
- Does the protection for all other users i.e., the two
rightmost, digits grant you the access?
- If yes, the system lets you access the file or directory.
SYSTEM STORAGE DEVICES Page 4-12
- If no, and you are a member of the same group as the
directory, the system adds in the group protection (the
two middle digits), and checks again.
- If still no, and you are the owner of the file (either
logged-in under the user name corresponding to the
directory name or have accessed or connected to the
directory), the system adds in the owner protection (the
two leftmost digits) and checks again.
- If still no, the system issues an error message.
4.1.3.4 Printing A File Protection Number - If you want to print the
protection number of a file, use the VDIRECTORY command (or the
DIRECTORY command with the PROTECTION subcommand).
@VDIRECTORY (OF FILES) 4.MEM.*
<MILLER>
4.MEM.1;P777752 7 3245(36) 16-JAN-76 18:48:49
@
4.1.3.5 Changing A File Protection Number - To change a file
protection number, give the SET FILE PROTECTION command or the RENAME
command.
@SET FILE PROTECTION (OF FILES) 4.MEM.* (TO) 777700
4.MEM.1 [OK]
@
You can use any wildcard character in the source file specification.
(Refer to Section 5.8.)
4.1.4 Groups
Certain users can arrange to share files by asking the operator or
system manager to establish a group. Members of a group can access
directories in that group according to the two middle digits of the
directory protection numbers.
PROTECTION CODE FIELD
dd dd dd
OWNER ALL USERS
GROUP
A group has two types of members: USERS and <DIRECTORIES>. Each
group has a number which is kept in each directory belonging to the
group. Any USER in a group can access any <DIRECTORY> that is a
member of the same group.
SYSTEM STORAGE DEVICES Page 4-13
Each directory has two lists of
group numbers:
1. The first list contains
Directory Group Numbers. These
numbers identify the various
groups of which this
<DIRECTORY> is a member.
2. The second list is associated
with users and contains User
Group Numbers. These numbers
identify the various groups of
which this USER is a member.
The Directory Group Numbers are
important to users who require
access to this directory. Those
users who have a matching group
number in the User Group Number
List can access this <DIRECTORY>
according to its group protection
code.
The User Group Numbers are
important to the owner of this
directory. This owner can access
any directory that has a matching
group number in its Directory Group
Number List. Note: Because
files-only directories are not
associated with a user, they
normally do not contain any User
Group Numbers.
There are three common types of groups:
1. A file-sharing group whose users can access a set of library
directories and each other's logged-in directories.
2. A library group whose users can access a set of library
directories and their own logged-in directories, but not each
other's logged-in directories.
3. A teacher-student group in which the teacher can access the
students' directories and the students can access their own
logged-in directories, but not their classmates' directories
or the teacher's directory.
The three figures that follow illustrate these three common groups and
the association between USER and <DIRECTORY> members of a group.
In a file-sharing group (Figure 4-1), all the users share all their
files according to the group protection field, both in the library
directories (here it is<MANUALS>) and in their logged-in directories.
SYSTEM STORAGE DEVICES Page 4-14
Figure 4-1 File-Sharing Group
In this figure, the two users, PORADA and ESTEY, are members of the
same group (group 2). The directories <PORADA>, <ESTEY> and <MANUALS>
are also members of group 2. Users PORADA and ESTEY can access their
own directory and files according to the owner protection code fields.
PORADA can access directories <ESTEY> and <MANUALS> according to the
group protection code fields, and conversely, ESTEY can access
directories <PORADA> and <MANUALS> according to their group protection
code fields. The other numbers shown in the figure indicate that a
user or directory can be a member of more than one group.
In a library group (Figure 4-2), all the USER members can access all
the <DIRECTORY> members but not each other's logged-in directories.
The library directories are usually files-only directories. This
figure illustrates a library group that consists of the files-only
directories: <SUBROUTINES>, <TAPE-TESTS>, <MACROS> and users:
ALUSIC, BROPHY and KOHN. This library group illustrates that just
because you are a member of a group as a user, your logged-in
SYSTEM STORAGE DEVICES Page 4-15
directory does not have to belong to the same group.
SYSTEM STORAGE DEVICES Page 4-16
Users KOHN, ALUSIC and BROPHY are not directory
group members of the same group; however, they
are all user group members in the same group
(group 2). User KOHN can access directory
<KOHN> according to the owner protection field
and can access directories <SUBROUTINES>, <TAPE
TESTS>, and <MACROS> according to the group
protection field. KOHN can access <BROPHY> and
<ALUSIC> according to the all user protection
field. Although the arrows have not been drawn
from users BROPHY and ALUSIC, their access
privileges are the same as KOHN's.
Figure 4-2 Library Group
SYSTEM STORAGE DEVICES Page 4-17
In a teacher-student group (Figure 4-3), the teacher, WILEY, is a
member of the group as a USER, while the directories <HURLEY>, <HALL>,
<MILLER> and <RUSSELL> are <DIRECTORY> members. The teacher, WILEY,
can access the files in the directories <HURLEY>, <HALL>, <MILLER> and
<RUSSELL> according to the group protection. The students whose
logged-in directories are in this group as <DIRECTORY> members can
access the files in <WILEY> according to the protection set for all
users because only their directories are members of the group; they
are not members of the group as users.
Figure 4-3 Teacher-Student Group
To establish a group, contact the operator or system manager.
SYSTEM STORAGE DEVICES Page 4-18
4.1.5 Accounts
You are charged for use of the computer and for storage of disk files.
When you create a file, you can give it a special account descriptor
by appending a ;A and the account descriptor to the file
specification. In the example below, the file MONITR.SPC.3 has been
given the account descriptor OVERHEAD.
MONITR.SPC.3;AOVERHEAD
(Some users are required to give account numbers rather than
alphanumeric account descriptors.)
If you do not specify an account descriptor when you create a file,
the system assigns the account descriptor given in your last LOGIN or
SET ACCOUNT command.
You can change the account descriptor of one or more files by giving
the SET FILE ACCOUNT command or the RENAME command.
@SET FILE ACCOUNT (OF FILES) 4.MEM.* (TO) 14033
4.MEM.1 [OK]
@
You can change the default account for your job by giving the SET
ACCOUNT command.
@SET ACCOUNT (NUMBER TO) 25468
Time used on previous account: 10300
0:00:12 in 1:10:17
@
4.1.6 Deleted Disk Files
When you are finished with a file, delete it by giving the DELETE
command. The DELETE command merely marks the file for automatic
(conditionally deferred) deletion; it does not actually erase the
file.
The deleted files in your logged-in or connected directory are erased
when you do one of the following:
1. You give the EXPUNGE command.
2. You (or any other user connected to your directory) log off
the system.
3. The operator gives the EXPUNGE command.
The EXPUNGE command erases all the files you have marked for deletion
since you logged in to the system or gave the last EXPUNGE command.
Deleting and erasing files are separate operations because system
response time is improved if files are erased only at regular
intervals instead of every time a file is deleted. The result of this
enhancement, which inevitably helps some users, is a situation where
files do not immediately disappear once deleted. However, since the
life of a deleted file is quite unpredictable, you are encouraged not
to depend on recovering deleted files.
SYSTEM STORAGE DEVICES Page 4-19
If you want to delete a file, in this example it is RNDOFF.FOR.2.,
give the command:
@DELETE (FILES) RNDOFF.FOR.2
RNDOFF.FOR.2 [OK]
@
Once RNDOFF.FOR is deleted, you cannot access the file as you would
normally. The command:
@DIRECTORY (OF FILES) RNDOFF.FOR.2
<MILLER>
@
does not find the deleted file. The DIRECTORY command with the
DELETED subcommand lists all the files that have been deleted but not
yet expunged.
@DIRECTORY (OF FILES) RNDOFF.FOR.2 ,
@@DELETED
@@
<MILLER>
RNDOFF.FOR.2
@
To restore RNDOFF.FOR to its normal status, give the UNDELETE command.
@UNDELETE (FILES) RNDOFF.FOR.2
RNDOFF.FOR.2 [OK]
@
Now, the DIRECTORY command works:
@DIRECTORY (OF FILES) RNDOFF.FOR.2
<MILLER>
RNDOFF.FOR.2
@
If you delete the file, then give the EXPUNGE command, the file is
completely erased.
@DELETE (FILES) RNDOFF.FOR.2 !Delete RNDOFF.FOR.2
@DIRECTORY (OF FILES) RNDOFF.FOR.2 , !Make sure it is
@@DELETED !Deleted.
@@
<MILLER>
RNDOFF.FOR.2
@EXPUNGE (DELETED FILES) !Erase deleted files
[2 PAGES FREED]
@DIRECTORY (OF FILES) , !And check on them
@@DELETED
@@
<MILLER>
@ !The file is gone
If you mistakenly erase, i.e., delete and expunge, a file, contact the
operator or system manager. Most systems keep backup tapes from which
you can obtain an older version of the file.
SYSTEM STORAGE DEVICES Page 4-20
Caution
You should not delete files and plan to
undelete them at a later time.
4.1.7 Regulating Disk File Storage
The maximum amount of disk space you can use is assigned by the system
manager and is referred to as your storage allocation.
Storage allocations are assigned as a number of pages (a page consists
of 512 36-bit words). Each directory is allocated a certain number of
pages. Give the INFORMATION (ABOUT) DISK-USAGE command to find out
how much of your allocation you are using.
@INFORMATION (ABOUT) DISK-USAGE (OF DIRECTORY) <VANDERHOOFT>
1492 Pages assigned, 1458 in use, 34 Deleted
1400 Working, 1300 Permanent allowed
<VANDERHOOFT> Over Permanent Storage Allocation By 192 Pages
3344 System pages free
@
In the example above, the user has 1492 pages assigned to his
directory, 1458 pages are being actively used, while 34 are being used
by deleted (but not expunged) files. The working storage allocation
for the directory <VANDERHOOFT> is 1400 pages and the permanent
storage allocation is 1300 pages. Because the <VANDERHOOFT> directory
exceeded the permanent storage allocation, the system prints a warning
message. There are 3344 free pages remaining on this file structure.
The system automatically checks your working storage allocation
whenever you create a new file page. If you are over that allocation,
it prints a message ?DISK FULL or ?QUOTA EXCEEDED and does not let you
continue writing to your file. You can delete and expunge any
unimportant or temporary files and then, expunge the directory to get
under your working allocation.
Whenever you give a LOGIN or LOGOUT command, the system checks the
permanent disk storage allocation of your connected directory. If it
is exceeded, the system prints a message in the form:
<directory> OVER PERMANENT STORAGE ALLOCATION BY n PAGES
Caution
If you exceed your working storage
allocation, the system programs listed
in Table 5-2 expunge any deleted files.
When a system program expunges deleted
files, it prints a message; however,
once you see the message, you cannot
halt the expunging process.
SYSTEM STORAGE DEVICES Page 4-21
4.1.8 Temporary Files
A temporary file is a file you do not need permanently, such as a
scratch file or a listing file. A temporary file has the descriptor
;T appended to its file specification. The ;T instructs the system to
delete and expunge the file when you log off the system.
You can create a temporary file by adding the temporary file
descriptor (;T) onto a file specification. Refer to the example
below.
@COPY (FROM) TTY: (TO) T.FIL;T
THIS IS A ONE-LINE FILE.
^Z
@DIRECTORY (OF FILES) T.FIL
<BOSACK>
T.FIL.100020;T
@
Note that the system assigns a generation number of 100000 plus your
job number to the temporary file. Because this total is unique for
every job, different jobs connected to the same directory can have
temporary files with the same name and different contents.
The system deletes and expunges all your temporary files when you log
out. Note that the system only deletes temporary files that have a
generation number of 100000 plus your job number.
4.2 MAGNETIC TAPE STORAGE
Magnetic tapes provide a convenient medium for storing large amounts
of data off line. The DECSYSTEM-20 reads and writes industry-standard
tapes at densities up to 1600 BPI (bits per inch, also equivalent to
CPI, characters per inch).
You can store data on magnetic tapes by using the DUMPER program or
your own program. You must first assign the tape drive to your job,
set any desired tape parameters, position the tape, then transfer the
data. The following sections describe this procedure and how to use
the DUMPER program. If you are using your own program, follow the
instructions through Section 4.2.3, then run your program.
4.2.1 Assigning A Tape Drive To Your Job
You can allocate a tape drive to your job using one of two methods.
The first method uses the TMOUNT command and lets the operator mount
the tape for you; the second method uses the ASSIGN command and lets
you mount the tape.
If you want the operator to mount the tape for you, hand the tape to
the operator and then give the TMOUNT command from your terminal. The
TMOUNT command asks the operator to mount the tape and then
automatically defines a logical name for the tape drive you receive.
@TMOUNT (TAPE) REEL1: (VOLID) GREEN
[Operator notified]
[MTA1: assigned]
@
SYSTEM STORAGE DEVICES Page 4-22
In the example above, the user requested that the operator mount the
tape identified by the word GREEN. Note that this identification (or
VOLID) is simply a label on the outside of the tape for easy locating.
This label does not have to correspond to the contents (files) on the
tape. When the operator finished mounting the tape, the system
printed the drive that was assigned, and then defined the logical name
REEL1: as MTA1:
The TMOUNT command is very useful if you need to use a magnetic tape
in a Batch job. Use the TMOUNT command at the beginning of the job,
and then use the logical name (instead of the physical device name) to
refer to the magnetic tape. If you are using the DUMPER program,
remember that you do not have to include a DUMPER TAPE command if you
define the logical name MTA-DUMPER. Refer to the description of the
DUMPER program.
The second method of assigning a tape to your job requires that you
use the ASSIGN command.
To find out which tape drives are available, give the INFORMATION
(ABOUT) AVAILABLE DEVICES command.
@INFORMATION (ABOUT) AVAILABLE DEVICES
Devices available to this job:
DSK,PS,ADMIN,MTA1,MTA2,LPT,CDR,PTY15,NUL
Devices assigned to/opened by this job: TTY23
@
Assign drive 2 by giving the ASSIGN command.
@ASSIGN (DEVICE) MTA2:
@
After assigning the drive to your job, you can run the PLEASE program
and ask the operator to mount your tape.
@PLEASE MOUNT MAGTAPE 445 ON DRIVE 2.
[OPERATOR HAS BEEN NOTIFIED]
OK...DONE!
[FINSHED AT 14:57:56]
@
Another method of assigning a drive and mounting your tape is to use
the TMOUNT command. The operator assigns an available device and
mounts the tape. (Refer to the description of TMOUNT is Part II of
this manual.)
4.2.2 Setting Tape Parameters
You must make sure that you read and write the tape with the proper
tape parameters set. Give the INFORMATION (ABOUT) TAPE-PARAMETERS
command.
@INFORMATION (ABOUT) TAPE-PARAMETERS
SET TAPE DENSITY 1600
SET TAPE PARITY ODD
SET TAPE FORMAT CORE-DUMP
SET TAPE RECORD-LENGTH 512
@
These parameters work for most tape transfers; if you do have to
change any of the parameters, give the SET TAPE command.
SYSTEM STORAGE DEVICES Page 4-23
@SET TAPE DENSITY (TO) 800
@
These changed parameters stay in effect for the rest of your job. If
you set a parameter by giving a DUMPER command, that parameter affects
only the DUMPER operations and does not change your job defaults.
4.2.3 Positioning The Tape
There are four commands which position a magnetic tape: BACKSPACE,
REWIND, SKIP, and UNLOAD. The BACKSPACE command backspaces the tape
over a certain number of records or files; the REWIND command rewinds
the tape to the load point (the logical beginning of the tape); the
SKIP command advances the magnetic tape a certain number of records or
files; and the UNLOAD command unloads the magnetic tape by rewinding
it entirely onto the source reel.
@SKIP (DEVICE) MTA2: 4 FILES
@
4.2.4 Using The DUMPER Program
The DUMPER program provides a number of commands to help you save and
restore files from disk to magnetic tape. Refer to the description of
the DUMPER program for a detailed explanation of the commands.
The following example shows how to save files on magnetic tape using
DUMPER.
@ASSIGN (DEVICE) MTA3: !Assign drive 3
@DUMPER !Start DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA3: !Use drive 3 with DUMPER
DUMPER>REWIND !Rewind the tape
DUMPER>SSNAME MACRO FILES !Set the save set name
DUMPER>FILES !Print file names when saving
DUMPER>SAVE (DISK FILES) *.MAC.* !Save all files with type .MAC
DUMPER TAPE # 1, MACRO FILES, WEDNESDAY, 21-JAN-76 1553
PS:<MCKIE>
CONFIG.MAC.3 (AS) CONFIG.MAC.3 [OK]
DEFS.MAC.1 (AS) DEFS.MAC.1 [OK]
MEMDMP.MAC.3 (AS) MEMDMP.MAC.3 [OK]
PROMPT.MAC.1 (AS) PROMPT.MAC.1 [OK]
PTYCON.MAC.2 (AS) PTYCON.MAC.2 [OK]
REINIT.MAC.4 (AS) REINIT.MAC.4 [OK]
RUNFIL.MAC.13 (AS) RUNFIL.MAC.13 [OK]
TAPER.MAC.3 (AS) TAPER.MAC.3 [OK]
TRANSL.MAC.14 (AS) TRANSL.MAC.14 [OK]
TOTAL FILES DUMPED = 9
TOTAL PAGES DUMPED = 46
DUMPER>REWIND !Rewind the tape
DUMPER>EXIT !End DUMPER
@
The following example shows how to restore files from tape using the
DUMPER program. Assign a tape drive (ASSIGN), then start DUMPER.
SYSTEM STORAGE DEVICES Page 4-24
Tell DUMPER which tape you are using (TAPE), then make sure you are at
the beginning (REWIND). As DUMPER saves and restores files, normally
it does not print the file specifications; to get them printed, give
the FILES command. Next, tell the system to restore all the files
with the name JOAN. The system prints the save set name and the
restored files. When DUMPER reaches the end of the save set, it
prints the message END OF SAVESET.
When there are no files to restore and you have given the FILES
command, DUMPER does not print any file specifications. This is true
when you try to restore a non-existent file, JOAN.CBL. Last, you
rewind the tape and restore all the files with the name RENAME and
VTED. The two file specifications are printed on your terminal. Type
EXIT to leave DUMPER.
@ASSIGN (DEVICE) MTA0: !Assign drive 0
@DUMPER !Start DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA0: !Use drive 0 with DUMPER
DUMPER>REWIND !Rewind the tape
DUMPER>FILES !Print file names as restored
DUMPER>RESTORE (MTA FILES) JOAN.*.* !Get all files with name JOAN
DUMPER TAPE # 1, FRIDAY'S NEW FILES, WEDNESDAY, 4-FEB-76 1938
LOADING FILE(S) INTO <TPORADA>
PS:<TPORADA>JOAN.TXT.1;P777700;A10300 (TO) JOAN.TXT.1 [OK]
END OF SAVESET
DUMPER>REWIND !Rewind
DUMPER>RESTORE (MTA FILES) JOAN.CBL.* !When you set FILES and
there are no files, DUMPER
does not print any file
specifications
DUMPER TAPE # 1, FRIDAY'S NEW FILES, WEDNESDAY, 4-FEB-76 1938
END OF SAVESET
DUMPER>REWIND
DUMPER>RESTORE (MTA FILES) RENAME.*,VTED.*
DUMPER TAPE # 1, FRIDAY'S NEW FILES, WEDNESDAY, 4-FEB-76 1938
LOADING FILES INTO <TPORADA>
PS:<TPORADA>RENAME,TXT.1;P777700;A10300 (TO) RENAME.TXT.1 [OK]
PS:<TPORADA>VTED.TXT.1;P777700;A10300 (TO) VTED.TXT.1 [OK]
END OF SAVESET
DUMPER>REWIND !Rewind
DUMPER>EXIT !End DUMPER
@
CHAPTER 5
FILE SPECIFICATIONS
The DECSYSTEM-20 keeps all system programs, user programs and data in
files. A file is an organized set of data that resides on storage
devices such as disk or magnetic tape. Each file is uniquely
identified by its file specification. To access a file, you must give
its correct file specification.
You can create program and data files by running EDIT to enter the
information. (Refer to Chapter 6.) When starting EDIT, give a file
specification to identify the file. After you have entered the
information into the file, give the E command to exit from EDIT and
have EDIT save the information in the file. When you need the
information later, reference the file by giving that same file
specification.
The rest of this chapter describes file specifications and how to type
them.
5.1 COMMON FORM OF A FILE SPECIFICATION
The most common form of a file specification is:
dev:<dir>name.type.gen
where:
dev: is a device name, a file structure name, or a defined
logical name. (Refer to Section 5.2.)
<dir> is a directory name, or in special circumstances, a
project-programmer number (Refer to Section 5.3.) You must
always include the angle brackets around a directory name.
name is a file name. (Refer to Section 5.4.)
.typ is a file type. (Refer to Section 5.5.)
.gen is a generation number. (Refer to Section 5.6.)
File specifications tell the system where to find or place a file.
The items comprising a file specification are organized from the most
general to the most specific. Proceeding from left to right in the
above definition: the device name specifies the particular file
structure or device; the directory specifies an area on that device;
the file name specifies a particular file in that directory; the file
type specifies the contents of the file, for example a program, data,
or text; and the generation number specifies how many times the file
has been changed.
FILE SPECIFICATIONS Page 5-2
You can type any of three file attributes at the end of a file
specification to specify the Account, Protection number, or Temporary
status of a file. These file attributes describe properties of a
file. They do not distinguish one file from another. (Refer to
Section 5.7.)
5.2 DEVICE NAMES - DEV:
A device name designates the storage device or file structure that
contains, or will contain, the file. A defined logical name can
replace a device name. Refer to Section 5.12.
A device name consists of alphabetic characters that indicate the type
of device, a number that specifies a particular device (when more than
one of a particular device are available), and a colon that identifies
the name as a device name. The DECSYSTEM-20 devices and their device
names are listed in Table 5-1.
Table 5-1
System Device Names
Device Device Name
Public File Structure PS:
Disk (Currently Connected File Structure) DSK:
User's Terminal TTY:
A Particular Terminal TTYn:
A Particular Magnetic Tape MTAn:
Any Magnetic Tape MTA:
Any Line Printer LPT:
A Particular Line Printer LPTn:
Any Card Reader CDR:
A Particular Card Reader CDRn:
The number n indicates a particular unit when the device has
multiple units. In addition, any available on-line file
structures will be identified with a device name different
from any on the above list. For example: ADMIN: or ACCT:.
When the device name is used as part of a file specification, the
colon must terminate the device name. Examples of device names are:
TTY20: the terminal connected to line 20.
MTA0: the magnetic tape unit labeled 0.
LPT: a line printer.
ADMIN: a file structure
If you omit a device name from a file specification, the system uses
your currently connected file structure as a default. If you have not
redefined DSK: with a logical name (refer to Section 5.12, LOGICAL
NAMES) and you enter DSK: as the device name, the system again uses
your currently connected file structure.
FILE SPECIFICATIONS Page 5-3
5.3 DIRECTORY NAMES - <DIR>
One area of disk storage allocated for your use is called your
logged-in directory. It is referenced by a directory name which is
your user name enclosed in brackets. Thus, if you are user HALL, you
would have a directory named <HALL>. You can own other directories in
addition to your logged-in directory.
A directory name consists of up to 39 alphanumeric characters
including hyphen, dollar sign and underline. The characters percent
and asterisk can be used to specify a group of directories, but these
characters cannot actually be part of a directory name. (Refer to
Section 5.9.) Directory names are always enclosed in brackets.
Examples of directory names are:
<BOURKE>
<FOWLER>
<TEST-PROCEDURES-LIBRARY>
5.3.1 Project-Programmer Numbers - [proj,prog]
Most programs and commands allow you to type a directory name, but a
few require a similar designator called a project-programmer number.
The programs and commands listed in Table 5-2 allow you to reference
files in directories other than your logged-in or connected directory.
When referencing these files, type a project-programmer number
wherever you would normally type a directory name.
Table 5-2
Special System Programs And Commands
ALGOL programs LINK program
COBOL programs MACRO programs
CREF programs MAKLIB program
FILCOM program PRINT command
FORTRAN program RERUN program
ISAM programs SORT program
LIBRARY program SUBMIT command
A project-programmer number consists of two numbers separated by a
comma and enclosed in square brackets. To find the project-programmer
number corresponding to a particular directory name, use the TRANSL
program. The example shows how to find the project-programmer number
associated with the directory <HALL>.
@TRANSL
TRANSLATE (DIRECTORY) <HALL>
<HALL> IS [4,172]
@
The FILCOM program, for example, requires a project-programmer number.
If you wanted to compare your version of the file PLEASE.MAC with user
Hall's version of the file, you could give the following commands:
@FILCOM
*TTY:=PLEASE.MAC[4,172],PLEASE.MAC/A
FILE SPECIFICATIONS Page 5-4
Any program that requires a project-programmer number instead of a
directory name permits you to define a logical name and type it where
you would normally type a device name. If you define the logical name
to be the directory that contains the file, you do not have to type a
project-programmer number. The next example shows how to define a
logical name and use it in place of user Hall's project-programmer
number in the last example.
@DEFINE (LOGICAL NAME) HALL: (AS) <HALL>
@FILCOM
*TTY:=HALL:PLEASE.MAC,PLEASE.MAC/A
Using logical names is recommended over using project-programmer
numbers because project-programmer numbers may change. (Refer to
Section 5.12 for a further discussion of logical names.)
5.4 FILE NAMES - NAME
Each file has a file name consisting of up to 6 alphanumeric
characters, including hyphen, dollar sign and underline. The
characters * and % may be used to specify a group of file names, but
cannot actually be used in a file name. (Refer to Section 5.8.)
Examples of file names are:
TEST
LINDRW
SPCWAR
LEM
Some programs and commands allow file names of up to 39 characters in
length; be aware that some software components do not support this
extended length. If you are using any of the commands and programs
listed in Table 5-2, you cannot use a -, $, or _ in a file name. In
addition, use the characters * and ? in specifying a group of file
names. (Refer to Section 5.8.)
5.5 FILE TYPES - .TYP
When you want to indicate the contents of a file or give the same file
name to more than one file, specify a file type consisting of a period
followed by up to three alphanumeric characters, including hyphen,
dollar sign and underline. The characters * and % can be used to
specify a group of file types, but cannot actually be used in a file
type. (Refer to Section 5.8.) Examples of file types are:
.FOR
.DAT
.ALG
.CBL
In most circumstances, the results obtained by typing just the six
characters TESTER are NOT equivalent to the results obtained by typing
TESTER. (the six characters TESTER followed by a period). Because the
period really begins the file type, a file name followed by a period
indicates a non-existent file type. The file name without the period
specifies all files with that file name and a default file type. For
instance, suppose you have the files TESTER.FOR.1, TESTER.CBL.3 and
TESTER..1 in your directory. Give the arguments TESTER and TESTER.
to the DIRECTORY command.
FILE SPECIFICATIONS Page 5-5
@DIRECTORY (OF FILES) TESTER
<KOHN>
TESTER..1
.CBL.3
.FOR.1
TOTAL OF 3 FILES
@DIRECTORY (OF FILES) TESTER.
<KOHN>
TESTER..1
@
Notice that TESTER matches all the files with the file name TESTER,
while TESTER. matches only one file with the file name TESTER and a
non-existent file type.
Refer to Appendix A for a list of standard file types.
Some programs and commands allow file types up to 39 characters in
length; be aware that some software components do not support this
extended length. If you are using any of the commands and programs
listed in Table 5-2, you cannot use a -, $, or _ in a file type. In
addition, use the characters * and ? in specifying a group of file
types. Refer to Section 5.8.
5.6 GENERATION NUMBERS - .GEN
A generation number reflects approximately the number of times you
have changed your file. A generation number can be any positive
integer up to (and including) 131071 (2^17 - 1 or the largest number
that can be represented in 17 binary bits).
Note: Most Recent Files
Whenever you type a file specification,
you can include a generation number. At
times you may have more than one
generation of a file, especially if you
set the FILE GENERATION-RETENTION COUNT
to a number greater than one. The
system always assumes that the most
recent file is the one with the highest
generation number. If you create a new
file with a generation number lower than
an existing file with the same file name
and type, you may have trouble saving
and restoring it on tape (refer to the
DUMPER description) or using it with the
LOAD-class commands.
When you do not specify a generation number, the system selects or
assigns one according to these three rules:
1. For creating files- When you create a file, the system gives
the new file a generation number of 1.
When you create a new version of an existing file name and
type, the system adds one to the highest generation number
for that file.
FILE SPECIFICATIONS Page 5-6
2. For reading files- When you type, list, print or copy a file,
the system selects the file with the highest generation
number.
3. For deleting and undeleting files- When you delete or
undelete a file, the system deletes or undeletes all
generations of that file. (Deleting a disk file marks it for
later erasure, undeleting a disk file restores it to normal
status, provided the file is not expunged.)
The above rules do not apply when you specify a particular generation
number. You can give a generation number as a positive integer or a
symbol. There are four symbolic generation numbers; they are
presented in Table 5-3 with an explanation of their meaning.
Table 5-3
Symbolic Generation Numbers
Generation Number Represents
0 the highest existing generation
number.
-1 one greater than the highest
existing generation
number.
-2 the lowest existing generation
number.
-3 or * all existing generations.
For example, if you have five generations of the file
CASE.DAT.1,2,3,4,5, then CASE.DAT.0 specifies CASE.DAT.5; CASE.DAT.-2
specifies CASE.DAT.1, and CASE.DAT.-1 specifies CASE.DAT.6.
Some DECSYSTEM-20 installations limit the number of generations of any
one file you can keep. Thus, if the limit is 3 and you create a
fourth generation of the file, the file with the lowest generation
number of the three is deleted. If you have the files
BRKING.CBL.3,4,5, and you create BRKING.CBL.6, the system deletes the
oldest file (BRKING.CBL.3). The oldest file is always considered to
be the file with the lowest generation number; the most recent file
is considered to be the file with the highest generation number.
If you are using a file with any of the commands and programs listed
in Table 5-2, you cannot include a generation number in your file
specification. The system always uses the highest existing generation
number for files you are reading, or the generation number 1 if you
are creating a file. If you are deleting a file, the system deletes
all generations.
5.7 FILE ATTRIBUTES - ;A, ;P, ;T
The three file attributes can be added to any disk file specification.
The account descriptor of a file takes the form:
FILE SPECIFICATIONS Page 5-7
;Adescriptor
Descriptor is either an account number or an account name. (Refer to
Section 3.2.3.) If you do not specify an account in your file
specification, the system uses the account you specified in your LOGIN
command or your last SET ACCOUNT command.
The file protection number takes the form:
;Pprotection
Protection is a valid TOPS-20 protection number. (Refer to Section
4.1.3.)
A temporary file specification contains the file descriptor ;T and a
generation number of 100000 plus the job number of the job that
created the file. (Refer to Section 4.1.8.) Temporary files are
deleted when you log off the system.
A file attribute never distinguishes one file from another, it merely
defines a certain attribute of the file. For example, if you give the
command:
@DELETE (FILES) *.*.*;T
you would delete ALL your files, not just the temporary files.
If you are using a file with any of the commands and programs listed
in Table 5-2, you cannot include a file attribute at the end of a file
specification.
5.8 SPECIFYING GROUPS OF FILES USING * AND %
You can specify a group of files by including an asterisk or a percent
sign in a file specification. These characters, called wildcard
characters, can be used within a directory name, a file name, or a
file type. You cannot use % in a generation number, but * is
permitted.
Use the asterisk to match any number of characters, including the null
string. Thus, if you give the command:
@DIRECTORY (OF FILES) 4*
<MANUALS>
4.TXT.2
4LANE.INT.12
TOTAL OF 2 FILES
@
The system lists all the filenames beginning with the numeral 4. If
you give the command DIRECTORY (OF FILES) T*L, the system lists all
the file names that begin with the letter T and end with the letter L.
To list all the files that have a file name ending in the letters
STAT, give the command DIRECTORY (OF FILES) *STAT.
FILE SPECIFICATIONS Page 5-8
Use the percent sign to match any single letter. The percent sign
does not match the null string. Thus if you gave the command
DIRECTORY (OF FILES) 4%, the system would list only those with
2-character file names beginning with the numeral 4.
If you are using a file with any of the commands and programs listed
in Table 5-2, you must use a different convention for specifying
groups of files. The * designates a group of file names or file
types, but must either entirely replace the file name or file type, or
occur at the end of the file name or file type. Thus, the
construction TEST* is valid but the construction *TEST is not. If you
want to indicate a single character, use a ? instead of a %.
5.9 SPECIFYING SPECIAL CHARACTERS - CTRL/V
If you need to include a special character, i.e., any character other
than an alphanumeric, -, $, or _, in a file specification, type a
CTRL/V directly before it. This feature is often helpful when you
want to delete files that were created by undebugged user programs.
It is not recommended that you use this feature to create new file
specifications. When you type the CTRL/V, it does not print on your
terminal.
If you are using a file with any one of the commands and programs
listed in Table 5-2, you cannot use the CTRL/V feature.
5.10 TYPING FILE SPECIFICATIONS
There are two methods of typing a file specification: full input and
recognition input. For full input, you type the complete file
specification. If you are using a file with any of the commands and
programs listed in Table 5-2, you must always use full input;
recognition is not available.
Recognition input makes it easier for you to type file specifications.
Two characters make the system recognize file specifications: CTRL/F
recognizes only the current part of the file specification by
completing a directory name, file name, file type, generation number
or the appropriate default, but it will not recognize beyond the
current field. The ESC key recognizes as many subsequent fields as is
possible, including any predetermined defaults. Many commands set up
defaults so that you can press the ESC key at the beginning of a file
specification to cause the system to print the full default file
specification on your terminal. These defaults vary from command to
command and are outlined in the descriptions of the programs and
commands in which they occur.
The system treats generation numbers in two specific ways. When you
are recognizing an existing file, the system always selects the
highest generation number; when you are creating a file and a file
with that same name and type already exists, the system assigns a
generation number one higher than the highest existing generation.
FILE SPECIFICATIONS Page 5-9
For example, suppose you have the files TEST.TXT.4 and TEST.TXT.3 in
your connected directory. The TYPE command recognizes generation
number 4, but the COPY command recognizes generation number 5 for the
destination file.
ESC
@TYPE (FILE) TEST.TXT.4
ESC
@COPY (FROM) NEW.FIL.1 (TO) TEST.TXT.5 !NEW GENERATION!
The following examples show how to use the ESC key and CTRL/F to help
you type a file specification. For the next examples, assume that you
have only these files in your connected directory:
ACCOUN.FOR.2
BACKUP.MEM.1,2
COMPIL.MAC.3
CREF.CBL.6
If you want to try these examples, create 1-line files with the same
file names and types; the generation numbers do not have to be exact.
Try giving the TYPE command using recognition. Type the letters TYPE
and press the ESC key; the system prints (FILE).
@TYPE (FILE)
Identify the file ACCOUN.FOR by typing the letter A and pressing the
ESC key. The system prints as much of the file specification as it
can, which in this case is CCOUN.FOR.2. If you want the file printed
on your terminal, press the RETURN key.
ESC
@TYPE (FILE) ACCOUN.FOR.2
Next, use recognition on the file CREF.CBL. Give the TYPE command,
then type a C and press the ESC key; the system rings your terminal
bell, asking you to type more.
ESC
@TYPE (FILE) C
Type the second character, R, then press the ESC key. The system can
now identify the file you want and print the rest of the file
specification.
ESC
@TYPE (FILE) CREF.CBL.6
Use recognition on the file BACKUP.MEM.1. Give the TYPE command and
type a B, then press the ESC key. The system prints ACKUP.MEM.2, but
we need generation number 1. Type a CTRL/U to erase the command; the
system prints three Xs and cancels the command.
FILE SPECIFICATIONS Page 5-10
ESC CTRL/U
@TYPE (FILE) BACKUP.MEM.2 XXX
@
Give the command again, but this time type a CTRL/F to recognize only
the first field of the file specification.
CTRL/F
@TYPE (FILE) BACKUP.
Type M and type a CTRL/F, the system prints MEM.
CTRL/F
@TYPE (FILE) BACKUP.MEM.
If you now typed a third CTRL/F, the system would recognize generation
number 2. Since you want generation 1, type a 1 and press the RETURN
key.
@TYPE (FILE) BACKUP.MEM.1
Remember two facts when using recognition:
1. You can use recognition on any part of the file specification
except the device name field. If you use a device name, you
must always type the device name in full. If you do not type
a device name, the system uses DSK: (your currently
connected file structure) but does not print it on your
terminal.
2. To use recognition, type part of the component of the file
specification and type either a CTRL/F to recognize the rest
of the field or press the ESC key to recognize the remainder
of the file specification. If you do not type enough to
identify the component of the file specification, the system
requests more by ringing the terminal bell. Type more and
use recognition again.
When you have to type more than one file specification, you can
incorporate recognition input in typing each file specification.
5.11 SEPARATING FILE SPECIFICATIONS WITH COMMAS
Certain commands and programs permit you to give more than one file
specification on a line. Type the file specifications, separating
them with commas. Spaces and tabs can precede and follow commas. An
example of a valid string of file specifications is:
LINE.FOR, SUB2.FOR, PARSE.FOR, CALC.FOR
5.12 LOGICAL NAMES
After learning about device names, directory names, file names, file
types and generation numbers, you know that to access a file that is
not in your directory you have to completely specify its file
specification. Suppose the file is stored in one of a few directories
or on one of several structures, but you are unsure of exactly which
FILE SPECIFICATIONS Page 5-11
one. To locate the file, you could give a command to check each
directory and/or each structure or you could use a logical name.
A logical name defines a list of file specifications and other logical
names and tells the system where and in what order to search for a
file. When you give a command, substitute the logical name for the
device name, then type the file name and type of the file you wish to
access. When the system processes the command, it searches for the
file in the areas specified by your definition of the logical name.
If you are creating a new file using a logical name, the system always
writes the file to the first element in the logical name definition.
If you do not have the proper access privileges for writing, the
command or program fails to create the file.
A logical name can consist of up to 39 alphanumeric characters,
including hyphen, dollar sign, and underline, followed by a colon.
Examples of logical names are FORLIB:, GROUP:, and MINE:. If you are
defining a logical name for a program or command listed in Table 5-2,
the logical name cannot contain the characters -, $, or _ or be more
than six characters in length (not including the colon).
A logical name you define applies to your job only; if the operator
defines a logical name, it can be used by all users and is called a
system logical name. The definition of the system logical name SYS:
will always include the directories that contain the standard system
software.
A logical name definition is a list of file specifications and logical
names separated by commas. For most purposes, structure names,
directory names and system logical names are the most useful to
include in the definition. Some examples of logical name definitions
are:
<FORTRAN-SOURCES>,<FORTRAN-RUN-FILES>,<OLD-FILES>
Which tells the system to look on the currently connected
structure in the directory <FORTRAN-SOURCES>, then in the
directory <FORTRAN-RUN-FILES>, and finally in the directory
<OLD-FILES>. If you are copying files to the logical name
associated with this definition, the files would be placed only
in directory <FORTRAN-SOURCES>.
DSK:,STU:<MURPHY>,STU:<HURLEY>,STU:<MILLER>
Which tells the system to look in the connected directory on the
connected structure, then look on structure STU: in the
directories <MURPHY>, <HURLEY>, <BOSACK>, <MILLER>. Unless you
redefine DSK:, the system always defines DSK: as your connected
structure:<directory>.
<TEST>,<2TEST>,SYS:
Which tells the system to look in <TEST>, then <2TEST> on your
connected structure and finally the logical name SYS:. Unless
you redefine SYS:, the system always defines SYS: as the
directory where all the system programs are kept.
The next section teaches you how to define, print and delete a logical
name. The following sections show some uses of logical names.
FILE SPECIFICATIONS Page 5-12
5.12.1 Defining, Printing And Removing A Logical Name
Give the DEFINE command to associate a definition with a logical name.
The following example shows how to define the logical name TWO: as
the two directories <WYMAN> and <LEWINE> on your connected structure.
@DEFINE (LOGICAL NAME) TWO: (AS) <WYMAN>,<LEWINE>
@
To check on the logical name, give the INFORMATION (ABOUT)
LOGICAL-NAMES command.
@INFORMATION (ABOUT) LOGICAL-NAMES (OF) JOB
TWO: => <WYMAN>,<LEWINE>
@
There are system wide logical names that all users can give without
having to define them for their specific job. To print a list of the
system wide logical names, give the same INFORMATION command, but
substitute the argument SYSTEM for JOB.
@INFORMATION (ABOUT) LOGICAL-NAMES (OF) SYSTEM
SYS: => PS:<SUBSYS>,PS:<NEW>
@
To remove a logical name you have defined, give the DEFINE command,
but do not type any definition. Type DEF, press the ESC key, type the
logical name only, and press the RETURN key. The following example
removes the logical name TWO:.
@DEFINE (LOGICAL NAME) TWO:
@
You can give a system logical name a special definition for your job,
but only the operator can change its definition for the entire system.
5.12.2 Using A Logical Name
Whenever you use a logical name to read a file, the system searches
the entire definition of the logical name until it finds the file or
comes to the end of the logical name definition. For example, if you
have the logical name TWO: defined as <WYMAN>,<LEWINE> and want to
search for the file RUNOFF.MAC from either directory, give the
command:
@DIRECTORY (OF FILES) TWO:RUNOFF.MAC
<LEWINE>
RUNOFF.MAC.1
@
The system looks first in <WYMAN>, then in <LEWINE> where it finds the
file. The DIRECTORY command always prints the name of the directory
and structure (if not the currently connected structure) in which it
finds the file.
FILE SPECIFICATIONS Page 5-13
Whenever you write a file using a logical name, the system uses the
first element of the logical name definition; it never goes past the
first element when writing. Thus, the command:
@COPY (FROM) TEST.FIL.1 (TO) TWO:TEST.FIL.1 !NEW FILE!
will always copy the file to <WYMAN> or give a message telling why it
cannot. The command never copies the file to <LEWINE>.
5.12.2.1 The Logical Name DSK: - The system defines logical name
DSK: as your connected structure:<directory>. Any time a command or
program wants to use a file in your connected directory, it follows
the definition of the logical name DSK: to locate the file. Thus, if
you want to alter the way each system command and program searches for
files, change the definition of the logical name DSK:. The following
type of definition:
@DEFINE (LOGICAL NAME) DSK: (AS) DSK:,<TESTER>
@
is most common and tells the system to search in your connected
directory first; then, if the file is not found, look in the
alternate directory <TESTER> on your connected structure.
NOTE
Make sure you do not inadvertantly leave
out the comma. If you do, DSK: is
defined as DSK:<TESTER> and programs and
commands will look only in this
directory on the connected structure.
When you create files, they are stored in your connected directory or
the first item in your definition of the logical name DSK:.
Another example could be:
@DEFINE (LOGICAL NAME) DSK: (AS) DSK:, ADMIN:<RECORD>, ADMIN:<GENLED>
The system searches your connected structure:<directory> first. Then,
if the file is not found, it looks on structure ADMIN: in directories
<RECORD> and <GENLED>.
5.12.2.2 Library Directories - Redefining the logical name DSK: is
useful if you are creating a new module of a multi-module program.
You can work on the entire program without having a private copy of
the modules you do not change. Suppose that there are four modules:
MOD1.FOR, MOD2.FOR, MOD3.FOR and MOD4.FOR. If you are working on a
new MOD2, but do not want to disturb the library file until yours is
FILE SPECIFICATIONS Page 5-14
debugged, keep your MOD2.FOR in your directory and use the other files
out of the library. Suppose the library directory is <PROJ-MOD>. You
would define DSK: as your connected directory, then the directory
<PROJ-MOD>.
@DEFINE (LOGICAL NAME) DSK: (AS) DSK:,PS:<PROJ-MOD>
@
giving the command:
@EXECUTE (FROM) MOD1,MOD2,MOD3,MOD4
would take the file MOD2.FOR from your directory (as it is the first
directory in the logical name definition of DSK:) and MOD1, MOD3 and
MOD4 from the directory <PROJ-MOD>. Note that all .REL files are
stored in your directory after compilation.
5.12.2.3 The Logical Name SYS: - The system always defines the
logical name SYS: as the directories where all the system programs
are kept. Whenever you type just the name of a program as a command,
the system follows the definition of the logical name SYS: to find
the file.
Suppose you have additional programs that you want to run without
having to type the RUN command. If you redefine the logical name SYS:
to be your connected directory, then the system logical name, you can
run programs from your connected directory without typing a RUN
command. You could define SYS: with the following command.
@DEFINE (LOGICAL NAME) SYS: (AS) DSK:,SYS:
@
Notice that if you try to save a file on the logical name SYS:, that
file will be saved in your connected directory.
CHAPTER 6
CREATING AND EDITING FILES
This chapter contains a brief description of how to use the CREATE and
EDIT commands with the system editor, EDIT. Refer to the EDIT User's
Guide for complete instructions on how to use EDIT.
6.1 CREATING A FILE
To create a file, select a file specification new to your directory
and give it as an argument to the CREATE command. The user in the
next example selects the file specification, FACTOR.MAC.
@CREATE (FILE) FACTOR.MAC
Input: FACTOR.MAC.1
00100
Type CREA and press the ESC key; the system prints TE (FILE). Type
the file specification (here it is FACTOR.MAC), then press the RETURN
key. The system creates a new file with that file specification,
prints Input: followed by the file specification, and prints the line
number 00100. Start typing the contents of your file.
The CREATE command always creates a new generation of the file that
you specify. For instance, suppose you have only the file T.FIL.2 in
your directory and give the command:
@CREATE (FILE) T.FIL
Input: T.FIL.3
00100
The system lets you input the file T.FIL.3. If the FILE
GENERATION-RETENTION-COUNT for T.FIL is 1 (you can find out by giving
the FDIRECTORY command), the system deletes T.FIL.2 when you save
T.FIL.3.
In addition, if you try to create an existing generation of a file,
the system actually outputs the result to a new generation of that
file name and type. For example, if you have the file, T.FIL.2, in
your directory and give the command:
@CREATE (FILE) T.FIL.2
Input: T.FIL.2
00100 THIS IS A TEST FILE.
00200 $
*=NAME
T.FIL.3
*E
[T.FIL.3]
@
CREATING AND EDITING FILES Page 6-2
The system remembers that there is already a file with that exact
name, type and generation number, so it creates an output file
specification which is one generation number higher for any file with
that same file name and type. You can print the output file
specification while you are in EDIT by giving the =NAME command, as
indicated in the previous example.
If you try to create a file with a generation number lower than an
existing generation number for a file with the same name and type, the
system actually creates a file with a generation number one larger
than the existing generation. For instance, if you have a file
TEST.FOR.5 and try to create the file TEST.FOR.3, the system saves the
file as TEST.FOR.6, as shown in the following example.
@CREATE (FILE) TEST.FOR.3
Input: TEST.FOR.3
00100 This is the first line in the file.
00200 $
*=NAME
TEST.FOR.6
*E
[TEST.FOR.6]
@
The system saves the file as TEST.FOR.6. If you really need the file
to be TEST.FOR.3, use the RENAME command.
If your FILE GENERATION-RETENTION-COUNT is 1 (as it is unless you give
the proper SET command) and you create a new generation of a file, the
system deletes all but the highest generation of the file. If the
FILE GENERATION-RETENTION-COUNT for TEST.FOR was 1 in the previous
example, the system would delete TEST.FOR.5 when it saved the file
TEST.FOR.6.
After you give a CREATE command, type the contents of your file. If
you make typing mistakes, press the DELETE key to delete one character
at a time; type a CTRL/U to delete the entire current line; or type
a CTRL/W to delete the previous word. These editing characters
operate only on the current line; after pressing the RETURN key, you
must give other EDIT commands to change the contents of a line.
(Refer to the EDIT User's Guide and the EDIT description in Part II of
this manual.)
When you finish entering lines, press the ESC key; the system prints
an *. To save your file, type the letter E and press the RETURN key.
@CREATE (FILE) FACTOR.MAC
Input: FACTOR.MAC.1
00100 This file has one line.
00200 $
*E
[FACTOR.MAC.1]
@
Remember that after pressing the ESC key, the system prints an * and
you can give any sequence of EDIT commands that help prepare your
file.
Each file that you create is kept in your currently connected
directory unless you explicitly specify a different directory in the
CREATE command.
CREATING AND EDITING FILES Page 6-3
6.2 EDITING A FILE
After creating a file, you can change its contents by giving the EDIT
command with the file specification as its argument. The following
example shows how to start editing a file.
@EDIT (FILE) NUMBER.TXT.3 (OUTPUT AS)
Edit: NUMBER.TXT.3
*
If the file you type does not exist, the system prints a message and
allows you to create the file as shown in the previous section.
@EDIT (FILE) T2.FOR
%File not found, Creating New file
Input: T2.FOR.1
00100
If you want to retain the existing copy of your file, but save some
changes in another file, specify a file specification after the guide
words (OUTPUT AS).
@EDIT (FILE) NUMBER.TXT.3 (OUTPUT AS) NUMBER.OUT
Edit: NUMBER TXT.3
*I300
00350 Repeat step 4.
*E
[NUMBER.OUT.1]
@
6.3 EDITING A FILE IN ANOTHER DIRECTORY
If you are editing a file in a directory that you are not connected
to, remember that the edited output file will be placed in your
connected directory. You can place the edited file back in its
original directory only if you specify the directory name (and
structure name, if the directory is on a different structure) after
the prompt (OUTPUT AS). For example, if you are connected to
directory <SMITH> and edit the file TEST.FOR.3 in directory <JONES>
and you do not specify the directory in which the file should be
saved, a new file (if one did not already exist), TEST.FOR.1, is
placed in your connected directory, <SMITH>.
@EDIT (FILE) <JONES>TEST.FOR.3 (OUTPUT AS)
EDIT: <JONES>TEST.FOR.3
*I400
00400 RETURN
00500 $
*E
[TEST.FOR.1]
@
If you had specified the directory <JONES> after the prompt (OUTPUT
AS), the file would have been placed in directory <JONES> as
TEST.FOR.4.
CREATING AND EDITING FILES Page 6-4
@EDIT (FILE) <JONES>TEST.FOR.3 (OUTPUT AS) <JONES>TEST.FOR
EDIT: <JONES>TEST.FOR.3
*D200
1 Lines (00200/1) deleted
*E
[TEST.FOR.4]
@
6.4 RECALLING ARGUMENTS TO CREATE AND EDIT COMMANDS
When you type arguments to a CREATE or EDIT command and that command
successfully starts EDIT, the system remembers those arguments. When
you give a subsequent EDIT or CREATE command, but do not give any
arguments, the system supplies the arguments from the most recent
CREATE or EDIT command. Thus, you can create a file, run another
program, then return to edit the file and not have to retype the
arguments. In the following example, the user creates a file, and
then edits it. The EDIT command uses the arguments the user typed in
the CREATE command.
@CREATE (FILE) LETTER.TXT
Input: LETTER.TXT.1
00100 Century Schoolbook
00200 Helvetica
00300 Times Roman
00400 $
*E
[LETTER.TXT.1]
@EDIT
Edit: LETTER.TXT.1
*I
00400 Grecian
00500 $
*E
[LETTER.TXT.2]
@
When you recall the same file, do not include a generation number in
the file specification. Otherwise, the system always uses that exact
generation and not the highest generation for that file. For example,
if you give the command CREATE (FILE) TEST.FOR.3 and save the file,
your most recent file is TEST.FOR.4. If you give the EDIT command
without any arguments, the system tries to edit the file TEST.FOR.3
and not the most current file TEST.FOR.4. If TEST.FOR.3 exists, the
system uses that file; if it does not exist (as in the following
example), the system allows you to create it.
@EDIT (FILE) TEST.FOR.3
Edit: TEST.FOR.3
*D100
1 Lines (00100/1) deleted
*E
[TEST.FOR.4]
@EDIT
%File not found, Creating New file
Input: TEST.FOR.3
00100
CREATING AND EDITING FILES Page 6-5
To correct this situation, give the EDIT or CREATE command with a file
specification that does not contain a generation number.
CHAPTER 7
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS
7.1 RUNNING SYSTEM PROGRAMS
You can run any one of the system programs provided with the
DECSYSTEM-20 by simply typing the name of the program and pressing the
RETURN key. The following example shows how to start the DUMPER
program.
@DUMPER !Type DUMPER and press the RETURN key.
DUMPER 2(154) !DUMPER starts
DUMPER> !And waits for a command
System programs are stored in the directories associated with the
system logical name SYS:. To get a list of the available programs
give a DIRECTORY command with the argument SYS:. If you want to stop
the printout, type two CTRL/Cs.
@DIRECTORY (OF FILES) SYS:
<SUBSYS>
ACCT20.EXE.5,6
ACCTPR.EXE.4
BATCON.EXE.22
BLIS10.ERR.1
.EXE.1
CHECKD.EXE.2
CHKPNT.EXE.8
CTRL/C
COBDDT.REL.1,2
COBOL.EXE.5,10 ^C...
@
7.2 GIVING COMMANDS TO SYSTEM PROGRAMS
Many system programs respond by printing an asterisk on your terminal.
At that time you can type a command to the program, which performs the
function designated by the command. The general system program
command format is:
output specification(s) = input specification(s) / switch(es)
For example, the FILCOM (for FILe COMparison) program works as
follows:
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-2
@FILCOM
*TRACK.DIF=TRACK1.FOR,TRACK2.FOR/A
%files are different
*^C
@
Type FILCOM and press the RETURN key; the system prints an asterisk.
Now you must type a command to FILCOM. Here the user types
TRACK.DIF=TRACK1.FOR,TRACK2.FOR/A. This command tells FILCOM to
compare TRACK2.FOR against TRACK1.FOR and place a list of the
differences in the file TRACK.DIF. Thus, TRACK1.FOR and TRACK2.FOR
are input files, whereas TRACK.DIF is the output file. Switch /A
instructs FILCOM to consider the files as containing text, rather than
binary data.
None of the programs listed in Table 5-2, allow you to use recognition
on a file specifications or switches. (Refer to Chapter 5 for a
description of the exact file specifications you can type.)
Other system programs respond by printing a prompt that identifies the
program, such as the prompt for the DUMPER program.
@DUMPER
DUMPER 2(154)
DUMPER>
You can use recognition on commands and arguments to these programs.
7.3 GETTING INFORMATION ABOUT SYSTEM PROGRAMS
If you need information about a system program, run the HELP program
by typing the name HELP, a space, an asterisk, then pressing the
RETURN key. The system prints a list of programs for which it can
print helpful information.
@HELP *
HELP IS AVAILABLE FOR THE FOLLOWING:
ALGOL APL BASIC BATCH BATCON BLIS10 COBDDT COBOL
CREF DDT DUMPER EDIT FILCOM FORDDT FORTRA GALAXY
GALNEW HELP ISAM LIBARY LINK LPTSPL MACRO MAKLIB
QUEUE RUNINP RUNOFF SORT SPRINT SYSERR
@
To get help on the FILCOM program, type the word HELP, leave a space,
type the word FILCOM, and press the RETURN key. The system prints
some helpful information.
@HELP FILCOM
FILCOM COMPARES TWO FILES IN EITHER ASCII MODE
OR BINARY DEPENDING UPON SWITCHES OR FILE NAME EXTENSIONS.
ALL STANDARD BINARY EXTENSIONS ARE RECOGNIZED AS BINARY BY DEFAULT.
SWITCHES ARE :-
/A COMPARE IN ASCII MODE
/B ALLOW COMPARE OF BLANK LINES
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-3
/C IGNORE COMMENTS AND SPACING
/E FILE IS IN .EXE FORMAT
/S IGNORE SPACING
/H TYPE THIS HELP TEXT
/#L LOWER LIMIT FOR PARTIAL COMPARE
OR NUMBER OF LINES TO BE MATCHED
( # REPRESENTS AN OCTAL NUMBER)
/#U UPPER LIMIT FOR PARTIAL COMPARE
/Q QUICK COMPARE ONLY, GIVE ERROR MESSAGE IF FILES DIFFER
/U COMPARE IN ASCII UPDATE MODE
/W COMPARE IN WORD MODE BUT DON'T EXPAND FILES
/X EXPAND FILES BEFORE WORD MODE COMPARE
@
7.4 CHANGING SYSTEM PROGRAM DEFAULTS
To automatically override the system default switches for individual
programs you can create a SWITCH.INI option file in your logged-in
directory and place in it commonly used switches for the commands and
programs listed in Table 7-1.
Table 7-1
Commands And Programs That Check SWITCH.INI
EDIT program
PRINT
SUBMIT
The format of the SWITCH.INI file is:
name/switch/switch...
where name is the command or program. Whenever you give one of the
commands or programs in Table 7-1, the system searches your logged-in
directory for a SWITCH.INI file and adds the switches in its
SWITCH.INI line to the command or program you give.
Thus, if you always want to give the /DPY switch (that sets a special
mode for display terminals) when running the EDIT program, create
SWITCH.INI and insert the line:
EDIT/DPY
instead of having to type the command:
@EDIT /DPY (FILE) T.FIL.1 (OUTPUT AS)
you can now give the following command, and EDIT automatically sets
the /DPY switch.
@EDIT (FILE) T.FIL (OUTPUT AS)
If you always want to give the /NOTE switch with print commands, you
could place the following line in SWITCH.INI:
PRINT/NOTE:FLOOR4
Every time you give a PRINT command, the system includes the switch
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-4
/NOTE:FLOOR4.
Your SWITCH.INI file can contain any number of lines. Normally, each
line is preceded by the name of the program or command for which it is
intended. If the switches for a particular program occupy more than
one line, you must place a hyphen at the end of each line that is
continued.
7.5 RUNNING USER PROGRAMS
To run your own executable program, give the RUN command. In the
following example, the user runs the program LESTSQ:
@RUN (PROGRAM) LESTSQ
You can use recognition in typing the file specification.
An executable program is stored in a file with the file type .EXE. An
executable program has already been compiled, loaded and saved. If
you have a program written in a higher level language or assembly
language, refer to Chapter 8 in order to make an executable program
from it.
To run another user's program, give the file specification with the
RUN command:
@RUN (PROGRAM) <SVENSKY>TEST
To achieve the same results, you can also type just the file
specification after the TOPS-20 prompt.
@<SVENSKY>TEST
You must have read and execute access to the file. If you do not have
read access, the system prints:
@RUN (PROGRAM) <SVENSKY>TEST
?Read access required
@
If you do not have access to the directory, the system would print the
message:
@RUN (PROGRAM) <SVENSKY>TEST
?Directory access privileges required
@
7.6 CONTROLLING PROGRAMS AND COMMANDS
The following paragraphs discuss three control characters; CTRL/C,
CTRL/O and CTRL/T. CTRL/C allows you to halt the execution of a
command or program; CTRL/O controls output to your terminal and
CTRL/T allows you to find out if a program is running and its status.
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-5
7.6.1 Typing CTRL/C To Halt Execution
A frustrating situation is to start a program (or command) and not be
able to stop it. If this ever happens to you, type two CTRL/Cs. The
program (or command) stops and returns you to command level.
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-6
@FILCOM
*TEST.DIF=TEST.1,TEST.2
^C
@
At that time, you can give any command that does not change the
contents of memory, for example, the TERMINAL command. When you are
finished, give the CONTINUE command and the program resumes where it
left off. (The CONTINUE command will not continue a TOPS-20 command
that you interrupted.)
@FILCOM
*TEST.DIF=TEST.1,TEST.2
^C
@TERMINAL (MODE IS) PAGE
@CONTINUE
%files are different
*
Some programs (namely BASIC and EDIT) intercept the CTRL/C and do not
return you to TOPS-20 command level. In these special cases, refer to
the description of the particular program to return to command level.
The system does not respond immediately to a single CTRL/C, but waits
for the time when you would normally give input to the program. Thus,
two CTRL/Cs are processed immediately, while a single CTRL/C is
processed at the time you would normally type the next input.
7.6.2 Typing CTRL/O To Stop Output To Your Terminal
To stop just terminal output, type a CTRL/O. The system prints:
^O...
and stops all output to your terminal. Your program (or command)
still executes, but no output appears on your terminal. When the
program (or command) finishes, the system prints the TOPS-20 prompt.
@DIRECTORY (OF FILES) *.FOR
<MILLER>
ARDVRK.FOR.1
BASTST.FOR.3
^O...
@
If you want to resume printing at some later point during the
execution of the same program or command, type another CTRL/O.
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-7
@DIRECTORY (OF FILES) *.CBL
<MILLER>
ANDTST.CBL.6
BEHIND.CBL.2
DEVCHR.CBL.4
^O...
WOBBLE.CBL.3
XTMP.CBL.9
TOTAL OF 34 FILES
@
Each successive pair of CTRL/Os stop and resume terminal output.
7.6.3 Typing CTRL/T To Print The Run Status
To find out if a program is running, type a CTRL/T. The system prints
the state of the program and the amount of system time you used in the
amount of time you have been logged-in.
@RUN (PROGRAM) COBTST
COBOL TEST PROGRAM
RUNNING AT 1230 USED 0:01:22 IN 3:49:20
Typing a CTRL/T does not affect your program, it merely prints
information about it. The information is printed in the form:
status USED CPU-time IN logged-in-time
The status message tells you the status of your program. Some of the
more common status messages are listed in Table 7-2.
Table 7-2
CTRL/T Status Messages
Message Means The Process is:
RUNNING AT pc Running
IO WAIT AT pc Doing input or output
HALT AT pc Stopped
FORK WAIT AT pc Waiting for a process to terminate
SLEEP AT pc Temporarily suspended
pc is the memory location of the current instruction
being executed.
If you have stopped your program by typing a CTRL/C, the system may
precede any of the messages in Table 7-2 with ^C FROM.
If a process has terminated unexpectedly, the CTRL/T message is in the
form:
HALT: reason
where reason can be any one of the messages listed in Table 7-3.
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-8
Table 7-3
Unexpected Process Termination Messages
CHANNEL n INTERRUPT AT pc
There was a software interrupt on channel n when
executing the instruction located at pc.
OVERFLOW AT pc
There was an integer overflow when executing the
instruction at location pc.
FLOATING OVERFLOW AT pc
There was a floating point overflow when
performing a floating point operation at location
pc.
PUSHDOWN OVERFLOW AT pc
There was an overflow during a pushdown stack
operation at location pc.
END-OF-FILE AT pc
There was an unexpected end-of-file encountered
while executing the instruction at location pc.
IO DATA ERROR AT pc
There was an input or output data error when
executing the instruction at location pc.
FILE ERROR 3 INTERRUPT AT pc
FILE ERROR 4 INTERRUPT AT pc
There was a file error while executing the
instruction at location pc.
ILLEGAL MEMORY READ AT pc
ILLEGAL MEMORY WRITE AT pc
ILLEGAL EXECUTE AT pc
There was an illegal attempt to access memory at
location pc.
FORK TERMINATION INTERRUPT AT pc
There was a software interrupt that terminated
another process (fork) while executing the
instruction at location pc.
FILE OR SWAPPING SPACE EXCEEDED AT pc
There was no more room in the system memory or
disk storage while executing the instruction at
location pc.
7.7 RUNNING PROGRAMS WITHOUT DESTROYING MEMORY
Sometimes you may find it useful to run a program without destroying
the contents of memory. This is very useful when a long-running
program finds a file missing as it nears completion. Before running
another program (such as EDIT) to create the file, type two CTRL/Cs
and give a PUSH command to create a new copy of memory and the TOPS-20
command language. You can now run as many programs as you wish. When
you are done, give the POP command to return to the previous memory
and command level. Last, give the CONTINUE command to resume the
execution of your program.
RUNNING SYSTEM PROGRAMS AND OTHER USERS' PROGRAMS Page 7-9
In the following example, the user runs a FORTRAN program. Nearing
completion, it requires a file the user forgot to create. The user
stops the program, gives the PUSH command, creates the file, gives the
POP command, and continues the program.
@EXECUTE (FROM) RANK.FOR !Execute the program
FORTRAN: RANK
LINK: Loading
[LNKXCT RANK Execution]
%FRSOPN File was not found !The file was not found
Unit=1 DSK:NUMBER.DAT/ACCESS=SEQIN/MODE:ASCII
!Enter new file specs. End with
$(ALT)
*^C !Type CTRL/C to stop
@PUSH (COMMAND LEVEL) !Save the program and set up
a new copy of memory
TOPS-20 Command processor 2(154)
@CREATE (FILE) NUMBER.DAT !Create the missing file
INPUT: NUMBER.DAT.1
00100 23461 !Store one number in it.
00200 $
*E !Save the file
[NUMBER.DAT.1]
@POP (COMMAND LEVEL) !Return to the last command level
@CONTINUE !Resume execution
NUMBER.DAT !Type the name of the file
STOP !The program finishes
END OF EXECUTION
CPU TIME: 0.38 ELAPSED TIME: 0.87
EXIT
@
Whenever you need to run a program and do not want to destroy the
current contents of memory, give the PUSH command, run the appropriate
program, give the POP command and continue the first program. Each
PUSH command puts you at an inferior process level. The POP command
returns you to the previous level. You can give as many pairs of the
PUSH and POP commands as you need. If the system cannot execute the
command, it cancels the command and prints the message:
?Insufficient resources available
Wait a minute or two and reissue the command. If you still get
errors, you most likely have given too many PUSH commands without any
intervening POP commands and should give a POP command.
Whenever you give a PUSH command, the contents of memory are saved in
their exact state and cannot be changed until you give a POP command
to return to that level.
CHAPTER 8
PRODUCING AND RUNNING YOUR OWN PROGRAMS
This chapter describes how to prepare and run your own programs. It
is divided into three sections. The first section describes how to
prepare and run a program contained in a single file. The second
section describes how to prepare and run a program that has modules in
more than one file. The last section describes the LOAD-class
commands (COMPILE, LOAD, EXECUTE and DEBUG) that you use in producing
programs.
8.1 PRODUCING A SIMPLE PROGRAM
To produce a simple program:
1. Write the source program in a programming language.
2. Enter the source program into a file.
3. Execute (compile, load and start) the program.
After executing the program for the first time, you will probably want
to eliminate errors by changing the source program and reexecuting it.
If there still are errors, refer to Part II, which describes how to
use the debugging programs COBDDT, FORDDT, and DDT.
8.1.1 Writing The Source Program
The first step is writing the source program. Choose any one of the
programming languages: ALGOL, COBOL, FORTRAN, or MACRO. If you want
to write a program in BASIC, CPL, APL, or any other language that does
not produce an object program (also known as a relocatable binary
program), you must follow the procedure described for that language.
The program used in the following examples asks the user to type a
number, then prints twice that number.
C THIS IS A SMALL FORTRAN PROGRAM
TYPE 101
101 FORMAT (' TYPE A NUMBER: '$)
ACCEPT 102,X
102 FORMAT (F)
Y=2*X
TYPE 103,X,Y
103 FORMAT (' TWO TIMES ',F,' IS ',F)
STOP
END
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-2
8.1.2 Entering The Program Into A File
After writing the program, enter it into a file using EDIT. Choose
the name of the file you want to contain the program, then give the
CREATE command. Use EDIT commands to enter the program correctly into
the file. The following example shows how to enter the previous
FORTRAN program into a file named SMALL.FOR.
@CREATE (FILE) SMALL.FOR
Input: SMALL.FOR.1
00100 C THIS IS A SMALL FORTRAN PROGRAM
00200 TYPE 101
00300 101 FORMAT (' TYPE A NUMBER: '$)
00400 ACCEPT 102,X
00500 102 FORMAT (F)
00600 Y=2*X
00700 TYPE 103,X,Y
00800 103 FORMAT (' TWO TIMES ',F,' IS ',F)
00900 STOP
01000 END
01100 $
*E
[SMALL.FOR.1]
@
8.1.3 Executing The Program
Once you enter the source program into a file, you must do the
following:
1. Compile the source program to produce an object program.
2. Load the object program into memory.
3. Start the program in memory.
The particular compiler or assembler translates the source program,
thereby producing an object program. The LINK program places the
object program in memory, then the START command starts the program.
You do not have to give all these commands to perform the individual
functions. Instead, give the EXECUTE command which performs the
functions collectively. Thus, once you have your program in a file,
give the EXECUTE command to run it.
@EXECUTE (FROM) SMALL.FOR
FORTRAN: SMALL
MAIN.
LINK: Loading
[LNKXCT SMALL Execution]
TYPE A NUMBER: 5
TWO TIMES 5.0000000 IS 10.0000000
STOP
END OF EXECUTION
CPU TIME: 0.11 ELAPSED TIME: 18:05
EXIT
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-3
8.1.4 Debugging The Program
It is possible that your program will not run correctly the first
time. There are two types of errors you may have:
1. Syntax errors
2. Execution errors.
To eliminate syntax errors, examine the line or lines for which the
compiler or assembler prints errors. Decide how to correct the
program, then change the source program and re-execute it. Continue
until your program successfully begins execution. You may find the
DECSYSTEM-20 language manuals helpful in this debugging phase.
If you want to get a listing of your program, give the COMPILE command
with the /LIST switch; the listing file has the same name as your
last source file and outputs directly to the line printer. If you
have a current object program, i.e., you have not changed your source
program since the last COMPILE, LOAD, EXECUTE, or DEBUG command, you
must also include the /COMPILE switch to force the compiler to
retranslate your source file. In the next example, the user forces a
recompilation of his program SMALL and gets a listing.
@COMPILE (FROM) SMALL/LIST/COMPILE
FORTRAN: SMALL
MAIN.
@
If you would like to see where your program is in the output queue on
the line printer, give the PRINT command with no arguments and press
the RETURN key.
@PRINT
OUTPUT QUEUES:
DEV JOB SEQ PRIO LIMIT USER
------ ------ ---- ---- ----- ----------
PLPT0 * SCH1 4514 10 150 HOT
PLPT1 * SMALL 4524 10 26 PORADA
LPT CMAIN 4525 10 23 HARDY
LPT CODGEN 4526 10 23 HARDY
LPT CUTIL 4527 10 23 HARDY
*Job being output now
TOTAL: LPT: 5 jobs; 1150 Pages
@PRINT
The SMALL program is being printed and is the second job listed.
To produce a listing that contains symbolic cross-references, use the
/CREF switch and the CREF program. (Refer to Section 8.2.4 for
further information.)
If you repeatedly edit your file, give a LOAD-class command. You can
save some typing by using the G command to leave EDIT. The G command
saves your file, then gives your last LOAD-class command. In the next
example, the user gives the COMPILE command, edits his file, then
gives the G command to reissue the previous COMPILE command.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-4
@COMPILE (FROM) MORPAY.FOR !The user compiles
FORTRAN: MORPAY !the program
08700 17 TIPE 102,I,FIP,PP,BALANC
?FTNNRC LINE:08700 STATEMENT NOT RECOGNIZED
UNDEFINED LABELS
17
?FTNFTL MAIN. 2 FATAL ERRORS AND NO WARNINGS
@EDIT (FILE) MORPAY.FOR !Fixes the error
Edit: MORPAY.FOR.43
*P8700
08700 17 TIPE 102,I,FIP,PP,BALANC
*STI$TY$8700
08700 17 TYPE 102,I,FIP,PP,BALANC
*G !Gives the G command
!to save the file and
[MORPAY.FOR.44] !give the last LOAD-class
!command
FORTRAN: MORPAY
MAIN.
@
After your program executes, you may find that it does not give the
correct answer to the stated problem. There could be a multitude of
reasons, but there is probably a logical error in your program. An
easy way to correct such an error is to proceed through the program
step by step. The system provides three debugging languages that help
you do this: COBDDT for use with COBOL programs, FORDDT for use with
FORTRAN programs, and DDT for use with most other programs. These
debugging languages allow you to stop at certain points in your
program, examine variables, change the value of variables and continue
at other points in the program. (Refer to the descriptions of these
debuggers in Part II of this manual.)
8.1.5 Saving The Program For Future Use
Once you have debugged the program, load it into memory (using the
LOAD command) and save the loaded program in an .EXE file (using the
SAVE command). Refer to the following example.
@LOAD (FROM) SMALL
LINK: Loading
EXIT
@SAVE (ON FILE)
SMALL.EXE.1 SAVED
@
To run the program, give a RUN command.
@RUN (PROGRAM) SMALL
TYPE A NUMBER: 34
TWO TIMES 34.0000000 IS 68.0000000
STOP
END OF EXECUTION
CPU TIME: 0.12 ELAPSED TIME: 3.00
EXIT
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-5
Using the .EXE file and a RUN command saves the system from
unnecessarily rechecking that the object file is current and loading
it into memory. Eliminating just those two steps noticeably increases
the speed in which your program starts execution and reduces the cost
of the computer time. You should, however, only use an .EXE file when
your program is running correctly.
8.2 PREPARING A MULTI-MODULE PROGRAM
To produce a program that consists of a number of modules, you must:
1. Write the modules in a programming language.
2. Enter the modules into files.
3. Translate the modules, load them into memory, then start the
program.
Some helpful functions are described in the following sections:
1. Producing listings with cross-references to labels
2. Creating and accessing subroutine libraries
3. Saving the program for future use
4. Saving arguments in indirect files
5. Comparing files with the FILCOM program.
8.2.1 Writing The Program Modules
Design the program and write the modules in a programming language.
The FORTRAN program and the two subroutines shown below are used as
examples.
TYPE 101
101 FORMAT (' TYPE TWO NUMBERS: '$)
ACCEPT 102,A,B
102 FORMAT (2F)
CALL ADDEM(A,B)
CALL DIFFER(A,B)
STOP
END
SUBROUTINE ADDEM(A,B)
C = A + B
TYPE 101,C
101 FORMAT (' THE SUM IS: ',F)
RETURN
END
SUBROUTINES DIFFER(A,B)
C = ABS(A - B)
TYPE 101,C
101 FORMAT (' THE DIFFERENCE IS: ',F)
RETURN
END
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-6
8.2.2 Entering The Modules Into Files
Enter each of the modules into a separate file. Using separate files
gives you an advantage in debugging the program. If there is an error
in one module, you do not have to retranslate the other modules, which
would be required if they are all kept in a single file.
In the example, the user enters the modules into the files COMP.FOR,
ADDEM.FOR and DIFFER.FOR.
Create COMP.FOR:
@CREATE (FILE) COMP.FOR
Input: COMP.FOR.1
00100 TYPE 101
00200 101 FORMAT (' TYPE TWO NUMBERS: '$)
00300 ACCEPT 102,A,B
00400 102 FORMAT (2F)
00500 CALL ADDEM(A,B)
00600 CALL DIFFER(A,B)
00700 STOP
00800 END
00900 $
*E !Save it
[COMP.FOR.1]
@
Create ADDEM.FOR:
@CREATE (FILE) ADDEM.FOR
Iput: ADDEM.FOR.1
00100 SUBROUTINE ADDEM(A,B)
00200 C = A + B
00300 TYPE 101,C
00400 101 FORMAT (' THE SUM IS: ',F)
00500 RETURN
00600 END
00700 $
*E
[ADDEM.FOR.1]
@
Create DIFFER.FOR:
@CREATE (FILE) DIFFER.FOR
Iput: DIFFER.FOR.1
00100 SUBROUTINE DIFFER(A,B)
00200 C = ABS(A - B)
00300 TYPE 101,C
00400 101 FORMAT (' THE DIFFERENCE IS: ',F)
00500 RETURN
00600 END
00700 $
*E
[DIFFER.FOR.1]
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-7
8.2.3 Executing The Program
Now run the program by giving the EXECUTE command. The FORTRAN
compiler creates all three object programs, then the LINK program
loads them into memory and starts them. The user types two numbers
and presses the RETURN key.
@EXECUTE (FROM) COMP,ADDEM,DIFFER
FORTRAN: COMP
MAIN.
FORTRAN: ADDEM
ADDEM
FORTRAN: DIFFER
DIFFER
LINK: LOADING
[LNKXCT COMP EXECUTION]
TYPE TWO NUMBERS: 34,56
THE SUM IS: 90.0000000
THE DIFFERENCE IS: 22.0000000
STOP
END OF EXECUTION
CPU TIME: 0.16 ELAPSED TIME: 2.00
EXIT
@
8.2.4 Producing A Cross-reference Listing
Many programs contain numerous modules that are significantly larger
than the previous examples. If you want to find the place where a
variable is defined or used, it is somewhat tedious to search each
module line by line. The system can do this work for you by creating
a cross-reference listing that you can print on the line printer.
The cross-reference listing tells where each variable is defined and
used. The listing also locates each use of global variables (but only
if you have designated them as such in your source programs) and
monitor calls.
The CREF (for Cross-REFerence) program produces the listing. To use
the CREF program, you must give the /CREF switch along with a
LOAD-class command that translates your source program. After the
program is translated, your directory will contain a .CRF file in
addition to your .REL file. Thus, if you have the file TEST.FOR and
give the command:
@COMPILE (FROM) /CREF TEST
your directory will contain the files TEST.FOR, TEST.REL and TEST.CRF.
The .CRF file contains information for the CREF program. When you are
ready to produce the listing, give the CREF command. The CREF program
produces listings for all the .CRF files in your connected directory
that were created since you logged in. The program sends the listings
directly to the line printer. In the following example, the user
produces a cross-reference listing for the COMP, ADDEM, and DIFFER
programs.
@EXECUTE (FROM) /CREF COMP,ADDEM,DIFFER !Include /CREF
FORTRAN: COMP
MAIN.
FORTRAN: ADDEM
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-8
ADDEM
FORTRAN: DIFFER
DIFFER
LINK: Loading
[LNKXCT COMP EXECUTION]
TYPE TWO NUMBERS: 34,56
THE SUM IS: 90.0000000
THE DIFFERENCE IS: 22.0000000
STOP
END OF EXECUTION
CPU TIME: 0.15 ELAPSED TIME: 1.52
EXIT
@CREF !Then run CREF
CREF: COMP
CREF: ADDEM
CREF: DIFFER
@
If you already have object files for the programs, give the COMPILE
command with the /CREF, /NOBINARY, and /COMPILE switches. The system
produces just the .CRF file without producing an object program.
The user in the next example produces only cross-reference listings:
@COMPILE (FROM) /CREF /NOBINARY /COMPILE COMP,ADDEM,DIFFER
FORTRAN: COMP
MAIN.
FORTRAN: ADDEM
ADDEM
FORTRAN: DIFFER
DIFFER
@CREF
CREF: COMP
CREF: ADDEM
CREF: DIFFER
@
If you have a COBOL program, the /CREF switch causes the
cross-references to get put directly in the listing file; you do not
need to run the CREF program.
8.2.5 Using Subroutine Libraries
If you have a set of frequently used subroutines, rather than keeping
the object files separate, it is easier to group them in a single
object file called a library file. Then when you give a LOAD-class
command, all you have to type is the one library file specification
instead of a list of subroutine file specifications. In addition, it
is simpler to keep track of one file, especially if a group of users
is sharing the subroutines.
For example, if you have the subroutines OPREAD, OPWRIT, CLREAD, and
CLWRIT, which may be called by the main program WRITER, your
LOAD-class command would be:
@LOAD (FROM) WRITER,OPREAD,OPWRIT,CLREAD,CLWRIT
If you place the four subroutines in a library, DOFILE, your command
is shortened to:
@LOAD (FROM) WRITER,DOFILE/LIBRARY
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-9
The /LIBRARY switch causes the system to load only those subroutines
that are actually called. If you use the library file and the
/LIBRARY switch, after writing a main program that calls the
subroutines, you do not have to remember which subroutines the program
calls to include the proper file specifications in the LOAD-class
command.
A library file is produced by separately compiling the subroutines,
then running the MAKLIB program to construct the library file. If you
have to modify any one of the library files, edit the source file,
recompile, and use MAKLIB to replace the subroutine in the library
file.
The following sections show how you might create a library containing
four subroutines, use the library, change a subroutine, then replace
the old subroutine in the library with the new one. The user has four
subroutines: OPREAD, OPWRIT, CLREAD, and CLWRIT, which are entered
into files, compiled, and then stored in the library, DOFILE. The
user then creates his main program, WRITER, and uses the library.
After he uses the library, one of the subroutines is changed and
replaced in the library.
8.2.5.1 Entering The Subroutines Into Files - Enter the subroutines
into separate files.
@CREATE (FILE) OPREAD.FOR
Input: OPREAD.FOR.1
00100 C OPREAD - OPENS A FILE FOR READING
00200 SUBROUTINE OPREAD(NAME)
00300 DOUBLE PRECISION NAME
00400 OPEN(UNIT=1,ACCESS='SEQIN',FILE=NAME)
00500 RETURN
00600 END
00700 $
*E
[OPREAD.FOR.1]
@
@CREATE (FILE) OPWRIT.FOR
Input: OPWRIT.FOR.1
00100 C OPWRIT - OPENS A FILE FOR WRITING
00200 SUBROUTINE OPWRIT(NAME)
00300 DOUBLE PRECISION NAME
00400 OPEN(UNIT=1,ACCESS='SEQOUT',FILE=NAME)
00500 RETURN
00600 END
00700 $
*E
[OPWRIT.FOR.1]
@
@CREATE (FILE) CLREAD.FOR
Input: CLREAD.FOR.1
00100 C CLREAD - CLOSES OPENED FOR READING
00200 SUBROUTINE CLREAD(NAME)
00300 DOUBLE PRECISION NAME
00400 CLOSE(UNIT=1,ACCESS='SEQIN',FILE=NAME)
00500 RETURN
00600 END
00700 $
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-10
*E
[CLREAD.FOR.1]
@
@CREATE (FILE) CLWRIT.FOR
Input: CLWRIT.FOR.1
00100 C CLWRIT - CLOSES A FILE OPENED FOR WRITING
00200 SUBROUTINE CLWRIT(NAME)
00300 DOUBLE PRECISION NAME
00400 CLOSE(UNIT=21,ACCESS-'SEQOUT',FILE=NAME)
00500 RETURN
00600 END
00700 $
*E
[CLWRIT.FOR.1]
@
8.2.5.2 Compiling The Subroutines - After entering the subroutines
into files, compile them to produce four separate object files.
@COMPILE (FROM) OPREAD,OPWRIT,CLREAD,CLWRIT
FORTRAN: OPREAD
OPREAD
FORTRAN: OPWRIT
OPWRIT
FORTRAN: CLREAD
CLREAD
FORTRAN: CLWRIT
CLWRIT
@
8.2.5.3 Creating The Library File - Create the library file by
running the MAKLIB program. After starting MAKLIB, type the name of
the library file followed by an equal sign. Then, type the name of
each object file followed by the /APPEND switch (which you may
abbreviate as /APP.).
@MAKLIB
*DOFILE=OPREAD/APPEND,OPWRIT/APPEND,CLREAD/APPEND,CLWRIT/APPEND
*
Once the library file is created, list its contents on your terminal
by giving a MAKLIB command with the /LIST switch. The following
command lists the contents of the DOFILE library. The first number
following the subroutine name is the highest relocatable address it
occupies and the second number indicates its length; both numbers are
octal.
*TTY:DOFILE/LIST
Listing of Modules
Produced by MAKLIB Version 2(20) on 22-Mar-77 at 12:07:23
**************************
File: DSK:DOFILE.REL[4,105]
OPREAD 400020 000007
OPWRIT 400020 000010
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-11
CLREAD 400020 000007
CLWRIT 400020 000010
*
To end MAKLIB, type a CTRL/C.
*^C
@
8.2.5.4 Using The Library File - To use the library file, create a
main program that uses the subroutines and load them all into memory.
Notice that the WRITER program in the following example does not use
all the subroutines. When you give the LOAD command with the /LIBRARY
switch, the system will load only the two subroutines that are called
(OPWRIT and CLWRIT).
@CREATE (FILE) WRITER.FOR
Input: WRITER.FOR.1
00100 DOUBLE PRECISION NAME,DAY
00200 CALL DATE(DAY)
00300 CALL OPWRIT('DATE.FIL')
00400 TYPE 101,DAY
00500 101 FORMAT (' UPDATING AS OF: ',A10)
00600 WRITE (21,102) DAY
00700 102 FORMAT ('=> UPDATED ON: ', A10)
00800 CALL CLWRIT('DATE.FIL')
00900 STOP
01000 END
01100 $
*E
[WRITER.FOR.1]
@
After entering the main program, load it with the library file and
start it. Remember to include the /LIBRARY switch.
@LOAD (FROM) WRITER,DOFILE/LIBRARY
FORTRAN: WRITER
MAIN.
LINK: Loading
EXIT
@START
UPDATING AS OF: 22-Mar-77
STOP
END OF EXECUTION
CPU TIME: 0.41 ELAPSED TIME: 1.33
EXIT
@
8.2.5.5 Changing A Subroutine In The Library - To change a
subroutine in the library, edit the source file, recompile the
subroutine and use MAKLIB to update the library file.
@EDIT (FILE) OPWRIT.FOR
EDIT: OPWRIT.FOR.1
*I450!2
00450 TYPE 101,NAME
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-12
00470 101 FORMAT (' [',A10,' OPENED]')
00490 $
*E
[OPWRIT.FOR.2]
@
After editing the file, compile a new object file.
@COMPILE (FROM) OPWRIT.FOR
FORTRAN: OPWRIT
OPWRIT
@
Now, run the MAKLIB program. First, check the contents of the library
file.
@MAKLIB
*TTY:=DOFILE/LIST
Listing of Modules
Produced by MAKLIB Version 2(20) on 22-Mar-77 at 12:31:25
**************************
File: DSK:DOFILE.REL[4,105]
OPREAD 400020 000007
OPWRIT 400020 000010
CLREAD 400020 000007
CLWRIT 400020 000010
*
Second, update the library file. Type the name of the new library
file followed by an equal sign. Type the name of the library file you
want to update and the /MASTER: switch. After /MASTER: type the
name of the subroutine you are replacing and a comma. Last, type the
name of the new subroutine and the /REPLACE switch. Press the RETURN
key. When the update is complete, the system prints an asterisk.
*DOFILE=DOFILE/MASTER:OPWRIT,OPWRIT/REPLACE
*
Check the new library to assure that the new subroutine is included.
As you can see, the length of the OPWRIT subroutine has changed to
include the additional statements.
*TTY:=DOFILE/LIST
Listing of Modules
Produced by MAKLIB Version 2(20) on 22-Mar-77 at 12:38:03
***************************
File: DSK:DOFILE.REL[4,105]
OPREAD 400020 000007
OPWRIT 400035 000015
CLREAD 400020 000007
CLWRIT 400020 000010
*^C
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-13
Load the main program with the new library. Notice that you do not
have to recompile the main program or any of the other subroutines to
change OPWRIT. After loading the program, save it for future use,
then start the program.
@LOAD (FROM) WRITER,DOFILE/LIBRARY
LINK: Loading
EXIT
@SAVE
WRITER.EXE.1 SAVED
@START
[DATE.FIL OPENED]
UPDATING AS OF: 22-Mar-77
STOP
END OF EXECUTION
CPU TIME: 0.43 ELAPSED TIME: 1.86
EXIT
@
Refer to the description of the MAKLIB program for more information
about creating and updating library files.
8.2.6 Saving The Program For Future Use
The most efficient way to save a program for future use is to save the
executable program.
In the next example, the user loads his main program and the library
file. Instead of loading all four subroutines in DOFILE, the system
loads only the two that the program actually uses (OPWRIT and CLWRIT).
@LOAD (FROM) WRITER,DOFILE/LIBRARY
LINK: Loading
EXIT
@
Give the SAVE command to save the program, then start it by giving the
START command. To use the program later, give the RUN command.
@SAVE
WRITER.EXE.1 Saved
@START
[DATE.FIL OPENED]
UPDATING AS OF: 22-Mar-77
STOP
END OF EXECUTION
CPU TIME: 0.45 ELAPSED TIME: 2.68
EXIT
@
8.2.7 Saving Arguments In Indirect Files
You may find it convenient to store the complex arguments of a
LOAD-class command in a file called an indirect file. Later, in
giving the LOAD-class command, just specify the file where the
arguments are stored instead of typing the entire line.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-14
If you give the indirect command file a file type of .CMD, you do not
have to include a file type when giving its file specification. The
following example shows how to create a command file that will compile
the four subroutines.
@CREATE (FILE) D.CMD
Input: D.CMD.1
00100 OPREAD,OPWRIT,CLREAD,CLWRIT
00200 $
*E
[D.CMD.1]
@
To use the file in a LOAD-class command, precede it with an @. You
may use recognition in typing the file specification. If you do not
give a file type, the system uses file type .CMD (or a null file type
if there is no file type .CMD).
@COMPILE (FROM ) @D
FORTRAN: OPREAD
OPREAD
FORTRAN: OPWRIT
OPWRIT
FORTRAN: CLREAD
CLREAD
FORTRAN: CLWRIT
CLWRIT
@
The following example shows the indirect file you may use to create
the program WRITER.
@CREATE (FILE) W.CMD
Input: W.CMD.1
00100 WRITER.FOR,DOFILE.REL/LIBRARY
00200 $
*E
[W.CMD.1]
@LOAD (FROM) @W
FORTRAN: WRITER
MAIN.
LINK: Loading
EXIT
@
8.2.8 Comparing Changes In Files
Many times it is useful to view just the differences between two files
without comparing them visually line by line. The FILCOM program
(described in PART II) makes the comparison and outputs the
differences.
To run the FILCOM program, type FILCOM and press the RETURN key; the
system prints an asterisk. You must now type a FILCOM command in the
form:
*output file = reference file, new file /switches
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-15
The output file is the file that contains the differences. It can be
a file or your terminal (TTY:) The reference file is the file that
will be listed first in the list of differences, and the new file is
the file that will be listed second. The list of switches specifies
any special parameters for properly performing the comparison.
First, change one line in the file WRITER.FOR and save the new file in
UPDATE.FOR.
@EDIT (FILE) WRITER.FOR.1 (OUTPUT AS) UPDATE.FOR
Edit: WRITER.FOR.1
*F=>$
00700 102 FORMAT ('=> UPDATED ON: ', A10)
*SUPDATED$ADDED NEW DATA$.
00700 102 FORMAT ('=> ADDED NEW DATA ON: ', A10)
*E
[UPDATE.FOR.1]
@
There are now two files: WRITER.FOR, which contains the original
line, and UPDATE.FOR, which contains the modified line. The next
example shows how to compare the two files and output the differences
to your terminal. The /A switch instructs FILCOM to compare the files
as if they contained ASCII text (rather than binary information).
Type a CTRL/C to end FILCOM.
@FILCOM !Start FILCOM
*TTY:=WRITER.FOR,UPDATE.FOR/A !Type the command
FILE 1) DSK:WRITER.FOR CREATED: 1554 2-JAN-1976
FILE 2) DSK:UPDATE.FOR CREATED: 1556 24-JAN-1976
1)1 00700 102 FORMAT ('=> UPDATED ON: ', A10)
1) 00800 CALL CLWRIT('DATE.FIL')
****
2)1 00700 102 FORMAT ('=> ADDED NEW DATA ON: ', A10)
2) 00800 CALL CLWRIT('DATE.FIL')
**************
%files are different
*^C !Type a CTRL/C to
@ !end FILCOM
8.3 THE LOAD-CLASS COMMANDS (COMPILE, LOAD, EXECUTE, DEBUG)
The LOAD-class commands help you produce programs easily and
correctly. The four commands perform all the functions you need to
compile (or assemble) and debug a program:
COMPILE The COMPILE command produces an object program from a
source program.
LOAD The LOAD command produces an object program, then loads
it into memory.
EXECUTE The EXECUTE command produces an object program, loads
it into memory, then starts its execution.
DEBUG The DEBUG command produces an object program, loads it
and the appropriate debugging program into memory, then
starts execution of the debugging program.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-16
If you repeatedly edit your file and then give a LOAD-class command,
you can save some typing by using the G command to leave EDIT. The G
command saves your file and gives your last LOAD-class command. In
the next example, the user gives the COMPILE command, edits his file,
and gives the G command to reissue the previous COMPILE command.
@COMPILE (FROM) MORPAY.FOR !The user compiles
FORTRAN: MORPAY !the program
08700 17 TIPE 102,I,FIP,PP,BALANC
?FTNNRC LINE:08700 STATEMENT NOT RECOGNIZED
UNDEFINED LABELS
17
?FTNFTL MAIN. 2 FATAL ERRORS AND NO WARNINGS
@EDIT (FILE) MORPAY.FOR !Fix the error
Edit: MORPAY.FOR.43
*P8700
08700 17 TIPE 102,I,FIP,PP,BALANC !Examine the error
*STI$TY$8700
08700 17 TYPE 102,I,FIP,PP,BALANC !Fix the error
*g !give the G command
!to save the file and
[MORPAY.FOR.44] !give the last LOAD-class
!command
FORTRAN: MORPAY
MAIN.
@
In addition to the functions listed above, the LOAD-class commands
perform some helpful and timesaving functions by:
1. Recognizing the programming language in which you write your
program(s)
2. Reproducing only out-of-date object programs
3. Recalling arguments of the last LOAD-class command when you
omit the arguments to a current command
4. Taking arguments from an indirect file
5. Appending files to produce one source program
6. Passing switches to the LINK program
7. Specifying special actions with switches.
Some useful ways you can use these features are described in the rest
of this chapter.
The next section describes object programs and their use. You may
skip this section, but the information is valuable in understanding
the flexibility that relocatable programs provide.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-17
8.3.1 Object (Relocatable) And Executable Programs
The main function of any LOAD-class command is to produce an object
program. (Refer to Figure 8-1.) The source program is stored in a
source file with a file type that indicates the programming language.
(Table 8-1 contains file specifications listing the standard file
types.) By compiling the source program, you produce the object
program stored in an object file having a file name the same as the
source file name. The object program is relocatable, which means you
can load it into memory with subroutines, or as a subroutine, without
recompiling. Hence, the object file has a file type of .REL (for
relocatable) and is often called a .REL file. To run the program, you
must load the object program into memory. At that time, the various
subroutines and main programs are linked together. The loaded program
is now executable; it may be saved in a disk file with the same name
as the source program and the file type .EXE (for executable).
Source file= name.typ
Source program
Compiling (or assembling)
Object file= name.REL
Object program
Loading
Memory
Executable program
Saving
Executable file= name.EXE
Executable program
Figure 8-1 Source, Object, and Executable Programs
Any program you run is in executable form. To form an executable
program, you must translate the source program, then load the object
program into memory. After you have the executable program in memory,
you can save it for future use or start its execution.
In creating an executable program, you must go through the process of
translating and loading. Should you use the same subroutine in more
than one program, you can reuse the object program when loading the
modules into memory. By eliminating the needless translation, you
save both time and computer charges.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-18
8.3.1.1 Using Relocatable Object Programs - Once you translate a
source program into an object program, you may load that object
program into memory with any combination of cooperating programs and
produce an executable program. (The word program, as it is used here,
refers to both main programs and subroutines.)
The next examples show how to use the FILLER subroutine in three
different programs, without having to recompile it each time.
In the first example, FILLER is used with the main program, TESTER.
To run TESTER, give the command:
@EXECUTE (FROM) TESTER,FILLER
The system compiles TESTER and FILLER, loads them into memory, then
starts the execution of TESTER.
The second program, LAYOUT also has another subroutine, TTYOUT, which
you must include in the EXECUTE command.
@EXECUTE (FROM) LAYOUT,FILLER,TTYOUT
The third program, GAMMA, has a POLAR subroutine that is included in
the EXECUTE command.
@EXECUTE (FROM) GAMMA,POLAR,FILLER
When typing the file specifications, you do not have to place them in
any specific order; the system takes their position into account when
producing the absolute symbols. The main program is usually placed
first to make it easier for other users to identify.
8.3.1.2 Saving Executable Programs - If you run the LAYOUT program
often, it is senseless to constantly reload the same object program to
produce the executable program. You can save the executable program
by giving a SAVE command after a LOAD command. Then, to run the
program, all you have to do is give the RUN command or identify the
program by its complete file specification. Saving and running the
executable program saves you and the system both time and effort.
Refer to the following example:
@LOAD (FROM) LAYOUT,TTYOUT,FILLER !Load the object file
LINK: Loading
EXIT
@SAVE !Save the executable
program
LAYOUT.EXE.3 SAVED
@RUN (PROGRAM) LAYOUT !Now you can run it
Start the layout at point: 45
The layout is complete,
Processed 34 angles
Processed 35 sides
With an error of 1 foot in 45,000.
STOP
END OF EXECUTION
CPU TIME: 0.08 ELAPSED TIME: 1.00
EXIT
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-19
Never save a program after you have already started it; some storage
areas may not get properly cleared during restarting.
8.3.2 Selecting A File And Recognizing The Programming Language
When you give a file name as an argument to a LOAD-class command, you
do not have to include a file type. (Do not include the period at the
end of the file name either.) For example, you can give the command:
@COMPILE (FROM) REDUND
FORTRAN: REDUND
MAIN.
@
The system found the file REDUND.FOR and compiled it using FORTRAN.
The file type .FOR tells the system that the file contains a FORTRAN
program and should be compiled using FORTRAN.
Whenever you do not include a file type in a LOAD-class command, the
system searches for a file specification matching the first file
specification in Table 8-1. If there is no matching file
specification, the system searches for a match of the second file
specification. If there is none, the system continues the search in
this manner until it finds a file specification matching one in Table
8-1, or until it reaches the end of Table 8-1. If there is no
matching file, the system prints an error message.
Upon finding a matching file, the system (if necessary) compiles it
using the language specified by the file type. For example, if the
file type is .CBL, the system uses the COBOL compiler. If there is no
file type, or if the file type is not in one of the file
specifications in Table 8-1, the system uses the FORTRAN compiler.
Table 8-1
LOAD-class Command Standard File Specifications
File Specification Language Translator
name. FORTRAN (default)
name.FOR FORTRAN
name.MAC MACRO
name.CBL COBOL
name.ALG ALGOL
name.REL Object program, do not
translate
For example, if you type the file name BIRCH, the system looks for
BIRCH., BIRCH.FOR, BIRCH.MAC, BIRCH.CBL, BIRCH.ALG, and finally
BIRCH.REL. If none of those files exists, the system prints the
message: %SOURCE FILE MISSING - BIRCH. Suppose that BIRCH.CBL
exists; the system would then compile BIRCH.CBL using COBOL.
Notice that if you have the files BIRCH.CBL and BIRCH.MAC and give a
LOAD-class command listing the name BIRCH, the system uses the file
BIRCH.MAC. If you also have the file BIRCH..1, the system uses it
before using BIRCH.MAC. If BIRCH..1 needed compiling, the system
would use the FORTRAN compiler.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-20
8.3.2.1 Using Non-standard File Types - If you include a file type
in your file specification, the system examines the file type to
select the proper translator. If the file type is not one of the
standard file types shown in Table 8-1, the system uses the FORTRAN
compiler.
@COMPILE (FROM) TEST.REF
FORTRAN: TEST
MAIN.
@
If you want to use a non-standard file type on a Non-FORTRAN program,
include one of the compiler switches after the file specification.
@COMPILE (FROM) ENABLE.MON/MACRO
MACRO: ENABLE
@
8.3.2.2 Using The File Type .REL - If you want to use a particular
object file, type the file name and the file type .REL. The system
does not attempt to compile this file; therefore, it just loads it
into memory.
@LOAD (FROM) START.REL
LINK: Loading
EXIT
@
If you have an object program stored in a file with a file type other
than .REL (this is highly discouraged), include the /RELOCATABLE
switch after the file specification. Otherwise, the system attempts
to compile the object program as a source program.
@LOAD (FROM) MIDDLE.OBJ/RELOCATABLE
LINK: Loading
EXIT
@
8.3.2.3 Examples - If you have the file TRYIT.FOR.1 and you give the
command;
@EXECUTE (FROM) TRYIT
the system uses the file TRYIT.FOR.1. If you have the files
NXTONE.MAC and NXTONE.CBL, and give the command;
@EXECUTE (FROM) NXTONE
The system searches Table 8-1 and finds .MAC before .CBL. Therefore,
the system uses the file NXTONE.MAC.
If you have the files TABLE and TABLE.FOR, and give the command:
@EXECUTE (FROM) TABLE
the system uses the file TABLE as the source program and compiles it
with FORTRAN (as default).
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-21
8.3.3 Reproducing Only Out-of-date Object Programs
Whenever you give a LOAD-class command that requires a .REL file, the
system compiles an object program only if one of the following occurs:
1. There is no existing .REL file with the same file name.
2. The .REL file is out-of-date (out-of-date means that the .REL
file is older than the corresponding source file).
3. You give a /COMPILE switch to the LOAD-class command.
For example, when you give the command:
@EXECUTE (FROM) KLOPG.ALG
the system looks for the file KLOPG.REL. If that file exists and was
written after KLOPG.ALG, the system does not reproduce KLOPG.REL. If
KLOPG.REL is out of date, the system recompiles KLOPG.ALG before
executing the command.
You will find this feature very useful when you produce programs with
more than one module. When debugging, you can make a change and not
have to modify the command you give. For instance, if you have two
files, COMPUT.CBL and the subroutine KG.MAC, you can give the command:
@LOAD (FROM) COMPUT,KG
COBOL: MAIN [COMPUT.CBL]
MACRO: KG
LINK: Loading
EXIT
@
The system compiles the COBOL program, assembles the MACRO program and
loads them both into memory. If you find a bug in the subroutine KG
and edit KG.MAC, you can then give the command:
@LOAD (FROM) COMPUT,KG
MACRO: KG
LINK: Loading
EXIT
@
Because COMPUT.REL is current, the system does not recompile it and
reassembles just KG.MAC, then loads them both into memory. The system
has saved you the time and cost of needless compilations.
If you do not want to compile a source (even if the object file is out
of date), include the /RELOCATABLE switch after the file. If in the
previous example you gave the /RELOCATABLE switch, the system would
not have reassembled KG.
@LOAD (FROM) COMPUT,KG/RELOCATABLE
LINK: Loading
EXIT
@
The /RELOCATABLE switch is useful when you are debugging. You can
find a bug, fix it in the source, re-execute the program, and find
another bug. When you have enough changes, you can retranslate.
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-22
8.3.4 Recalling Arguments To LOAD-class Commands
Whenever you omit the arguments to a LOAD-class command, the system
supplies the arguments you specified in the last LOAD-class command
containing a file specification or LINK switch. For instance, suppose
you give the following sequence of commands:
@COMPILE (FROM) TEST.FOR,SUB1.FOR
.
.
@EXECUTE (FROM)
The COMPILE command stores its arguments; then, when you omit the
arguments to the EXECUTE command, the system uses the arguments you
gave to the COMPILE command.
Whenever you give a LOAD-class command, the system saves its arguments
only if it contains a source or object file specification or a LINK
switch (Refer to Section 8.3.7.) Otherwise, the system appends the
saved arguments from a previous command to your current command. The
system does not change the saved arguments to include the contents of
your current command. Suppose you give the command:
@COMPILE (FROM) /CREF/COBOL MANCOB,TTYIN,TTYOUT,LPOUT
then the command:
@LOAD (FROM) /MAP
The arguments from the COMPILE command are appended to the single
switch you gave in the LOAD command. The system really executes the
command:
@LOAD (FROM) /MAP/CREF/COBOL MANCOB,TTYIN,TTYOUT,LPOUT
If your next command is:
@COMPILE (FROM) /COMPILE
the system executes the command:
@COMPILE (FROM) /COMPILE/CREF/COBOL MANCOB,TTYIN,TTYOUT,LPOUT
Notice this command does not include the /MAP switch. The command:
@EXECUTE (FROM) LINER.MAC
would change the saved arguments to just the file specification
LINER.MAC.
If you give a command without a source file specification and there
are no saved arguments to LOAD-class commands, the system prints ?No
saved arguments and cancels the command.
@EXECUTE
?No saved arguments
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-23
8.3.5 Taking Arguments From An Indirect File
Whenever you have a few long commands, you may store them in a disk
file. When you give a LOAD-class command, all you have to type is an
@ and type (or use recognition on) the file specification. Instead of
receiving the arguments directly from your terminal, the system
receives them indirectly from the file. In the previous example, you
could enter the arguments in the file MANCOB.CMD, and use MANCOB.CMD
in your LOAD-class command. The following example shows how to create
and use an indirect file.
@CREATE (FILE) MANCOB.CMD !Create MANCOB.CMD
Input: MANCOB.CMD.1
00100 /MAP/CREF/COBOL MANCOB,TTYIN,TTYOUT,LPOUT
00200 $
*E
[MANCOB.CMD.1]
@LOAD (FROM) @MANCOB.CMD !Use it in a LOAD command
The indirect file can contain any argument to a LOAD-class command,
but do not attempt to use recognition on any file specification or
switch within the indirect file. The indirect file does not have to
contain all the arguments to the particular command; it may contain
just a partial list, but the indirect file must always be the last
argument in the command.
@CREATE (FILE) PARAM.CMD
Input: PARAM.CMD.1
00100 INOUT.MAC,TYPGEN.MAC
00200 $
*E
[PARAM.CMD.1]
@LOAD (FROM) TTYOUT,@PARAM.CMD
MACRO: TTYOUT
MACRO: INOUT
MACRO: TYPGEN
LINK: Loading
EXIT
@
If you have a long command, place each source/object specification on
a separate line; the system treats each new line exactly as it would
a comma. For instance, the arguments from the command:
@LOAD (FROM) T1+T2+T3,T4+T5+T6,T7+T8+T9
could be placed in an indirect file as:
@CREATE (FILE) TARGS.CMD
Input: TARGS.CMD.1
00100 T1+T2+T3
00200 T4+T5+T6
00300 T7+T8+T9
00400 $
*E
[TARGS.CMD.1]
@
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-24
The command could then be given as:
@LOAD (FROM) @TARGS
8.3.6 Appending Files To Produce One Source
Frequently it is useful to combine a parameter definition file or a
small subroutine library with a main program. The + sign appends the
file following it to the file before it to produce one source program.
The next example shows how you might use a + to produce a MACRO
program. The DEFS file contains the parameter definitions and some
storage whereas the PROMPT file contains the main logic of the
program.
@CREATE (FILE) DEFS.MAC !Create the parameter file
Input: DEFS.MAC.1
00100 SEARCH MONSYM,MACSYM
00200 PRMTXT: ASCIZ/NEXT COMMAND>/
00300 T1==1
00400 T2==2
00500 $
*E
[DEFS.MAC.1]
@CREATE (FILE) PROMPT.MAC !Create the main file
Input: PROMPT.MAC.1
00100 TITLE PROMPT
00200 PROMPT: HRROI T1,PRMTXT ;Get address of string
00300 PSOUT ;Print it
00400 HALTF ;Stop
00500 END PROMPT
00600 $
*E
[PROMPT.MAC.1]
@COMPILE (FROM) DEFS+PROMPT !Append into one source
MACRO: PROMPT
@
8.3.7 Passing Switches To The LINK Program
Advanced applications may require intricate control during the loading
of certain object programs. To exercise this control, you may want to
pass switches to the LINK program. (For a list of the valid switches
and a complete description of the LINK program, refer to the LINK
Reference Manual.)
To pass a switch to the LINK program, precede the switch with a
percent sign and enclose the switch in double quotes. The following
command contains the LINK switch EXCLUDE:DEVTYP.
@LOAD (FROM) MANIPL.MAC,SUB1A.MAC%"EXCLUDE:DEVTYP"
PRODUCING AND RUNNING YOUR OWN PROGRAMS Page 8-25
8.3.8 Specifying Special Actions With Switches
There is an assortment of switches that you may type with any
LOAD-class command. These switches are described along with each
LOAD-class command in Part II of this manual.
Many switches have a global effect if you type them before any file
specifications. For instance, the command:
@COMPILE (FROM) /CREF TAB,SIFT,WOB
produces a cross-reference listing for each file and requires
significantly less typing than if you had to type:
@COMPILE (FROM) TAB/CREF,SIFT/CREF,WOB/CREF
It may be easier to set some global switches and turn them off for a
particular file. If you have a list of source files with non-standard
file types that you want to compile with FORTRAN, you might use the
command:
@COMPILE (FROM) /FORTRAN SCHED.R1,ENA.R1,DIS.R1
Now suppose you add the routine MONINT.R1 that is a COBOL file, you
could modify your command as follows:
@LOAD (FROM) /FORTRAN SCHED.R1,ENA.R1,MONINT.R1/COBOL,DIS.R1
As a result of this command, all the files are compiled with FORTRAN
except MONINT.R1, which is compiled with COBOL. The /COBOL switch
located after the file affects only the file it follows.
However, if you add two COBOL programs, MON1 and MON2, your command
would be:
@LOAD (FROM) /FORTRAN SCHED.R1,ENA.R1,DIS.R1,/COBOL MON1.R1,MON2.R1
In that case, you have changed the global /FORTRAN switch to /COBOL,
and each succeeding file is compiled using COBOL.
CHAPTER 9
CONTROLLING YOUR TERMINAL
You can control how your terminal operates. The following sections
describe the basic ways in which a terminal operates and how you
control it by giving the TERMINAL command. The command INFORMATION
(ABOUT) TERMINAL-MODE prints the status of your terminal. (For
detailed instructions about the TERMINAL command, refer to its
description in Part II.)
If you give the same series of TERMINAL commands every time you log
in, place these commands in your LOGIN.CMD file so the system can
automatically give them each time you give the LOGIN command.
9.1 SETTING THE TERMINAL SPEED
Terminals can operate at different speeds, ranging from 10 to 960
characters per second. These speeds are usually stated in baud rates:
10 characters per second is 110 baud; 30 characters per second is 300
baud, etc.
When the system starts, each terminal speed is set at a rate
determined by the system manager. Normally, 300 baud is the slowest
speed at which a line is set. If you want to change the speed of the
line you are using, give the TERMINAL (MODE IS) SPEED baud rate
command. After pressing the RETURN key to end the command, change the
setting on your terminal. You are now ready to operate at the new
speed. Never use a speed greater than 300 baud if you are connected
to the computer via a telephone line.
In the following example, the user sets his terminal speed for input
and output to 2400 baud.
@TERMINAL (MODE IS) SPEED (OF INPUT) 2400 (AND OUTPUT) 2400
@
If you accidentally set an incorrect speed for your terminal and
cannot correct it, contact the operator, give him your terminal line
number, and ask him to set your line to the desired speed.
9.2 DECLARING THE TERMINAL TYPE
Once you have typed the initial CTRL/C, inform the system of the type
of terminal that you are using. The types of terminals the system
recognizes are:
Model 33
Model 35
CONTROLLING YOUR TERMINAL Page 9-2
Model 37
Execuport
LA30
LA36
LA (Execuport)
VT05
VT50
VT52.
After you declare the type of terminal, the system is able to perform
input and output to your terminal in the most efficient manner. The
terminal type specifies the proper values for:
FORMFEED
TAB
Outputting lowercase characters
Padding vertical-spacing characters
Line width
Page length.
If you do not set the correct characteristics for your terminal, you
may notice that the output format is not correct. This is especially
true when you do not declare a terminal type and then operate at high
baud rates (over 300 baud).
You may want to give the INFORMATION (ABOUT) TERMINAL-MODE command to
print the results of a TERMINAL command. In the following example,
the user declares that he has an LA36.
@TERMINAL (MODE IS) LA36
@INFORMATION (ABOUT) TERMINAL-MODE
TERMINAL LA36
TERMINAL SPEED 300
RECEIVE LINKS
REFUSE ADVICE
TERMINAL NO PAGE
TERMINAL LENGTH 66
TERMINAL WIDTH 132
TERMINAL LOWERCASE
TERMINAL RAISE
TERMINAL NO FLAG
TERMINAL NO INDICATE
TERMINAL NO FORMFEED
TERMINAL NO TABS
TERMINAL NO IMMEDIATE
TERMINAL FULLDUPLEX
@
Setting the terminal type changes only the following characteristics:
terminal type, length, width, lowercase, formfeed and tab. Thus, an
LA36 has a page length of 66, a paper width of 132, can print
lowercase characters, does not have a mechanical formfeed and does not
have mechanical tabs. (Refer to the following sections if you want to
change any other terminal parameters.)
9.3 CONTROLLING TERMINAL OUTPUT
You can start and stop terminal output. You can also determine the
length of your terminal page, the treatment of formfeeds, the width of
the line, and treatment of tabs.
CONTROLLING YOUR TERMINAL Page 9-3
9.3.1 Starting And Stopping Terminal Output
If you want to be able to stop output to your terminal without
interrupting the program or command producing the output, and be able
to continue the output, set terminal PAGE mode. After setting
terminal PAGE mode, you can stop the output to your terminal at any
time by typing a CTRL/S, and resume the output by typing a CTRL/Q.
Also, if any command or program produces more output than the current
page length for your terminal, the system automatically stops the
printout and rings the terminal bell. To continue the output, type a
CTRL/Q. This is especially helpful when you are trying to read the
output from a very fast terminal.
The user turns on terminal page mode:
@TERMINAL (MODE IS) PAGE (MODE)
@
You can set the page length by including it as the last argument to
the TERMINAL PAGE command. When you use a positive integer, the
system stops the output to your terminal after it has printed that
many lines; you can then type a CTRL/Q and the output continues. If
you set the page length to 0, the system does not stop printing unless
you type a CTRL/S. In the example below, the user turns on page mode
and sets the page length to 20.
@TERMINAL (MODE IS) PAGE (MODE) 20
@
To turn page mode off, type a NO before PAGE, as shown in the next
example.
@TERMINAL (MODE IS) NO PAGE
@
9.3.2 Printing Formfeeds
When your terminal reaches the end of a page and is supposed to
advance to the top of the next page, i.e., output a formfeed, the
system normally indicates the formfeed by printing a ^L instead of
advancing the paper. If you want to advance to the top of the page,
give the TERMINAL NO INDICATE command.
@TERMINAL (MODE IS) NO INDICATE (FORMFEED)
@
9.3.3 Simulating Formfeeds
If your terminal has a mechanical formfeed, the system can advance to
the top of the page by outputting a formfeed character (CTRL/L). If,
however, your terminal does not have a formfeed mechanism, the system
can simulate a formfeed by outputting the proper number of linefeeds.
To simulate formfeeds in this manner, give the TERMINAL NO FORMFEED
command.
@TERMINAL (MODE IS) NO FORMFEED (EXISTS ON TERMINAL)
@
CONTROLLING YOUR TERMINAL Page 9-4
Now, instead of outputting a formfeed character, the system advances
the correct number of lines according to the page length.
When you declare your terminal type, the system will automatically
simulate formfeeds if required by your terminal.
9.3.4 Setting The Page Length
To tailor the page length to your terminal, give the TERMINAL LENGTH
command. The system uses this page length in determining when to
attempt printing a formfeed, in calculating the number of linefeeds
that will simulate a formfeed, and in automatically stopping terminal
output when you have set TERMINAL PAGE mode. When you set the page
length to 0 and set TERMINAL PAGE, the system stops printing only when
you type a CTRL/S. Notice that by using the TERMINAL LENGTH command,
you can set the page length without setting TERMINAL PAGE mode.
The user sets the page length to 55.
@TERMINAL (MODE IS) LENGTH (OF PAGE IS) 55
@
When you declare your terminal type, the system will automatically set
the correct page length for your terminal, but you must set TERMINAL
PAGE.
9.3.5 Simulating Tab Stops
If your terminal does not have mechanical tab stops, the system can
simulate them by outputting the correct number of spaces. Tab stops
are set every eight columns. If you must simulate tabs, give the
TERMINAL NO TABS command.
@TERMINAL (MODE IS) NO TABS (EXIST ON TERMINAL)
@
When you declare your terminal type, the system will automatically
simulate tab stops, if they are required for your terminal.
9.3.6 Setting The Line Width
If you do not like the default line width, give the TERMINAL WIDTH
command, which sets the width of your terminal line to any desired
value between 8 and 132 inclusive.
@TERMINAL (MODE IS) WIDTH (OF LINE IS) 60
@
If your terminal must print a line greater than its terminal width,
the system automatically continues on a new line when the line width
is exceeded.
When you declare your terminal type, the system will automatically set
the correct line width for your terminal.
CONTROLLING YOUR TERMINAL Page 9-5
9.4 USING UPPERCASE AND LOWERCASE LETTERS
You may control the way the system handles uppercase and lowercase
letters as they are sent to and from your terminal. If you prepare
text files, typing lowercase characters is probably useful; however,
in creating programs, you should make sure that any instructions
contain uppercase characters even though comments can contain
lowercase characters.
The system controls case shifting separately on input and output. The
separate treatment is useful because you may type lowercase letters on
a terminal that can only print uppercase letters. The result is you
may type lowercase letters (which are sent to the system as
lowercase), but they appear on your terminal as uppercase.
9.4.1 Raising Lowercase Letters In Input
The RAISE parameter instructs the system to convert any lowercase
letter you type to the appropriate uppercase letter. Thus, if you
have a program that requires all uppercase letters, give the command
TERMINAL (MODE IS) RAISE to direct the system to raise your lowercase
letters. If you want to restore the capability of typing lowercase
letters, give the command TERMINAL (MODE IS) NO RAISE.
In the example, the user starts typing in lowercase, converts to
uppercase, then returns to lowercase. The example presumes your
terminal can type and print lowercase letters.
@!This is a line in uppercase and lowercase.
@terminal (MODE IS) raise (TERMINAL INPUT)
@!NOW ALL THIS TERMINAL CAN TYPE IS UPPERCASE
@TERMINAL (MODE IS) NO RAISE (TERMINAL INPUT)
@!This is uppercase and lowercase.
9.4.2 Printing Lowercase Letters In Output
Some terminals cannot print lowercase letters. Generally these
terminals print the corresponding uppercase letter whenever the system
tries to print a lowercase letter, but the system is capable of
converting any lowercase letter to the corresponding uppercase letter.
If you want the system to recognize that your terminal can print
lowercase letters, give the command TERMINAL (MODE IS) LOWERCASE.
@TERMINAL (MODE IS) LOWERCASE (EXISTS ON TERMINAL)
@
Now the system will not translate any lowercase letters to uppercase.
If you want the translation, give the command TERMINAL (MODE IS) NO
LOWERCASE (EXISTS ON TERMINAL).
@TERMINAL (MODE IS) NO LOWERCASE (EXISTS ON TERMINAL)
@
If your terminal cannot print lowercase letters and you need to know
which are lowercase and which are uppercase, give the command TERMINAL
(MODE IS) FLAG (UPPERCASE OUTPUT). The system flags each uppercase
letter by printing an apostrophe before it. For flagging to occur,
you must also set TERMINAL (MODE IS) NO LOWERCASE.
@TERMINAL (MODE IS) NO LOWERCASE (EXISTS ON TERMINAL)
CONTROLLING YOUR TERMINAL Page 9-6
@TERMINAL (MODE IS) FLAG (UPPER CASE OUTPUT)
@TYPE (FILE) T.FIL.3
'THIS IS A FILE THAT CONTAINS CAPITAL LETTERS ONLY AT
THE BEGINNING OF SENTENCES AND PROPER NAMES
LIKE 'T'O'P'S-20.
@TERMINAL (MODE IS) LOWERCASE (EXISTS ON TERMINAL)
@TYPE (FILE) T.FIL.3
This is a file that contains capital letters only at
the beginning of sentences and proper names
like TOPS-20.
@
9.4.3 Testing For Lowercase Letters
To find out if you can type lowercase letters on your terminal, first
give the command TERMINAL (MODE IS) LOWERCASE. As a result, the
system will print all lowercase letters without converting them to the
corresponding uppercase letter. Try typing a few words.
@TERMINAL (MODE IS) LOWERCASE (EXISTS ON TERMINAL)
@! This is a test
If your terminal prints lowercase letters (as shown in the above
example), it is capable of typing and printing lowercase letters. If
your terminal prints uppercase letters, the system may be raising
lowercase letters you type to the corresponding uppercase letters.
Give the command TERMINAL (MODE IS) NO RAISE. Try typing again.
@TERMINAL (MODE IS) NO RAISE (TERMINAL INPUT)
@! This is a test
If your terminal still prints uppercase letters, you know that your
terminal cannot print lowercase letters, but it still may be able to
type lowercase letters. Give the commands TERMINAL (MODE IS) NO
LOWERCASE and TERMINAL (MODE IS) FLAG. Try typing a third line.
@TERMINAL (MODE IS) NO LOWERCASE (EXISTS ON TERMINAL)
@TERMINAL (MODE IS) FLAG (UPPERCASE CHARACTERS)
@! 'THIS IS A TEST
CONTROLLING YOUR TERMINAL Page 9-7
If only the uppercase letters you typed are flagged (as shown in the
example above), your terminal can type lowercase letters, but it
prints them as the corresponding uppercase letters.
@TERMINAL (MODE IS) NO LOWERCASE (EXISTS ON TERMINAL)
@TERMINAL (MODE IS) FLAG (UPPERCASE CHARACTERS)
@! 'T'H'I'S 'I'S 'A 'T'E'S'T
If all the letters you type are flagged (as shown in the example
above), your terminal can type only uppercase letters.
9.5 TALKING TO OTHER USERS
If you want to conduct a conversation with another user who is
logged-in to the system, give the TALK command. After the system
prints a message, everything printed on your terminal is also printed
on the other user's terminal and everything printed on the other
user's terminal is printed on your terminal. To terminate a session,
give the BREAK (LINKS) command.
@TALK (TO) HESS
LINK FROM MILLER, TTY 23
@! COULD YOU PLEASE DEASSIGN MTA2:?
@! OK,
@DEASSIGN (DEVICE) MTA2:
@BREAK (LINKS)
@
No matter what one user types, the typing does not affect the other
user's job. For example, if your job is waiting for you to type a
command and another user TALKs to you, the system does not interpret
what he types as the command it is expecting from you.
LINK FROM HESS, TTY 45
@! WHERE IS THE EDIT FILE?
@! IN THE DIRECTORY <MANUALS>
@! TNX
@BREAK (LINKS)
Notice in the example above that the talking did not interfere with
the user's job. If you are running a program and a user TALKS to you,
you should exit from the program by typing two CTRL/Cs. Exiting helps
you avoid giving an erroneous command to your program. Give the
CONTINUE command when you are ready to resume the program. See the
next example.
@FILCOM !The user starts FILCOM
*
LINK FROM PORADA, TTY 22 !Receives a link
@!What time will the repro be ready
@^C !Exits from his program
@!3PM TODAY
@!OK, BYE
@BREAK (LINKS)
CONTINUE !Then continues the program
TTY:=A.SOS,B.SOS/A
(Refer to the TALK and BREAK commands for more information.)
PART II
COMMAND AND PROGRAM DESCRIPTIONS
PART II COMMAND AND PROGRAM DESCRIPTIONS Page II-2
TOPS-20 COMMANDS
In addition to the detailed command and program descriptions, the
following list is provided to briefly explain ALL commands in the
TOPS-20 Command Language. The commands are grouped in categories of
similar use. Although some of these commands have not been described
in this manual, the purpose of this list is to make you aware of the
full extent and capability of the TOPS-20 Command Language.
SYSTEM ACCESS COMMANDS
These commands allow you to gain and relinquish access to the system,
to change your job's account number, and to release and connect
terminals to your job.
ATTACH Connects your terminal to a designated job.
DETACH Disconnects your terminal from the current job
without affecting the job.
DISABLE Returns a privileged user to normal status.
ENABLE Permits privileged users to access and change
confidential system information.
LOGIN Gains access to the TOPS-20 system.
LOGOUT Relinquishes access to the TOPS-20 system.
UNATTACH Disconnects a terminal from a job; it does not
have to be the terminal you are using.
FILE SYSTEM COMMANDS
The file system commands allow you to create and delete files, to
specify where they are to be stored, to copy them, and to output them
on any device.
ACCESS Grants ownership and group rights to a specified
directory.
APPEND Adds information from one or more source files to
an existing disk file.
CLOSE Closes a file or files left open by a program.
CONNECT Removes you from your current directory and
connects you to a specified directory.
COPY Duplicates a source file in a destination file.
CREATE Starts EDIT for making a new file.
DELETE Marks the specified file(s) for eventual deletion
(disk files only) or deletes the specified files
(all other devices).
DEFINE Associates a logical name with one or more file
names.
COMMAND AND PROGRAM DESCRIPTIONS (continued) Page II-3
DIRECTORY Lists the names of files residing in the specified
directory and information relating to those files.
EDIT Starts EDIT for changing an existing file.
EXPUNGE Permanently removes any deleted files from the
disk.
END-ACCESS Relinquishes ownership rights to a specified
directory.
FDIRECTORY Lists all the information about a file or files.
LIST Prints one or more files on the line printer with
or without formatting.
PRINT Lists one or more files on the line printer.
QUEUE Places an entry into or examines a specified
queue, for example, the line printer output queue.
RENAME Changes one or more descriptors of an existing
file specification.
SDISMOUNT Notifies the system that the given structure is no
longer needed.
TDIRECTORY Lists the names of all files in the order of the
date and time they were last written.
SMOUNT Requests that a structure be made available to the
user.
TYPE Types the specified files on your terminal.
SREMOVE Makes a structure unavailable and requests its
removal.
UNDELETE Restores one or more disk files marked for
deletion.
TMOUNT Requests that a magnetic tape be made available to
the user.
VDIRECTORY Lists the names of all files, as well as their
protection, size, and date and time they were last
written.
DEVICE HANDLING COMMANDS
These commands allow you to reserve a device prior to using it, to
manipulate the device, and to release it once it is no longer needed.
ASSIGN Reserves a device for use by your job.
BACKSPACE Moves a magnetic tape drive back any number of
records or files.
DEASSIGN Releases a previously assigned device.
EOF Writes an end-of-file mark on a magnetic tape.
COMMAND AND PROGRAM DESCRIPTIONS (continued) Page II-4
REWIND Positions a magnetic tape backward to its load
point.
SKIP Advances a magnetic tape one or more records or
files.
UNLOAD Rewinds a magnetic tape until the tape is wound
completely on the source reel.
PROGRAM CONTROL COMMANDS
The following commands help you create, run, edit, and debug your own
programs.
COMPILE Translates a source program using the appropriate
compiler.
CONTINUE Resumes execution of a program interrupted by a
CTRL/C.
CREF Runs the CREF program which produces a
cross-reference listing and automatically sends it
to the line printer.
CSAVE Saves the program currently in memory so that it
may be used by giving a RUN command. The program
is saved in a compressed format.
DDT Merges the debugging program, DDT, with the
current program and then starts DDT.
DEBUG Takes a source program, compiles it, loads it with
DDT and starts DDT.
EXECUTE Translates, loads, and begins execution of a
program.
FORK Makes the TOPS-20 language work for a particular
address space.
GET Loads an executable program from the specified
file.
LOAD Translates a program and loads it into memory.
MERGE Loads an executable program into memory and merges
it with the current contents of memory.
POP Stops a copy of the TOPS-20 Command Language and
returns control to the previous copy of the
Command Language.
PUSH Starts a new copy of the TOPS-20 Command Language.
R Runs a system program.
REENTER Starts the program currently in memory at an
alternate entry point specified by the program.
RESET Clears the job to which your terminal is currently
attached.
COMMAND AND PROGRAM DESCRIPTIONS (continued) Page II-5
RUN Loads an executable program from a file and starts
it at the location specified in the program.
SAVE Copies the contents of memory into a file in
executable format. If memory contains a program,
you may now execute the program by giving the RUN
command with the proper file specification.
START Begins execution of a program at the location
specified in the entry vector.
INFORMATION COMMANDS
These commands return information about TOPS-20 commands, your job,
and the system as a whole.
DAYTIME Prints the current date and time of day.
INFORMATION Provides information about your job, files,
memory, errors, system status, and many other
parameters.
SYSTAT Outputs a summary of system users and available
computing resources.
TERMINAL COMMANDS
The terminal commands allow you to declare the characteristics of your
terminal and to control linking to another user's terminal.
ADVISE Sends whatever you type on your terminal as input
to a job connected to another terminal.
BREAK Clears terminal links and advising links.
RECEIVE Allows your terminal to receive links and advice
from other users.
REFUSE Denies links and advice to your terminal.
SET Declares certain action be taken when errors are
detected in TOPS-20 commands.
TAKE Accepts commands from a file, just as if you had
typed its contents on your terminal.
TALK Links two terminals so that each user can observe
what the other user is doing, yet does not affect
the other user's job.
TERMINAL Declares the hardware type of terminal you have,
and lets you inform TOPS-20 of any special
characteristics of the terminal.
COMMAND AND PROGRAM DESCRIPTIONS (continued) Page II-6
BATCH COMMAND
The TOPS-20 system also has a Batch System to which you may submit
jobs for later execution.
SUBMIT Enters a file into the Batch waiting list. When
it is your job's turn, the commands contained in
the file are executed.
ACCESS Command Page II-7
Function
The ACCESS command grants you owner and group privileges to
directories and their files without changing your currently
connected directory.
Hints
Your currently connected directory and structure do not change.
In addition to the owner privileges you are granted for the
directory you are ACCESSing, you are also considered to be a
member of the same groups as the real owner of the directory.
The first time you give an ACCESS command to a directory that is
on a file structure other than the public structure (PS:), you
should give the SMOUNT command before the ACCESS command.
Format
@ACCESS (TO DIRECTORY) dev:<dir> (PASSWORD) password
dev: is the name of the file structure that contains
the directory you are accessing. The ACCESS
command will only accept a file structure name in
the dev: field.
<dir> is the name of the directory you are accessing.
The brackets must be included in directory names.
You can use recognition provided you type the
left-hand-bracket.
password is the user password of the directory you wish to
access. The password is not required if you own
the directory (you own a directory if your
logged-in user name is the same as the directory
name), or if the directory protection allows you
access without giving a password.
Operation
1. Type AC and press the ESC key. The system prints CESS (TO
DIRECTORY).
@ACCESS (TO DIRECTORY)
2. Type the file structure name and a colon. (You do not have
to type the file structure name if the directory you are
accessing is located on your currently connected structure.)
@ACCESS (TO DIRECTORY) ACCTG:
3. Type (or use recognition on) the directory name. Press the
ESC key if you did not use recognition. The system prints
(PASSWORD).
@ACCESS (TO DIRECTORY) ACCTG:<ESTEY> (PASSWORD)
ACCESS Command (continued) Page II-8
4. Type the password and press the RETURN key. (If you own the
directory or if the directory protection gives you the proper
access, you do not have to give a password; just press the
RETURN key.) When the ACCESS command succeeds, the system
prints an @ on your terminal.
@ACCESS (TO DIRECTORY) ACCTG:<ESTEY> (PASSWORD)
@
Errors
1. If you do not enter the correct password, the system pauses
and prints the message:
?INVALID PASSWORD
and cancels the command. You should obtain the correct
password and reissue the command.
2. If you did not give the SMOUNT command before the ACCESS
command and you specify a non-existent file structure or a
file structure that is not on line, the system prints the
message:
?STRUCTURE IS NOT MOUNTED
and cancels the command. Check to see if you entered the
correct structure name first, i.e., spelling. Then, if you
have, give the SMOUNT command to request that the structure
be put on line.
3. If you enter the structure name in an incorrect format, the
system responds:
?INVALID STRUCTURE NAME
Perhaps you have omitted the brackets in the directory name
or the colon after the structure name.
4. If you enter a non-existent directory name, the system prints
the message:
?NO SUCH DIRECTORY
and cancels the command.
5. If you attempt to given an ACCESS command to a files-only
directory, the system responds:
?DIRECTORY IS "FILES-ONLY" AND CANNOT BE LOGGED IN TO
If you require ownership privileges to that directory, use
the CONNECT command.
ACCESS Command (continued) Page II-9
Characteristics
The ACCESS command:
Leaves your terminal at TOPS-20 command level.
Does not change any program in memory.
ACCESS Command (continued) Page II-10
Owner and group privileges gained through the ACCESS command
remain in effect until you log out, the structure is dismounted
or you give the ACCESS command to a different directory on the
same structure.
Restrictions
You can only give the ACCESS command to user directories. If you
require owner access to files-only directories, use the CONNECT
command.
Examples
The user accesses the directory <ESTEY> on his currently
connected structure.
@ACCESS (TO DIRECTORY) <ESTEY>(PASSWORD)
The user accesses directory <SMITH> on file structure ACCTG:. He
types AC, leaves a space, types ACCTG:<SMITH>, leaves a space,
types the password and presses the RETURN key.
@AC ACCTG:<SMITH>
@
The user gives the ACCESS command (with no arguments) to his
connected directory to regain his group privileges for that
directory.
@ACCESS (TO DIRECTORY)
ALGOL Compiler Page II-11
Function
The ALGOL compiler produces object programs from ALGOL source
programs.
Hints
To run an ALGOL program:
1. Enter your source program into a file (by using EDIT).
2. Give the EXECUTE command to compile, load and start the
program.
3. If you plan to execute the program frequently, use the LOAD
command and SAVE command instead of EXECUTE. You can now use
the RUN command, which is faster than EXECUTE, until you EDIT
the program again.
Use the DDT program to debug ALGOL programs.
If you have a main program and assorted subroutines that require
special loading, refer to Section 8.3 which describes the
LOAD-class commands.
Operation
1. Enter your ALGOL program into a file.
@CREATE (FILE) SQRT.ALG
Input: SQRT.ALG.1
00100 BEGIN
00200 REAL X, Y;
00300 WRITE ("[2C] TYPE THE VALUE OF X: [B]");
00400 READ (X);
00500 Y := SQRT(X);
00600 WRITE ("[C] THE SQUAREROOT OF ");
00700 PRINT (X,3,3);
00800 WRITE (" IS ");
00900 PRINT (Y,3,3);
01000 END
01100 $
*E
[SQRT.ALG.1]
@
2. Give the EXECUTE command to run the program.
@EXECUTE (FROM) SQRT.ALG
ALGOL: SQRT
LINK: Loading
[LNKXCT SQRT Execution]
TYPE THE VALUE OF X: 34.889
THE SQUAREROOT OF 34.889 IS 5.907
END OF EXECUTION.
@
ALGOL Compiler (continued) Page II-12
Characteristics
The LOAD-class commands run the ALGOL compiler to translate your
ALGOL source program, thereby clearing any program from memory.
Depending on the operation you request, your terminal may or may
not be left at TOPS-20 command level.
Examples
The user creates and runs his ALGOL program.
@CREATE (FILE) T.ALG
Input: T.ALG.1
00100 BEGIN
00200 INTEGER I,J;
00300 WRITE ("[2C] TYPE THE NUMBER: [B]");
00400 READ (I);
00500 J := 2 * I;
00600 WRITE ("[C] TWICE THAT NUMBER IS: ");
00700 PRINT (J);
00800 END
00900 $
*E
[T.ALG.1]
@EXECUTE (FROM) T.ALG
ALGOL: T
LINK: Loading
[LNKXCT T Execution]
TYPE THE NUMBER: 345
TWICE THAT NUMBER IS: 690
END OF EXECUTION.
@
The user runs an ALGOL program which uses two subroutines.
@EXECUTE (FROM) COMPAR,NEWTON,PSQRT
ALGOL: COMPAR
ALGOL: NEWTON
ALGOL: PSQRT
LINK: Loading
[LNKXCT COMPAR Execution]
TYPE A NUMBER: 4.
END OF EXECUTION.
@
APPEND Command Page II-13
Function
The APPEND command adds the contents of one or more source files
to the end of a destination file. The destination file can be an
existing file or a new file.
Hints
The APPEND command is useful for appending a sequence of files.
You should give the files (and only these files) a common file
type. Then, give the APPEND command with the source file
specification *.typ.
The system appends the files to the destination file. The source
files are taken in alphabetical order of their file names.
For example, if you have three files: ANGLE1.RAD, ANGLE2.RAD and
ANGLE3.RAD (and no other files with the file type .RAD), then the
command
@APPEND (SOURCE FILE) *.RAD.1 (TO) RADII.RAD.1 !NEW FILE!
appends the files ANGLE1.RAD, ANGLE2.RAD and ANGLE3.RAD (in that
order) to RADII.RAD.
When you append more than one file with a given command, the
system prints the name of each file as it starts appending the
file, then the word [OK] when the transfer of that file is
finished.
Format
@APPEND (SOURCE FILE) filespecs (TO) dev:<dir>name.typ.gen
filespecs is a single file specification or a string of file
specifications (separated by commas), that
indicate the source file(s).
You can use wildcards in the source file
specification. The files identified by the
wildcards are appended in the alphabetical order
of their file specifications.
dev: is the name of the device. Most often, the device
is the file structure that contains the
destination file. The system uses DSK: (your
currently connected file structure) if you do not
give a device name.
<dir> is the directory that contains the destination
file. You must have access privileges to this
directory. If you omit <dir>, the system uses
your connected directory.
name.typ.gen is the file name, type, and generation number of
the destination file. The destination file does
not have to exist before you give the APPEND
command. The generation defaults to the highest
existing generation number, or 1 if it is a new
file.
APPEND Command (continued) Page II-14
You may not use wildcard characters in the
destination file specification.
Operation
1. Type APPE and press the ESC key; the system prints ND
(SOURCE FILE).
@APPEND (SOURCE FILE)
2. Type (or use recognition on) the source file
specification(s). If you do not use recognition, press the
ESC key. The system prints (TO).
@APPEND (SOURCE FILE) SHIFT.SIZ.5 (TO)
If you type a non-existent file name, type, or generation
number, the system prints an appropriate message. The
messages below are a sample of several errors you might
receive. If you receive a message of this type, you should
find the correct argument and reissue the command.
?File not found
?No such file type
?No such filename
3. Type (or use recognition on) the destination file
specification.
@APPEND (SOURCE FILE) SHIFT.SIZ.5 (TO) SHIFT.TYP
4. If you use recognition on a destination file specification,
the system prints a message describing your destination file.
!Old Generation! if the destination file has an existing
file name, type and generation number.
!New Generation! if the destination file has an existing
file name and type, but the generation
number is larger (or defaults to one
larger) than the existing generation
number.
!New File! if the destination file has a file name
and type that are not in your directory.
@APPEND (SOURCE FILE) SHIFT.SIZ.5 (TO) SHIFT.NXT.1 !New file!
5. Press the RETURN key. The system appends the source file(s)
to the destination file. If you append more than one file,
the system prints each file specification as it appends the
corresponding file. When the command is finished, the system
prints an @.
@APPEND (SOURCE FILE) SHIFT.SIZ.5 (TO) SHIFT.TYP
SHIFT.SIZ.5 [OK]
@
APPEND Command (continued) Page II-15
Characteristics
The APPEND command does not change any program in memory.
The APPEND command leaves your terminal at TOPS-20 command level
when TTY: is not the source device. If the source device is
your terminal, the system transfers anything you type (following
the termination of the command) to the destination file. The
transfer continues until you type a CTRL/Z (^Z). CTRL/Z
completes the execution of the APPEND command and leaves your
terminal at TOPS-20 command level.
Restrictions
The destination must be a disk file, or else the system prints
the following message and cancels the command.
?DESTINATION FILE MUST BE ON DISK
Files which contain a program that has been SAVED (i.e., files in
.EXE file format) can not be appended since their structure is
destroyed in the transfer. The transfer does not succeed even if
both source and destination files are on disk.
If you attempt to append to a file that cannot be appended to,
the system prints a message. One of the messages is as follows:
?APPEND PROTECTION VIOLATION
If you receive this error, check to see if you have access
privileges to the file.
Examples
The user appends all the files with the file type .DAT (R2.DAT,
TSTAT.DAT, ROOT.DAT and WALDS.DAT) to the new file MASTER.DAT.
@APPEND (SOURCE FILE) *.DAT.1 (TO) MASTER.DAT.1 [New file]
R2.DAT.1 [OK]
TSTAT.DAT.2 [OK]
ROOT.DAT.1 [OK]
WALDS.DAT.3 [OK]
@
The user appends the file RASTER.SCA.1 to the highest generation
of the file SCREEN.LAY.
@APPEND (SOURCE FILE) RASTER.SCA.1 (TO) SCREEN.LAY
RASTER.SCA.1 [OK}
@
The user appends the file SMALL.FOR on the public structure (PS:)
to the file LARGE.FOR on structure STU:.
@APPEND (SOURCE FILE) PS:<PORADA>SMALL.FOR (TO) STU:<PORADA>LARGE.FOR
PS:<PORADA>SMALL.FOR.2 [OK]
@
APPEND Command (continued) Page II-16
The user appends a number of source files to a destination file
by placing a comma between the source files.
@APPEND (SOURCE FILE) MAIN.DAT.1,HEADER.FRM.1 (TO) NEW.FIL
MAIN.DAT.1 [OK]
HEADER.FRM.1 [OK]
The source files will appear in the given order from left to
right in NEW.FIL.
The user appends the same source files, and retains the name of
MAIN.DAT by including the next higher generation number as part
of the destination file.
@APPEND (SOURCE FILE) MAIN.DAT.1,HEADER.FRM.1 (TO) MAIN.DAT.2 !NEW GENERATION!
MAIN.DAT.1 [OK]
HEADER.FRM.1 [OK]
ASSIGN Command Page II-17
Function
The ASSIGN command allocates an input-output (I/O) device for the
exclusive use of your job. Your job retains control over the
device until you give a DEASSIGN command or until you log off the
system.
Hints
Before giving an ASSIGN command, give the INFORMATION (ABOUT)
AVAILABLE DEVICES command to obtain a list of the available
devices. After selecting an available device, give the ASSIGN
command to allocate that device to your job.
You can give a second INFORMATION (ABOUT) AVAILABLE DEVICES
command to confirm that the device has been assigned to your job.
Remember to have the operator load your magnetic tape before
using a magnetic tape drive. You can use the TMOUNT command to
request the operator to load your tape.
Use the DEFINE command to assign a logical name to a device.
Format
@ASSIGN (DEVICE) dev:
dev: specifies the device that you want to assign. The
standard input/output devices and their device names are
listed in Table 5-1.
Operation
1. Type ASSI and press the ESC key; the system prints GN
(DEVICE).
@ASSIGN (DEVICE)
2. Type the name of the device that you wish to assign (you
cannot use recognition).
@ASSIGN (DEVICE) MTA1:
3. Press the RETURN key. When the device is assigned to your
job, the system prints an @ on your terminal.
@ASSIGN (DEVICE) MTA1:
@
Errors
1. If the device is already assigned to another job, the system
prints the message ?dev: ALREADY ASSIGNED TO JOB n and
returns you to TOPS-20 command level. If you want to know
who is using the device, give the SYSTATn command (where n is
the job number).
2. If you have already assigned the device to your job, the
system prints the message [ALREADY ASSIGNED TO YOU]
immediately following the ASSIGN command.
ASSIGN Command (continued) Page II-18
Characteristics
The ASSIGN command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
You cannot assign structure names. Therefore you cannot assign
the device DSK: (your currently connected structure). Use the
SMOUNT command to use structures.
You cannot ASSIGN various other devices such as LPT: and NUL:.
Logical names cannot be assigned to devices by using the ASSIGN
command; refer to the DEFINE command.
You cannot assign a device that is already assigned to another
job, or that you have already assigned to your job.
Examples
The user assigns magnetic tape drive number three to his job:
@ASSIGN (DEVICE) MTA3:
@
BACKSPACE Command Page II-19
Function
The BACKSPACE command moves a magnetic tape backward over a
specified number of files or records.
Hints
Remember to assign the tape drive to your job and have the
operator load your tape.
Be sure you have the correct tape parameters set (check them with
the INFORMATION (ABOUT) TAPE-PARAMETERS command); if necessary,
give the SET TAPE command.
Format
@BACKSPACE (DEVICE) dev: n units
dev: specifies the magnetic tape you want to backspace.
The device name is in the form MTAn: where n is
the drive number.
n is the number of files or records over which you
want to backspace.
units is either FILES or RECORDS. If you do not specify
the units, the system uses FILES.
Operation
1. Type BACK and press the ESC key; the system prints
SPACE (DEVICE).
@BACKSPACE (DEVICE)
2. Type the device name and leave a space.
@BACKSPACE (DEVICE) MTA2:
If the device is not a magnetic tape, the system ignores the
command and prints the message:
?dev: Device is not a magtape
where dev: is the device name you typed.
If you typed a non-existent device, the system ignores the
command and prints the message:
?No such device
3. Type the number of files or records and leave a space.
@BACKSPACE (DEVICE) MTA1: 5
If you type a number greater than 67777777777(octal), the
system ignores the command and prints the message:
?NUMBER OUT OF RANGE
BACKSPACE Command (continued) Page II-20
4. Type (or use recognition on) the word FILES or RECORDS and
press the RETURN key.
@BACKSPACE (DEVICE) MTA1: 5 FILES
@
Errors
1. If the device is not on line, the system ignores the command
and prints the message:
?Device is not on-line
Use the TMOUNT command to contact the operator to mount the
tape(s).
2. If a tape is not mounted on the drive, the system may print
the message:
?Device or data error
Use the PLEASE program to contact the operator, then reissue
the command.
3. If you type a CTRL/C to exit from a program that has opened
the magnetic tape drive, and then give the BACKSPACE command,
the system prints the following message:
?Device MTAn: open on JFN m
%Close JFN? YES
If you answer YES (or just press the RETURN key), the system
closes the file, prints a confirming message, backspaces the
tape, and leaves you at TOPS-20 command level. Continuing
the program that previously opened the magnetic tape may
produce an error because the file has been closed.
@BACKSPACE (DEVICE) MTA1: 3 FILES
?Device MTA1: open on JFN 3
%Close JFN? YES
3 MTA1: [OK]
@
If you answer NO, the system prints the message ?Command
aborted... and does not close the file or backspace the
tape.
Characteristics
The BACKSPACE command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
BACKSPACE Command (continued) Page II-21
Restrictions
The BACKSPACE command works only for magnetic tapes.
Examples
The user backspaces his tape 3 files.
@BACKSPACE (DEVICE) MTA2: 3 FILES
@
The user backspaces MTA0: 5 records.
@BACKSPACE (DEVICE) MTA0: 5 RECORDS
@
BASIC Program Page II-22
Function
BASIC runs user's programs written in the BASIC language.
Hints
You may create program and data files with EDIT and use them with
BASIC. Remember to enter EU at the end of EDIT to strip the line
numbers.
Format
@BASIC
READY
command is any valid BASIC command listed in Table II-1.
Table II-1
BASIC Commands
CATALOG dev:
Prints the names and types of the files on the specified
device or logical name. If you do not give a device, the
system uses DSK:.
DELETE range, range
Deletes the specified lines from your program in memory.
A range is either a line number or two line numbers
separated by a hyphen.
HELP
Prints a list of all the BASIC commands (with
explanations) on your terminal.
LIST range, range
LISTNH range, range
Prints the specified lines. A range is either a single
line number or two line numbers separated by a hyphen.
LISTNH prints the lines without a heading.
MONITOR
Returns you to TOPS-20 command level. If you are going to
give a command that clears any previous program from
memory, before giving the MONITOR command give the SAVE or
REPLACE command to save your program, or else it is
destroyed and you cannot reclaim it.
NEW name.typ
Places BASIC in input mode and you may begin entering a
new file. To enter a line in a file, you must first type
the line number followed by a space and the contents of
the line.
OLD name.typ
Places the specified file in memory so you can change it
or run it.
BASIC Program (continued) Page II-23
Table II-1 (Cont.)
BASIC Commands
RESEQUENCE n,o,i
Renumbers the lines in your current program in memory.
New line number n replaces old line number o; succeeding
lines are numbered by adding i to the previous line
number. If you give only n, the first line in the file is
changed to n and each succeeding line number is created by
successively adding 10.
RUN
RUNNH
Starts the program in memory. RUNNH does not print the
initial heading.
SAVE
Saves the program in memory on disk storage.
SCRATCH
Clears the current contents of memory.
UNSAVE name.typ
Deletes the file with the given name and type.
Operation
1. Type BASIC and press the RETURN key; the system prints
READY.
@BASIC
READY
2. Type any valid BASIC command, chosen from the list in Table
II-1.
NEW TEST.B20
READY
3. When you are finished, give the MONITOR command to return
you to TOPS-20 command level.
MONITOR
@
Characteristics
The BASIC program translates your BASIC programs, thereby
clearing any previous program from memory. Your terminal is
left at BASIC command level.
Examples
The user creates a new program, saves it on disk, runs it,
prints it, changes a line, replaces the previous copy of the
program, and runs the program again. The user then returns to
TOPS-20 command level.
BASIC Program (continued) Page II-24
@BASIC !The user starts
!BASIC
READY
NEW TEST.B20 !Starts inputting a
!new file - TEST.B20
READY
10 X=6.5 !Types the program
20 Y=2.1
30 PRINT "THE VALUE OF THE SUM IS;"; X+Y
40 END
SAVE !Saves it on disk
READY
RUN !Runs it
TEST.B20
Tuesday, March 22, 1977 12:30:20
THE VALUE OF THE SUM IS; 8.6
RUNTIME: 0.09 SECS ELAPSED TIME: 0:00:02
READY
LIST !Lists the program
TEST.B20
Tuesday, March 22, 1977 12:30:33
10 X=6.5
20 Y=2.1
30 PRINT "THE VALUE OF THE SUM IS;"; X+Y
40 END
READY
MONITOR
@
BASIC Program (continued) Page II-25
The user recalls an old program, runs it, then returns to
TOPS-20 command level.
@BASIC !The user starts
!BASIC
READY
OLD TEST.B20 !Gets his old
program
READY
RUN !And runs it
TEST.B20
Tuesday, March 22, 1977 12:31:52
THE VALUE OF THE SUM IS; 8.6
RUNTIME: 0.08 SECS ELAPSED TIME: 0:00:01
READY
MONITOR !Then returns to
!TOPS-20 command
!level
@
BATCH Commands Page II-26
Function
The Batch commands control the operation of a Batch job.
Hints
To create a Batch job, use EDIT to enter the commands you would
type on your terminal into a file. This file is referred to as a
Batch control file, and can also contain Batch commands (some are
listed in Table II-2). Each line may be preceded by a label (six
or less alphanumeric characters followed by two colons, the first
character must be alphabetic). After creating the control file,
give the SUBMIT command to ask the system to start the job.
Remember, the system logs your job into the system, connects the
job to your connected directory at the time you gave the SUBMIT
command, gives the commands stored in your BATCH.CMD and
COMAND.CMD files, and then starts processing your control file.
Refer to Section 3.4 for more information on Batch jobs.
Format
@name argument
name is the name of the Batch command.
argument is either a label or a character. A label is
comprised of not more than six alphanumeric
characters. When the label is used in a command,
it contains just the label name; when it is used
at the beginning of a line to indicate a position,
it is followed by a double colon. An example of a
label is BEGIN::.
Table II-2
Batch Commands
@BACKTO label
Transfers control to the line in the control file that is
preceded by the specified label. This labeled line must
be located between the beginning of the file and the
BACKTO statement. If such a line does not occur, your job
is terminated.
@ERROR character
Declares that an error has occurred whenever the system
prints the given character in the first character position
of a line. If you do not specify a character, the system
uses ?; if you specify a character it cannot be a control
character (CTRL/C, CTRL/O, etc.), an exclamation point, or
a semicolon.
@GOTO label
Transfers control to the line in the control file that is
preceded by the specified label or the label %FIN::,
whichever comes first. This labeled line must exist
between the GOTO statement and the end of the file. If
such a line does not occur, your job is terminated.
BATCH Commands (continued) Page II-27
Table II-2 (Cont.)
Batch Commands
@IF (condition) statement
Tests for the given condition and if that condition has
occurred (or is true), executes the specified statement.
The statement may be a Batch command, a TOPS-20 command, a
command to a program, data, or a comment. The variable
condition may be either ERROR or NOERROR; you must
include the parentheses.
@NOERROR
Ignores all error signals except the ?TIME LIMIT EXCEEDED
message and any Batch error.
Operation
1. Enter the commands which form your job into a file.
@CREATE (FILE) TESTV.BAT
Input: TESTV.BAT.1
00100 @COMPILE /CREF PRMAIN.MAC
00200 @IF (ERROR) GOTO NOLUC
00300 @COMPILE /CREF PRSUB.MAC
00400 @IF (ERROR) GOTO NOLUC
00500 @COMPILE /CREF PROUT.MAC
00600 @IF (ERROR) GOTO NOLUC
00700 @CREF
00800 @LOAD PRMAIN,PRSUB,PROUT
00900 @SAVE
01000 NOLUC::@DELETE *.TMP
01100 $
*E
[TESTV.BAT.1]
@
2. Give the SUBMIT command to enter the job into the Batch
input queue.
@SUBMIT TESTV.BAT
[INP:TESTV=/SEQ:3148/TIME:00:05:00]
@
Output
Refer to the description of the SUBMIT command for an explanation
of the output resulting from a Batch job.
Characteristics
Batch commands can be used only in a Batch control file created
at your terminal or in a card deck and cannot be given from your
terminal.
Submitting a Batch job requires giving the SUBMIT command which
clears any program from memory and leaves your terminal at
TOPS-20 command level.
BATCH Commands (continued) Page II-28
Examples
The user creates and submits a Batch job.
@CREATE (FILE) SUBT.CTL
Input: SUBT.CTL.1
00100 @EXECUTE LIBRAY.FOR,LIBSUB.FOR,IO.MAC
00200 *45.
00300 *46.
00400 @PRINT LIBRAY.DAT
00500 $
*E
[SUBT.CTL.1]
@SUBMIT SUBT
[INP:SUBT=/SEQ:3149/TIME:00:05:00]
@
The user checks to see if his batch job is running.
@SUBMIT
INPUT QUEUE:
STS JOB SEQ PRIO TIME USER
RUN SUBT 4344 10 00:05:00 ESTEY
TOTAL: INP: 1 JOB; 00:05:00 RUNTIME
@
The user creates a control file containing a command that has a
subcommand.
@CREATE (FILE) DELGEN.CTL
Input: DELGEN.CTL.1
00100 @DELETE *.*
00200 @KEEP 1
00300 @
00400 $
*E
[DELGEN.CTL.1]
@
BREAK Command Page II-29
Function
The BREAK command clears all links that have been made to or from
your terminal.
Hints
The TALK command establishes a link between your terminal and
another user's terminal.
Format
@BREAK (LINKS)
There are no arguments to the BREAK command.
Operation
1. Type BREA and press the ESC key; the system prints K
(LINKS).
@BREAK (LINKS)
2. Press the RETURN key. When the system breaks the links, it
prints an @ on your terminal.
@BREAK (LINKS)
@
Characteristics
The BREAK command:
Is opposite in function to the TALK command, except for the
difference that BREAK removes all links while TALK creates
only one link.
Does not require you to be logged in to the system.
Breaks only the links to or from your terminal.
Gives no error message if you do not have any links to or
from your terminal.
Does not change a program in memory.
Leaves your terminal at TOPS-20 command level.
Examples
The user breaks all the links to his terminal.
@BREAK (LINKS)
@
CLOSE Command Page II-30
Function
The CLOSE command closes any open files.
Hints
Each time you open a file, the system assigns this opening a
unique number called a Job File Number, or JFN. The INFORMATION
(ABOUT) FILE-STATUS command lists all your open files and their
associated JFNs.
If you stop a program by typing two CTRL/Cs, you may examine any
files which it has opened by immediately giving the CLOSE
command, then typing or printing that file's contents. After
closing the files, you generally will not be able to give the
CONTINUE command to resume execution of the program.
Format
@CLOSE (JFN) n
n is a JFN of an open file. If you want to close
all open files, do not include this argument.
Operation
1. Type CLOS and press the ESC key; the system prints E (JFN).
@CLOSE (JFN)
2. Type the JFN (to close one specific opening) and press the
RETURN key, or simply press the RETURN key (to close all open
files). The system prints a message about every file it
tries to close.
@CLOSE (JFN) 3
3 NXTFIL.FOR.2 [OK]
@
Characteristics
The CLOSE command does not change a program in memory and leaves
your terminal at TOPS-20 command level.
Restrictions
The CLOSE command cannot close files which are mapped into
memory. Give the RESET command, remembering that RESET clears
the contents of memory. If RESET does not succeed, you may have
done a PUSH command. Give the POP command, the RESET command and
finally, the CLOSE command again.
CLOSE Command (continued) Page II-31
Examples
The user gives the INFORMATION command, then closes all his open
files.
@INFORMATION (ABOUT) FILE-STATUS (OF JFN)
CONNECTED TO PS:<MCKIE>. JFNS:
5 024EDI.TEM.1 WRITE, NEW FILE, 0.(36)
4 COMPILE.TXT.6 READ, 1555.(36)
3 <SUBSYS>PA1050.EXE.362 READ, EXECUTE
2 <NEW>EDIT.EXE.15 READ, EXECUTE
1 <SYSTEM>EXEC.EXE.287 READ, EXECUTE
DEVICES ASSIGNED TO/OPENED BY THIS JOB: TTY16
@CLOSE (JFN)
5 024EDI.TEM.1 [OK]
4 COMPILE.TXT.6 [OK]
3 <SUBSYS>PA1050.EXE.362 CAN'T CLOSE FILE - FILE STILL MAPPED
2 <NEW>EDIT.EXE.15 CAN'T CLOSE FILE - FILE STILL MAPPED
1 <SYSTEM>EXEC.EXE.287 CAN'T CLOSE FILE - FILE STILL MAPPED
@
The user closes the file COMPILE.MAC.6.
@CLOSE (JFN) 5
5 COMPILE.MAC.6 [OK]
@
The user tries to close a file, but finds the file is still
mapped into memory. After giving the RESET command,
the file is successfully closed.
@CLOSE (JFN) 5
5 T.FOR.7 CAN'T CLOSE FILE - FILE STILL MAPPED
@INFORMATION (ABOUT) MEMORY-USAGE
504. PAGES, ENTRY VECTOR LOC 435 LEN 2
0-1 PRIVATE R, W, E
2-10 <OLD>VTED.EXE.34 5-13 R, CW, E
20-137 @ T.FOR.7 0-117 R, W, E
140-141 T.FOR.7 120-121 R, W, E
142-767 @ T.FOR.7 122-747 R, W, E
770-775 <SUBSYS>UDDT.EXE.3 1-6 R, CW, E
777 PRIVATE R, W, E
@RESET
@INFORMATION (ABOUT) FILE-STATUS (OF JFN)
CONNECTED TO PS:<MCKIE>. JFNS:
1 <SYSTEM>EXEC.EXE.298 READ, EXECUTE
DEVICES ASSIGNED TO/OPENED BY THIS JOB: TTY107
@DIRECTORY (OF FILES) T.FOR.*
<MCKIE>
T.FOR.7
@
COBDDT Program Page II-32
Function
The COBDDT program helps you debug COBOL programs.
Hints
You must load your program into memory along with COBDDT. Your
program must contain symbols, thus you must not use the switch
/NOSYMBOLS.
If you type a CTRL/C, you may resume COBDDT execution by giving
the CONTINUE command.
Format
@DEBUG (FROM) /COBOL filespecs
COBOL: MAIN
LINK: Loading
[LNKDEB COBDDT Execution]
STARTING COBOL DDT
command is any valid COBDDT command listed in the
following table.
filespecs is a list of COBOL programs. If the files have
the type .CBL, you do not have to include the
/COBOL switch.
Table II-3
COBDDT Commands
Commands
After you have given the DEBUG command, and the system
prints an asterisk, you can give a COBDDT command. You
can abbreviate each command to one letter.
Data-names, Paragraph-names, and Section-names
You can abbreviate each data-name, paragraph-name, or
section-name to a unique string of characters.
Paragraph-names can be qualified by section-names;
data-names can be qualified by higher-level data names
and/or subscripted. The subscripts for a qualified
data-name must appear immediately after the first
data-name. Section-names and data-names cannot be
qualified by program-names because COBDDT uses the names
in the program specified in the MODULE command.
ACCEPT data-name
Changes the value of the specified data-item. After
giving the ACCEPT command, type the data on the next line.
If you omit data-name, the system uses the last name you
gave in the most recent ACCEPT or DISPLAY command.
BREAK paragraph-name
Sets a break point (or pause) at the beginning of the
specified paragraph. You can set twenty break points. If
you are using overlays, be careful where you place your
break points.
COBDDT Program (continued) Page II-33
Table II-3 (Cont.)
COBDDT Commands
CLEAR paragraph-name
Removes the breakpoint at the specified paragraph. If you
omit the paragraph name, the system removes all
breakpoints.
DISPLAY data-name
Prints the value of a data item. If you omit the
data-name, the system prints the value of the data name
you specified in the most recent ACCEPT or DISPLAY
command.
MODULE program-name
Takes data names and procedure names from the specified
program. Normally, within a run unit containing more than
one program, COBDDT searches for data names and procedure
names in the current program. The MODULE command changes
the current program. All subsequent searches for data
names and procedure names will be within the specified
program until COBDDT enters the next program in the run
unit or until you give another MODULE command.
PROCEED n
Starts execution or continues execution after a
breakpoint. If you give a number n, the program continues
until completion or until it reaches n occurrences of the
preceding breakpoint.
STOP
Stops the program and closes all open files. The STOP
command is equivalent to the COBOL STOP RUN statement.
TRACE value
Starts or stops tracing, depending on whether you use ON
or OFF for value. When tracing is on, the system prints
the name of each paragraph or section (enclosed in double
angle brackets) as it is entered.
WHERE
Prints the current location, the names of all paragraphs
at which you set breakpoints, and the number of break
points which you may yet assign.
Operation
1. Type DEBU and press the ESC key; the system prints G (FROM).
@DEBUG (FROM)
2. If the source file specifications do not contain the file
type .CBL, type the /COBOL switch and leave a space;
otherwise, type (or use recognition on) the file
specifications. The system will compile the sources (if
necessary), load them into memory along with COBDDT, then
transfer control to COBDDT.
COBDDT Program (continued) Page II-34
@DEBUG (FROM) NUMBER.CBL,SUMSUB.CBL
COBOL: NUMBER
COBOL: SUMSUB
LINK: Loading
[LNKDEB COBDDT Execution]
STARTING COBOL DDT
*
3. Once the system prints an asterisk, you are at COBDDT command
level and you may give any of the COBDDT commands listed
above. In the example, the user gives the PROCEED command
which starts execution of his program.
*PROCEED
4. If your program generates an error that would normally cause
abortion of execution, the system returns control to COBDDT,
printing the message:
?ENTERING COBDDT FROM: paragraph-name
*
where paragraph-name is the name of the paragraph containing
the error. You may then give any COBDDT command.
Characteristics
The DEBUG command loads your COBOL program into memory along with
COBDDT, thereby clearing any previous program from memory. Your
terminal is left at COBDDT command level.
Restrictions
You may use COBDDT to debug only COBOL programs.
Examples
The user debugs his program.
@DEBUG (FROM) COMPUT.CBL !Load the program with COBDDT
COBOL: MAIN [COMPUT.CBL]
LINK: Loading
[LNKDEB COBDDT Execution]
STARTING COBOL DDT !COBDDT starts
*BREAK NXT1 !Set a breakpoint at NXT1
*BREAK NXT2 !And also at NXT2
*WHERE !List the breakpoints
PROGRAM NOT STARTED
BREAK POINTS:
<<NXT1>>
<<NXT2>>
COBDDT Program (continued) Page II-35
18 UNUSED BREAK POINTS
*TRACE ON !Enable tracing
*PROCEED !Start the program
<<ST>> !Execution has entered the
-7.0E0 !PARAGRAPH ST.
1.0E0
BREAK AT <<NXT1>> !The program reached a break-
!point
*DISPLAY A !Print the value of A
3
*ACCEPT A !Change the value of A
4
*D A !Print the new value of A
4
*PROCEED !Resume execution
<<CC>> !Execution has entered the
!PARAGRAPH CC.
BREAK AT <<NXT2>> !The program reached a break-
!point
*WHERE !Print the current status
PROGRAM STOPPED AT <<NXT1>>
BREAK POINTS
<<NXT1>>
<<NXT2>>
18 UNUSED BREAK POINTS
*CLEAR NXT2 !Remove a break point
*PROCEED !Resume execution
<<NXT3>> !Beginning paragraph NXT3
<<ENDIT>> !Beginning paragraph ENDIT
THE RESULT IS 4.566 !Here is the answer
EXIT !The program ends
@
COBOL Compiler Page II-36
Function
The COBOL compiler produces object programs from COBOL source
programs.
Hints
To run a COBOL program:
1. Enter your source program into a file (by using EDIT).
2. Give the EXECUTE command to compile, load, and start your
program.
3. If you plan to execute the program frequently, use the LOAD
command instead of EXECUTE. You can now use the RUN command,
which is faster than EXECUTE, until you EDIT the program
again.
Use the COBDDT program to debug COBOL programs.
If you have a main program and assorted subroutines that require
special loading, refer to Section 8.3 which describes the
LOAD-class commands.
Operation
1. Enter your program into a file using EDIT.
@CREATE (FILE) COMPUT.CBL
Input: COMPUT.CBL.1
00100 ID DIVISION.
00200 DATA DIVISION.
00300 WORKING-STORAGE SECTION.
00400 77 F1 COMP-1 VALUE 3.
00500 77 F2 COMP-1 VALUE 4.
00600 77 F3 COMP-1.
00700 PROCEDURE DIVISION.
00800 DISPLAY "TYPE A NUMBER: " WITH NO ADVANCING.
00900 ACCEPT F3.
01000 COMPUTE F3 = 2.0 * F3.
01100 DISPLAY "TWICE THAT NUMBER IS: " WITH NO ADVANCING.
01200 DISPLAY F3.
01300 STOP RUN.
01400 $
*E
[COMPUT.CBL.1]
@
2. Compile, load, and start your program.
@EXECUTE (FROM) COMPUT.CBL
COBOL: MAIN [COMPUT.CBL]
LINK: Loading
[LNKXCT COMPUT EXECUTION]
TYPE A NUMBER: 4
TWICE THAT NUMBER IS 6.0E0
EXIT
@
COBOL Compiler (continued) Page II-37
Characteristics
The LOAD-class commands run the COBOL compiler to translate your
COBOL source program, thereby clearing any program from memory.
Depending on the operation you request, your terminal may or may
not be left at TOPS-20 command level.
Restrictions
In order to use the COBOL compiler, you cannot change the
definition of the logical name SYS:. Should you change the
definition and try to compile a COBOL program, the system prints
the following message, then cancels the command:
? "DSK" IS NOT THE DSK
Remove the definition of the logical name SYS: and reissue the
command.
Examples
The user creates and executes a COBOL program.
@CREATE (FILE) COMPUT.CBL !Enter the program
Input: COMPUT.CBL.1 into COMPUT.CBL
00100 ID DIVISION.
00200 DATA DIVISION.
00300 WORKING-STORAGE SECTION.
00400 77 F1 COMP-1 VALUE 3.
00500 77 F2 COMP-1 VALUE 4.
00600 77 F3 COMP-1.
00700 PROCEDURE DIVISION.
00800 DISPLAY "TYPE A NUMBER: " WITH NO ADVANCING.
00900 ACCEPT F3.
01000 COMPUTE F3 = 2.0 * F3.
01100 DISPLAY "TWICE THAT NUMBER IS: " WITH NO ADVANCING.
01200 DISPLAY F3.
01300 STOP RUN.
01400 $
*E
[COMPUT.CBL.1]
@EXECUTE (FROM) COMPUT.CBL !Give the EXECUTE command
COBOL: MAIN [COMPUT.CBL]
LINK: Loading
[LNKXCT COMPUT Execution]
TYPE A NUMBER: 35
TWICE THAT NUMBER IS: 7.0E1
EXIT
@
The user starts debugging the NUMBER program.
@DEBUG (FROM) NUMBER.CBL
COBOL: LETTER [NUMBER.CBL]
LINK: Loading
[LNKDEB COBDDT Execution]
STARTING COBOL DDT
*
COBOL Compiler (continued) Page II-38
The user loads the main program TEST3 and its two subroutines
TEST1 an TEST2. The program is then saved for future use so it
can be executed by giving the RUN command. This procedure is
highly recommended because RUN uses much less time and expense
than EXECUTE.
@LOAD (FROM) TEST1,TEST2,TEST3
COBOL: TEST1 [TEST1.CBL]
COBOL: TEST2 [TEST2.CBL]
COBOL: TEST3 [TEST3.CBL]
LINK: Loading
EXIT
@SAVE
TEST3.EXE.1 SAVED
@RUN (PROGRAM) TEST3
EXIT
@
COMPILE Command Page II-39
Function
The COMPILE command translates one or more source files,
producing one or more object files.
Hints
After compiling a program, you can run it by using the LOAD
command and START commands. If you intend to run the program
often, you should use, in order, the LOAD, SAVE and RUN commands.
(You will find this process faster than LOADing the program each
time you run it.)
If you give only COMPILE-command switches as arguments to a
COMPILE command, the system appends the arguments you gave in the
last LOAD-class command which contained a file specification or
LINK switch, then executes the command. If there are no
arguments to recall, the system prints the message ?No saved
arguments. Refer to Section 8.3.4 which describes the manner in
which arguments are recalled.
The system will update the object file if it is older than any
one of the corresponding source files. Suppose you give the
command:
@COMPILE (FROM) NXTLAT.FOR
If NXTLAT.REL does not exist, or if it is older than the most
recent NXTLAT.FOR (i.e., it has a write date before the write
date of NXTLAT.FOR), then the system compiles NSTLAT.FOR to
produce an up-to-date NXTLAT.REL. Refer to Section 8.3.3 which
describes the manner in which object files are updated.
Format
@COMPILE (FROM) sources object,sources object,...
sources is one or more source file specifications preceded
and/or followed by switches. You must separate
the source files with plus signs. No spaces or
tabs are allowed. If you do not give a file type
in a file specification, the system looks for a
source file with one of the standard types listed
in Table 8-1. Refer to Section 8.3.2 which
describes more about how the system selects a file
when you do not specify its file type.
a space separates the source file specifications from the
object file specification. If you do not give an
object file specification, you must not leave a
space.
object is an object file specification. If you do not
give an object file specification, the system uses
the name of the last file in the corresponding
sources and the type .REL.
@name.typ You can store any portion of the command in a
file. That portion of the command is included -
just as if you typed it on your terminal -
whenever you type an @ followed by the name of the
file. Refer to Section 8.3.5 which describes how
the system takes commands from an indirect file.
COMPILE Command (continued) Page II-40
switches You can use recognition to help you type a switch
and any file specification which is an argument to
a switch. If you place a switch before a set of
sources, the switch applies to all the files in
the rest of the command line unless a
contradictory switch appears later in the command.
If you place a switch after a file specification
in a set of sources, the switch applies to just
that file. Table II-4 lists switches that are
useful with the COMPILE command.
Table II-4
COMPILE Command Switches
/ALGOL
Compiles the file using ALGOL. This is the default for
sources with the extension .ALG.
/BINARY
Generates a binary (object) file for each source program.
Normally the system generates object files, so this switch
is useful in reversing a global /NOBINARY switch.
/COBOL
Compiles the program using COBOL. This is the default for
sources with the extension .CBL.
/COMPILE
Compiles the program regardless of whether the object file
is up-to-date or not. The /NOCOMPILE switch causes
compilation only if the object file is out-of-date.
/CREF
Creates a file containing cross-reference information for
each source file you compile. The name of the file is the
name of the last source file and the file type is .CRF.
Give the CREF command to run the CREF program which reads
this file and prints a listing. If the object file is not
out of date, include the /COMPILE switch in your COMPILE
command. When a source file contains a COBOL program, the
system produces a listing file (the file type is .LST
instead of .CRF) containing the cross-reference
information; give the PRINT command in the form PRINT
name.LST (instead of CREF) to print the .LST file.
/DDT
Loads the DDT debugger along with the program.
/DEBUG
Provides additional debugging information in the object
program (FORTRAN only).
/FORTRAN
Compiles the file using FORTRAN. This is the default for
sources with the extension .FOR or a nonstandard type.
/LIBRARY
Loads only the routines from the object file that are
called by the main program or another subroutine. The
system libraries are always searched.
COMPILE Command (continued) Page II-41
Table II-4 (Cont.)
COMPILE Command Switches
/LIST
Prints a listing of each program you compile. The listing
name is the name of the last source file. Unless you
specify this switch, the system does not print a listing
of your program. If you also include a /CREF switch, the
system ignores the /LIST switch.
/MACRO
Assembles the file using MACRO. This is the default for
sources with the extension .MAC.
/MAP:name.typ
Produces loader maps during the loading process and stores
them in the file name.typ. If you do not give a file name
and type, the system uses nnnLNK.MAP, where nnn is your
job number. The /MAP switch applies to the entire
command, not to just one file. You may use recognition
input in typing the file specification, the system creates
a new generation of the recognized file.
/NOBINARY
Inhibits the generation of a binary (object) file. This
switch is useful along with the /CREF or /LIST switch to
produce listings without additionally producing an object
file.
/NOCOMPILE
Compiles a file only if it is out-of-date. Since the
system normally does this, the /NOCOMPILE switch is useful
for turning off a global /COMPILE or /RELOCATABLE switch.
/NODEBUG
Omits loading debugging information with the program
(FORTRAN only).
/NOLIST
Inhibits the generation of a listing file. Normally, the
system does not generate a listing file.
/NOOPTIMIZE
Inhibits the generation of optimized object files (FORTRAN
programs only).
/NOSEARCH
Loads all routines in a file, regardless of whether the
routines are called by another module. Normally the
system loads all the routines in an object file, therefore
this switch is useful in reversing a global /SEARCH
switch.
/NOSYMBOLS
Inhibits loading symbols with the program. Normally, the
system loads symbols with all programs.
/OPTIMIZE
Produces optimized object files (FORTRAN programs only).
COMPILE Command (continued) Page II-42
Table II-4 (Cont.)
COMPILE Command Switches
/RELOCATABLE
Uses the specified object files, even though they may be
out of date, or may have extensions other than .REL. For
example, the command COMPILE FILE.FOR/REL would cause
FILE.FOR to be treated as a relocatable file and load and
compile it. It would normally be regarded as a FORTRAN
source file.
/SEARCH
Is identical to the /LIBRARY switch.
/SYMBOLS
Loads the program with its appropriate symbol table.
Normally, the system loads all programs with symbols.
Operation
1. Type COMP and press the ESC key; the system prints ILE
(FROM).
@COMPILE (FROM)
2. Type (or use recognition on) the sets of sources
specifications, object specifications and switches. Press
the RETURN key. The system translates the specified files.
@COMPILE (FROM) TEST.FOR,SUB1.FOR
FORTRAN: TEST
FORTRAN: SUB1
@
Errors
1. If you give a command and one of the source files is missing,
the system continues processing the command and prints the
message:
%SOURCE FILE MISSING - name.typ
where name.typ is the name and type of the source file.
Characteristics
The COMPILE command runs the appropriate language translator,
thereby clearing any previous program from memory, and leaves
your terminal at TOPS-20 command level.
Examples
The user compiles a simple MACRO program.
@COMPILE (FROM) TRANSL.MAC
MACRO: TRANSL
@
COMPILE Command (continued) Page II-43
The user compiles three FORTRAN programs into one main program,
and the entire subroutine package TYPE2.
@COMPILE (FROM) 1+2+3,TYPE2
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
@
The user assembles a MACRO program, producing a cross-reference
listing.
@COMPILE (FROM) /CREF INIT.MAC+CONTRL.MAC+SUBS.MAC
MACRO: INIT
MACRO: CONTRL
MACRO: SUBS
@
The user compiles his programs, using the arguments in an
indirect file.
@COMPILE (FROM) @TYP.CMD
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
@
CONNECT Command Page II-44
Function
The CONNECT command connects you to another directory and
disconnects you from the current directory.
Hints
Connecting to a directory grants you owner privileges to that
directory and files. Whenever you give a command, the system now
uses the files in this connected directory.
If you omit the structure or directory name from the CONNECT
command, the system defaults to your currently connected
structure or directory. But, if you omit both the structure and
directory name, i.e., CONNECT , the system defaults to the
public structure (PS:) and your logged-in directory.
The first time you give a CONNECT command to a directory that is
on a file structure other than the public structure (PS:), you
should give the SMOUNT command before the CONNECT command.
Format
@CONNECT (TO DIRECTORY) dev:<dir> (PASSWORD) password
dev: is the name of the file structure that contains
the directory to which you are connecting. The
CONNECT command will only accept a file structure
name in the dev: field.
<dir> is the name of the directory to which you are
connecting. The brackets must be included in
directory names. You can use recognition on
directory names. Remember to type the
left-hand-bracket.
password is the password of the directory to which you wish
to connect. The password is not required if you
own the directory (you own a directory if your
logged-in user name is the same as the directory
name), or if the directory protection allows you
to connect without giving a password.
Operation
1. Type CONN and press the ESC key. The system prints ECT (TO
DIRECTORY).
@CONNECT (TO DIRECTORY)
2. Type the file structure name and a colon. (You do not have
to type the file structure name if the directory you are
connecting to is on your currently connected structure.)
@CONNECT (TO DIRECTORY) ADMIN1:
CONNECT Command (continued) Page II-45
3. Type (or use recognition on) the directory name. Press the
ESC key if you do not use recognition. The system prints
(PASSWORD).
@CONNECT (TO DIRECTORY) ADMIN1:<BERLITZ> (PASSWORD)
4. Type the password belonging to the directory and press the
RETURN key. (If you own the directory or if the directory
protection gives you the proper access, you do not have to
give a password; just press the RETURN key.) When you are
connected to the directory, the system prints an @ on your
terminal.
@CONNECT (TO DIRECTORY) ADMIN1:<BERLITZ> (PASSWORD)
@
Errors
1. If you do not supply the correct password or if you do not
give a password and it is required, the system pauses and
then prints the message:
?INCORRECT PASSWORD or ? PASSWORD IS REQUIRED
and cancels the command. You should obtain the correct
password and reissue the command.
2. If you did not give the SMOUNT command and you specify a file
structure that is not on line, the system prints the message:
?STRUCTURE IS NOT MOUNTED or ?NO SUCH DEVICE
and cancels the command. First, check to see if you entered
the name correctly. If you did, give the SMOUNT command to
request that the file structure be placed on line.
3. If you give a non-existent directory name, the system prints
the message:
?NO SUCH DIRECTORY
and cancels the command.
Characteristics
The CONNECT command:
Leaves your terminal at TOPS-20 command level.
Does not change any program in memory.
Causes an allocation check for the directory you were
originally connected to and the directory to which you are
now connecting. If either directory contains more space than
is allowed, the system prints a warning message.
CONNECT Command (continued) Page II-46
Examples
The user connects to the directory <INSTRUMENTATION> on his
currently connected structure.
@CONNECT (TO DIRECTORY) <INSTRUMENTATION> (PASSWORD)
@
The user connects to the directory <SHELDON> on file structure
ACCTG:. He types CONN, leaves a space, types ACCTG:<SHELDON>,
leaves a space, types the password, and presses the RETURN key.
@CONN ACCTG:<SHELDON>
@
CONTINUE Command Page II-47
Function
The CONTINUE command restores execution of a program that was
interrupted by a CTRL/C. The program is not changed by the
CTRL/C-CONTINUE process as long as you do not change the contents
of memory or the files it manipulates.
Hints
When you stop a program by typing a CTRL/C once (or if necessary,
up to four) times, the contents of the program counter,
accumulators, and memory are saved. The CONTINUE command uses
this information to resume execution of your program.
You may also stop a program by typing one or more CTRL/Cs, give a
PUSH command, run another program, give a POP command, then give
a CONTINUE command to continue the initial program.
Format
@CONTINUE (PROGRAM)
There are no arguments to the CONTINUE command.
Operation
1. Type CONT and press the ESC key. The system prints INUE
(PROGRAM). Press the RETURN key and the program resumes
execution.
@CONTINUE (PROGRAM)
Characteristics
The CONTINUE command continues the program in memory and leaves
your terminal under its control.
Restrictions
Some non-standard programs may not allow you to CONTINUE them
once they are interrupted.
CONTINUE Command (continued) Page II-48
Examples
The user runs the SORT program. Once it is running, it prints
the message [SRTXPN Expanding to 55P], so the user gives two
CTRL/Cs to stop the program. He gets information about the
contents of memory, then gives the CONTINUE command to let the
program run to completion.
@SORT
*LIST.SRT=LIST.FIL/K:1:6/R:40
[SRTXPN Expanding to 55P]
^C
@INFORMATION (ABOUT) MEMORY-USAGE
79. PAGES, ENTRY VECTOR LOC 1762 LEN 254000
0-2 PRIVATE R, W, E
3-4 SORT.EXE.8 5-6 R, CW, E
5 PRIVATE R, W, E
6-12 SORT.EXE.8 10-14 R, CW, E
13-20 PRIVATE R, W, E
22-41 PRIVATE R, W, E
400-424 SORT.EXE.8 16-42 R, CW, E
700-726 <SUBSYS>PA1050.EXE.354 2-30 R, E
734 PRIVATE R, W, E
735 <SUBSYS>PPN-TO-DIRECTORY-HASH-TABLE.BIN.22 0 R, E
@CONTINUE (PROGRAM)
Sorted 211 Records
1444 KEY comparisons, 6.84 per record
0 Runs
0:00:02 CPU time, 10.5: MS per record
0:00:51 Elapsed
*
COPY Command Page II-49
Function
The COPY command copies the contents of one or more source files
to one or more destination files.
Hints
Use the RENAME command instead of the COPY command if you are
moving files from one name to another or one directory to
another. RENAME is faster than COPY. However, to move files
from one structure to another, use the COPY command. RENAME will
not work across structures.
Use the wildcard construction in the source file specification to
copy multiple files. For example, the source file specification
*.FOR would copy all the files with the file type .FOR to the
destination. The source file specification EXPAND.* would copy
all the files with the file name EXPAND.
When you use wildcard characters in the source file
specification, carefully select the destination file
specification:
-If you are copying the files from another directory, just
press the ESC key at the beginning of the destination file
specification. The system copies the files to the destination
using the same names and files types, but creating new
generations if any files with the same name and type already
exist. The following command copies all the files with the
type .FOR from the directory <MOSLER> and gives them the same
name in your directory.
@COPY (FROM) <MOSLER>*.FOR.* (TO) *.FOR.-1
-If you are copying the files within a directory, you probably
want to make another copy with a different name or type. For
the destination file specification, use a wildcard character.
The following command copies all the files with the type .FIL
to files with the same name, but with the type .LIB.
@COPY (FROM) *.FIL.* (TO) *.LIB
-If you want to change the file name as you are copying files,
specify the new name as the destination file specification.
The following command copies all the source files to the
destination using the source file type and the new file name
NEWTST.
@COPY (FROM) TESTFL.*.* (TO) NEWTST.*
Format
@COPY (FROM) source (TO) destination
source is a single file specification or a string of file
specifications (separated by commas) that
designate the source file(s). A file
specification has the form:
dev:<dir>name.typ.gen
COPY Command (continued) Page II-50
If you omit dev:, the system uses DSK: (your
currently connected file structure). If you omit
<dir> the system uses your connected directory.
The wildcard characters are permitted.
destination is the destination file specification. If you
press the ESC key at the beginning of this field,
the system copies the source files to your
connected directory using the same file name and
type, but with a generation new to the destination
directory. The * wildcard character is permitted.
The destination file specification takes the form:
dev:<dir>name.typ.gen
If you omit dev:, the system uses DSK: (your
currently connected file structure). If you omit
<dir>, the system uses your connected directory.
If you omit the file type (or use an asterisk in
its place), the system uses the type of the
appropriate source file. If you omit the
generation, the system uses a generation number
new to the destination directory.
Operation
1. Type COPY and press the ESC key; the system prints (FROM).
@COPY (FROM)
2. Type (or use recognition on) the source file specification
and press the ESC key (if you did not use recognition). The
system prints (TO).
@COPY (FROM) LISTFL.ALG.1 (TO)
3. Type (or use recognition on) the destination file
specification, then press the RETURN key. If you want the
default of creating a new file with the same name and type as
the source file specification, just press the RETURN key. If
you copy one or more files, the system prints a running
record of the files it is copying. It prints the source file
specification followed by an arrow and the destination file
specification. When the transfer is complete, the system
prints [OK] and proceeds to the next source file.
@COPY (FROM) LISTFL.ALG.1 (TO) NEWPRG.ALG
LISTFL.ALG.1 => NEWPRG.ALG.1 [OK]
@
Characteristics
The COPY command does not change a program in memory and leaves
your terminal at TOPS-20 command level.
COPY Command (continued) Page II-51
Restrictions
You may use the COPY command to transfer files to the line
printer and magnetic tape, but refer to the PRINT command and the
DUMPER program for a description of the additional features they
provide.
You cannot continue a COPY command that you stop by typing
CTRL/Cs.
Examples
The user copies a file from the user <PORADA>.
@COPY (FROM) <PORADA>LETTER.CBL.1 (TO) LETTER.CBL.1 !NEW FILE!
<PORADA>LETTER.CBL.1 => LETTER.CBL.1 [OK]
@
The user copies all the files with the file type .FOR from the
directory <MOSLER> to his connected directory.
@COPY (FROM) <MOSLER>*.FOR.2 (TO) *.FOR.-1
<MOSLER>ADDTWO.FOR.2 => ADDTWO.FOR.1 [OK]
<MOSLER>CUBIT.FOR.1 => CUBIT.FOR.1 [OK]
<MOSLER>GRADES.FOR.1 => GRADES.FOR.1 [OK]
<MOSLER>NETFLO.FOR.3 => NETFLO.FOR.1 [OK]
<MOSLER>PLAYER.FOR.31 => PLAYER.FOR.1 [OK]
<MOSLER>T.FOR.1 => T.FOR.1 [OK]
<MOSLER>TEST.FOR.2 => TEST.FOR.1 [OK]
@
The user makes an additional copy of all his files with the file
type .FIL, giving them the same name, but with the file type
.LIB.
@COPY (FROM) *.FIL.1 (TO) *.LIB
FOO.FIL.1 => FOO.LIB.1 [OK]
LIST.FIL.1 => LIST.LIB.1 [OK]
LOC.FIL.1 => LOC.LIB.1 [OK]
REMEM.FIL.1 => REMEM.LIB.1 [OK]
RUN3.FIL.1 => RUN3.LIB.1 [OK]
SYMBOL.FIL.1 => SYMBOL.LIB.1 [OK]
@
The user is connected to a directory on a structure other than
PS:. He copies the file DIFFER.FOR.2 from directory <MCKIE> on
PS: to his connected structure and directory.
@COPY (FROM) PS:<MCKIE>DIFFER.FOR.2 (TO) DIFFER.FOR
PS:<MCKIE>DIFFER.FOR.2 => DIFFER.FOR.1 [OK]
In the above example, suppose directory <MCKIE> on PS: is not
the user's logged-in directory and the protection codes set for
directory <MCKIE> do not allow this COPY function. The user in
this case can give the ACCESS command for the directory <MCKIE>
to gain owner privileges then give the COPY command, providing he
has the password.
CREATE Command Page II-52
Function
The CREATE command lets you create a file using the EDIT program.
Special Cases
The CREATE command always starts EDIT as long as you give a legal
file specification as an argument. If you give just a file name
and type, the system creates a new generation of that file. If
you give a file name, type and existing generation number, EDIT
sets the output file generation number to one higher than the
highest existing generation number, even though it prints the
generation number you gave.
If you do not give any arguments to the CREATE command, the
system uses the arguments you gave in the last CREATE or EDIT
command. If you have not given a CREATE or EDIT command since
you have logged in, the system cannot recall any arguments and
prints the message ?NO SAVED ARGUMENTS.
Hints
Refer to the description of the EDIT program for a list of all
the EDIT commands.
You may give any EDIT command switch as a command to the EDIT
program.
Format
@CREATE (FILE) /switches input
/switches is any combination of switches listed in Table II-5.
You may use recognition on the switch name and switch
value. Refer to the EDIT User's Guide for a complete
list of switches.
input specifies the file you want to change or create. If
the file exists, the system recognizes the highest
generation; if the file does not exist, the system
allows you to create the file.
Table II-5
CREATE Command Switches
/C128
Starts EDIT in 128-character mode that allows you to enter
special control characters. Normally, EDIT starts in
64-character mode.
/DPY
Enters display mode that uses overprinting to make the
output more concise on a video terminal screen. Otherwise,
EDIT starts in Model 33 (normal terminal) mode.
/EXPERT
Starts expert mode that allows more powerful commands and
abbreviates error messages. Otherwise, EDIT starts in
standard novice mode.
CREATE Command (continued) Page II-53
Table II-5 (Cont.)
CREATE Command Switches
/INCREMENT:n
Uses the specified increment when assigning numbers to an
unsequenced file. The numbering starts at the value of the
START parameter (the default value is 100) and assigns line
numbers by adding the specified increment. If you do not
specify an increment, the system uses 100.
/ISAVE:n
Starts ISAVE mode that automatically gives a B (Backup)
command every time you insert n lines. You must give a
value for n.
/NOBAK
Inhibits EDIT from renaming the input file to be a backup
file with the file type .Qyp. Instead, EDIT does not change
its file specification. If you give the /NOBAK switch, you
should SET FILE GENERATION-RETENTION-COUNT for this file to
a number greater than one.
/OLD
Makes a backup file with the file type .Zyp if no other one
with this file name and type exists in your connected
directory. Even though you may give another /OLD switch
with an EDIT or CREATE command, this file is never
overwritten unless you delete it with a TOPS-20 DELETE
command.
/READONLY
Starts EDIT in readonly mode where you are not allowed to
make any changes to the file. When you start EDIT, the
system prints Read: instead of Edit: or Input:. You may
give any EDIT command that does not change the file.
/SAVE:n
Starts SAVE mode which automatically gives a B command every
time you give n EDIT commands. You must give a value for n.
/START:n
Starts numbering an unsequenced file at the number n. If
you do not give a /START switch, EDIT uses a value of 100.
To produce each succeeding line number, EDIT uses the value
of the /INCREMENT switch.
/UNSEQUENCE
Removes line numbers from the output file.
Operation
If you do not want to give switches--
1. Type CREATE and press the ESC key; the system prints (FILE).
@CREATE (FILE)
CREATE Command (continued) Page II-54
2. Type (or use recognition on) the input file specification,
then press the RETURN key. The system prints a message and
leaves you at EDIT input level.
@CREATE (FILE) TEST.FOR
Input: TEST.FOR.1
00100
If you want to give switches--
1. Type the letters CREATE and press the ESC key; the system
prints (FILE)
@CREATE (FILE)
2. Type a slash and type (or use CTRL/F recognition on) the
switch name. If the switch has a value, type a colon
followed by the value. You may recognize the switch by
pressing the ESC key.
CTRL/F
@CREATE (FILE) /INCREMENT:10
ESC
@CREATE (FILE) /UNSEQUENCE
3. Type (or use recognition on) as many switches as you need,
then type (or use recognition on) the input file
specification and press the RETURN key. The system prints a
message and leaves you at EDIT input level.
CTRL/F
@CREATE (FILE) /INCREMENT:10/EXPERT NEWFIL.CPL
Input: NEWFIL.CPL.1
00100
Characteristics
The CREATE command starts the EDIT program, thereby clearing any
previous program from memory. Your terminal is left at EDIT
input level.
Restrictions
If you are using the automatic feature of the EDIT and CREATE
commands, do not give a generation number in your initial CREATE
or EDIT command or else subsequent commands will try to use that
exact generation rather than the highest existing generation for
the file. That is, give the command:
@CREATE (FILE) T.FIL
rather than:
@CREATE (FILE) T.FIL.1
CREATE Command (continued) Page II-55
In the latter case, the output file is T.FIL.1. Later, if you
give the EDIT command without any arguments, the input file will
be T.FIL.1 and the output file will be T.FIL.2. When you give a
second EDIT command, the input file will still be T.FIL.1 when it
should be T.FIL.2 and you will not use the most current
generation of your file.
Examples
The user creates a new file.
@CREATE (FILE) NUMBER.DAT
Input: NUMBER.DAT.1
00100
The user creates a file, setting the SAVE parameter to give a B
command after every 5 EDIT commands and the ISAVE parameter to
give a B command every 10 inserts.
@CREATE (FILE) /SAVE:5/ISAVE:10 CRISCR.ALG
Input: CRISCR.ALG.1
00100
The user starts EDIT in DPY mode and unsequences his output file.
There is already an existing generation number 5 of this file, so
EDIT uses generation number 6.
@CREATE (FILE) /DPY/UNSEQUENCE NXTVER.MAC
Input: NXTVER.MAC.6
00100
CREF Command Page II-56
Function
The CREF command produces cross reference listings from .CRF
files. (.CRF files are produced by LOAD-class commands.) The
listings are printed on device LPT:, which usually causes the
files to be sent to the line printer. The .CRF files are deleted
from the directory.
Hints
To create a listing of your program, first give a LOAD-class
command with the /CREF switch, then give the CREF command. A
cross-reference listing contains your source program plus a list
of all the symbols in the program and the locations that
reference them.
If you want to place the listing in a file, do the following.
Type R CREF and press the RETURN key; the system prints an
asterisk. Type the file specification of the output file, an =,
and the name of the .CRF file. Press the RETURN key; the system
prints a message and a second *. Type a CTRL/C to return to
TOPS-20 command level. If you want to print this file, give the
PRINT command. Refer to the second example.
Format
@CREF
There are no arguments to the CREF command.
Operation
1. Type CREF and press the RETURN key. The system prints the
word CREF: and the name of each file it processes.
@CREF
CREF: GRADES
@
Characteristics
The CREF command runs the CREF program to produce the listing,
thereby clearing any previous program from memory, and leaves
your terminal at TOPS-20 command level. If you forget to precede
the CREF command with the LOAD-CLASS command containing a /CREF
switch, the system prints an asterisk and leaves your terminal at
CREF command level. Type a CTRL/C to return to TOPS-20 command
level.
Restrictions
If the .CRF file is in your logged-in directory and was created
before you logged-in, the system will not produce a listing file
from it. To produce the listing file in this case, refer to the
second example.
CREF Command (continued) Page II-57
Examples
The user produces a cross-referenced listing.
@CREF
CREF: TMAC
@
The user forces the production of a .CRF file, then runs the CREF
program and keeps the file without printing it.
@COMPILE (FROM) /COMPILE /CREF FILEIO
MACRO: FILEIO
EXIT
@R CREF
*FILEIO.REF=FILEIO
[CRFXKC 3K CORE]
*^C
@
DAYTIME Command Page II-58
Function
The DAYTIME command prints the day, date, and time on your
terminal.
Format
@DAYTIME
There are no arguments to the DAYTIME command.
Operation
1. Type DA and press the ESC key; the system prints YTIME.
@DAYTIME
2. Press the RETURN key; the system prints the day, date and
time.
@DAYTIME
FRIDAY, NOVEMBER 16, 1976 9:10:06
@
Characteristics
The DAYTIME command;
Does not require you to be logged in to the system.
Does not change a program in memory.
Leaves your terminal at TOPS-20 command level.
Example
The user requests the day, date and time.
@DAYTIME
FRIDAY, NOVEMBER 16, 1976 9:11:05
@
DDT Command Page II-59
Function
The DDT command starts the debugger you have loaded into memory
along with your program.
Special Cases
If you do not have a debugger in memory, the system loads and
starts DDT.
If you are using COBDDT, the system starts DDT, not COBDDT.
Hints
The DDT command is useful when you want to halt a program by
typing two CTRL/Cs, then continue running the debugger.
To find out if you have a debugger loaded, examine memory
location 74; type 74/. This command examines the contents of
memory location 74. If the system prints 0, or ?NO SUCH PAGE,
you do not have the debugger loaded yet. The DDT command causes
DDT to be loaded.
Format
@DDT
There are no arguments to the DDT command.
Operation
1. Type DDT and press the RETURN key; the system starts the
debugger, or loads and starts DDT.
@DDT
ENTERING FORDDT
>>
Characteristics
The DDT command merges DDT into memory (if required) and leaves
your terminal at command level in the debugging program.
DDT Command (continued) Page II-60
Examples
The user wants to debug his program; he has no debugger loaded,
so the system loads and starts DDT.
@DDT !The user types the DDT command.
DDT !The system loads and starts
!DDT.
The user starts debugging his FORTRAN program.
@DDT !The user types the DDT command.
ENTERING FORDDT !FORDDT is loaded, so the
!system starts it.
>> !Once the system prints >>,
!the user can give any FORDDT
!command.
DDT Program Page II-61
Function
The DDT program helps you debug your program by providing
commands which control the execution of a program, without
reassembling or recompiling the source program.
Hints
To use DDT, you must first load your object program into memory,
then transfer control to DDT. There are three ways of doing
this. The first method entails giving the DEBUG command which
produces an up-to-date object program, loads it into memory, then
starts DDT. (Remember to give the /DDT switch if your file type
is other than .ALG, .FAI, .MAC, or .SAI.).
@DEBUG (FROM) TEST.MAC
MACRO: TEST
LINK: Loading
[LNKDEB DDT EXECUTION]
DDT
The second method entails loading an object program into memory,
then giving the DDT command.
@LOAD (FROM) TEST.MAC
LINK: Loading
EXIT
@DDT
DDT
The third method entails placing an .EXE file in memory, then
giving the DDT command.
@GET (PROGRAM) TEST.EXE
@DDT
DDT
In all cases, once the system prints DDT, you may give any DDT
command.
You may use DDT to change the contents of an executable program.
To do this, place the program in memory, make the changes using
DDT, then save the altered program in a file. You may also save
a program with breakpoints. Refer to the examples.
Operation
The following pages contain a brief description of how to use
DDT. You may give any of these commands after you have loaded
your program with DDT using one of the methods described in the
previous paragraph.
Opening The Symbol Table - name$:
To open the symbol table of the program or module you are
debugging, type its name, press the ESC key and type a colon. If
DDT can find the symbol table, the system prints a tab; if it
cannot find the symbol table, it prints a U. This should be the
first DDT command you give.
TRANSL$:
DDT Program (continued) Page II-62
The name is the name following the TITLE statement in a MACRO
program or a FORTRAN SUBROUTINE or FUNCTION statement.
Examining Storage Words - location/ , <TAB>, <LF>, ^, =
To print the contents of a location in memory, type the location
and a slash. The system prints the contents preceded and
followed by tabs. The variable "location" can be a variety of
things including a symbol name such as PNTUSR, . (an
abbreviation for the current position), a symbol name and an
offset such as PNTUSR 5 (the offset is an octal number), or an
octal value such as 453.
PNTUSR/ MOVE 1,6
U
If the system prints a U, it cannot find
the symbol name. Check your spelling of
the symbol. You must retype the
instruction and the symbol. After the U
is printed, DDT has forgotten everything
you typed to DDT since the last
characters DDT typed out. For example,
if you type MOVE A, and A is undefined,
which causes DDT to type U, and you
meant to type MOVE B, you will have to
retype MOVE.
If you want to examine the contents of the address part (right
half) of an instruction, press the TAB key. The system prints
the contents of that location and it becomes your current
location.
INFIL/ HRROI T1,MESAGE <TAB>
MESAGE/ 64252,,252634
To examine the next location, press the LINEFEED key:
MESAGE/ 64252,,252634 <LF>
MESAGE+1/ 65242,,115622
To examine the previous location, type an up-arrow:
MESAGE+1/65242,,115622 ^
MESAGE/ 64252,,252634
To print the octal half-words corresponding to the current
symbolic instruction, type an equals sign:
INFIL/ HRROI T1,MESAGE =561040,,640
Changing Typeout Modes - $$C, $$F, $$T, $$nO, $$S
You may change the typeout mode to print numeric constants ($$C),
floating-point numbers ($$F), ASCII text ($$T), SIXBIT text
($$6T), and n-bit bytes ($$nO). DDT initially prints the
symbolic instruction associated with each memory location you
examine. If you change the typeout mode, you can return to this
DDT Program (continued) Page II-63
initial state by typing $$S ($ means press the ESC key, not type
a dollar-sign). The $$C command prints numbers in the current
radix; if you want to change the current radix, type $$nR where
n is a decimal number specifying the radix you want.
$$C USRFLG/ 600000
$$10R USRFLG/ 196608.
$$F STRSWT/ 45.599999
$$T PRMPT/ .SPAC
$$6T P6BIT/ .HL 4
$$70 PRMPT/ 56,123,120,101,103,0
$$S RTRANS+23/ PUSHJ P,MESOUT
To reprint the current line in the new mode, type a semicolon.
$$C USRFLG/ 600000 $$IOR;196608.
Modifying Storage Words
Once you have examined a storage word, you can change its
contents by typing its new contents, and pressing the RETURN key.
To enter Type
An octal number - 23 The octal number - 23
A decimal number - 109 The decimal number, followed
by a decimal point - 109.
Floating point number - The floating point number,
.0078 optionally in E-notation:
7.8E-3, or .0078.
ASCII text - HELLO a double quote, a delimiter,
the text, the same delimiter -
"/HELLO/. The delimiter
may be any character not in
the text.
An instruction - The instruction - MOVEI T2,4
MOVEI T2,4
Setting And Removing Breakpoints - location$B, $nB/ , 0$nB
Once you have started your program, you may want to stop at a
particular location. Type two CTRL/Cs and give the DDT command.
If you have not already opened the symbol table, open it. Next,
set a breakpoint at that location by typing the location,
pressing the ESC key and typing a B. The system prints a tab
when the breakpoint is set.
TRANSL+34$B
DDT Program (continued) Page II-64
Whenever, during execution, your program encounters the
instruction where you have set a breakpoint, the system prints
the number of the breakpoint, two greater-than signs and the
location. The system has not executed the instruction containing
the breakpoint. To proceed from the breakpoint, type $P.
$1B>>TRANSL+34 $P
While at a breakpoint, you may examine storage words, set and
remove breakpoints, and change the contents of memory.
Each time you assign a breakpoint, the system assigns it a
number. You can find out what location each breakpoint is set at
by pressing the ESC key, typing the number of the breakpoint,
typing a B and pressing the slash key.
$1B/ TRANSL+34
To remove a breakpoint, type a 0, press the ESC key, type the
number of the breakpoint and type a B. The system prints a tab.
The next example shows how to remove breakpoint 1.
0$1B
Controlling Execution - $$G, $X, $$X, $P, n$P
To start your program, press the ESC key twice and type a G. DDT
starts your program and its execution continues until it has a
fatal error, the program terminates, or until it reaches a
breakpoint instruction.
$$G
INPUT FILE: TEST1.FIL
$1B>>TRANSL+34
To continue from a breakpoint, press the ESC key and type a P.
Execution resumes until the program finishes, encounters an
irrecoverable error, or reaches a breakpoint. If you want to
proceed through the breakpoint a number of times and stop the nth
time the breakpoint is encountered, type n$P instead of just $P.
$1B>>TRANSL+34 5$P
OUTPUT FILE: TEST2.DAT
$3B>>DATA5
To proceed through your program statement-by statement, press the
ESC key and type an X. The system executes the instruction,
prints the results of the instruction and prints the contents of
the next instruction to be executed and stops.
$3B>>DATA5 ./ PUSHJ P,PUTCHR $X
<JMP>
GETCHR/ MOVE GETPNT
DDT Program (continued) Page II-65
To proceed through an entire subroutine, press the ESC key twice
and type an X.
$3B>>DATA5 $$X
DATA5+1/ CAIN C,N
Leaving DDT - CTRL/Z
To halt the debugging session, type a CTRL/Z to return to command
level. You may continue DDT by giving the CONTINUE command. If
you want to save your program with the modifications you have
made, give the TOPS-20 command SAVE.
Characteristics
After you start DDT, your terminal is at DDT command level. Type
a CTRL/Z to return to TOPS-20 command level.
Examples
The user debugs a MACRO program. Refer to Section 2.2.5 of the
Monitor Calls Reference Manual.
@LOAD (FROM) FILEIO.MAC !Load the program into memory
MACRO: FILEIO
LINK: Loading
EXIT
@SAVE !Save it for reference
FILEIO.EXE.1 SAVED
@DDT !Start DDT
DDT
FILEIO$: !Open the symbol table
OUTFIL$B LOOP$B DONE$B !Set breakpoints at the
!labels OUTFIL, LOOP, and DONE
$$G !Start the program
INPUT FILE: T.FIL !Type the input file name
$1B>>OUTFIL !Execution stops at the first
!breakpoint you hit
./ HRROI 1,ZAP+12 !Examine this location, it
!contains an instruction
<TAB> !Press the TAB key to look at
!the location ZAP+12
ZAP+12/ 64251,,752650 !It must contain text
$$T !Tell DDT to print ASCII
!characters
./ !Check this location again
OUT <LF> !It contains a new line and OUT
!Examine the next location
!by pressing the LF key
ZAP+13/ PUT F <LF> !And the following location
ZAP+14/ ILE:
OUTFIL/ \"R@ !Look at the contents of OUTFIL
$$S !But change to symbolic
!instruction printout
./ HRROI 1,ZAP+12 !And look again
$P !Let the program continue
!execution
OUTPUT FILE: O.FIL !Type the output file
DDT Program (continued) Page II-66
$2B>>LOOP !Execution stops at the next
!breakpoint
$X !Execute the instruction at the
!current location - the system
1/ 5 INJFN/ 5 !prints the results
LOOP+1/ BIN $X !Execute this instruction
LOOP+2/ JUMPE 2,DONE =322100,,203
!Print the contents
!of this location in octal
!numbers
$X !Then execute the instruction
2/ 15 DONE
LOOP+3/ MOVE 1,OUTJFN $X
1/ 6 OUTJFN/ 6
LOOP+4/ BOUT
$1B/ OUTFIL !Find the location of the first
!breakpoint
$2B/ LOOP !And the location of the second
0$2B !Remove the breakpoint at LOOP
$P !And continue execution
$3B>>DONE !Execution stops at the last
!breakpoint
JRST CLOSIF$X !Execute this instruction and
!continue
[DONE}
@
The user places an executable program in memory, changes an
instruction, then saves the altered program.
@GET (PROGRAM) RTRANS
@DDT
DDT
RTRANS$: PUTTAB/ MOVE PT,PDLEN MOVEM PT,PDLEN
^Z
@SAVE
RTRANS.EXE.2 SAVED
@
The user places an executable program in memory, sets a
breakpoint, then saves the program. Whenever the program
encounters the breakpoint, it will stop and wait for a $P.
@GET (PROGRAM) RTRANS
@DDT
DDT
RTRANS$: COMDSP$B ^Z
@SAVE
RTRANS.EXE.3 SAVED
@
DEASSIGN Command Page II-67
Function
The DEASSIGN command returns a device you previously assigned
back to the pool of available devices.
Hints
When you are finished using a device, you should DEASSIGN the
device so that it may be accessed by other users.
Use the INFORMATION (ABOUT) AVAILABLE DEVICES command to
determine what devices are assigned to you.
Format
@DEASSIGN (DEVICE) dev:
dev: is the device name of the device that you want to
deassign, followed by a colon. The standard I/O
devices and their device names are listed in Table
5-1 (the only names in this table that you cannot
deassign are structure names). Use an asterisk to
dessign all the devices you have assigned to your
job.
Operation
1. Type DEAS and press the ESC key; the system prints SIGN
(DEVICE).
@DEASSIGN (DEVICE)
2. Type the name of the device that you want to deassign.
@DEASSIGN (DEVICE) MTA2:
3. Press the RETURN key. When the device is deassigned, the
system prints an @ on your terminal.
@DEASSIGN (DEVICE) MTA2:
@
Errors
1. If you have not previously assigned the device to your job,
the system prints the message:
?dev: NOT ASSIGNED TO YOU
then cancels the command.
DEASSIGN Command (continued) Page II-68
Characteristics
The DEASSIGN command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
You must type a device name in the DEASSIGN command; if you do
not give the device name, no default action is taken.
Examples
The user deassigns magnetic tape unit number 3.
@DEASSIGN (DEVICE) MTA3:
@
The user deassigns all the devices allocated to his job.
@DEASSIGN (DEVICE) *
@
DEBUG Command Page II-69
Function
The DEBUG command loads a program and a debugger into memory,
then starts the debugger.
Special Cases
If you give only DEBUG-command switches as arguments to a DEBUG
command, the system appends the arguments you gave in the last
LOAD-class command that contained a file specification or LINK
switch, then executes the command. If there are no arguments to
recall, the system prints the message ?No saved arguments. Refer
to Section 8.3.4 which describes the manner in which arguments
are recalled.
The system will update the object file if it is older than any
one of the corresponding source files. Suppose you give the
command:
@DEBUG (FROM) NXTLAT.FOR
If NXTLAT.REL does not exist, or if it is older than the most
recent NXTLAT.FOR (i.e., it has a write date before the write
date of NXTLAT.FOR), then the system compiles NSTLAT.FOR to
produce an up-to-date NXTLAT.REL. After producing NSTLAT.REL,
the system loads it into memory. Refer to Section 8.3.3 which
describes the manner in which object files are updated.
Format
@DEBUG (FROM) sources object,sources object,...
sources is one or more source file specifications preceded
and/or followed by switches. You must separate
the source files with plus signs. No spaces or
tabs are allowed. If you do not give a file type
in a file specification, the system looks for a
source file with one of the standard types listed
in Table 8-1. If there is more than one file with
a standard file type, the system uses .FOR. Refer
to Section 8.3.2 which describes more about how
the system selects a file when you do not specify
its file type.
a space separates the source file specifications from the
object file specification. If you do not give an
object file specification, you must not leave a
space.
object is an object file specification. If you do not
give an object file specification, the system uses
the name of the last file in the corresponding
sources and the type .REL.
@name.typ You can store any portion of the command in a
file. That portion of the command is included -
just as if you typed it on your terminal -
whenever you type an @ followed by the name of the
file. Refer to Section 8.3.5 that describes how
the system takes commands from an indirect file.
DEBUG Command (continued) Page II-70
switches You can use recognition to help you type a switch
and any file specification that is an argument to
a switch. If you place a switch before a set of
sources, the switch applies to all the files n
that set of sources; if you place a switch after
a file specification in a set of sources, the
switch applies to just that file. Table II-6
lists the switches that are useful with the DEBUG
command.
Table II-6
DEBUG Command Switches
/ALGOL
Compiles the file using ALGOL, then loads and starts the
DDT debugging program. This is the default for sources
with the extension .ALG.
/BINARY
Generates a binary (object) file for each source program.
Normally, the system generates object files, so this
switch is useful in reversing a global /NOBINARY switch.
/COBOL
Compiles the program using COBOL, then loads and starts
the COBDDT debugging program. This is the default for
sources with the extension .CBL.
/COMPILE
(or an object file older than any one of its source files)
Compiles the source program regardless of whether the
object file is up-to-date or not. The /NOCOMPILE switch
causes compilation only if the object file is out-of-date.
/RELOCATABLE switch causes the system to use an existing
object file, regardless of its date. Normally, the system
assumes the action of the /NOCOMPILE switch.
/CREF
Creates a file containing cross-reference information for
each source file you compile. The name of the file is the
name of the last source file and the file type is .CRF.
Give the CREF command to run the CREF program which reads
this file and prints a listing. If the object file is not
out of date, include the /COMPILE switch in your DEBUG
command. When a source file contains a COBOL program, the
system produces a listing file (the file type is .LST
instead of .CRF) containing the cross-reference
information; give the PRINT command (instead of CREF) to
print the .LST file.
/DDT
Loads the DDT debugger along with the program.
/DEBUG
Provides additional debugging information in the object
program (FORTRAN only).
/FORTRAN
Compiles the file using FORTRAN, then loads and starts the
FORDDT debugging program. This is the default for sources
with the extension .FOR.
DEBUG Command (continued) Page II-71
Table II-6 (Cont.)
DEBUG Command Switches
/LIBRARY
Loads only the routines from the object file that are
called by the main program or another subroutine. The
system libraries are always searched.
/LIST
Prints a listing of each program you compile. The listing
name is the name of the last source file. Unless you
specify this switch, the system does not print a listing
of your program. If you also include a /CREF switch, the
system ignores the /LIST switch.
/MACRO
Assembles the file using MACRO, then loads and starts the
DDT debugging program. This is the default for sources
with the extension .MAC.
/MAP:name.typ
Produces loader maps during the loading process and stores
them in the file name.typ. If you do not give a file name
and type, the system uses nnnLNK.MAP, where nnn is your
job number. The /MAP switch applies to the entire
command, not to just one file. You may use recognition
input in typing the file specification, the system creates
a new generation of the recognized file.
/NOBINARY
Inhibits the generation of a binary (object) file. This
switch is useful along with the /CREF or /LIST switch to
produce listings without additionally producing an object
file.
/NOCOMPILE
Compiles a file only if it is out-of-date. Since the
system normally does this, the /NOCOMPILE switch is useful
for turning off a global /COMPILE or /RELOCATABLE switch.
/NODEBUG
Omits loading debugging information with the program
(FORTRAN only).
/NOLIST
Inhibits the generation of a listing file. Normally, the
system does not generate a listing file.
/NOOPTIMIZE
Inhibits the generation of optimized object files (FORTRAN
programs only).
/NOSEARCH
Loads all routines in a file, regardless of whether the
routines are called by another module. Normally the
system loads all the routines in an object file, therefore
this switch is useful in reversing a global /SEARCH
switch.
DEBUG Command (continued) Page II-72
Table II-6 (Cont.)
DEBUG Command Switches
/NOSYMBOLS
Inhibits loading symbols with the program. Normally, the
system loads symbols with all programs.
/OPTIMIZE
Produces optimized object files (FORTRAN programs only).
/RELOCATABLE
Uses the specified object files, even though they may be
out-of-date or may have extensions other than .REL. For
example, the command LOAD FILE.FOR/REL would cause
FILE.FOR to be treated as a relocatable file and load it.
It would normally be regarded as a FORTRAN source file.
/SEARCH
Is identical to the /LIBRARY switch.
/SYMBOLS
Loads the program with its appropriate symbol table.
Normally, the system loads all programs with symbols.
Operation
1. Type DEBU and press the ESC key; the system prints G (FROM).
@DEBUG (FROM)
2. Type (or use recognition on) the sets of source
specifications, object specifications and switches. Press
the RETURN key. The system loads the file and starts the
debugger.
@DEBUG (FROM) TEST.FOR
FORTRAN: TEST
LINK: Loading
[LNKDEB FORDDT EXECUTION]
ENTERING FORDDT
>>
Errors
1. If you give a command and one of the source files is missing,
the system continues processing the command and prints the
message:
%SOURCE FILE MISSING - name.typ
where name.typ is the name and type of the source file.
DEBUG Command (continued) Page II-73
Characteristics
The DEBUG command minimally runs the appropriate translator and
the LINK program, thereby clearing any previous program from
memory. Your terminal is left at command level in your debugging
program.
Examples
The user debugs a simple MACRO program.
@DEBUG (FROM) TRANSL.MAC
MACRO: TRANSL
LINK: Loading
[LNKDEB DDT Execution]
DDT
The user combines three FORTRAN programs into one main program
and includes the entire subroutine package TYPE2.
@DEBUG (FROM) 1+2+3,TYPE2
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
LINK: Loading
[LNKDEB FORDDT Execution]
ENTERING FORDDT
>>
The user debugs his COBOL program.
@DEBUG (FROM) COMPUT.CBL
COBOL: MAIN [COMPUT.CBL]
LINK: Loading
[LNKDEB COBDDT Execution]
STARTING COBOL DDT
*
DEFINE Command Page II-74
Function
The DEFINE command defines or removes logical name assignments.
Hints
Refer to Section 5.12 for an explanation of logical names.
To print a list of your current logical names and their
definitions, give the command INFORMATION (ABOUT) LOGICAL-NAMES.
Format
@DEFINE (LOGICAL NAME) logname: (AS) filespecs
logname: is the logical name comprised of up to 39
alphanumeric characters (including hyphen, dollar
sign and underline) followed by a colon.
filespecs is a list of file specifications (separated by
commas) that define the logical name. A file
specification may contain any combination of a
structure name, device name, directory, file name,
file type, generation number, and wildcards. If
you are removing a logical name, do not type a
list of file specifications.
Operation
1. Type DEFI and press the ESC key; the system prints NE
(LOGICAL NAME).
@DEFINE (LOGICAL NAME)
2. Type the logical name followed by a colon. If you are
defining the logical name, press the ESC key and the system
prints (AS). If you are removing the logical name, press the
RETURN key.
@DEFINE (LOGICAL NAME) LIB: (AS)
3. Type (you may not use recognition) the file specification(s)
that define the logical name, then press the RETURN key. The
system prints an @.
@DEFINE (LOGICAL NAME) LIB: (AS) <MILLER>,<BOSACK>
@
Errors
1. If you try to remove a non-existent logical name, the system
prints the message:
% Logical name xxx: was not defined
where xxx: is the nonexistent name.
DEFINE Command (continued) Page II-75
Characteristics
The DEFINE command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
Some programs may use restricted logical names. Refer to Section
5.12.
Examples
The user defines the logical name LIB: as the directories
<FORTRAN-LIBRARY> and <COBOL-LIBRARY>.
@DEFINE (LOGICAL NAME) LIB: (AS) <FORTRAN-LIB>,<COBOL-LIB>
@INFORMATION (ABOUT) LOGICAL-NAMES
LIB => <FORTRAN-LIBRARY>,<COBOL-LIBRARY>
@
The user removes the logical name LIB: which he defined in the
previous example.
@DEFINE (LOGICAL NAME) LIB:
@INFORMATION (ABOUT) LOGICAL-NAMES
@
DELETE Command Page II-76
Function
The DELETE command identifies a disk file(s) for eventual
deletion.
Hints
Once you delete a disk file, it is kept on disk storage until
either you (or the operator) give an EXPUNGE command, or until
you log off the system. If you want to see what files you have
deleted, but not expunged, give the DIRECTORY command with the
DELETED SUBCOMMAND.
Between the time when you give the DELETE command and the time
when the file is expunged, you cannot access the file with a
normal TOPS-20 command or program, except with an UNDELETE
command, a DIRECTORY command (and the DELETED subcommand), or an
EXPUNGE command.
If you want to restore a deleted file, give the UNDELETE command.
Format
@DELETE (FILES) filespecs
filespecs is a single file specification or a string of file
specifications (separated by commas) that indicate
the files to be deleted. A file specification has
the form:
dev:<dir>name.typ.gen
If you omit dev: or <dir>, the system uses your
connected structure and/or directory. You must
give a file name. You can use wildcard
characters.
Subcommand
There are a few subcommands to the DELETE command, the most
useful one is KEEP.
@@KEEP n
Deletes all but the n most recent generations of the specified
files. For example, if you have TEST.FIL.1,2,3 and give a
DELETE command with a KEEP 2 subcommand, the system will
delete TEST.FIL.1 leaving TEST.FIL.2,3. This subcommand when
used with the EXPUNGE command is useful when you want to free
up space in your directory when you are over quota.
Operation
1. Type DELE and press the ESC key; the system prints TE
(FILES).
@DELETE (FILES)
2. Type (or use recognition on) the file specification(s)
(separated by commas) that you want to delete; then press
the RETURN key. If you want to give a subcommand, do not
press the RETURN key; proceed to step 3.
DELETE Command (continued) Page II-77
@DELETE (FILES) ADDTWO.REL.3
ADDTWO.REL.3 [OK]
@
3. To give a subcommand, type a comma, then press the RETURN
key. The system prints @@.
@DELETE (FILES) *.FIL,
@@
4. Type the subcommand and press the RETURN key once to
terminate the subcommand and a second time to terminate
the entire command.
@DELETE (FILES) *.FIL,
@@KEEP 1
@@
SORT.FIL.3 [OK]
T.FIL.1 [OK]
TAP.FIL.2 [OK]
@
Output
As the system starts to delete each file, it prints the file
specification and leaves a space. When the file is deleted, the
system prints the success message [OK].
Characteristics
The DELETE command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user deletes the file TEST.FIL.
@DELETE (FILES) TEST.FIL
TEST.FIL.2 [OK]
@
The user deletes all the files with the file type .QOR.
@DELETE (FILES) *.QOR
ADDEM.QOR.2 [OK]
RESULT.QOR.1 [OK]
TEST.QOR.1 [OK]
ZEROS.QOR.5 [OK]
@
The user keeps two generations of every file in his directory.
@DELETE (FILES) *.*,
@@KEEP 2
@@
ADDTWO.REL.2 [OK]
NUMBER.FOR.4 [OK]
SQRT.ALG.1 [OK]
@
DIRECTORY Command Page II-78
Function
The DIRECTORY command prints information about a file or group of
files.
Hints
Normally the DIRECTORY command prints the file name, type, and
generation number for each file specified in the command.
1. Order the files chronologically by the date of creation,
read, or write (CHRONOLOGICAL).
2. Print information about deleted files (DELETED).
3. Print all the information about a file (EVERYTHING).
4. Print the length (in bytes) of the files, and also the byte
size (LENGTH).
5. Omit the heading (NO HEADING).
6. Write the directory listing in a file (OUTPUT) or to the line
printer (LPT).
7. Print the protection codes of the files (PROTECTION).
8. Reverse the order in which the files are printed (REVERSE).
9. Print the size (in pages) of each file.
10. Print the times and dates of creation, read, or write.
For convenience, there are three additional commands that have
exactly the same command format and subcommands as the DIRECTORY
command. They are:
FDIRECTORY (for Full DIRECTORY) automatically prints everything
about the files, without any headings, and compresses the
output. It is the same as giving the DIRECTORY command with
the CRAM (output), EVERYTHING, and NO HEADING subcommands.
TDIRECTORY (for Time-ordered DIRECTORY) orders the files with the
most recent write dates first and prints the write times and
dates. It is the same as giving the DIRECTORY command with
the CHRONOLOGICAL (BY) WRITE, REVERSE (SORTING) and TIMES
(AND DATES OF) WRITE subcommands.
VDIRECTORY (for Verbose DIRECTORY) automatically prints the
protection, size, length, and write time and date for each
file. No headings are printed. It is the same as giving the
DIRECTORY command with the PROTECTION, SIZE, LENGTH (IN
BYTES), TIMES (AND DATES OF) WRITE, and NO HEADING
subcommands.
By giving the proper file specification(s), you can obtain
information about a single file, a group of files, or files in
another directory. The directory can be on your connected
structure or on another online structure.
If the directory is on another structure and the "all user"
protection code does not allow you to list the files in that
directory, you must give the ACCESS or CONNECT command before the
DIRECTORY Command (continued) Page II-79
DIRECTORY command. (Remember that once a structure is mounted
you will only have "all user" access privileges to directories on
that structure, including your own user-name-directories, until
you give an ACCESS or CONNECT command.)
Format
@DIRECTORY (OF FILES) dev:<dir>name.typ.gen,dev:<dir>name.typ.gen,...
dev: is the name of the file structure that contains
the directory and files. If you omit the file
structure (dev:) name, the system uses your
currently connected structure.
<dir> is the name of the directory which contains the
files about which you are obtaining the
information. If you omit the directory name, the
system uses your connected directory. You may use
the wildcard construction in specifying the
directory name.
name.typ.gen is the file name, type, and generation number of
the file. If the type is omitted, all the files
with the given name are described. If the name,
type, and generation are all omitted, all the
files in the specified directory are described.
You may use the wildcard construction in
specifying the name or type.
Additional file specifications may be included by separating the
file specifications with commas.
Subcommands
The subcommands of the DIRECTORY command request additional
information, modify the printing format, or change where the
directory listing is sent.
@@CHRONOLOGICAL (BY) date
Lists the files in the order of ascending dates (i.e., the
oldest date is first and the most recent date is last).
date may be CREATION, READ, or WRITE. CREATION uses the
date the files were created, READ uses the date the
files were last read, and WRITE uses the date the files
were last changed.
@@DELETED (FILES ONLY)
Prints information only for deleted files that have not yet
been expunged.
@@EVERYTHING
Prints all the information about the files. This includes
the file name, type, generation number, protection number,
account, size (in pages), length (in bytes), byte size, file
retention count, creation date and time, write date and time,
read date and time, creator and most recent writer.
@@HEADING
Prints a heading that labels each file descriptor.
DIRECTORY Command (continued) Page II-80
@@LENGTH (IN BYTES)
Prints the length of the file (in bytes) and the associated
byte size (in parentheses).
@@LPT (IS OUTPUT DEVICE)
Prints the directory listing on the line printer.
@@NO HEADING
Stops the printing of any headings.
@@OUTPUT (TO FILE)
Sends the output to a destination other than your terminal.
dev:name.typ.gen is a single file specification that tells
the system where to send the directory
information. If you omit dev:, the system
uses DSK:. If you omit the name, the system
uses DIR. If you omit the type, the system
uses DIR.
@@PROTECTION
Prints the protection number of the files.
@@REVERSE (SORTING)
Orders the files in reverse. Thus, to obtain a list of your
files from the most recent to the least recent give the
subcommands @@CHRONOLOGICAL (BY) WRITE and @@REVERSE
(SORTING). Conversly, this can also be done with the
TDIRECTORY command.
@@SIZE
Prints the size of the files in pages; a page contains 512
36-bit words.
@@TIMES (AND DATES OF) date
Prints the most recent CREATION, READ, or WRITE dates for the
files.
Operation
1. Type DIR and press the ESC key; the system prints ECTORY (OF
FILES).
@DIRECTORY (OF FILES)
2. Type the list of file specifications, separated by commas.
Press the RETURN key and the system prints the directory
information. If you want to give one or more subcommands, do
not press the RETURN key; proceed to step 3.
@DIRECTORY (OF FILES)
<LUSE>
EDIT.CTL.2
.LAST.2
.MAC.2
SNOOP.HLP.1
WATCH.MAC.1
TOTAL OF 5 FILES
@
DIRECTORY Command (continued) Page II-81
3. To give subcommands, type a comma, then press the RETURN key.
The system prints @@.
@DIRECTORY (OF FILES) *.MAC,
@@
4. Type (or use recognition on) the subcommands, pressing the
RETURN key once again after you are finished.
@DIRECTORY (OF FILES) *.MAC,
@@TIMES (AND DATES OF) WRITE
@@
<LUSE>
WRITE
EDIT.MAC.2 16-JAN-76 03:06:36
WATCH.MAC.1 15-JAN-76 01:16:14
TOTAL OF 2 FILES
@
Output
The system lists the files in alphabetical order, unless you
change this action by giving the REVERSE or CHRONOLOGICAL
subcommands. If two files have the same file name, only the type
and generation number for each succeeding file after the first
are printed. The period before the type is indented three
spaces. If a file is temporary, a ;T is printed after the
generation number.
Characteristics
The DIRECTORY command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user obtains a list of all his files with the type .MAC.
@DIRECTORY (OF FILES) *.MAC
<LUSE>
EDIT.MAC.2
WATCH.MAC.1
TOTAL OF 2 FILES
@
The user obtains a directory listing and stores it in the file
1-16.DIR.
@DIRECTORY (OF FILES) ,
@@OUTPUT (TO FILES) 1-16.DIR.1 !New file!
@@
@
DIRECTORY Command (continued) Page II-82
The user obtains a list of his deleted (but not expunged) files.
@DIRECTORY (OF FILES) ,
@@DELETED (FILES ONLY)
@@
<MANUALS>
020EDI.TEM.1
.TMP.1
CHANGE.XEC.2
TOTAL OF 3 FILES
@
The user is connected to his logged-in directory on PS: and
obtains a list of his files on structure STU:.
@DIRECTORY (OF FILES) STU:
STU:<ESTEY>
ADDEM.FOR.1
COMP.FOR.1
.REL.1
TOTAL OF 3 FILES
@
DUMPER Program Page II-83
Function
The DUMPER program transfers one or more files between disk and
magnetic tape.
Hints
Before starting DUMPER, set the proper magnetic tape defaults
with the system command SET TAPE.
Instead of giving a TAPE command to DUMPER each time you start
it, you can assign a magnetic tape file specification to the
logical name MTA-DUMPER using the TMOUNT command.
Before restoring files, be sure to read the description of the
RESTORE command or, for simple cases, refer to the examples.
The following cookbook examples are at the end of this section:
Saving/restoring your entire directory (Examples 1, 13)
Saving/restoring a single file (Examples 2, 14)
Saving/restoring a group of files (Examples 3, 15)
Saving/restoring files from another directory (Examples 4, 16)
Saving/restoring files for a TOPS-10 system (Examples 5, 17)
Saving/restoring changed files (Examples 6, 18)
Saving/restoring accessed files (Examples 7, 19)
Saving/restoring modified files (Examples 8, 20)
Saving/restoring on a second reel of tape (Examples 9, 22)
Checking the saved files (Example 10)
Using DUMPER in a Batch job (Example 11)
Keeping information about saved files (Example 12)
Restoring files changed during a certain time period (Example 21)
Restoring files from system backup tapes (Example 23)
Examining a tape (Example 24)
Stopping DUMPER (Example 25)
DUMPER Program (continued) Page II-84
Format
@DUMPER
DUMPER 2(154)
DUMPER> command arguments
command is a DUMPER action-command, tape-positioning
command, or status-command. Table II-7 contains a
list of the DUMPER commands, grouped by function.
arguments is a file specification, date, density, parity,
drive number, number, or save-set name, depending
on the command.
dates are in the form day-month-year.
Type January 16, 1975 as 16-JAN-75.
times are in 24-hour format (nn:mm:ss),
or in AM, PM form. Thus 9:23 in
the evening is either 21:23, or
9:23 PM.
filespecs
source
destination are files in the form
dev:<dir>name.typ.gen. The * and %
wildcard characters are permitted.
save-set name is a string of alphanumeric
characters which is used as a title
for a save set.
DUMPER Program (continued) Page II-85
Table II-7
DUMPER Commands
ACTION-COMMANDS
DUMPER action commands start, stop, interrupt or continue
a file transfer or file check.
CHECK (ALL MTA FILES)
Checks the files in the current save set to make sure that
they agree with the files on disk. The system prints a
message if the files do not agree; refer to items 1 and 2
in the error section. Be sure to rewind the tape to the
beginning of the save set before giving the CHECK command.
CONTINUE
Continues a CHECK, RESTORE, SAVE or tape-positioning
command after you have typed a CTRL/E to halt it. If you
have prevented DUMPER from continuing, the system prints
?CANNOT CONTINUE on your terminal.
CTRL/E
Halts the action of a CHECK, RESTORE, SAVE, or
tape-positioning command. When the system processes the
CTRL/E, it prints a message, suspends the action, and then
prints the DUMPER prompt.
INTERRUPTING...
DUMPER>
After typing CTRL/E, you may give a CONTINUE, DIRECTORIES,
EXIT, FILES, HELP, or SILENCE command. If you give any
other command, DUMPER loses the information necessary to
continue the action you halted. If DUMPER is not
performing an action command, typing a CTRL/E returns you
to TOPS-20 command level.
EXIT
Exits immediately to TOPS-20 command level.
HELP
Prints a list of the valid DUMPER commands on your
terminal.
PRINT (DIRECTORY OF TAPE ONTO FILE) destination
Prints a directory of the entire tape in the specified
file. The destination file specification defaults to TTY:
(your terminal).
RESTORE (MTA FILES) source (TO) destination
Searches the current save set and copies the specified
magnetic tape source file(s) to disk and gives them the
specified destination file specification(s). After giving
a RESTORE command, the tape is positioned at the end of
the save set. You may specify additional source and
destination file specifications by separating each pair
with a comma.
DUMPER Program (continued) Page II-86
Table II-7 (Cont.)
DUMPER Commands
source is a file specification identifying the files
you want copied from the tape. You may use the
* and % wildcard characters to specify a group
of files. The system restores all the files in
the save set if you omit the source file.
Defaults: dev: * (the source device)
<dir> * (the source directory)
name * (all file names)
type * (all file types)
gen * (the source generation)
destination is a file specification identifying where you
want the files copied. You may use the * and %
wildcard characters to refer to corresponding
fields in the source file specification. If you
omit the destination file specification, the
system uses the corresponding source file.
Defaults: dev: * (the source device)
<dir> * (the source directory)
name * (the source file name)
type * (the source file type)
gen * (the source generation)
Operation
After you give the RESTORE command, DUMPER prints a header
on your terminal and then starts searching the tape for
files to restore.
DUMPER TAPE # 1, save-set name, date
Once DUMPER starts restoring files to disk, it prints the
following message on your terminal:
LOADING FILES INTO <directory>
where directory specifies where the files are copied. If
this message is NOT printed, DUMPER has not found any
source files you specified and no files have been restored
to a directory. Also, if you try to restore files to a
directory in which you are not allowed to create files,
DUMPER will not print this message or attempt restoring
the files.
Give the FILES command if you want DUMPER to print the
file specification of each file as it is restored.
DUMPER prints the following message if the save set is
continued on another reel of tape:
END OF TAPE, MOUNT NEXT REEL
%FILE filespec CONTINUED ON NEXT REEL
TAPE (FILESPEC)
DUMPER rewinds the current tape. Use the TMOUNT command
to request a new tape, or mount the tape yourself. When
the new tape is mounted, type the drive name and the
restore will continue.
DUMPER Program (continued) Page II-87
Table II-7 (Cont.)
DUMPER Commands
CTRL/C
!
TAPE (FILESPEC)
@TMOUNT (TAPE) NEXT: (VOLID) BLUE
[OPERATOR NOTIFIED]
[MTA0: ASSIGNED]
@CONTINUE (PROGRAM)
CTRL/R
!
TAPE (FILESPEC) MTA0:
DUMPER TAPE # 2, , date
DUMPER prints the following message when it reaches the
end of the current save set:
END OF SAVESET
Restoring Files Saved From Another Directory
You must specifically specify the source and destination
directory names to restore files saved from one directory
to another. Refer to Example 16. For instance, the
following command restores all the files saved from the
directory <MANUALS> to the user's connected directory,
<WILEY>:
DUMPER>RESTORE (MTA FILES) <MANUALS>*.*.* (TO) <WILEY>
Superseding Existing Files And Selecting Generation Numbers
Once DUMPER has found a tape file to restore to disk, it
examines the directory to see if a file with the same file
name and file type already exists. If such a file does
not exist, DUMPER immediately copies the tape file to a
disk.
If a disk file exists with the same file name and file
type as the tape file, DUMPER restores the file according
to the value of the SUPERSEDE parameter.
SUPERSEDE OLDER
is the default. DUMPER restores the tape
file only if it was created or written
more recently than the disk file. If the
generation number of the tape file is
ALSO less then the disk file, DUMPER
deletes the disk file and prints the
message:
%FILE filespec DELETED WHILE SUPERSEDING
Note: you can avoid trying to restore a
more recent file with a lower generation
number by using -1 as the generation
number in the destination file
specification.
DUMPER Program (continued) Page II-88
Table II-7 (Cont.)
DUMPER Commands
SUPERSEDE ALWAYS
DUMPER restores the file to disk
(regardless of its age) using a default
generation number one greater than the
existing file.
SUPERSEDE NEVER
DUMPER does not restore the file.
Restoring Changed And Accessed Files
Refer to the description of the BEFORE, SINCE, ABEFORE,
ASINCE, MBEFORE, and MSINCE commands described under
SAVE.
SAVE (DISK FILES) source (AS) dest, source (AS) dest
Creates a save set containing all the source files
specified in the SAVE command. The source files are saved
using the destination file specification. You may use the
* and % wildcard characters to specify groups of files.
You may specify additional source and destination file
specifications by separating each pair with a comma.
source is a file specification identifying the
files you want to save. If you omit the
source file specification entirely, the
system saves all the files in your
connected directory.
Defaults: dev: * (the source device)
<dir> * (the source directory)
name * (all file names)
type * (all file types)
gen * (the source generation)
destination is the file specification that is assigned
to the tape file. The file is saved using
its current file specification if you do
not give a destination file specification.
Defaults: dev: * (the source device)
<dir> * (the source directory)
name * (the source file name)
type * (the source file type)
gen * (all generations)
Operation
When you give the SAVE command, DUMPER prints a header
on your terminal and then starts the save set.
DUMPER TAPE # 1, save-set name, date
DUMPER prints the name of each file you save if you
give the FILES command before you give the SAVE
command. Give the LIST command before you give the
SAVE command if you want a list of the files you save.
DUMPER Program (continued) Page II-89
Table II-7 (Cont.)
DUMPER Commands
DUMPER rewinds the current tape and prints the
following message when the save set must be continued
on a second reel of tape:
END OF TAPE, CONTINUE SAVE ON
TAPE (FILESPEC)
Type a CTRL/C and give the TMOUNT command, or mount the
reel yourself. Then type CONTINUE (if you gave the
TMOUNT command), and type the drive name.
END OF TAPE, CONTINUE SAVE ON
CTRL/C
!
TAPE (FILESPEC)
@TMOUNT (TAPE) SECOND: (VOLID) GREEN
[Operator notified]
[MTA0: assigned]
@CONTINUE (PROGRAM)
CTRL/R
!
TAPE (FILESPEC) MTA0:
DUMPER TAPE # 2, , date
When the save is finished, DUMPER prints the total
number of files saved and the number of pages
comprising those files.
TOTAL FILES DUMPED = 253
TOTAL PAGES DUMPED = 1751
@
Saving Changed And Accessed Files
You may find it useful to save only those files that
have been changed or read. DUMPER has commands which
select those files. To save files that have been
changed or read within a certain period use both
ABEFORE and ASINCE commands.
SINCE and BEFORE Specify files whose contents have
changed (i.e., whose write dates
are) after or before the
specified date.
ASINCE and ABEFORE Specify files that have been read
or changed after or before the
specified date and time.
MSINCE and MBEFORE Specify files which have been
modified after or before the
specified date and time. This
includes files created with the
RENAME and COPY commands. SINCE,
BEFORE, ASINCE and ABEFORE do not
include these files.
DUMPER Program (continued) Page II-90
Table II-7 (Cont.)
DUMPER Commands
TAPE-POSITIONING COMMANDS
DUMPER tape-positioning commands control the tape you have
specified with the last TAPE command or, if you have not
given a TAPE command, the tape assigned to the logical
name MTA-DUMPER. You should have previously allocated
these drives to your job with the TOPS-20 ASSIGN command.
EOT
Skips to the end of the last save set on the tape and
prints the message: TAPE POSITIONED AT EOT. If any save
sets are encountered, the system prints the save set names
and the time and date that the save set was written.
REWIND
Rewinds the tape to the beginning of the tape (BOT).
SKIP (NUMBER OF SAVESETS) n
Skips the tape over n save sets.
SKIP (NUMBER OF SAVESETS) 0
Backspaces the tape to the beginning of the current save
set.
SKIP (NUMBER OF SAVESETS) -n
Backspaces the tape over n save sets.
STATUS-COMMANDS
DUMPER status-commands set parameters which affect the
operation of the CHECK, RESTORE and SAVE commands. Once
you set a parameter, it stays in effect until you change
it or restart DUMPER. If you want to select only specific
files, use the ABEFORE, ASINCE, BEFORE, MBEFORE, MSINCE,
and SINCE commands. If you set multiple conditions, a
file must satisfy all the conditions in order to be
transferred.
ABEFORE (DATE AND TIME) date time
Includes only those files which were accessed (written or
read) before the given date and time. This command is
useful in transferring files that were actually used, but
not necessarily changed.
[NO] CHECKSUM (FILES) type
Prints a checksum for each file when you give a PRINT
command and includes the checksum in the log file when you
give a SAVE command. When the checksum of the disk file
disagrees with the checksum of the tape file, there has
been an error in the file transfer. DUMPER computes a
checksum for the entire file when you use the type
SEQUENTIAL; DUMPER computes a checksum for each page of
the file when the type is BY-PAGES. The SEQUENTIAL
checksum is the easiest to use.
DUMPER Program (continued) Page II-91
Table II-7 (Cont.)
DUMPER Commands
ACCOUNT (OF RESTORED FILES FROM) location
Specifies that any file being restored will have either
the SYSTEM-DEFAULT account (usually your current account)
or the account that was stored with the file on TAPE.
Normally, the system uses the system default.
ASINCE (DATE AND TIME) date time
Includes only those files which were accessed (written or
read) since the given date and time. This command is
useful in transferring files that were actually used, but
not necessarily changed.
BEFORE (DATE AND TIME) date time
Includes only those files which were created or last
written (i.e., whose contents were changed) before the
given date and time. This command is useful in
transferring only those files that have changed.
[NO] CHECKSUM (FILES) type
Prints a checksum for each file when you give a PRINT
command and includes the checksum in the log file when you
give a SAVE command. When the checksum of the disk file
disagrees with the checksum of the tape file, there has
been an error in the file transfer. DUMPER computes a
checksum for the entire file when you use the type
SEQUENTIAL; DUMPER computes a checksum for each page of
the file when the type is BY-PAGES. The SEQUENTIAL
checksum is the easiest to use.
DENSITY (OF MAGTAPE) n
Sets the tape density to the given number of bits per inch
(BPI). The density must be 200, 556, 800, 1600, or
JOB-DEFAULT (set by the system command SET TAPE DENSITY).
If you do not give the DENSITY command, DUMPER uses the
density listed in the TOPS-20 command INFORMATION (ABOUT)
TAPE-PARAMETERS.
[NO] DIRECTORIES
Starts (or stops, if you type NO) printing on your
terminal each directory name as the directory is saved or
restored. Normally, the system prints each directory
name.
[NO] FILES
Starts (or stops, if you type NO) printing on your
terminal each file specification as the file is saved or
restored. Normally, the system does not print each file
specification.
FORMAT (VERSION NUMBER IS) n
Allows the system to read and write DUMPER tapes that were
written with other (unsupported) versions of DUMPER. The
default format is 2; BBN-TENEX users should use 0 to read
and write tapes created by BBN-DUMPER.
[NO] INITIAL (FILESPEC) filespec
Starts (or stops, if you type NO) saving at the file
identified by filespec. This is useful for continuing
interrupted save sets.
DUMPER Program (continued) Page II-92
Table II-7 (Cont.)
DUMPER Commands
[NO] INTERCHANGE (FORMAT)
Starts (or stops, if you type NO) using the DECsystem-10
(TOPS10 BACKUP) interchange format in reading and writing
tapes. Otherwise, DUMPER uses its own format.
[NO] LIST (LOG INFORMATION ON FILE) filespec
Makes a list of the files transferred in the file
identified by filespec. The default file specification is
LPT:DUMPER.LOG. If an existing file is specified, it is
appended to rather than rewritten.
MBEFORE (DATE AND TIME) date time
Include only those files modified (i.e., written, created,
appended, or renamed) before the specified internal date
and time.
MSINCE (DATE AND TIME) date time
Includes only those files modified (i.e., written,
created, appended, or renamed) since the specified
internal date and time.
PARITY (OF MAGNETIC TAPE) type
Sets the parity of the current magnetic tape to EVEN or
ODD. DUMPER normally uses the parity listed in the
TOPS-20 command INFORMATION (ABOUT) TAPES.
PROTECTION (OF RESTORED FILES FROM) location
Takes the protection of the restored files from the
SYSTEM-DEFAULT (usually 777700) or from the TAPE.
SET TAPE-NUMBER (DECIMAL NUMBER) n
Sets the reel number used in the next SAVE or RESTORE
command. This is useful when you are saving or restoring
files on mulitple reels of tape and do not want to process
the reels in order.
[NO] SILENCE
Stops (or starts, if you type NO) printing directory names
and file specifications as the files are saved or
restored. NO SILENCE is equivalent to giving a FILES
command followed by a DIRECTORIES command.
SINCE (DATE AND TIME) date time
Includes only those files that were created or last
written (i.e., whose contents were changed) since the
specified date and time. This command is useful in
transferring only those files that have changed.
SSNAME save-set name
Identifies a save set name. This save set name is printed
on your terminal whenever you save or restore files.
DUMPER Program (continued) Page II-93
Table II-7 (Cont.)
DUMPER Commands
SUPERSEDE condition
Sets the condition under which DUMPER will supersede a
disk file with a magnetic tape file of the same file name
and type. Use ALWAYS when you always want to supersede
the disk file with the tape file.
Use NEVER when you never want to supersede the disk file;
in this case, a file is transferred from tape only if
there is no disk file in the directory with the same file
name and type.
Use OLDER when you want the tape file to supersede only
disk files with older write dates; in this case, a tape
file is transferred to disk file. If you do not give a
SUPERSEDE command, the system uses SUPERSEDE OLDER. Refer
to the RESTORE command.
TAPE (FILESPEC) MTAn:
Uses the specified tape for the file transfers. If the
drive is not available to your job, the system prints:
?INVALID FILESPEC, DEVICE IS NOT AVAILABLE TO THIS JOB
Wait until you can assign a magnetic tape to your job.
You do not have to give a TAPE command if you assign a
magnetic tape device name to the logical name MTA-DUMPER.
Operation
1. Type DUMPER and press the RETURN key; the system prints
DUMPER, the version of this installation of DUMPER, and the
prompt DUMPER>.
@DUMPER
DUMPER 2(154)
DUMPER>
2. Give the DUMPER commands you want. (You must give a TAPE
command or assign a magnetic tape device name to the logical
name MTA-DUMPER before giving an action command.) When you
are finished, give the EXIT command.
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>SSNAME TEST1
DUMPER>SAVE
DUMPER TAPE # 1, TEST1, WEDNESDAY, 27-DEC-75 0958
TOTAL FILES DUMPED = 5
TOTAL PAGES DUMPED = 95
DUMPER>EXIT
@
If you want the names of the individual files printed, give the
FILES command before the SAVE command.
DUMPER Program (continued) Page II-94
Errors
1. If a file on magnetic tape does not agree with a file on
disk, the system prints the following message after you give
a CHECK command:
%COMPARE ERROR, PAGE n, FILE filespec
where n is the page in the disk file, and filespec specifies
the file in which the error occurs. This means that the
actual data differs between the file on disk and the file on
tape. Try transferring the file again, but beware that this
error is often caused by a program that updated the file
after you saved it on tape. An actual example of this error
is:
%COMPARE ERROR, PAGE 8, FILE DUMPER.EX3.1
2. The system may also print the following line:
%DIFFERENCES IN location OF FILE filespec
The location describes the entry in the file descriptor block
(refer to the Monitor Calls Manual) that differs between the
two files. (Each file has a file descriptor block which
contains information describing the history and structure of
the file.) The common locations and the differences they
describe are listed in Table II-8. After receiving a message
of this type, try transferring the file again. If the error
still occurs, contact the operator or system manager.
Table II-8
File Descriptor Block (FDB) Entries
A difference
in location: Means the files do not have the same:
.FBCTL -Temporary, permanent, not-to-be-saved-by
DUMPER, or file-class status.
.FBCRE -Dates and times they were last written.
.FBUSE -Directory numbers of the last
writer, or directory number of author
.FBBYV -Number of generations to retain,
byte size, mode of the last write, or the
number of pages.
.FBSIZ -Pointer to the byte beyond the
end-of-file.
.FBCRV -Creation date or time.
.FBWRT -Date or time they were last written
(modifiable by the user).
.FBREF -Date or time they were accessed by a
non-write operation.
.FBCNT -Count of writes or references.
.FBBKO -Contents of the DUMPER data area.
.FBUSW -Contents of the user-settable
data area.
Examples of these errors are:
%DIFFERENCE IN .FBREF OF FILE <MCKIE>ESQRT.ALG.14
%DIFFERENCE IN .FBCNT OF FILE <MCKIE>DEFER.FOR.14
%DIFFERENCE IN .FBREF OF FILE <MCKIE>LOGIN.CMD.2
DUMPER Program (continued) Page II-95
3. When you are saving files on the tape, there may be bad spots
that do not record properly. If the system finds an error in
the record that was just written, it writes a duplicate
record immediately following the erroneous record and prints
the message:
%WRITE ERROR ON TAPE, RECORD n, WRITING DUPLICATE RECORD.
If there are many errors, try moving the tape to the
beginning of the save set and saving the files again. If
there are less errors, most likely your tape is dirty and
repeated saving will clean the tape and reduce errors.
When you restore the files from that tape, the system will
read the bad record first. Since normal reading operates at
higher sensitivity than write-checking, the system may be
able to read a record that was previously thought to be bad.
If this occurs, the system takes the second record and
ignores the duplicate record, while printing the message:
%DUPLICATE RECORD ENCOUNTERED, RECORD 13, IGNORED.
If there is an error in the original record, the system
prints either ?MTA DATA ERROR, ?MTA UNKNOWN ERROR, ?MTA
CHECKSUM ERROR, or another message of that type, then reads
the next record. If the next record is a duplicate record
(two records are duplicate if their sequence numbers are the
same), the system reads that record. If the duplicate record
is correct, the system prints the message, RECOVERED. If the
error is not recovered, the transfer continues after DUMPER
prints a message indicating the location of the bad record.
Due to differences in inter-record gaps between tape drives,
the same bad spot does not necessarily have to occur at the
same record number if the tape is being written by different
drives.
4. Each record on the tape has a sequence number somewhat
similar to an EDIT line number. When the system reads a
record, it makes sure that the sequence number is one greater
than the last record. If the sequence number is the same as
the last record, it prints the message %DUPLICATE RECORD
ENCOUNTERED, RECORD n, IGNORED. If the difference is not
one, the system reads the record, prints the following
message, resets the internal sequence counter to the new
number and continues with the current operation. If the
sequence number is irregular, you may receive a second
message when the numbers regain their previous value.
?SEQUENCE ERROR, RECORD 15, CONTINUING.
5. If you try to use a magnetic tape and have not given a tape
command, the system postpones the command and tries to use
the logical name MTA-DUMPER. If that logical name has no
magnetic tape definition, the system prints:
Tape specification needed,
TAPE (FILESPEC)
Type the name of the magnetic tape drive you are using, then
press the RETURN key. If you have to run the PLEASE program,
refer to the SAVE command.
DUMPER Program (continued) Page II-96
6. Each DUMPER tape normally starts with a tape header. If the
system encounters a tape without a tape header, it tries to
perform the specified operation and prints the message:
%TAPE DOESN'T START WITH HEADER, CONTINUING...
You probably forgot to rewind the tape before doing a
RESTORE.
7. If the tape drive you are using is not on-line, the system
prints the following message if you try to access it:
?FAILED TO OPEN MTA
?Device is not on-line
TRY AGAIN?
Type Y or N (for yes or no) if you want to try again or not.
Contact the operator if you have any questions.
8. If you try any command that reads the tape and if the system
prints the message:
?DRIVE PROBABLY OFF-LINE, TYPE CR TO TRY AGAIN.
Check with the operator to make sure that he has placed the
drive on-line. If he has, you are probably attempting to
read the tape at the wrong density. Type a CTRL/C, restart
DUMPER, then set the proper density. You can try different
densities (try 1600, 800, 556, then 200) if you cannot recall
the correct density to set.
9. If you are accessing a file and the file is not available,
the system prints one of a variety of messages explaining why
you may not use the file. Make sure that you have not
deleted the file, or that you are not over your working disk
storage limit.
?CANNOT GET JFN FOR FILE <MCKIE>DUMPER.TXT.13;P777752;A10300 BECAUSE:
No such generation number
?CANNOT OPEN FILE <MCKIE>TRANSL.CMD.10;P777752;A10300 BECAUSE:
Disk quota exceeded
Output
Whenever you give a FILES command before a SAVE command, DUMPER
normally prints (as it processes the SAVE command):
-A heading,
For each directory:
-The directory name followed by the directory number (for
internal system accounting)
-A line for each file containing the file specification, date
and time the file was last written, and the size in pages.
-The total number of files and pages dumped from the directory.
For the entire SAVE command:
-The total number of files and pages dumped.
Refer to the LIST command which controls log file output.
DUMPER Program (continued) Page II-97
Characteristics
Running the DUMPER program clears any program from memory and
leaves your terminal at DUMPER command level. Give the DUMPER
command EXIT to return to TOPS-20 command level.
Examples
The examples are divided into three parts. The first part
describes various ways you may save files on tape; the second
part shows how to restore files from tape to disk; and the third
part shows how to use some special DUMPER commands. Some
examples in the first two parts are keyed to each other - for
instance (A) to saving and restoring an entire directory.
SAVING FILES
1. SAVING YOUR ENTIRE DIRECTORY (A)
To save your entire directory on tape, start DUMPER, assign or
request a magnetic tape, and give the SAVE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>SSNAME FULL SAVE
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
PS:<PORADA>
TOTAL FILES DUMPED = 61
TOTAL PAGES DUMPED = 162
DUMPER>EXIT
@
2. SAVING A SINGLE FILE (B)
To save a single file, type the name of the file after the SAVE
command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME SINGLE FILE
DUMPER>SAVE (DISK FILES) TMOUNT.TXT
DUMPER TAPE # 1, SINGLE FILE, WEDNESDAY, 4-AUG-76 1955
PS:<PORADA>
TMOUNT.TXT.1 (AS) TMOUNT.TXT.1 [OK]
TOTAL FILES DUMPED = 1
TOTAL PAGES DUMPED = 1
DUMPER>EXIT
@
DUMPER Program (continued) Page II-98
3. SAVING A GROUP OF FILES (C)
To save a group of files, use the wildcard characters % and * in
the file specification after the SAVE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME ALL .FOR FILES
DUMPER>SAVE (DISK FILES) *.FOR
DUMPER TAPE # 1, ALL .FOR FILES, WEDNESDAY, 4-AUG-76 1955
PS:<PORADA>
DPEX2.FOR.3 (AS) DPEX2.FOR.3 [OK]
DPEX3.FOR.3 (AS) DPEX3.FOR.3 [OK]
DPEX4.FOR.2 (AS) DPEX4.FOR.2 [OK]
DPEXP.FOR.5 (AS) DPEXP.FOR.5 [OK]
FUN.FOR.2 (AS) FUN.FOR.2 [OK]
HI.FOR.2 (AS) HI.FOR.2 [OK]
MAIN.FOR.2 (AS) MAIN.FOR.2 [OK]
SIND2.FOR.2 (AS) SIND2.FOR.2 [OK]
SIND3.FOR.2 (AS) SIND3.FOR.2 [OK]
SPEX2.FOR.2 (AS) SPEX2.FOR.2 [OK]
SPEX3.FOR.2 (AS) SPEX3.FOR.2 [OK]
SPEX4.FOR.2 (AS) SPEX4.FOR.2 [OK]
SPEXP.FOR.3 (AS) SPEXP.FOR.3 [OK]
TRIG.FOR.2 (AS) TRIG.FOR.2 [OK]
WONDER.FOR.2 (AS) WONDER.FOR.2 [OK]
TOTAL FILES DUMPED = 15
TOTAL PAGES DUMPED = 15
DUMPER>EXIT
@
DUMPER Program (continued) Page II-99
4. SAVING FILES LOCATED IN ANOTHER DIRECTORY (D)
To save files located in another directory, include the
<directory> or dev:<directory> name in the file specification in
the SAVE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME MANUAL FILES
DUMPER>SAVE (DISK FILES) <MANUALS>*.FOR
DUMPER TAPE # 1, MANUAL FILES, WEDNESDAY, 4-AUG-76 1955
PS:<MANUALS>
ADDEM.FOR.1 (AS) ADDEM.FOR.1 [OK]
ADDTWO.FOR.1 (AS) ADDTWO.FOR.1 [OK]
COMP.FOR.1 (AS) COMP.FOR.1 [OK]
CUBIT.FOR.1 (AS) CUBIT.FOR.1 [OK]
DIFFER.FOR.1 (AS) DIFFER.FOR.1 [OK]
MORPAY.FOR.1 (AS) MORPAY.FOR.1 [OK]
SMALL.FOR.1 (AS) SMALL.FOR.1 [OK}
SUB1.FOR.1 (AS) SUB1.FOR.1 [OK]
SUM.FOR.1 (AS) SUM.FOR.1 [OK]
TRYIT.FOR.1 (AS) TRYIT.FOR.1 [OK]
TOTAL FILES DUMPED = 11
TOTAL PAGES DUMPED = 20
DUMPER>EXIT
@
5. SAVING A FILE TO BE RESTORED TO A TOPS-10 SYSTEM (E)
To save a file so that it can be restored to a TOPS-10 file
system using the TOPS-10 BACKUP program, give the INTERCHANGE
command before you give the SAVE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME FILES FOR TOPS-10
DUMPER>INTERCHANGE (FORMAT)
DUMPER>SAVE (DISK FILES) *.OVL
DUMPER TAPE # 1, FILES FOR TOPS-10, WEDNESDAY, 4-AUG-76 1956
PS:<PORADA>
TEST.OVL.5 (AS) TEST.OVL.5 [OK]
TEST1.OVL.2 (AS) TEST1.OVL.2 [OK]
TOTAL FILES DUMPED = 2
TOTAL PAGES DUMPED = 64
DUMPER>EXIT
@
DUMPER Program (continued) Page II-100
6. SAVING CHANGED FILES (F)
Use the SINCE command to save only:
a. Changed files,
b. New files, and
The example shows how to save all the files that were changed
since August 4, 1976.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME CHANGES ON 4-AUG
DUMPER>SINCE (DATE AND TIME) 4-AUG-76 0:0
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, CHANGES ON 4-AUG-76 WEDNESDAY, 1956
PS:<PORADA>
DUMPER.CTL.3 (AS) DUMPER.CTL.3 [OK]
DUMPER.EXA.3 (AS) DUMPER.EXA.3 [OK]
TMOUNT.TXT.1 (AS) TMOUNT.TXT.1 [OK]
TOTAL FILES DUMPED = 3
TOTAL PAGES DUMPED = 21
DUMPER>EXIT
@
7. SAVING ACCESSED FILES (G)
Give the ASINCE command to save all the files that were accessed
in any way (read, written, appended, accessed, or created). The
example shows how to save all the files that were accessed since
August 4, 1976. Notice that these files include all the files
that were saved using the SINCE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME USED ON 4-AUG
DUMPER>ASINCE (DATE AND TIME) 4-AUG-76 0:0
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, USED ON 4-AUG, WEDNESDAY, 4-AUG-76 1957
PS:<PORADA>
DUMPER.CTL.3 (AS) DUMPER.CTL.3 [OK]
DUMPER.EXA.3 (AS) DUMPER.EXA.3 [OK]
PLM.MAC.1 (AS) PLM.MAC.1 [OK]
TMOUNT.TXT.1 (AS) TMOUNT.TXT.1 [OK]
TOTAL FILES DUMPED = 4
TOTAL PAGES DUMPED = 23
DUMPER>EXIT
@
DUMPER Program (continued) Page II-101
8. SAVING MONITOR-ACCESSED FILES (H)
Use the MSINCE command to save any files that have been changed
or accessed by the monitor. These files include all the files
that were saved by the SINCE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SSNAME ALL CHANGES
DUMPER>MSINCE (DATA AND TIME) 4-AUG-76 0:0
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, ALL CHANGES, WEDNESDAY, 4-AUG-76 1957
PS:<PORADA>
DUMPER.CTL.3 (AS) DUMPER.CTL.3 [OK]
DUMPER.EXA.3 (AS) DUMPER.EXA.3 [OK]
MAIL.TXT.1 (AS) MAIL.TXT.1 [OK]
TEST.OVL.5 (AS) TEST.OVL.5 [OK]
TEST1.OVL.2 (AS) TEST1.OVL.2 [OK]
TMOUNT.TXT.1 (AS) TMOUNT.TXT.1 [OK]
TOTAL FILES DUMPED = 6
TOTAL PAGES DUMPED = 86
DUMPER>EXIT
@
9. CONTINUING A SAVE SET ON A SECOND REEL (I)
To continue a save onto a second reel, type a CTRL/C, give a
TMOUNT command, give a CONTINUE command, and then type the
logical name or tape drive number.
@TMOUNT (TAPE) REEL1: (VOLID) GREEN
[OPERATOR NOTIFIED]
[MTA1: ASSIGNED]
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) REEL1:
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, , WEDNESDAY, 4-AUG-76 2058
PS:<MCKIE>
END OF TAPE, CONTINUE SAVE ON
CTRL/C
!
TAPE (FILESPEC) ^C
@TMOUNT (TAPE) REEL2: (VOLID) BLUE
[OPERATOR NOTIFIED]
[MTA1: ASSIGNED]
@CONTINUE (PROGRAM)
CTRL/R
!
TAPE (FILESPEC) REEL2:
DUMPER TAPE # 2, , WEDNESDAY, 4-AUG-76 2100
DUMPER Program (continued) Page II-102
TOTAL FILES DUMPED = 253
TOTAL PAGES DUMPED = 1751
DUMPER>EXIT
@
10. CHECKING THE SAVED FILES
If you want to check to make sure the files are correctly saved
on the tape, give a REWIND command and a CHECK command after you
give the SAVE command. This procedure does not work if you saved
the files with a different file specification.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA0:
DUMPER>REWIND
DUMPER>SSNAME COBOL PROGRAMS
DUMPER>SAVE (DISK FILES) *.CBL
DUMPER TAPE # 1, COBOL PROGRAMS, THURSDAY, 5-AUG-76 1325
PS:<MCKIE>
TOTAL FILES DUMPED = 4
TOTAL PAGES DUMPED = 5
DUMPER>REWIND
DUMPER>FILES
DUMPER>CHECK (ALL MTA FILES)
DUMPER TAPE # 1, COBOL PROGRAMS THURSDAY, 5-AUG-76 1325
PS:<MCKIE>COMPUT.CBL.1;P777752;A10300
PS:<MCKIE>NUMBER.CBL.1;P777752;A10300
PS:<MCKIE>STR.CBL.1;P777700;A10300
PS:<MCKIE>TEST3.CBL.3;P777700;A10300
END OF SAVESET
DUMPER>EXIT
@
11. USING DUMPER FROM A BATCH JOB
Place the commands you would normally type in a file and then
submit that control file to the Batch system. Use the TMOUNT
command for assigning tape drives. The following example shows
the control file and the resulting log file from a Batch job that
saves the user's entire directory.
@TYPE (FILE) DAILY.CTL
00100 !BATCH JOB FOR SAVING FILES
00200 @TMOUNT MTA-DUMPER RED,
00300 @WRITE-ENABLED
00400 @
00500 @DUMPER
00600 *REWIND
00700 *SSNAME DAILY SAVE
00800 *LIST DAILY-SAVE.LOG
00900 *SAVE
01000 *REWIND
01100 *CHECK
01200 *EXIT
01300 @UNLOAD MTA-DUMPER
DUMPER Program (continued) Page II-103
01400 @DEASSIGN MTA-DUMPER
@SUBMIT DAILY
[INP:DAILY=/SEQ:3454/TIME:00:05:000]
@
The log file from this job is shown below. Notice that the files
DAILY.LOG and DAILY-SAVE.LOG do not check properly since they are
modified between the save and check operations.
10:36:42 BAJOB BATCON version 102(2052) running DAILY sequence 467
in stream 1
10:36:42 BAFIL Input from PS:<MCKIE>DAILY.CTL
10:36:42 BAFIL Output to PS:<MCKIE>DAILY.LOG
10:36:42 BASUM Job parameters
Time:00:04:00 Unique:YES Restarting:NO Output:NOL
10:36:42 MONTR
10:36:42 MONTR 2102 DEVELOPMENT SYS., TOPS-20 MONITOR 2(233)
10:36:42 MONTR @LOGIN MCKIE 10300
10:36:43 MONTR JOB 26 ON TTY112 6-AUG-76 10:36
10:36:44 MONTR 2102 DEVELOPMENT SYS., TOPS-20 MONITOR 2(233)
10:36:44 MONTR TOPS-20 COMMAND PROCESSOR 2(236)
10:36:44 MONTR USED 0:00:00 IN 0:00:00
10:36:44 MONTR TOPS-20: 0:00:00.2
10:36:44 MONTR SET UUO-SIMULATION (FOR PROGRAM)
10:36:44 MONTR SET NO CONTROL-C-CAPABILITY (OF PROGRAM)
10:36:45 MONTR END OF BATCH.CMD.2
10:36:46 MONTR @SET TIME-LIMIT 240
10:36:47 MONTR @
!BATCH JOB FOR SAVING FILES
10:36:47 MONTR @TMOUNT MTA-DUMPER RED,
10:36:47 MONTR @@@WRITE-ENABLED
10:36:48 MONTR @@@
10:36:49 MONTR [OPERATOR NOTIFIED]
10:42:19 MONTR [MTA1: ASSIGNED]
10:42:19 MONTR @@DUMPER
10:42:19 USER
10:42:19 USER DUMPER 2(154)
10:42:19 USER
10:42:19 USER DUMPER>*REWIND
10:42:20 USER DUMPER>*SSNAME DAILY SAVE
10:42:20 USER DUMPER>*LIST DAILY-SAVE.LOG
10:42:21 USER DUMPER>*SAVE
10:42:22 USER
10:42:22 USER DUMPER TAPE # 1, DAILY SAVE, FRIDAY, 6-AUG-76 1042
10:42:22 USER PS:<MCKIE>
10:44:54 USER
10:44:54 USER
10:44:54 USER TOTAL FILES DUMPED = 235
10:44:54 USER TOTAL PAGES DUMPED = 1223
10:44:55 USER DUMPER>*REWIND
10:44:56 USER DUMPER>*CHECK
10:44:56 USER
10:45:17 USER
10:45:17 USER DUMPER TAPE # 1, DAILY SAVE, FRIDAY, 6-AUG-76 1042
10:46:12 USER
10:46:12 USER %COMPARE ERROR, PAGE 0, FILE DAILY.LOG.1
10:46:12 USER %DIFFERENCE IN .FBCRE OF FILE DAILY.LOG.1
10:46:12 USER %DIFFERENCE IN .FBSIZ OF FILE DAILY.LOG.1
10:46:12 USER %DIFFERENCE IN .FBCRV OF FILE DAILY.LOG.1
10:46:12 USER %DIFFERENCE IN .FBWRT OF FILE DAILY.LOG.1
10:46:12 USER %DIFFERENCE IN .FBCNT OF FILE DAILY.LOG.1
10:46:13 USER
10:46:13 USER %COMPARE ERROR, PAGE 11, FILE DAILY-SAVE.LOG.1
10:46:13 USER %DIFFERENCE IN .FBCRE OF FILE DAILY-SAVE.LOG.1
DUMPER Program (continued) Page II-104
10:46:13 USER %DIFFERENCE IN .FBSIZ OF FILE DAILY-SAVE.LOG.1
10:46:13 USER %DIFFERENCE IN .FBCRV OF FILE DAILY-SAVE.LOG.1
10:46:13 USER %DIFFERENCE IN .FBWRT OF FILE DAILY-SAVE.LOG.1
10:46:13 USER %DIFFERENCE IN .FBCNT OF FILE DAILY-SAVE.LOG.1
10:47:26 USER
10:47:26 USER END OF SAVESET
10:47:26 USER DUMPER>*EXIT
10:47:26 MONTR @@UNLOAD MTA-DUMPER
10:47:27 MONTR @@DEASSIGN MTA-DUMPER
10:47:28 MONTR @^C
10:47:29 MONTR @LOGOUT
10:47:37 MONTR KILLED JOB 26, USER MCKIE, ACCOUNT 10300, TTY 112, AT
6-AUG-76 10:47:37
10:47:37 MONTR USED 0:0:45 IN 0:10:54
10:47:39 LPDAT [LPTLSJ LPTSPL version 102(2226) running on PDPT1,
6-Aug-76 10:47:39]
10:47:39 LPDAT [LPTSJS Starting Job DAILY, Seq #467, request created
at 6-Aug-76 09:47:38]
12. KEEPING INFORMATION ABOUT SAVED FILES
If you want to keep information about the files you have saved on
the tape, give the LIST command. If you do not specify a file
specification, the system automatically sends the information to
the line printer.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA0:
DUMPER>CHECKSUM (FILES) SEQUENTIAL
DUMPER>LIST (LOG INFORMATION ON FILE) TAPE.LOG
DUMPER>SAVE (DISK FILES) *.CBL
DUMPER TAPE # 1, , THURSDAY, 5-AUG-76 1251
PS:<MCKIE>
TOTAL FILES DUMPED = 4
TOTAL PAGES DUMPED = 5
DUMPER>EXIT
@TYPE (FILE) TAPE.LOG.1
DUMPER TAPE # 1, , THURSDAY, 5-AUG-76 1251
DIRECTORY (NUMBERS)
FILE LAST WRITE SIZE (PAGES) CHECKSUM
MCKIE (212)
COMPUT.CBL.1 25-JAN-76 1624 1 624555
NUMBER.CBL.1 25-JAN-76 1625 2 571212
STR.CBL.1 30-APR-75 0703 1 057514
TEST3.CBL.3 25-JAN-76 1612 1 411253
TOTAL 4 FILES, 5 PAGES
TOTAL FILES DUMPED = 4
TOTAL PAGES DUMPED = 5
@
DUMPER Program (continued) Page II-105
RESTORING FILES
13. RESTORING YOUR ENTIRE DIRECTORY (A)
Type just the RESTORE command to restore the files from the tape
to your connected directory. The system restores any files that
are:
a. Not in your connected directory, or
b. Newer than an existing file with the same file name and
file type.
If the file specification on the tape does not specify that the
file came from your connected directory, it will not be restored
to your connected directory.
Use the SUPERSEDE ALWAYS command to restore all the files from
the tape regardless of their dates.
Use the SUPERSEDE NEVER command to restore only those files that
have a file name and file type not found in your directory.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>RESTORE (MTA FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
END OF SAVESET
DUMPER>EXIT
@
14. RESTORING A SINGLE FILE (B)
Type the file specification after the RESTORE command to restore
a single file.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>RESTORE (MTA FILES) TMOUNT.TXT
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>TMOUNT.TXT.1;P777700;A10300 (TO) TMOUNT.TXT.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
DUMPER Program (continued) Page II-106
15. RESTORING A GROUP OF FILES (C)
To restore a group of files use the wildcard characters % and *,
or separate the file specifications with commas.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>RESTORE (MTA FILES) *.FOR
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>DPEX2.FOR.3;P777700;A10300 (TO) DPEX2.FOR.3 [OK]
PS:<PORADA>DPEX3.FOR.3;P777700;A10300 (TO) DPEX3.FOR.3 [OK]
PS:<PORADA>DPEX4.FOR.2;P777700;A10300 (TO) DPEX4.FOR.2 [OK]
PS:<PORADA>DPEXP.FOR.5;P777700;A10300 (TO) DPEXP.FOR.5 [OK]
PS:<PORADA>FUN.FOR.2;P777700;A10300 (TO) FUN.FOR.2 [OK]
PS:<PORADA>HI.FOR.2;P777700;A10300 (TO) HI.FOR.2 [OK]
PS:<PORADA>MAIN.FOR.2;P777700;A10300 (TO) MAIN.FOR.2 [OK]
PS:<PORADA>SIND2.FOR.2;P777700;A10300 (TO) SIND2.FOR.2 [OK]
PS:<PORADA>SIND3.FOR.2;P777700;A10300 (TO) SIND3.FOR.2 [OK]
PS:<PORADA>SPEX2.FOR.2;P777700;A10300 (TO) SPEX2.FOR.2 [OK]
PS:<PORADA>SPEX3.FOR.2;P777700;A10300 (TO) SPEX3.FOR.2 [OK]
PS:<PORADA>SPEX4.FOR.2;P777700;A10300 (TO) SPEX4.FOR.2 [OK]
PS:<PORADA>SPEXP.FOR.3;P777700;A10300 (TO) SPEXP.FOR.3 [OK]
PS:<PORADA>TRIG.FOR.2;P777700;A10300 (TO) TRIG.FOR.2 [OK]
PS:<PORADA>WONDER.FOR.2;P777700;A10300 (TO) WONDER.FOR.2 [OK]
END OF SAVESET
DUMPER>EXIT
@
16. RESTORING FILES SAVED FROM ANOTHER DIRECTORY (D)
To restore files saved from another directory, make your
directory name the last argument of the RESTORE command. The
example restores files from the directory <MANUALS> into
<PORADA>.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>RESTORE (MTA FILES) <MANUALS>*.FOR.* (TO) <PORADA>
DUMPER TAPE # 1, , WEDNESDAY, 4-AUG-76 2034
LOADING FILE(S) INTO <PORADA>
PS:<MANUALS>ADDEM.FOR.1;P777700;A10300 (TO) ADDEM.FOR.1 [OK]
PS:<MANUALS>ADDTWO.FOR.1;P777700;A10300 (TO) ADDTWO.FOR.1 [OK]
PS:<MANUALS>COMP.FOR.1;P777700;A10300 (TO) COMP.FOR.1 [OK]
PS:<MANUALS>CUBIT.FOR.1;P777700;A10300 (TO) CUBIT.FOR.1 [OK]
PS:<MANUALS>DIFFER.FOR.1;P777700;A10300 (TO) DIFFER.FOR.1 [OK]
PS:<MANUALS>MORPAY.FOR.1;P777700;A10300 (TO) MORPAY.FOR.1 [OK]
DUMPER Program (continued) Page II-107
PS:<MANUALS>SMALL.FOR.1;P777700;A10300 (TO) SMALL.FOR.1 [OK]
PS:<MANUALS>SUB1.FOR.1;P777700;A10300 (TO) SUB1.FOR.1 [OK]
PS:<MANUALS>SUM.FOR.1;P777700;A10300 (TO) SUM.FOR.1 [OK]
PS:<MANUALS>TRYIT.FOR.1;P777700;A10300 (TO) TRYIT.FOR.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
17. RESTORING A FILE SAVED FROM A TOPS-10 SYSTEM (E)
To restore a file saved from a TOPS-10 system, be sure to include
the INTERCHANGE command before your RESTORE command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>INTERCHANGE (FORMAT)
DUMPER>RESTORE (MTA FILES) <*>*.OVL.* (TO) *.TEST
DUMPER TAPE # 1, FILES FOR TOPS-10, WEDNESDAY, 4-AUG-76 1956
LOADING FILE(S) INTO <PORADA>
TEST.OVL.5 (TO) TEST.TEXT.5 [OK]
TEST1.OVL.2 (TO) TEST1.TEXT.2 [OK]
END OF SAVESET
DUMPER>EXIT
@
18. RESTORING CHANGED FILES (F)
Use the SINCE switch to restore only those files that changed
after a certain date.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SINCE (DATE AND TIME) 4-AUG-76 0:0
DUMPER>RESTORE (MTA FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>DUMPER.CTL.3;P777700;A10300 (TO) DUMPER.CTL.3 [OK]
PS:<PORADA>DUMPER.EXA.3;P777700;A10300 (TO) DUMPER.EXA.3 [OK]
PS:<PORADA>TMOUNT.TXT.1;P777700;A10300 (TO) TMOUNT.TXT.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
DUMPER Program (continued) Page II-108
19. RESTORING ACCESSED FILES (G)
Use the ASINCE command to restore files you accessed after a
certain date.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>ASINCE (DATE AND TIME) 4-AUG-76 0:0
DUMPER>RESTORE (MTA FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>DUMPER.CTL.3;P777700;A10300 (TO) DUMPER.CTL.3 [OK]
PS:<PORADA>DUMPER.EXA.3;P777777;A10300 (TO) DUMPER.EXA.3 [OK]
PS:<PORADA>PLM.MAC.1;P777700;A220100 (TO) PLM.MAC.1 [OK]
PS:<PORADA>TMOUNT.TXT.1;P777700;A10300 (TO) TMOUNT.TXT.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
20. RESTORING MODIFIED FILES (H)
Give the MSINCE command to transfer only those files that were
modified since a certain date.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>MSINCE (DATE AND TIME) 4-AUG-76 0:0
DUMPER>RESTORE (MTA FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>DUMPER.CTL.3;P777700;A10300 (TO) DUMPER.CTL.3 [OK]
PS:<PORADA>DUMPER.EXA.3;P777777;A10300 (TO) DUMPER.EXA.3 [OK]
PS:<PORADA>MAIL.TXT.1;P770404;A1 (TO) MAIL.TXT.1 [OK]
PS:<PORADA>TEST.OVL.5;P777777;A10300 (TO) TEST.OVL.2 [OK]
PS:<PORADA>TEXT1.OVL.2;P777752;A10300 (TO) TEST1.OVL.2 [OK]
PS:<PORADA>TMOUNT.TXT.1;P777700;A10300 (TO) TMOUNT.TXT.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
DUMPER Program (continued) Page II-109
21. RESTORING FILES CHANGED DURING A CERTAIN TIME PERIOD
Give both the SINCE and BEFORE commands to restore only those
files that were changed during a certain time period. The SINCE
command contains the beginning date and the BEFORE command
contains the ending date. The example shows how to restore only
those files that changed on January 21, 1976.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>FILES
DUMPER>SINCE (DATE AND TIME) 21-JAN-76 0:0
DUMPER>BEFORE (DATE AND TIME) 22-JAN-76 0:0
DUMPER>RESTORE (MTA FILES)
DUMPER TAPE # 1, FULL SAVE, WEDNESDAY, 4-AUG-76 1957
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>FUN.FOR.2;P777700;A10300 (TO) FUN.FOR.2 [OK]
PS:<PORADA>FUN.MAP.1;P777700;A10300 (TO) FUN.MAP.1 [OK]
PS:<PORADA>HI.FOR.2;P777700;A10300 (TO) HI.FOR.2 [OK]
PS:<PORADA>WONDER.FOR.2;P777700;A10300 (TO) WONDER.FOR.2 [0K]
END OF SAVESET
DUMPER>EXIT
@
22. RESTORING FILES FROM A CONTINUED SAVE SET (I)
To restore files when a save set is continued on a second reel,
mount the tape (or type a CTRL/C and give the TMOUNT command to
have the operator mount it), and then type the drive name.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>RESTORE (MTA FILES) <ROMPER>*.*.* (TO) <MCKIE>*.FOO
DUMPER TAPE # 1, , WEDNESDAY, 4-AUG-76 2116
LOADING FILE(S) INTO <MCKIE>
END OF TAPE, MOUNT NEXT REEL
%FILE <ROMPER>MAKEIT.MEM.1 CONTINUED ON NEXT REEL
TAPE (FILESPEC) MTA1:
DUMPER TAPE # 2, , WEDNESDAY, 4-AUG-76 2116
END OF SAVESET
DUMPER>EXIT
@
DUMPER Program (continued) Page II-110
23. RESTORING FILES FROM SYSTEM BACKUP TAPES
If you accidentally delete some files, you may restore them by
using your system backup tapes. Usually the operator makes full
saves on a weekly basis and then saves only those files that are
new or changed on a daily basis. Mount the full save tape and
restore the proper files, then mount the incremental save tape
and restore the remainder.
@DUMPER
DUMPER 2(154)
DUMPER>REWIND
DUMPER>FILES
DUMPER>RESTORE (MTA FILES) <PORADA>
DUMPER TAPE # 1, FULL DUMP, WEDNESDAY, 4-AUG-76 2107
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>COMP.FOR.1;P777700;A10300 (TO) COMP.FOR.1 [OK]
PS:<PORADA>DPEX2.FOR.3;P777700;A10300 (TO) DPEX2.FOR.3 [OK]
PS:<PORADA>DPEX2.QOR.1;P777700;A10300 (TO) DPEX2.QOR.1 [OK]
PS:<PORADA>EXAM1.MAC.1;P777700;A220100 (TO) EXAM1.MAC.1 [OK]
PS:<PORADA>FIRST.FIL.1;P777700;A220100 (TO) FIRST.FIL.1 [OK]
PS:<PORADA>FUN.FOR.2;P777700;A10300 (TO) FUN.FOR.2 [OK]
PS:<PORADA>GTJFN.MAC.1;P777700;A220100 (TO) GTJFN.MAC.1 [OK]
PS:<PORADA>MAIL.TXT.1;P770404;A1 (TO) MAIL.TXT.1 [OK]
PS:<PORADA>MAIN.FOR.2;P777700;A10300 (TO) MAIN.FOR.2 [OK]
PS:<PORADA>PLM.MAC.1;P777700;A220100 (TO) PLM.MAC.1 [OK]
PS:<PORADA>SECOND.FIL.1;P777700;A220100 (TO) SECOND.FIL.1 [OK]
PS:<PORADA>SIND2.FOR.2;P777700;A10300 (TO) SIND2.FOR.2 [OK]
PS:<PORADA>SPEX2.FOR.2;P777700;A10300 (TO) SPEX2.FOR.2 [OK]
PS:<PORADA>SQUARE.BAS.4;P777700;A220100 (TO) SQUARE.BAS.4 [OK]
PS:<PORADA>TEST.CMD.3;P777700;A10300 (TO) TEST.CMD.3 [OK]
PS:<PORADA>TEST.EXE.5;P777700;A10300 (TO) TEST.EXE.5 [OK]
PS:<PORADA>TRIG.FOR.2;P777700;A10300 (TO) TRIG.FOR.2 [OK]
PS:<PORADA>WONDER.FOR.2;P777700;A10300 (TO) WONDER.FOR.2 [OK]
END OF SAVESET
DUMPER>EXIT
@
The user mounts the incremental tape...
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>FILES
DUMPER>RESTORE (MTA FILES) <PORADA>
DUMPER TAPE # 1, INCREMENTAL, WEDNESDAY, 4-AUG-76 2109
LOADING FILE(S) INTO <PORADA>
PS:<PORADA>DUMPER.CTL.3;P777700;A10300 (TO) DUMPER.CTL.3 [OK]
PS:<PORADA>DUMPER.EXA.3;P777777;A10300 (TO) DUMPER.EXA.3 [OK]
PS:<PORADA>TMOUNT.TXT.1;P777700;A10300 (TO) TMOUNT.TXT.1 [OK]
END OF SAVESET
DUMPER>EXIT
@
DUMPER Program (continued) Page II-111
ADDITIONAL DUMPER EXAMPLES
24. EXAMINING A TAPE
Give the PRINT command to print a list of the files that are
stored on the tape.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA1:
DUMPER>REWIND
DUMPER>CHECKSUM (FILES) SEQUENTIAL
DUMPER>PRINT (DIRECTORY OF TAPE ONTO FILE)
DUMPER TAPE # 1, ALL CHANGES, WEDNESDAY, 4-AUG-76 1957
FILE LAST WRITE SIZE (PAGES) CHECKSUM
DDB FOR PORADA
PS:<PORADA>DUMPER.CTL.3 4-Aug-76 1913 1 563372
PS:<PORADA>DUMPER.EXA.3 4-Aug-76 1936 19 250044
PS:<PORADA>MAIL.TXT.1 21-Jul-76 1116 1 540237
PS:<PORADA>TEST.OVL.5 3-Mar-76 1122 32 565042
PS:<PORADA>TEST1.OVL.2 26-Jan-76 1642 32 203313
PS:<PORADA>TMOUNT.TXT.1 4-Aug-76 1821 1 454061
END OF TAPE.
^L
DUMPER>EXIT
@
DUMPER Program (continued) Page II-112
25. STOPPING DUMPER
Type CTRL/E to stop DUMPER. You can give the CONTINUE command to
DUMPER to resume the operation you interrupted. If you interrupt
a command and then give a command which will prevent you from
continuing the interrupted command, DUMPER prints a message and
gives you the alternative of aborting the offending command.
@DUMPER
DUMPER 2(154)
DUMPER>TAPE (FILESPEC) MTA0:
DUMPER>REWIND
DUMPER>SSNAME FULL SAVE
DUMPER>SAVE (DISK FILES)
DUMPER TAPE # 1, FULL SAVE THURSDAY, 5-AUG-76 1326
PS:<MCKIE>
CTRL/E
!
INTERRUPTING...
DUMPER>FILES
DUMPER>CONTINUE
008-PTYCON.TXT.1 (AS) 008-PTYCON.TXT.1 [OK]
009-SWATCH.MEM.1 (AS) 009-SWATCH.MEM.1 [OK]
009-SWATCH.TXT.4 (AS) 009-SWATCH.TXT.4 [OK]
00IN.MEM.2 (AS) 00IN.MEM.2 [OK]
00IN.RNO.2 (AS) 00IN.RNO.2 [OK]
00TITL.MEM.4 (AS) 00TITL.MEM.4 [OK]
00TITL.RNO.34 (AS) 00TITL.RNO.34 [OK]
00TOC.RNO.32 (AS) 00TOC.RNO.32
CTRL/E
!
INTERRUPTING...
DUMPER>NO FILES
DUMPER>REWIND
%DO YOU REALLY WANT TO ABORT YOUR INTERRUPTED COMMAND?
YES OR NO? N
DUMPER>CONTINUE
TOTAL FILES DUMPER = 226
TOTAL PAGES DUMPED = 1179
DUMPER>EXIT
@
EDIT Command Page II-113
Function
The EDIT command lets you edit or create a file using the EDIT
program.
Special Cases
The EDIT command always starts EDIT as long as you give a legal
file specification as an argument. If the file exists, EDIT
enters edit mode for the file; if the file does not exist, EDIT
prints a warning message, then lets you input the file.
If you do not give any arguments to the EDIT command, the system
uses the arguments you gave in the last CREATE or EDIT command.
If you have not given a CREATE or EDIT command since you have
logged in, the system cannot recall any arguments and prints the
message: ?NO SAVED ARGUMENTS.
Hints
Refer to the description of the EDIT program for a list of all
the EDIT commands.
You may give any EDIT command switch as a command to the EDIT
program.
Format
@EDIT (FILE) /switches input (OUTPUT AS) output
/switches is any combination of switches listed in Table II-9.
You may use recognition on the switch name and switch
value.
input specifies the file you want to change or create. If
the file exists, the system recognizes the highest
generation, if the file does not exist, the system
allows you to create the file.
output specifies the output file. The system always
recognizes a new generation of the output file. If
you do not specify an output file, the system uses an
output file with the same name and type as the input
file, but with a new generation number. The output
file is always placed in your currently connected
structure and directory unless you explicitly type in
an alternative structure or directory in the output
specification.
EDIT Command (continued) Page II-114
Table II-9
EDIT Command Switches
This table lists many of the switches you can give with the
EDIT command. Refer to the EDIT User's Guide for a complete
list.
/C128
Starts EDIT in 128-character mode which allows you to enter
special control characters. Refer to the EDIT User's Guide.
Normally, EDIT starts in 64-character mode.
/DPY
Enters display mode that uses overprinting to make the
output more concise on a video terminal screen. Otherwise,
EDIT starts in Model 33 (normal terminal) mode.
/EXPERT
Starts expert mode which allows more powerful commands and
abbreviates error messages. Otherwise, EDIT starts in
standard novice mode.
/INCREMENT:n
Uses the specified increment when assigning numbers to an
unsequenced file. The numbering starts at the value of the
START parameter (the default value is 100) and assigns line
numbers by adding the specified increment. If you do not
specify an increment, the system uses 100.
/ISAVE:n
Starts ISAVE mode that automatically gives a B (backup)
command every time you insert n lines. You must give a
value for n.
/NOBAK
Inhibits EDIT from renaming the input file to be a backup
file with the file type .Qyp. If you give the /NOBAK
switch, you should SET FILE GENERATION-RETENTION-COUNT for
this file to a number greater than one.
/OLD
Makes a backup file with the file type .Zyp if no other one
with this file name and type exists in your connected
directory. Even though you may give another /OLD switch
with an EDIT or CREATE command, this file is never
overwritten unless you delete it with a TOPS-20 DELETE
command.
/READONLY
Starts EDIT in read-only mode where you are not allowed to
make any changes to the file. When you start EDIT, the
system prints Read: instead of Edit: or Input:. You may
give any EDIT command that does not change the file.
/SAVE:n
Starts SAVE mode which automatically gives a B command every
time you give n EDIT commands. You must give a value for n.
EDIT Command (continued) Page II-115
Table II-9 (Cont.)
EDIT Command Switches
/START:n
Starts numbering an unsequenced file at the number n. If
you do not give a /START switch, EDIT uses a value of 100.
To produce each succeeding line number, EDIT uses the value
of the /INCREMENT switch.
/UNSEQUENCE
Removes line numbers from the output file.
Operation
If you do not want to give switches--
1. Type EDIT and press the ESC key; the system prints (FILE).
@EDIT (FILE)
2. Type (or use recognition on) the input file specification;
then (if you have not used recognition), press the ESC key.
The system prints (OUTPUT AS).
@EDIT (FILE) TEST.FOR.4 (OUTPUT AS)
3. Press the RETURN key if you want a new generation of the
input file as your output file. If you want, press the ESC
key and the system will print this default output file. Then
press the RETURN key. Otherwise type (or use recognition on)
the output file, then press the RETURN key. The system
always chooses a new generation if you use recognition. If
the input file exists, the system prints Edit: followed by
the input file specification, then the asterisk.
@EDIT (FILE) TEST.FOR.4 (OUTPUT AS) TEST.FOR.5
Edit: TEST.FOR.4
*
You can, provided you have the appropriate access privileges,
edit a file in another directory or a file in a directory on
another file structure by giving the complete file
specification (dev:<dir>filename.type). You can also specify
the placement of the output file in another directory on
another structure. For example:
@EDIT (FILE) HSTRY:<ESTEY>TEST.COB (OUTPUT AS) ADMIN:<GREEN>TEST.COB
If a file does not exist, the system prints the message:
%File not found, Creating New file, or the message %No such
file type, Creating New file, then lets you input the file.
@EDIT (FILE) TEST.CBL
%File not found, Creating New file
INPUT* TEST.CBL.1
00100
EDIT Command (continued) Page II-116
If you want to give switches--
1. Type the letters EDIT and press the ESC key; the system
prints (FILE).
@EDIT (FILE)
2. Type a slash and type (or use CTRL/F recognition on) the
switch name. If the switch has a value, type a colon
followed by a value. You can use recognition on the switch
by pressing the ESC key.
CTRL/F
@EDIT (FILE) /INCREMENT:10
ESC
@EDIT (FILE) /UNSEQUENCE
3. Type (or use recognition on) as many switches as you need,
then follow the directions in steps 2 and 3 under Operations.
ESC
@EDIT (FILE) /INCREMENT:10/EXPERT
Characteristics
The EDIT command starts the EDIT program, thereby clearing any
program from memory. Your terminal is left at EDIT command
level.
Restrictions
If you let the EDIT and CREATE commands recall previous
arguments, do not give a generation number in your initial CREATE
or EDIT command, or else subsequent commands will try to use that
exact generation rather than the highest existing generation for
that file. That is, give the command:
@EDIT (FILE) T.FIL
rather than:
@EDIT (FILE) T.FIL.2
In the latter case, the output file is T.FIL.3. Subsequently, if
you give the EDIT command without any arguments, EDIT will start
you in the file T.FIL.2 and not the most recent file T.FIL.3.
Examples
The user edits his file, outputting it as NUMBER.REF
@EDIT (FILE) NUMBER.FOR.3 (OUTPUT AS) NUMBER.REF.1 !NEW FILE!
Edit: NUMBER.FOR.3
*
EDIT Command (continued) Page II-117
The user edits his file, setting the SAVE parameter to give a B
command after every 5 EDIT commands.
@EDIT (FILE) /SAVE:5 CRISCR.ALG.1 (OUTPUT AS)
Edit: CRISCR.ALG.1
*
The user starts EDIT in DPY mode and unsequences his output file.
@EDIT (FILE) /DPY/UNSEQUENCE NXTVER.MAC
Edit: NXTVER.MAC.3
*
The user gives an EDIT command without any arguments.
@EDIT
Edit: NXTVER.MAC.4
*
EDIT Program Page II-118
Function
The EDIT program helps you create and edit files. You may also
use EDIT to peruse files.
Hints
If you need a tutorial to start learning EDIT, refer to Getting
Started With DECsystem-20 or the EDIT User's Guide.
Format
@CREATE (FROM) /switches input
or
@EDIT (FROM) /switches input (OUTPUT AS) output
Operation
1. Give either the CREATE or EDIT command to start EDIT (Refer
to their individual descriptions).
@CREATE (FILE) TEST.FOR
2. If you give the CREATE command, EDIT starts at input level
where you may insert lines into a new file. To stop
inputting and move to EDIT command level, press the ESC key.
The system prints an asterisk.
Input: TEST.FOR.1
00100 TYPE 101
00200 101 FORMAT (' This is only a test!')
00300 $
*
3. Once you are at EDIT command level, you may give any one of
the EDIT Commands listed in the following table.
EDIT Program (continued) Page II-119
Table II-10
EDIT Commands
Positions and ranges
You must specify the line or lines on which you want a
command to work. To specify a single line, type a position;
to specify a group of lines, type a range. A position
specifies a single line and has the following format:
line/page
The argument line is a line number and page is a page
number. A line number or page number is one of the
following:
A positive integer less than 2^35,
. (to indicate the current line or page),
^ (to indicate the first line or page), or
* (to indicate the last line or page).
Defaults: If you omit the line number, EDIT uses the
entire page. If you omit the slash and the page number,
EDIT uses the current page.
Examples: 300/2 specifies line 300 on page 2
^/3 specifies the first line on page 3
^/^ specifies the beginning of the file
*/* specifies the end of the file
/1 specifies all of page 1
300 specifies line 300 on the current page
A range specifies one or more lines and is in one of the two
following forms:
starting-position:ending-position
The starting-position is the first line on which the
command will work, the ending-position is the last line
on which the command will work. Any command that works
on a range of lines will also work on a single line, thus
a range may also be just a single line.
Defaults: If you omit the page number from the
ending-position, EDIT uses the page number in the
starting-position, not your current page.
Examples: 100/1:300/3 specifies all the lines between
100/1 and 300/3 inclusive
600/5:2400 specifies all the lines between
600/5 and 2400/5
starting-position!number
The starting-position is the first line on which the
command will work. The number specifies the number of
lines (including the first) on which the command will
work.
Examples: 400/2!8 specifies line 400/2 and the following
7 lines.
300!5 specifies line 300 on the current page
and the next 4 lines
EDIT Program (continued) Page II-120
Table II-10 (Cont.)
EDIT Commands
Arange
Enters Alter command level for the specified line(s). In
Alter command level you give the special Alter commands
which allow you to edit a line, character by character.
When you are finished editing the current line, press the
RETURN key or type E and EDIT enters Alter mode for the next
line, or returns you to EDIT command level if all lines in
the range have been altered.
The Alter commands are listed below. Some Alter mode
commands are preceded by a minus sign that is optional and
reverses the direction of the command. Other commands have
an argument n, that is optional and defaults to 1 if
omitted. The arguments in angle brackets (such as <space>)
identify a specific key you are required to press.
Alter Commands
? Prints a list of the Alter commands.
nCchars Deletes n characters, then lets you type n
characters (or press the ESC key to stop
inserting).
nD Deletes the next n characters.
-nD Deletes the last n characters.
E Ends Alter mode for the current line, but does
not print the rest of the line.
nFc Finds the nth occurrence of the character c.
-nFc Finds the nth last occurrence of the character
c.
nItext$ Lets you insert text, starting at the current
position, until you press the RETURN key (to end
Altering the line) or the ESC key (to end just
the insert). If you press the linefeed key, the
system takes the remainder of the line and
places it at the beginning of a new line formed
by adding n to the current line number. If you
omit n, EDIT uses the current increment.
J Places the rest of the current line at the
beginning of the next line in the file.
nKc Deletes all the characters from the current
position up to n occurrences of the character c.
-nKc Deletes all the characters from the current
position back through n occurrences of the
character c.
L Prints the rest of the line and returns to the
beginning.
EDIT Program (continued) Page II-121
Table II-10 (Cont.)
EDIT Commands
P Prints the rest of the line and the beginning of
the line up to your current position. This
command is useful for viewing the correct
contents of the line after you delete some text.
Q Ends Alter mode for this range, without saving
the changes for this line.
nRtext$ Deletes the next n characters, then gives an I
command. Stop inserting text by pressing the
ESC key.
-nRtext$ Deletes the last n characters, then gives an I
command.
nW Skips forward n words.
Xtext$ Deletes the current word, then gives an
automatic I command.
n<space> Skips ahead n characters.
-n<space> Backspaces n characters.
n<DELETE> Backspaces n characters.
<RETURN> Prints the rest of the line and returns to EDIT
command level.
<TAB> Skips to the end of the line.
-<TAB> Backspaces to the beginning of the line.
CTRL/U Restores the original line, leaving you at Alter
command level.
B (FILE) name.typ.gen
Saves the current file, but does not end the editing
session. You may use recognition on the file specification
or use the default which is a new generation of the input
file. To make a backup file that does not contain line
numbers, use the command name BU. The user makes a backup
file.
*B
[NXTONE.FOR.2]
*
Cposition,range
Copies a range of lines so that the first line being copied
starts at the specified position. The user copies the
contents of lines 600 through 3000 to just after line 300.
EDIT has used an increment of 1 to create the new lines.
*C300,600:3000
INC1=1
*
EDIT Program (continued) Page II-122
Table II-10 (Cont.)
EDIT Commands
Cposition$ (FILE) name.typ,range
Copies a range of lines from the specified file, so that the
first line being copied starts at the specified position.
The user copies the first three pages from the file
SUBS.SNO.
*C400/2$ (FILE) SUBS.SNO./1:/3
*
Cposition (FILE) name.typ/S
Lets you search through the specified file before giving the
range of lines to transfer. In this mode, the ready
character is C* and you may give F and P commands only.
When you are finished examining the file, give an E command
and the system prints SOURCE LINES=. Type the appropriate
range of lines. If you do not want to copy any lines, end
search mode by giving the EQ command instead of the E
command. The user looks at the file NUMBER.MAC then copies
pages 3 through 5.
*C.$ (FILE) NUMBER.MAC.1/S
C*P^/3
00100 ;Subroutines for inputting and outputting numbers.
C*E
SOURCE LINES=/3:/5
*
Drange
Deletes a range of lines and prints a confirming message.
*D100:600
6 LINES (00100/1:00600/1) DELETED
*
E (FILE) name.typ
Ends the editing session and saves the results in the file
name.typ. You may add a letter after the E to perform some
special functions: B creates a new generation of the output
file rather than generating a .Qxx file; I inserts a line
at the beginning of your input file which includes the file
specification, date, time, and your user name; Q ends the
editing session and restores the original file; U removes
the line numbers (unsequences) your file. The user ends the
editing session and saves his file.
*E
[TEST.MAC.2]
@
The user saves his file without line numbers.
*EU
[NOBAD.ALG]
@
EDIT Program (continued) Page II-123
Table II-10 (Cont.)
EDIT Commands
Fstring$range,options
Finds the next occurrence of the specified string of
characters and prints the line containing it. Note that you
press the ESC key where the $ is shown. The user looks for
the first FORMAT statement on page 1.
*FFORMAT$/1
09200 101 FORMAT ('Input file: ')
*
If you give an F command without any arguments, EDIT uses
the arguments to the last F command. The user finds the
next FORMAT statement.
*F
10400 102 FORMAT ('The file ',A10,' does not exist.')
*
You can print the saved arguments to an F command by giving
the =STRING command. An F command may include the options
and special characters described with the S command.
G (FILE) name.typ
Ends the editing session, saves the results in the file
name.typ, then executes your last COMPILE, LOAD, EXECUTE, or
DEBUG command. If you add the letter U to the G command,
the system removes the line numbers before executing the
last LOAD-class command. Refer to the E command for the
other letters you may add. The user saves his file
TEST.FOR, then the system gives his last LOAD-class command,
which was COMPILE.
*G
[TEST.FOR.5]
FORTRAN: TEST
MAIN.
@
H
Prints a list of EDIT commands and options.
Iposition,increment
Lets you input a line or lines starting at the specified
position. The optional increment numbers subsequent lines
inserted with this command; the permanent increment is not
affected. To return to EDIT command level, press the ESC
key. The user inserts line 100. Since line 100 already
exists, EDIT selects a line halfway between line 100 and the
next line in the file.
*I100
00150 THIS IS A TEST LINE.
*
EDIT Program (continued) Page II-124
Table II-10 (Cont.)
EDIT Commands
The user inserts line 350, then line 360.
*I350,10
00350 ADDI 3,.NUMPAR
00360 MOVEM 3,PERMPR
00370 $
*
There are a number of special functions which the I command
may perform:
I<CR>
Starts inserting where you last stopped inserting or
replacing lines. You can find out this location by
giving the =INSERT command. The user starts inserting
where he left off.
*I
02400 T1: HALTF
02500 JRST T1
02600 $
*
I/page
Inserts a page mark at the end of the specified page,
then starts insert mode beginning with the value of the
START parameter (the default is 100). The user starts
inserting lines on page 4.
*I/3
00100 TOP OF PAGE 4.
00200 $
*
Iposition!n
Chooses an increment which will allow you to insert n
lines starting at the specified position. The user
inserts 3 lines after line 100.
*I100!3
00120 TEST1: HRROI T1,MESSAGE
00140 PSOUT
00160 JRST RETSKP
00180$
*
I^
Inserts a line at the top of the page, halfway between
line 0 and the first line. The user inserts a line at
the beginning of the file.
*I^/^
00050 ;This is a test program.
*
EDIT Program (continued) Page II-125
Table II-10 (Cont.)
EDIT Commands
Jposition
Appends the next line in the file to the specified line,
thereby joining the two. The second line is deleted.
The user joins line 500 and 600.
*P500!2
00500 FIRST LINE!
00600 SECOND LINE
*J500
*P500
00500 FIRST LINE!SECOND LINE
*
K/page
Deletes the page mark between the specified page and the
one preceding it. This command deletes only the page
MARK, not the CONTENTS of the page. The system may print
the message %OUT OF ORDER, which tells you that the line
numbers are not in ascending order although your file is
still in the correct logical order. Give the N command
to renumber the offending page (refer also to the NA
command). The user deletes the page mark between page 1
and page 2.
*K/2
*
Note that page mark 2 is the first page mark in the file,
thus the command K/1 is illegal.
Lrange
Lists the specified range of lines on the line printer.
If you do not give a range, the system lists the entire
file. The user lists the contents of page 1.
*L/1
*
Mposition
Marks the specified line as the beginning of a new page.
Each succeeding page number is increased by one. The
user makes line 300 the first line 2 on a new page.
*M300
*
Nincrement,range,start
Renumbers the specified range of lines starting with the
specified value and adding the specified increment in
generating the line number for each succeeding line. The
user renumbers page 1, starting with 150 and adding 10
for each new line number.
*N10,/1,150
*
EDIT Program (continued) Page II-126
Table II-10 (Cont.)
EDIT Commands
If you do not give a starting number, the system uses the
increment. The user renumbers page 2 starting with 50
and adding 50 for each new line number.
*N50,/2
*
If you do not give a range, the system renumbers the
entire file. The user renumbers the entire file,
starting with 10 and adding 10 for each new line.
*N10
*
If you do not specify an increment, the system uses the
value of the INCREMENT parameter (the default is 100).
The user renumbers his entire file starting with 100 and
adding 100.
*N
*
The system assigns the starting number to the first line
on each page and numbers each succeeding line by adding
the increment, unless you add the letter P to the N
command. This stops the system from resetting to the
starting number of the beginning of each page. You will
find this command useful when you want to delete some
page marks without getting the %OUT OF ORDER message.
The user numbers his file sequentially starting at 10 and
adding 10.
*NP10
*
If you want to add an increment to a range of lines, use
the command NAincrement,range. The user adds 5 to lines
100 through 400 on page 2.
*NA5,100/2:400
*
Prange,S
Prints the range of lines. If you do not specify a
range, the system prints a group of lines. The number of
lines it prints specified by the value of the PLINES
parameter (the default is 16). The user prints line 500
and the following line.
*P500!2
00500 THIS IS THE FIFTH LINE.
00600 THIS IS THE SIXTH LINE.
*
If you do not want the system to print the line numbers,
include the ,S qualifier at the end of the command. The
* prompt is not reprinted until you press the RETURN key
a second time. The user prints line 500 without its line
number, then presses the RETURN key again to get the EDIT
prompt.
EDIT Program (continued) Page II-127
Table II-10 (Cont.)
EDIT Commands
*P500,S
THIS IS THE FIFTH LINE.
*
Pressing the <LF> key prints the next line in your file;
pressing the <ESC> key prints the previous line in your
file.
.position
Makes the specified position your current line. The user
moves to the line 500 on page 4.
*.500/4
*
Rrange
Deletes the specified range of lines, then enters insert
mode with the specified increment. The user replaces
line 300.
*R300
00300 THIS IS LINE 300.
1 LINE (00300/1) DELETED
*
Sexisting$new$range,options
Substitutes the new string of characters for all
occurrences of the existing string of characters
contained within the specified range. The user replaces
all occurrences of SKIPA with JFCL on line 900.
*SSKIPA$JFCL$900
00900 TEST: JFCL 0
*
If you do not give a range, the S command performs the
substitution for the next occurrence of the existing
string. Should you give the S command a second time, the
system performs the substitution on the rest of the file.
The user replaces the next occurrence of SKIPA with JFCL,
then performs the substitution over the rest of the file.
*SSKIPA$JFCL$
05500 T5: JFCL 0
*S
06700 T6A: JFCL 0
09400 JFCL 0
*
In addition to the options described below, ,D lets you
check on each substitution and ,L stops the printing of
each line that contains a substitution.
EDIT Program (continued) Page II-128
Table II-10 (Cont.)
EDIT Commands
You may use the following options with the F and S
commands:
,E Requires an exact match of upper and lower case
characters.
,A Enters Alter mode for each line on which the
characters are found.
You may use the following matching and replacement
characters in F and S commands if you are using the /C128
character set.
Match: '% not
') arbitrary number of
'/ any character
'7 quote next character
': separator
Replacement: '" Next match string
'* '*n'* is nth match string
'7 Quote next character
The following command searches for a space followed by
any two characters and a comma, then inserts an extra
space beside the first. Notice that the characters '"
supply the new string with the characters that were
matched in the existing string.
*/C128
*P300
00300 HRRI T1,40000
*S '/'/,$ '"'",$.
00300 HRRI T1,40000
*/C64
*
The following command replaces the word the at the
beginning of line 900 with the word that. Notice that '%
(not) '/ (any character) matches the beginning, or the
ending, of a line.
*/C128
*P900
00900 THE NEWEST METHOD IS USEFUL.
*S'%'/THE$THAT$900
00900 THAT NEWEST METHOD IS USEFUL.
*/C64
*
The user switches the numbers before a , with the numbers
before a . on line 600. 1')'/, matches 1 and any number
of any character until a , is reached. ')'/ matches all
the characters from the space after the comma up to the 1
in 1976. 1')'/6. matches 1 and any number of any
character until a . is reached. Now in the new string,
'*3'* supplies the characters from the third pattern:
86; '*2'* supplies the middle characters: but not in ;
and '*1'* supplies the characters from the first pattern:
97.
EDIT Program (continued) Page II-129
Table II-10 (Cont.)
EDIT Commands
*/C128
*P600
00600 They were known well in 1975, but not in 1866.
*S1')'/,')'/1')'/,$1'*3'*,'*2'*1'*1'*.$600
00600 They were known well in 1865, but not in 1976.
*/C64
*
Tposition,range
Transfers a specified range of lines so the first line
being transferred starts at the specified position. If a
line already exists at the specified position, EDIT
creates a line following it and tells you what increment
it uses. The user transfers line 300 to the line just
after 100.
*T100,300
INC1=50
*
The specified range of lines is deleted after they are
transferred.
Xrange
Allows you to extend the specified range of lines by
printing the line and then giving an Alter I command. If
you do not want the system to print the line number, add
the ,S specifier at the end of the command. The user
adds on to line 600.
*X600
00600 T3: MOVEM T1,REFPNT ;Place in REFPNT
*
?
Prints a list of all the EDIT commands.
*@name.typ
Gives the commands stored in the specified file. When
the commands are processed, EDIT prints a message. The
user gives the commands in the file T.CMD.
*@T.CMD
%End of indirect file
*
EDIT Program (continued) Page II-130
You may set the following EDIT parameters with the / command
and examine them with the = command.
Table II-11
EDIT Parameters
Default
Name Set Print Value Function
. n y --- Indicates your current position
in the file
? n y --- /? prints the names of
settable switches; =? prints
the names of printable switches
BAK y y on Causes Creation of .Qxx backup
files rather than new
generations of the output file
BIG n y --- Gives the largest page number
C64 y CASE on Causes EDIT to use the standard
64-character set
C128 y CASE off Lets you use the extended
128-character set
CASE n CASE --- Prints information about the
character set, terminal
characteristics, and case
DECIDE y y off Sets decide mode for S commands
DPY y CASE off Sets special mode for display
terminals
ERROR n y --- Prints the last error message
EXPERT y CASE off Sets expert mode, which gives
extended capabilities and
shorter error messages
INCREMENT y y 100 Sets the default increment in
forming new line numbers
INSERT y y --- Prints the location of the line
inserted by an I<CR> command
ISAVE y y 0 Gives a B command after you
have inserted n new lines,
n is a non-zero value of ISAVE
LOCATION n y --- Prints the location of the
first line in the buffer.
You may "backup" to this
line without any overhead
LOWER y CASE off In C128 mode forces all
characters you type to be
lowercase unless preceded by an
apostrophe. All uppercase
characters are flagged on
output
M33 y CASE on Sets normal terminal parameters
M37 y CASE off Sets terminal parameters that
allow you to type and print
lowercase
NAME y y --- Specifies the output file
NOBAK y BAK off Forces a new generation of the
output file rather than the
creation of a .Qxx backup file
NODECIDE y DECIDE on Turns decide mode off
EDIT Program (continued) Page II-131
Table II-11 (Cont.)
EDIT Parameters
NONSEPARATORS y CASE on Declares %,$,. are not
alphanumerics
NONUMBER y n off Inhibits line number printing
NOVICE y n on Sets normal mode
NUMBER y n on Starts printing of line numbers
OLD y n off Creates a backup file (.Zxx) if
one does not exist
OPTION y n --- Reads the SWITCH.INI file
PLINES y y 16 Determines the number of lines
printed by P<CR>
READONLY y n off Sets readonly mode; you cannot
change the file
RUN y y LOAD Sets the program to be run when
you give a G command; normally
is your last LOAD-class command
SAVE y y 0 Causes EDIT to give a B command
after you give every n
commands,
n is a non-zero value of SAVE
SEPARATORS y n off Declares %,$,. are alphanumeric
SEQUENCE y n off Removes line numbers
from the output file
START y y 100 Sets the line number used to
start numbering files and pages
STRING n y --- Prints the current default
strings for F and S commands
UNSEQUENCE y UNSEQUENCE off Removes line numbers from the
output file
UPPER y CASE on In C128 mode forces everything
you type to uppercase; precede
lowercase with an apostrophe.
All lowercase output is flagged
WINDOW y y 8 pages Sets the amount of memory
used to store the file while
you are editing. Increase this
value if you are perusing a
file.
Characteristics
After the EDIT program has printed either Input:, Edit:, or
Read:, any program in memory is cleared and you are left at EDIT
command level or EDIT input level. To return to TOPS-20 command
level, press the ESC key then type E and press the RETURN key.
EDIT Program (continued) Page II-132
Examples
The user creates a small file and replaces a line.
@CREATE (FILE) TEST.FIL
Input: TEST.FIL.1
00100 This file will contain three lines: line 100
00200 Line 300, and
00300 Line 300.
00400 $
*R200
00200 Line 200, and
1 LINE (00200/1) DELETED
*E
[TEST.FIL.1]
@
The user edits a text file to be used with the RUNOFF program.
@EDIT (FILE) NEWRUN.RNO
Edit: NEWRUN.RNO.3
*SLEVLE$LEVEL$500
00500 THE HEADER LEVEL COMMANDS ARE ALSO VERY USEFUL.
*E
[NEWRUN.RNO.4]
@
EOF Command Page II-133
Function
The EOF command writes an end-of-file mark on the specified
magnetic tape.
Hints
Remember to assign the tape drive to your job and have the
operator load your tape.
Be sure to have the correct tape parameters set (check them with
the INFORMATION (ABOUT) TAPE-PARAMETERS command); if necessary,
give the SET TAPE command.
Format
@EOF (DEVICE) dev:
dev: is the magnetic tape device name in the form
MTAn:, where n is the drive number.
Operation
1. Type EOF and press the ESC key; the system prints
(DEVICE).
@EOF (DEVICE)
2. Type the device name and press the RETURN key. The system
prints an @ after it writes the EOF.
@EOF (DEVICE) MTA3:
@
Errors
1. If the device is not on line, the system ignores the command
and prints the message:
?Device is not on-line
Use the PLEASE program to contact the operator; then reissue
the command.
2. If a tape is not mounted on the drive, the system may print
the message:
?Device or data error
Use the TMOUNT command to contact the operator; then reissue
the command.
3. If you type a CTRL/C to exit from a program that has opened
the magnetic tape drive, and then give the EOF command, the
system prints the following message:
EOF Command (continued) Page II-134
?Device MTAn: open on JFN m
%Close JFN? YES
If you answer YES (or just press the RETURN key), the system
closes the file, prints a confirming message, writes the
end-of-file mark, and leaves you at TOPS-20 command level.
Continuing the program that previously opened the magnetic
tape may produce an error because the file has been closed.
@EOF (DEVICE) MTA2:
?Device MTA1: open on JFN 3
%Close JFN? YES
3 MTA1: OK
@
If you answer NO, the system prints the message ?Command
aborted...and does not close the file or write the
end-of-file mark.
Characteristics
The EOF command does not change any program in memory and leaves
your terminal at TOPS-20 command level.
Restrictions
The EOF command works only for magnetic tapes.
Examples
The user writes an EOF on the tape mounted on drive 3.
@EOF (DEVICE) MTA3:
@
EXECUTE Command Page II-135
Function
The EXECUTE command places one or more object files in memory,
then starts the main program.
Special Cases
If you give only EXECUTE-command switches as arguments to an
EXECUTE command, the system appends the arguments you gave in the
last LOAD-class command which contained a file specification or
LINK switch, then executes the command. If there are no
arguments to recall, the system prints the message ?No saved
arguments. Refer to Section 8.3.4 which describes the manner in
which arguments are recalled.
The system will update the object file if it is older than any
one of the corresponding source files. Suppose you give the
command:
@EXECUTE (FROM) NXTLAT.FOR
If NXTLAT.REL does not exist, or if it is older than the most
recent NXTLAT.FOR (i.e., it has a write date before the write
date of NXTLAT.FOR), then the system compiles NSTLAT.FOR to
produce an up-to-date NXTLAT.REL. After producing NSTLAT.REL,
the system loads it into memory. Refer to Section 8.3.3 which
describes the manner in which object files are updated.
Format
@EXECUTE (FROM) sources object,sources object,...
sources is one or more source file specifications preceded
and/or followed by switches. You must separate
the source files with plus signs. No spaces or
tabs are allowed. If you do not give a file type
in a file specification, the system looks for a
source file with one of the standard types listed
in Table 8-1. If there is more than one file with
a standard file type, the system uses .FOR. Refer
to Section 8.3.2 which describes more about how
the system selects a file when you do not specify
its file type.
a space separates the source file specifications from the
object file specification. If you do not give an
object file specification, you do not have to
leave a space.
object is an object file specification. If you do not
give an object file specification, the system uses
the name of the last file in the corresponding
sources and the type .REL.
@name.typ You may store any portion of the command in a
file. That portion of the command is included -
just as if you typed it on your terminal -
whenever you type an @ followed by the name of the
file. Refer to Section 8.3.5 which describes how
the system takes commands from an indirect file.
switches You may use recognition to help you type a switch
and any file specification which is an argument to
EXECUTE Command (continued) Page II-136
a switch. If you place a switch before a set of
sources, the switch applies to all the files in
that set of sources; if you place a switch after
a file specification in a set of sources, the
switch applies to just that file. Table II-12
lists the switches that are useful with the
EXECUTE command.
Table II-12
EXECUTE Command Switches
/ALGOL
Compiles the file using ALGOL. This is the default for
sources with the extension .ALG.
/BINARY
Generates a binary (object) file for each source program.
Normally, the system generates object files, so this
switch is useful in reversing a global /NOBINARY switch.
/COBOL
Compiles the program using COBOL. This is the default for
sources with the extension .CBL.
/COMPILE
(or an object file older than any one of its source files)
Compiles the source program regardless of whether the
object file is up-to-date or not. The /NOCOMPILE switch
causes compilation only if the object file is out-of-date;
the /RELOCATABLE switch causes the system to use an
existing object file, regardless of its date. Normally,
the system assumes the action of the /NOCOMPILE switch.
/CREF
Creates a file containing cross-reference information for
each source file you compile. The name of the file is the
name of the last source file and the file type is .CRF.
Give the CREF command to run the CREF program which reads
this file and prints a listing. If the object file is not
out of date, include the /COMPILE switch in your EXECUTE
command. When a source file contains a COBOL program, the
system produces a listing file (the file type is .LST
instead of .CRF) containing the cross-reference
information; give the PRINT command (instead of CREF) to
print the .LST file.
/DDT
Loads the DDT debugger along with the program.
/DEBUG
Provides debugging information in the object program
(FORTRAN only).
/FORTRAN
Compiles the file using FORTRAN. This is the default for
sources with the extension .FOR or a non-standard type.
/LIBRARY
Loads only the routines from the object file that are
called by the main program or another subroutine. The
system libraries are always searched.
EXECUTE Command (continued) Page II-137
Table II-12 (Cont.)
EXECUTE Command Switches
/LIST
Prints a listing of each program you compile. The listing
name is the name of the last source file. Unless you
specify this switch, the system does not print a listing
of your program. If you also include a /CREF switch, the
system ignores the /LIST switch.
/MACRO
Assembles the file using MACRO. This is the default for
sources with the extension .MAC.
/MAP:name.typ
Produces loader maps during the loading process and stores
them in the file name.typ. If you do not give a file name
and type, the system uses nnnLNK.MAP, where nnn is your
job number. The /MAP switch applies to the entire
command, not to just one file. If you use recognition
input in typing the file specification, the system creates
a new generation of the recognized file.
/NOBINARY
Inhibits the generation of a binary object file. This
switch is useful along with the /CREF or /LIST switch to
produce listings without additionally producing an object
file.
/NOCOMPILE
Compiles a file only if it is out-of-date. Since the
system normally does this, the /NOCOMPILE switch is useful
for turning off a global /COMPILE or /RELOCATABLE switch.
/NODEBUG
Omits loading debugging information with the program
(FORTRAN only).
/NOLIST
Inhibits the generation of a listing file. Normally, the
system does not generate a listing file.
/NOOPTIMIZE
Inhibits the generation of optimized object files (FORTRAN
programs only).
/NOSEARCH
Loads all routines in a file, regardless of whether the
routines are called by another module. Normally, the
system loads all the routines in an object file, therefore
this switch is useful in reversing a global /SEARCH
switch.
/NOSYMBOLS
Inhibits loading symbols with the program. Normally, the
system loads symbols with all programs.
EXECUTE Command (continued) Page II-138
Table II-12 (Cont.)
EXECUTE Command Switches
/OPTIMIZE
Produces optimized object files (FORTRAN programs only).
/RELOCATABLE
Uses the specified object files, even though they may be
out-of-date, or have extensions other than .REL. For
example, the command LOAD FILE.FOR/REL would cause
FILE.FOR to be treated as a relocatable file and load it.
It would normally be regarded as a FORTRAN source file.
/SEARCH
Is identical to the /LIBRARY switch.
/SYMBOLS
Loads the program with its appropriate symbol table.
Normally, the system loads all programs with symbols.
Operation
1. Type EXEC and press the ESC key; the system prints UTE
(FROM).
@EXECUTE (FROM)
2. Type (or use recognition on) the sets of source
specifications, object specifications and switches. Press
the RETURN key. The system executes the specified files.
@EXECUTE (FROM) TEST.FOR,SUB1.FOR
FORTRAN: TEST
FORTRAN: SUB1
SUB1
LINK: Loading
[LNKXCT TEST EXECUTION]
INPUT FILE: T1.IN
END OF EXECUTION
CPU TIME: 0.14 ELAPSED TIME: 0.47
EXIT
@
EXECUTE Command (continued) Page II-139
Errors
1. If you give a command and one of the source files is missing,
the system continues processing the command and prints the
message:
%SOURCE FILE MISSING - name.typ
where name.typ is the name and type of the source file.
Characteristics
The EXECUTE command runs the appropriate translator and the LINK
program, thereby clearing any previous program from memory.
Depending on the way your program operates, your terminal may or
may not be left at TOPS-20 command level.
Examples
The user executes his FORTRAN program.
@EXECUTE (FROM) ADDTWO.FOR
FORTRAN: ADDTWO
MAIN.
LINK: Loading
[LNKXCT ADDTWO Execution]
TYPE TWO NUMBERS.
23.5 45.8
ADDING 23.5000000 TO 45.8000000 GIVES
69.3000000
END OF EXECUTION
CPU TIME: 0.14 ELAPSED TIME: 7.88
EXIT
@
The user combines three FORTRAN programs into one main program
and includes the entire subroutine package TYPE2.
@EXECUTE (FROM) 1+2+3,TYPE2
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
LINK: Loading
nkxct 3 execution]
THIS IS IT, FOLKS, THE LAST TRY
THIS IS TYPE2.
STOP
END OF EXECUTION
CPU TIME: 0.009 ELAPSED TIME: 0.47
EXIT
@
EXECUTE Command (continued) Page II-140
The user executes his MACRO program and produces a
cross-reference listing file.
@EXECUTE (FROM) TRANSL.SYS/MACRO/CREF
MACRO: TRANSL
LINK: Loading
[LNKXCT TRANSL Execution]
Translate (Directory) EXEC
<EXEC> (IS) [4,111] (A files-only directory)
@
The user executes his COBOL program.
@EXECUTE (FROM) COMPUT.CBL
COBOL: MAIN [COMPUT.CBL]
LINK: Loading
[LNKXCT COMPUT Execution]
TYPE A NUMBER: 56
TWICE THAT NUMBER IS: 1.12E2
EXIT
@
EXPUNGE Command Page II-141
Function
The EXPUNGE command erases all your deleted files from disk
storage.
Hints
After you expunge your files, you cannot access them again. If
you have inadvertently deleted and expunged a file you actually
need, contact your operator and ask if your files can be obtained
from the system backup operations.
Use the EXPUNGE command to stay under your disk storage quota.
Format
@EXPUNGE (DIRECTORY) dev:<directory>
dev: is the name of the file structure containing the
directory. If you press the ESC key, or press the
RETURN key, the system uses your connected
structure and directory.
<directory> is the name of the directory you want to expunge.
You must include the brackets.
Operation
1. Type EXP and press the ESC key; the system prints UNGE
(DIRECTORY).
@EXPUNGE (DIRECTORY)
2. If you want to expunge your connected directory, press the
ESC key; and press the RETURN key (or just press the RETURN
key). You can type a structure name (dev:) if the directory
you want to expunge is not on your connected structure. You
must have the proper access privileges. Type (or use
recognition on) the directory name, and press the RETURN key.
The system prints the number of pages freed.
@EXPUNGE (DIRECTORY) <MANUALS>
[34 PAGES FREED]
@
Characteristics
The EXPUNGE command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
You may not expunge a directory to which you do not have the
proper access.
If you have deleted a file and a program still has it opened, the
system will not expunge the file.
EXPUNGE Command (continued) Page II-142
Examples
The user expunges his connected directory.
@EXPUNGE (DIRECTORY)
[5 PAGES FREED]
@
The user tries to expunge a directory to which he does not have
the proper access.
@EXPUNGE (DIRECTORY) <COHEN>
?WHEEL or OPERATOR capability required
@
FDIRECTORY Command Page II-143
Function
The FDIRECTORY command prints all the information about a file or
group of files. No headings are printed and the output is
compressed.
Hints
Giving the FDIRECTORY command is exactly like giving the
DIRECTORY command with the subcommands CRAM (OUTPUT), EVERYTHING,
and NO HEADING.
Refer to the DIRECTORY command for more information; you can
give any of the DIRECTORY subcommands with FDIRECTORY.
Format
@FDIRECTORY (OF FILES) filespecs
filespecs is a list of the file specifications about which
you want to obtain the information. If you omit
the file specifications, the system prints
information about all the files in your connected
directory.
Operation
1. Type FDIR and press the ESC key; the system prints ECTORY
(OF FILES).
@FDIRECTORY (OF FILES)
2. Type (or use recognition on) the file specifications, then
press the RETURN key. The system prints the directory
information.
@FDIRECTORY (OF FILES) TEST.FOR.*
<MCKIE>
TEST.FOR.4;P777752;A10300 1 15(36) 2 18-SEP-75 18:51:14
18-SEP-75 18:51:27 18-SEP-75 18:51:44 MCKIE MCKIE
@
Output
The system lists the files in alphabetical order. The following
information is listed for each file:
1. Name, type, generation number,
2. Protection number,
3. Account number,
4. Size (in pages),
5. Length (in bytes) and byte size (in parentheses),
FDIRECTORY Command (continued) Page II-144
6. File retention count,
7. The date and time the file was created,
8. The date and time the file was last written,
9. The date and time the file was last read,
10. The user who created the file,
11. The user who last wrote the file
After the entries for the individual files, the system prints a
line summarizing the total size (in pages) and number of the
listed files.
Characteristics
The FDIRECTORY command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user obtains all the information about any files with the
name FILEIO.
@FDIRECTORY (OF FILES) FILEIO
<MCKIE>
FILEIO.EXE.2;P777752;A10300 3 2048(36) 2 20-AUG-75 15:16:25
20-AUG-75 15:16:25 9-SEP-75 16:12:50 MCKIE MCKIE
.MAC.55;P777752;A10300 2 1005(36) 2 19-SEP-75 10:54:00 19-
SEP-75 10:54:06 19-SEP-75 10:54:05 MCKIE MCKIE
.REL.1;P777752;A10300 1 170(36) 1 16-MAY-75 02:57:16 16-MA
7-75 02:57:16 16-MAY-75 02:57:18 MCKIE MCKIE
TOTAL OF 6 PAGES IN 3 FILES
@
FILCOM Program Page II-145
Function
The FILCOM program compares two files line by line and outputs
the differences between them.
Hints
With FILCOM you may compare both ASCII files (i.e., normal text
files and files containing source programs) and binary files
(i.e., relocatable binary files and save files). FILCOM compares
ASCII files line by line, but it compares binary files word by
word.
If you want to list a binary file, type the first input file
specification, but do not type a comma or the second input file
specification. Be sure that either the input file specification
has a standard binary type (listed in Table II-13) or that you
use the /W switch.
Special Cases
Binary files are compared word by word, starting at word 0, with
the following exception:
1. Files with file types .SAV, .LOW, and .SVE are assumed to be
executable files and are expanded before comparing.
Format
@FILCOM
*output.typ=input1.typ,input2.typ/switches
output.typ is the name and type of the file that will contain the
differences between the two input files.
If you do not give an output file name, FILCOM uses
the second input file name (input2). But, if you omit
the second input file name (refer to input2.typ), the
output file name becomes FILCOM. If you omit the
output file type, it is .SCM if the input files are
ASCII files, or else .BCM if the input files are
binary files. If you omit the output file
specification completely, the system uses TTY:.
input1.typ is the name and type of the first input file you want
to compare.
input2.typ is the name and type of the second input file you want
to compare.
If you omit the name of the second input file, FILCOM
uses the name of the first input file. If you omit
the type of the second input file, FILCOM uses the
type of the first input file. To explicitly indicate
a null type, type a period at the end of the second
input file name.
FILCOM Program (continued) Page II-146
switches are the switches following the two input file
specifications. They control the method in which
FILCOM performs the comparison. All the valid
switches are listed in Table II-13.
If you do not use the /A, /W, or /X switch, FILCOM
chooses the mode of comparison by examining the type
of the input files. If either one (or both) of the
input files has one of the types listed below, the
files are compared in binary mode; otherwise they are
compared in ASCII mode.
Binary File Types
.BAC .HGH .RMT
.BIN .LOW .RTB
.BUG .MSB .SAV
.CAL .OVR .SFD
.CHN .QUE .SHR
.DAE .QUF .SVE
.DCR .REL .SYS
.DMP .RIM .UFD
.XPN
If a conflict arises in the absence of defaults or
switches, the files are assumed to be ordinary binary
files.
Table II-13
FILCOM Switches
Switch Comparison Function
/A ASCII only Compares the two input files in ASCII mode
(i.e., FILCOM treats both files as if they
contain ASCII characters). This switch is
useful when the file specifications do not
have standard file types. Refer to Appendix
B.
/B ASCII only Considers blank lines in the comparison;
otherwise blank lines are ignored.
/C ASCII only Ignores comments (all text on a line
following a semicolon) and spacing (spaces
and tabs). If one file has a line which is
entirely a comment and the position of that
line does not correspond to a comment line in
the other file, that line is output as a
difference between the two files.
/H ASCII and Prints a list of FILCOM switches on your
binary terminal.
FILCOM Program (continued) Page II-147
Table II-13 (Cont.)
FILCOM Switches
Switch Comparison Function
/nL ASCII only Specifies the number of lines that terminate
a match. A match occurs when FILCOM finds n
successive lines that are the same in both
files. Once FILCOM finds a match, it prints
all the differences discovered since the last
match. Then, FILCOM prints the first line of
the current match so that you know where the
differences are located. If you do not give
this switch, FILCOM uses the value 3.
/nL Binary only The number n is an octal number which
specifies the lower limit where a partial
binary comparison will begin. If you also
use the /nU switch, FILCOM compares the files
only within these predefined limits.
/Q ASCII and Prohibits FILCOM from printing the
binary actual differences, only ?FILES ARE
DIFFERENT, if applicable. This switch is
useful when Batch control files want to test
for differences, but do not want the log file
filled with output.
/U ASCII only Compares the files in update mode. In update
mode, the output file is the second input
file with vertical bars inserted at the left
margin on lines that differ from the first
input file. This feature is useful when
updating a document because the changes made
to the latest edition are flagged with change
bars in the left margin. The latest edition
of the file must be typed as the second input
file.
/nU Binary only Specifies the upper limit where a partial
binary comparison will stop. n is an octal
number. Refer to the /L switch.
/W Binary only Compares the two files in binary mode without
expanding the files first. This switch is
used to compare two binary files that have
non-standard file types.
/X Binary only Expands executable (.SAV) files before
comparing them in binary mode. This switch
removes differences resulting from zero
compression.
FILCOM Program (continued) Page II-148
Operation
1. Type the program name FILCOM, then press the RETURN key.
When the FILCOM program has started, it prints an asterisk on
your terminal.
@FILCOM
*
2. After the asterisk, type a command comprised of an output
file, an equals sign, two input files, and any necessary
switches. Press the RETURN key. When FILCOM is finished, it
prints a second asterisk. If the files are different, FILCOM
precedes the asterisk with the message %files are different
(if you used the /Q switch, the percent sign is replaced with
a question mark).
*DIFFER.FIL=EXPONT.1,EXPONT.2
%files are different
3. After FILCOM prints the second asterisk, you can give another
command to FILCOM. If you want to stop FILCOM, type a
CTRL/C.
*^C
@
Output
ASCII mode
The output file contains a header consisting of the device,
file name, type, and creation date of each input file. This
header is omitted if you are using update mode, that is, if
you have given the /U switch.
File 1) DSK:EXPONT.1 created: 1052 22-AUG-1975
File 2) DSK:EXPONT.2 created: 1155 22-AUG-1975
Each time FILCOM encounters differences, it outputs the
number of the file and its differences. At the end of the
differences, FILCOM prints a line that is common between the
two files. Then FILCOM prints four asterisks, the number of
the second file, and its differences. Finally, FILCOM prints
the common line and fourteen asterisks. Next, FILCOM prints
a second set of differences, and so forth until all
differences are printed. In the following example, file
EXPONT.1 contains the words corresponding to the numbers 1
through 10 and EXPONT.2 contains the words corresponding to
the numbers 1 through 10, but also includes the words
TWO-AND-A-HALF and NINE-AND-A-HALF. There are two
differences listed: the first one is TWO-AND-A-HALF,
occurring in EXPONT.2, the second one is NINE-AND-A-HALF,
occurring in EXPONT.2.
FILCOM Program (continued) Page II-149
@FILCOM
*=EXPONT.1,EXPONT.2
File 1) DSK:EXPONT.1 created: 1700 25-SEPT-1975
File 2) DSK:EXPONT.2 created: 1618 25-SEPT-1975
1)1 THREE
****
2)1 TWO-AND-A-HALF
2) THREE
**************
1)1 TEN
****
2)1 NINE-AND-A-HALF
2) TEN
**************
%files are different
*
If you give the /U switch, the system prints the second file
with vertical bars beside any lines that differ from the
first file.
@FILCOM
*=EXPONT.1,EXPONT.2/U
ONE
TWO
! TWO-AND-A-HALF
THREE
FOUR
FIVE
SIX
SEVEN
EIGHT
NINE
! NINE-AND-A-HALF
! TEN
%files are different
*
Binary mode
The output file contains the same header, but FILCOM compares
the two files word by word. If there is a difference, it
prints the word from the first file, the word from the second
file, then the logical exclusive OR of the two words.
@FILCOM
*=A.REL,B.REL
File 1) DSK:A.REL created: 2221 07-SEPT-1975
File 2) DSK:B.REL created: 1712
25-SEPT-1975
000006 000005 000002 000001 000006 000004 000004
000007 200000 000000 240000 000000 040000 000000
%files are different
*
FILCOM Program (continued) Page II-150
Characteristics
When you start FILCOM, any previous program is cleared from
memory and your terminal is at FILCOM command level. Type a
CTRL/C to return to TOPS-20 command level.
Restrictions
You may not use recognition input in typing a FILCOM command, and
you must use a project-programmer number to reference a file in
another user's directory. Refer to Section 5.3.1 and Section
5.10.
Examples
The user compares his two FORTRAN files and places the output in
the file NEW.SCM.
@FILCOM
*NEW=ROUND1.FOR,ROUND2.FOR
%files are different
*^C
@
The user compares two text files, leaving change bars next to new
and changed lines. Blank lines are not ignored.
@FILCOM
*NEWDOC.TXT=DOC1.TXT,DOC2.TXT/U/B
%files are different
*^C
@
The user prints the contents of a binary file, SUBRTN.REL.
@FILCOM
*PFILE=SUBRTN.REL/B
%files are different
*^C
@PRINT PFILE.BCM
[LPT:PFILE=/SEQ:1023/LIMIT:176, 1 FILE]
@
FORDDT Program Page II-151
Function
The FORTDDT program helps you debug FORTRAN programs.
Hints
Your object program must contain symbols to be successfully
debugged with FORDDT - do not begin your debugging session by
giving the switch /NOSYMBOLS.
Format
@DEBUG (FROM) /FORTRAN filespecs
FORTRAN: name
MAIN.
LINK: Loading
[LNKDEB FORDDT Execution]
STARTING FORTRAN DDT
>command
filespecs is a list of FORTRAN programs and
subroutines. If the files have the type
.FOR, you do not have to include the /FORTRAN
switch. If you want to use line numbers,
perform tracing, include array dimension
tracing, or examine DO loops, include /DEBUG
and /COMPILE switch in your LOAD-class
command.
command is any valid FORDDT command in Table II-14.
Table II-14
FORDDT Commands
ACCEPT variable/mode value
Changes the value of the specified variable. The mode
indicates the format you will use to type the value. Refer
to the following list of the valid modes.
Modes For ACCEPT Values
Mode Meaning Example
A Left-justified ASCII characters /MIXED/
enclosed in slashes. The
system accepts only the first
five characters.
C A complex number (two floating 1.25,79.01E-5
point numbers separated by
a comma).
D A double precision number. 6.2831853072
F A floating point number. 126.67
I An integer number. 68
FORDDT Program (continued) Page II-152
Table II-14 (Cont.)
FORDDT Commands
Mode Meaning Example
O An octal number. 777777
R Right-justified ASCII \TRYIT\
characters enclosed
in backslashes. The system
accepts only the first
five characters.
S A symbolic value which uses PSI(M)
the current value of the
variables. If M=3, the system
uses the value of PSI(3).
CONTINUE n
Continues the execution of your program after encountering a
label at which you have set a pause. The execution
continues until the program finishes or encounters another
pause. If you want to ignore this pause a certain number of
times, include a number after the CONTINUE command. Then
the system resumes execution of the program until either it
encounters this pause n times or until it encounters a
different pause, whichever comes first.
GROUP n list
Sets up a string of variables which a TYPE command can refer
to by number rather than by name. For example, if you give
the command: GROUP 1 A,B,C, you can then give the command
TYPE 1 which is equivalent to TYPE A,B,C. The number n is a
group number from 1 to 8 and list is a list of variable
names separated by commas.
LOCATE symbol
Lists the modules in which a given symbol is defined. You
may then give the name of this module as an argument to an
OPEN command. The symbol n can be a variable, array,
statement label, # followed by a line number, or FORMAT
statement number. If you want to locate a line number, be
sure to include a /DEBUG switch in the LOAD-class command
that loads the program.
MODE list
Defines the default formats in which FORDDT prints the
values of all variables. If you give more than one value,
they must be separated by commas. With more than one mode
set, the system types out the value of a variable once in
each mode. The modes are:
Mode Meaning
F Floating point
D Double precision
C Complex
I Integer
O Octal
A ASCII (left-justified)
R RASCI (right-justified)
FORDDT Program (continued) Page II-153
Table II-14 (Cont.)
FORDDT Commands
For example, the command MODE F,A would cause the command
TYPE X to print the value of X in floating point format,
then in left-justified ASCII format.
OPEN name
Opens a subprogram so that you may manipulate the
subprogram's local variables. When you open a subprogram,
the main program or the subprogram you previously opened is
automatically closed; you may access only global variables
and those variables defined within the currently open
subprogram. If you do not specify a name, the system opens
the main program.
PAUSE label
Causes FORDDT to temporarily stop execution of your program
at the specified label. You may resume execution by giving
the CONTINUE command. You have up to 10 pauses set at one
time. The label may be a statement label, a # followed by a
line number, or a routine entry point name. If you want to
pause at a line number, be sure to include a /DEBUG switch
in the LOAD-class command that loads the program.
REMOVE label
Removes a pause at the specified label. If you do not give
a label and type the complete command name, the system
removes all pauses. The label may be a statement label, a #
followed by a line number, or a routine entry point name.
START label
Starts your program at the specified label which can be a
program name or a # followed by a line number. If you do
not type a label (or if you type a program name), the system
starts execution at the beginning of the program. Once you
have started your program, you may return to FORDDT command
level by encountering a breakpoint or by typing two CTRL/Cs
followed by a DDT command. If you want to start at a line
number, be sure to include a /DEBUG switch in the LOAD-call
command that loads the program.
STOP
Terminates the execution of your program, closes all files,
and returns you to TOPS-20 command level.
TYPE list
Prints the value of one or more variable or array elements
on your terminal. The variable list is one or more variable
names, array names, or group numbers. You must precede a
group number with a slash. If you do not type any arguments
to the TYPE command, the system uses the arguments you gave
in the last TYPE command.
The MODE command determines how the values are printed; if
you do not give a MODE command, the system prints all values
in floating point form.
WHAT
Prints a list of groups and modes.
FORDDT Program (continued) Page II-154
Operation
1. Type DEBU and press the ESC key; the system prints G (FROM).
@DEBUG (FROM)
2. If the source file specifications do not contain the file
type .FOR, type the /FORTRAN switch and leave a space;
otherwise, type (or use recognition on) the file
specification. Include the /DEBUG and /COMPILE switches if
they are necessary. The system will compile the sources (if
necessary), load them into memory along with FORDDT, then
transfer control to FORDDT.
@DEBUG (FROM) MORPAY
FORTRAN: MORPAY
MORPAY.
LINK: Loading
[LNKDEB FORDDT Execution]
STARTING FORTRAN DDT
>>
3. Once the system prints the double angle bracket, you are at
FORDDT command level and may give any of the commands listed
in the preceding table. In the example, the user gives the
START command which starts execution of his program.
>>START
Once you have started your program, you may return to FORDDT
command level by encountering a breakpoint or by typing two
CTRL/Cs followed by a DDT command.
Characteristics
The DEBUG command loads your FORTRAN program into memory along
with FORDDT, thereby clearing any program from memory. Your
terminal is left at FORDDT command level.
Restrictions
You may use FORDDT to debug only FORTRAN programs.
Examples
The user debugs his FORTRAN program.
@DEBUG (FROM) MORPAY !Load the program with FORDDT
LINK: Loading
[LNKDEB FORDDT Execution]
STARTING FORTRAN DDT
>> PAUSE 10 !Pause at statement 10
>> PAUSE 18 !and at statement 18
>>START !Start the program
How much is the loan? 2500. !Type an amount
FORDDT Program (continued) Page II-155
What is the interest rate? 12. !Type an interest rate
How long (in years) is the loan? 2. !The loan duration
The monthly payment is: $ 117.6836900
[Interest factor: 21.1433850]
PAUSE AT 10 IN MAIN PROGRAM !Execution reached statment 10
>>CONTINUE !Continue execution
1 25.00 92.68 2407.32
PAUSE AT 18 IN MAIN PROGRAM !Now statement 18
>> REMOVE 10 !Remove the pause at 10
>> C !Abbreviated continue
2 24.07 93.61 2313.71
PAUSE AT 18 IN MAIN PROGRAM
>> TYPE BALANC !Type the value of balance
BALANC = 2313.706
>> TYPE PP !And the principal payment
PP = 93.61053
>> C !Continue execution
3 23.14 94.55 2219.16
PAUSE AT 18 IN MAIN PROGRAM
>> GROUP 1,BALANC,PP,I !Set up a group 1 containing
BALANC, PP, and I, the
payment number
>> MODE F,I !Set the mode as floating
point, then integer
>> PAUSE 18 TYPING 1 !Type the values in group 1
whenever the statement 18
is encountered
>> WHAT !Print the status of FORDDT
OPEN SECTION: MAIN PROGRAM
GROUP AFTER PAUSE
1 0 18
GROUP 1: BALANC,PP,I
NO ARRAY SPECIFICATIONS
>> C !Continue execution
4 22.19 95.49 2123.67
PAUSE AT 18 IN MAIN PROGRAM
BALANC = 2123.667
= 18860070242
FORDDT Program (continued) Page II-156
PP = 95.49210
= 18219524006
I =
%FRSAPR Floating underflow PC= 407713
0.0000000
= 4 !When you print an integer
value such as I in a
floating point format.
FORDDT issues a warning
>> ACCEPT BALANC/F 0.0 !Change the floating point
value of BALANC to 0.
BALANC = 0.0000000
>> C !Continue execution
5 0.00 0.00 0.00
FINAL PAYMENT IS: $ 0.00
TOTAL PRINCIPAL IS: $ 376.33
TOTAL INTEREST IS: $ 94.40
THE END !The program ends
END OF EXECUTION
CPU TIME: 1.76 ELAPSED TIME: 12.72
EXIT
@
FORTRAN Compiler Page II-157
Function
The FORTRAN compiler produces object programs from FORTRAN source
programs.
Hints
To run a FORTRAN program:
1. Enter your source program into a file (by using EDIT).
2. Give the EXECUTE command to compile, load, and start your
program.
Use the FORDDT program to debug FORTRAN programs.
If you have a main program and assorted subroutines that required
special loading, refer to Chapter 8 which describes the
LOAD-class commands.
Operation
1. Enter your program into a file using EDIT.
@CREATE (FILE) SMALL.FOR
Input: SMALL.FOR.1
00100 TYPE 101
00200 101 FORMAT (' THIS IS A MINI FORTRAN PROGRAM.')
00300 STOP
00400 END
00500 $
*E
[SMALL.FOR.1]
@
2. Compile, load, and start your program by giving the EXECUTE
command.
@EXECUTE (FROM) SMALL.FOR
FORTRAN: SMALL
MAIN.
LINK: Loading
[LNKXCT SMALL Execution]
THIS IS A MINI FORTRAN PROGRAM.
STOP
END OF EXECUTION
CPU TIME: 0.08 ELASPED TIME: 0.86
EXIT
@
Characteristics
The LOAD-class commands run the FORTRAN compiler to translate
your FORTRAN source program, thereby clearing any previous
program from memory. Depending on the operation you request,
your terminal may or may not be left at TOPS-20 command level.
FORTRAN Compiler (continued) Page II-158
Examples
The user executes a FORTRAN program.
@EXECUTE (FROM) ADDTWO.FOR !Give the EXECUTE command
FORTRAN: ADDTWO
MAIN.
LINK: Loading
[LNKXCT ADDTWO Execution]
TYPE TWO NUMBERS.
23 45 !Type two numbers
ADDING 23.0000000 TO 45.0000000 GIVES 68.0000000
END OF EXECUTION
CPU TIME: 0.13 ELAPSED TIME: 0.72
EXIT
@
The user compiles a FORTRAN program.
@COMPILE (FROM) MORPAY.FOR
FORTRAN: MORPAY
MAIN.
@
The user combines three source programs to produce one object
program (C.REL), then loads the object program into memory.
@LOAD (FROM) A+B+C
FORTRAN: A
MAIN.
LINK: Loading
EXIT
@
The user compiles a main program (COMP) and its two subroutines
(ADDEM and DIFFER), then loads them into memory and starts them.
@EXECUTE (FROM) COMP,ADDEM,DIFFER !Give the EXECUTE command
FORTRAN: COMP
MAIN.
FORTRAN: ADDEM
ADDEM
FORTRAN: DIFFER
DIFFER
LINK: Loading
[LNKXCT COMP Execution] !Execution starts
TYPE TWO NUMBERS: 78 56 !Type two numbers
THE SUM IS: 134.0000000
THE DIFFERENCE IS: 22.0000000
STOP
END OF EXECUTION
CPU TIME: 0.14 ELAPSED TIME: 0.63
EXIT
@
GET Command Page II-159
Function
The GET command clears memory, then loads an executable program.
Hints
The only type of program that you may place in memory with the
aid of this command is an executable program. To produce an
executable program, first give the LOAD command to translate the
program and load it into memory, then give the SAVE command to
save the executable program in a file with the type .EXE. Thus,
you will normally specify a file with the type .EXE when you give
the GET command.
After issuing the GET command, you may start the program by
giving the START command. You may also merge another program in
memory by giving the MERGE command.
You can give an INFORMATION (ABOUT) MEMORY-USAGE command after
the GET command to find out which memory pages comprise the
program.
Format
@GET (PROGRAM) filespec
filespec is the file specification of the file containing the
executable program. If you do not specify a type, the
system assumes it is .EXE.
Operation
1. Type GET and press the ESC key; the system prints (PROGRAM).
@GET (PROGRAM)
2. Type (or use recognition on) the file specification; then
press the RETURN key. Once your program is in memory, the
system prints an @.
@GET (PROGRAM) RTRANS.EXE.1
@
Characteristics
The GET command:
Clears memory, then inserts a new program, thereby clearing
any previous program from memory.
Leaves your terminal at TOPS-20 command level.
Examples
The user places the program DIFFER.EXE.2 in memory.
@GET (PROGRAM) DIFFER.EXE.2
@
HELP Program Page II-160
Function
The HELP program prints information about programs.
Hints
You can get information about most system programs by using the
HELP program.
Format
@HELP name
name is the name of the program for which you need
information. The name is comprised of up to six
alphanumeric characters. If you want a list of
programs for which you can obtain information, use
an asterisk in place of name.
Operation
1. Type HELP and leave a space.
@HELP
2. Type the name of the program or an asterisk, then press the
RETURN key. The system prints the information.
@HELP EDIT
3. If you want to stop the printout, type two CTRL/Cs.
Errors
1. If the system does not have any information on the particular
program, it prints the message:
%No info on "name"
where name is the name of the program which you typed.
Characteristics
When you run the HELP program, any previous program in memory is
cleared and your terminal is at TOPS-20 command level.
Examples
The user prints information about EDIT.
@HELP EDIT
SUMMARY OF EDIT COMMANDS
.
.
.
@
INFORMATION Command Page II-161
Function
The INFORMATION command prints information about various system
and job parameters.
Hints
The SET and TERMINAL commands change many of the parameters you
can examine with the INFORMATION command.
Format
@INFORMATION (ABOUT) parameter modifier
parameter is one of the parameters listed in the following
table.
modifier exists for some parameters and selects a
particular aspect of a parameter.
Table II-15
INFORMATION Parameters
AVAILABLE category
Prints a list of the available system devices and all file
structures that are presently on line (if you type
DEVICES, or leave category blank) or available terminal
lines (if you type LINES).
COMMAND-LEVEL
Prints the status of the ERROR-RETRY and
LATE-CLEAR-TYPEAHEAD parameters.
DISK-USAGE (OF DIRECTORY) dev:<directory>
Prints the number of pages allocated, the working page
limit, and the permanent page limit of the specified
directory. Also prints the number of pages available in
system storage. If you default the directory field or
leave it blank, the system prints the information for your
connected directory.
ERRORS
Prints information about disk and drum errors.
FILE-STATUS (OF) jfn
Prints your connected directory name and for the specified
JFN (or each JFN if you leave jfn blank) prints the:
1. JFN number,
2. File specification, and
3. Access which opened the file.
INFORMATION Command (continued) Page II-162
Table II-15 (Cont.)
INFORMATION Parameters
The access describes the reason for opening the file and
its access condition. The reasons for opening a file are:
APPEND -for appending to the file
EXECUTE -for executing the file
NOT OPENED -you have identified the file in some way, but
not actually accessed its contents yet
READ -for reading the file
WRITE -for writing the file
The access conditions are:
DATA ERROR -there was an error accessing the file
EOF -the file pointer is at the end of the file
If appropriate, the file's byte pointer is printed along
with its byte size. This represents the number of bytes
that have been transferred to or from the file.
The system also prints a list of the devices currently
assigned to your job.
JOB-STATUS
Prints your job number, user name, connected structure and
directory (if different from your logged-in directory),
and terminal number.
LOGICAL-NAMES (OF) identifier
Prints the current logical names and their definitions
that are defined for your job (if you use the identifier
JOB or default the field), for the system (if you use the
identifier SYSTEM), or for both your job and the system
(if you use the identifier ALL).
MEMORY-USAGE
Prints the number of memory pages assigned to you at the
current TOPS-20 command level, the location and length of
the entry vector, and on each succeeding line:
1. The pages occupied by a file or program.
2. A file specification if the pages are shared, or
PRIVATE if they are private.
3. The page numbers of shared pages (if a page is mapped,
the system prints the file specification to which it
is mapped).
4. The access of the pages. The permitted accesses are:
R -Read access
W -Write access
CW -Copy-on-write access, or
E -Execute access
INFORMATION Command (continued) Page II-163
Table II-15 (Cont.)
INFORMATION Parameters
MONITOR-STATISTICS
Prints a list of monitor and system performance
statistics.
PROGRAM-STATUS
Prints the amount of central processor time you have used
since you have logged in to the system and the amount of
time you have used in the TOPS-20 command language
interpreter (TOPS-20). The system prints SET
UUO-SIMULATION (FOR PROGRAM) if the Compatibility Package
will simulate TOPS-10 monitor calls when they are issued
by the program. The system prints SET
CONTROL-C-CAPABILITY (OF PROGRAM) if the program is
allowed to assign CTRL/C interrupts. Last, the system
prints a summary of the status of each process belonging
to the current command level.
PSI-STATUS
Prints information about the pseudo-interrupt system which
includes whether the PSI system if ON or OFF, the level
table mask, the channel table mask, the levels in
progress, the numbers of the enabled channels, and the
numbers of the waiting channels.
SPOOLED-OUTPUT-ACTION
Tells whether your job spools output IMMEDIATELY or it is
DEFERRED to when you log out.
STRUCTURE (NAME) name:
Prints the current status of a particular structure that
is mounted. A carriage return after (NAME) prints the
status of your currently connected structure. This status
output includes the mount count (the number of users who
have given the SMOUNT command for this structure), the
open file count (the number of file openings on this
structure), and the number of disk units in the structure
In addition, a list is printed of the users who have given
the SMOUNT command for this structure, the users who have
given the ACCESS command for a directory on this structure
and the users who have given the CONNECT command for a
directory on this structure. If a structure is not
mounted, the message: ?Structure is not mounted or ?No
such device is printed on your terminal. Also, if the
operator has specified that a structure is unavailable for
general use, you will receive the following message.
UNAVAILABLE FOR MOUNTING. The wildcard character * can
also be used. INFORMATION(ABOUT) STRUCTURE (NAME) * lists
the current status of all the structures that are
presently mounted.
INFORMATION Command (continued) Page II-164
Table II-15 (Cont.)
INFORMATION Parameters
SUBSYSTEM-STATISTICS
Prints the name of subsystems, the total run time they
have incurred, the number of page faults per second they
cause, the number of times they went into a wait state,
and their working-set size (in pages).
SYSTEM-STATUS
Tells whether the operator is in attendence, logging in on
remote terminals is allowed, logging in on local terminals
is allowed, logging in on pseudo-teletypes is allowed, and
if entries are being made in the fact file.
TAPE-PARAMETERS
Prints the current default tape density (in bits per
inch), tape parity (ODD or EVEN), format (ANSII-ASCII, or
CORE-DUMP, INDUSTRY-COMPATIBLE,) and record length.
TERMINAL-MODE
Prints information about your terminal type, speed, links
(receiving or refusing), advice (receiving or refusing),
page mode (yes or no), length (decimal number), width
(decimal number), lowercase (yes or no), raise (yes or
no), flag (yes or no), indicate (yes or no), formfeed (yes
or no), tabs (yes or no), immediate (yes or no),
fullduplex or halfduplex. Refer to the TERMINAL command
and Chapter 9 for more information about these parameters.
VERSION
Prints the system name, the date it was installed, and the
version of the command language interpreter (EXEC), and
the name and version of the program now in memory.
Operation
1. Type INFO and press the ESC key; the system prints RMATION
(ABOUT).
@INFORMATION (ABOUT)
2. Type (or use recognition on) the parameter name. If the
parameter does not have a qualifier, press the RETURN key and
the system mprints the information.
@INFORMATION (ABOUT) TAPE-PARAMETERS
SET TAPE DENSITY 800
SET TAPE PARITY ODD
SET TAPE FORMAT ANSI-ASCII
SET TAPE RECORD-LENGTH 80
@
3. If the parameter has a qualifier, type (or use recognition
on) the qualifier, press the RETURN key and the system prints
the information. You may default the qualifier by simply
omitting it.
@INFORMATION (ABOUT) AVAILABLE LINES
0-2, 4-10, 12-14, 16-17, 25, 30-41, 44-54, 56-101, 107-125
@
INFORMATION Command (continued) Page II-165
Characteristics
The INFORMATION command does not change the contents of memory
and leaves your terminal at TOPS-20 command level.
Examples
The user lists the available device.
@INFORMATION (ABOUT) AVAILABLE DEVICES
Devices available to this job:
DSK, PS, ADMIN, MTA0-2, LPT, LPT0, CDR, PCDR0, FE1-3, PTY13-35
NUL
Devices assigned to/opened by this job: TTY75
@
The user prints information about command level.
@INFORMATION (ABOUT) COMMAND-LEVEL
SET NO ERROR-RETRY
SET NO LATE-CLEAR-TYPEAHEAD
@
The user finds out about his disk usage.
@INFORMATION (ABOUT) DISK-USAGE (OF DIRECTORY)
431 PAGES ASSIGNED, 421 IN USE, 10 DELETED
2500 WORKING, 1300 PERMANENT ALLOWED
26249 SYSTEM PAGES FREE
@
The user gets information about his file-status.
@INFORMATION (ABOUT) FILE-STATUS (OF JFN)
Connected to <MCKIE>. JFNS:
4 OUFILE.RNO.2 Read, Write, 0,(7)
3 <SUBSYS>VTED.EXE.34 Read, Execute
1 <SYSTEM>EXEC.EXE,282 Read, Execute
DEVICES ASSIGNED TO/OPENED BY THIS JOB: TTY110
@
The user inquires about his job status.
@INFORMATION (ABOUT) JOB-STATUS
Job 23, User ESTEY, PS:<PORADA>, Account 10300, TTY75
@
The user prints the definitions of his logical names.
@INFORMATION (ABOUT) LOGICAL-NAMES (OF)
LIB:=> <FORTRAN-LIBRARY>
@
INFORMATION Command (continued) Page II-166
The user prints information about the contents of memory.
@INFORMATION (ABOUT) MEMORY-USAGE
497. Pages, Entry vector loc 435 len 2
0 Private R, W, E
1-10 @ <SUBSYS>VTED.EXE,34 4-13 R, CW, E
20-767 @ OUFILE.RNO.4 0-747 R, W, E
@
The user prints information about his program-status.
@INFORMATION (ABOUT) PROGRAM-STATUS
Used 0:00:20 in 0:06:53
TOPS-20 0:00:07.6
SET UUO-SIMULATION (FOR PROGRAM)
SET CONTROL-C CAPABILITY (OF PROGRAM)
=> Fork 1: ^C from Running at 700260, 0:00:00.3
@
The user finds out about the state of the pseudo-interrupt
system.
@INFORMATION (ABOUT) PSI-STATUS
PSI is ON, LEVTAB=464, CHNTAB=467
LEVELS IN PROGRESS = NONE
CHANNELS ENABLED = 0, 1
CHANNELS WAITING = NONE
@
The user inquires about the status of structure ADMIN:.
@INFORMATION (ABOUT) STRUCTURE (NAME) ADMIN:
Status of structure ADMIN:
Mount count: 3, open file count: 0, units in structure: 1
Domestic
Users who have SMOUNTed ADMIN: HURLEY, ESTEY, HELLIWELL
Users ACCESSing ADMIN: HURELY, HELLIWELL
Users CONNECTed to ADMIN: ESTEY
@
The user gets the system status.
@INFORMATION (ABOUT) SYSTEM-STATUS
OPERATOR IS NOT IN ATTENDANCE
REMOTE LOGINS ALLOWED
LOCAL LOGINS ALLOWED
PSEUDO-TERMINAL LOGINS ALLOWED
CONSOLE TERMINAL LOGIN ALLOWED
FACT FILE ENTRIES ARE ENABLED
@
The user gets information about tape parameters.
@INFORMATION (ABOUT) TAPE-PARAMETERS
SET TAPE DENSITY 1600
SET TAPE PARITY ODD
SET TAPE FORMAT CORE-DUMP
SET TAPE RECORD-LENGTH 512
@
INFORMATION Command (continued) Page II-167
The user prints information about his terminal mode.
@INFORMATION (ABOUT) TERMINAL-MODE
TERMINAL LA36
TERMINAL SPEED 300
RECEIVE LINKS
REFUSE ADVICE
TERMINAL NO PAGE
TERMINAL LENGTH 66
TERMINAL WIDTH 132
TERMINAL LOWERCASE
TERMINAL RAISE
TERMINAL NO FLAG
TERMINAL INDICATE
TERMINAL NO FORMFEED
TERMINAL NO TABS
TERMINAL NO IMMEDIATE
TERMINAL FULLDUPLEX
@
LOAD Command Page II-168
Function
The LOAD command places one or more object files in memory,
forming a runnable program.
Hints
Having loaded a runnable program, you may then start it (by
giving the START command) or save it on disk (by giving the SAVE
command).
The INFORMATION (ABOUT) MEMORY-STATUS is useful for checking the
size and placement of your program in memory.
The LOAD command runs the LINK program. Refer to the LINK
Reference Manual for more information on this program.
If you intend to run the program often, you should use, in order,
the LOAD, SAVE and RUN commands. (You will find this process
faster than loading the program each time you run it.)
Special Cases
If you give only LOAD-command switches as arguments to a LOAD
command, the system appends the arguments you gave in the last
LOAD-class command that contained a file specification or LINK
switch, then executes the command. If there are no arguments to
recall, the system prints the message ?No saved arguments. Refer
to Section 8.3.4 which describes the manner in which arguments
are recalled.
The system will update the object file if it is older than any
one of the corresponding source files. Suppose you give the
command:
@LOAD (FROM) NXTLAT.FOR
If NXTLAT.REL does not exist, or if it is older than the most
recent NXTLAT.FOR (i.e., it has a write date before the write
date of NXTLAT.FOR), then the system compiles NXTLAT.FOR to
produce an up-to-date NXTLAT.REL. After producing NXTLAT.REL,
the system loads it into memory. Refer to Section 8.3.3 which
describes the manner in which object files are updated.
Format
@LOAD (FROM) sources object,sources object,...
sources is one or more source file specifications preceded
and/or followed by switches. You must separate
the source files with plus signs. No spaces or
tabs are allowed. If you do not give a file type
in a file specification, the system looks for a
source file with one of the standard types listed
in Table 8-1. Refer to Section 8.3.2 which
describes more about how the system selects a file
when you do not specify its file type.
a space separates the source file specifications from the
object file specification. If you do not give an
object file specification, you do not have to
leave a space.
LOAD Command (continued) Page II-169
object is an object file specification. If you do not
give an object file specification, the system uses
the name of the last file in the corresponding
sources and the type .REL.
name.typ you may store any portion of the command in a
file. That portion of the command is included -
just as if you typed it on your terminal -
whenever you type an @ followed by the name of the
file. You may use recognition in typing the file
specification, but the commands within the file
may not use recognition. Refer to Section 8.3.5
which describes how the system takes commands from
an indirect file.
switches you may use recognition to help you type a switch
and any file specification that is an argument to
a switch. If you place a switch before a set of
sources, the switch applies to all the files in
that set of sources; if you place a switch after
a file specification in a set of sources, the
switch applies to just that file. Table II-16
lists the switches that are useful with the DEBUG
command.
Table II-16
LOAD Command Switches
/ALGOL
Compiles the file using ALGOL. This is the default for
sources with the extension .ALG.
/BINARY
Generates a binary (object) file for each source program.
Normally the system generates object files, so this switch
is useful in reversing a global /NOBINARY switch.
/COBOL
Compiles the program using COBOL. This is the default for
sources with the extension .CBL.
/COMPILE
(or an object file older than any one of its source files)
Compiles the source program regardless of whether the
object file is up-to-date or not. The /NOCOMPILE switch
causes compilation only if the object file is out-of-date;
the /RELOCATABLE switch causes the system to use an
existing object file, regardless of its date. Normally,
the system assumes the action of the /NOCOMPILE switch.
/CREF
Creates a file containing cross-reference information for
each source file you compile. The name of the file is the
name of the last source file and the file type is .CRF.
Give the CREF command to run the CREF program which reads
this file and prints a listing. If the object file is not
out of data, include the /COMPILE switch in your LOAD
command. When a source file contains a COBOL program, the
system produces a listing file (the file type is .LST
instead of .CRF) containing the cross-reference
information; give the PRINT command (instead of CREF to
print the .LST file.
LOAD Command (continued) Page II-170
Table II-16 (Cont.)
LOAD Command Switches
/DDT
Loads the DDT debugger along with the program.
/DEBUG
Provides additional debugging information in the object
program (FORTRAN only).
/FORTRAN
Compiles the file using FORTRAN. This is the default for
sources with the extension .FOR or a non-standard type.
/LIBRARY
Loads only the routines from the object file that are
called by the main program or another subroutine. The
system libraries are always searched.
/LIST
Prints a listing of each program you compile. The listing
name is the name of the last source file. Unless you
specify this switch, the system does not print a listing
of your program. If you also include a /CREF switch, the
system ignores the /LIST switch.
/MACRO
Assembles the file using MACRO. This is the default for
sources with the extension .MAC.
/MAP:name.typ
Produces loader maps during the loading process and stores
them in the file name.typ. If you do not give a file name
and type, the system uses nnnLNK.MAP, where nnn is your
job number. The /MAP switch applies to the entire
command, not to just one file. If you use recognition
input in typing the file specification, the system creates
a new generation of the recognized file.
/NOBINARY
Inhibits the generation of a binary (object) file. This
switch is useful along with the /CREF or /LIST switch to
produce listings without additionally producing an object
file.
/NOCOMPILE
Compiles a file only if it is out-of-date. Since the
system normally does this, the /NOCOMPILE switch is useful
for turning off a global /COMPILE or /RELOCATABLE switch.
/NODEBUG
Omits loading debugging information with the program
(FORTRAN only).
/NOLIST
Inhibits the generation of a listing file. Normally, the
system does not generate a listing file.
/NOOPTIMIZE
Inhibits the generation of optimized object files (FORTRAN
programs only).
LOAD Command (continued) Page II-171
Table II-16 (Cont.)
LOAD Command Switches
/NOSEARCH
Loads all routines in a file, regardless of whether the
routines are called by another module. Normally, the
system loads all the routines in an object file, therefore
this switch is useful in reversing a global /SEARCH
switch.
/NOSYMBOLS
Inhibits loading symbols with the program. Normally, the
system loads symbols with all programs.
/OPTIMIZE
Produces optimized object files (FORTRAN programs only).
/RELOCATABLE
Uses the specified object files, even though they may be
out-of-date, or have extensions other than .REL. For
example, the command LOAD FILE.FOR/REL would cause
FILE.FOR to be treated as a relocatable file and load it.
It would normally be regarded as a FORTRAN source file.
/SEARCH
Is identical to the /LIBRARY switch.
/SYMBOLS
Loads the program with its appropriate symbol table.
Normally, the system loads all programs with symbols.
Operation
1. Type LOAD and press the ESC key; the system prints (FROM).
@LOAD (FROM)
2. Type (or use recognition on) the sets of source
specifications, object specifications and switches. Press
the RETURN key. The system loads the specified files.
@LOAD (FROM) TEST.FOR,SUB1.FOR
FORTRAN: TEST
FORTRAN: SUB1
LINK: Loading
@
Errors
1. If you give a command and one of the source files is missing,
the system continues processing the command and prints the
message:
%SOURCE FILE MISSING - name.typ
where name.typ is the name and type of the source file.
LOAD Command (continued) Page II-172
Characteristics
The LOAD command runs the LINK program, thereby clearing any
previous program from memory and leaving your terminal at TOPS-20
command level.
Examples
The user loads a simple MACRO program.
@LOAD (FROM) TRANSL.MAC
MACRO: TRANSL
LINK: Loading
EXIT
@
The user combines three FORTRAN programs into one main program
and includes the entire subroutine package TYPE2.
@LOAD (FROM) 1+2+3,TYPE2
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
LINK: Loading
EXIT
@
The user loads a MACRO program and obtains a cross-reference
listing. Note that you must use the /CREF switch to receive the
listing.
@LOAD (FROM) /CREF INIT.MAC+CONTRL.MAC+SUBS.MAC
MACRO: INIT
MACRO: CONTRL
MACRO: SUBS
LINK: Loading
EXIT
@
The user loads his programs using an indirect file.
@LOAD (FROM) @TYP.CMD
FORTRAN: 1
MAIN.
FORTRAN: TYPE2
TYPE2
LINK: Loading
EXIT
@
The user loads his FORTRAN programs, but loading the library file
TYPE2 in library mode.
@LOAD (FROM) 1+2+3,TYPE2/LIBRARY
LINK: Loading
EXIT
@
LOGIN Command Page II-173
Function
The LOGIN command validates you as a user, creates your job, and
begins charging your account. After creating your job, the
system executes the commands stored in the files LOGIN.CMD and
COMAND.CMD if they have been created. Refer to Section 3.2.4.
Special Cases
If you are allowed to have alphanumeric accounts, the system uses
the guide word (ACCOUNT) and you may type an alphanumeric string
for an account.
Hints
Obtain a valid user name, password, and account number from your
system manager.
You must type a CTRL/C before you can give the LOGIN command.
After the CTRL/C and before giving the LOGIN command, you may
give a TERMINAL command to tell the system which type of terminal
you have. You can also give the commands listed in Section 2.3
without being logged in.
Format
@LOGIN (USER) user name (PASSWORD) password (ACCOUNT #) account
user name is your user name (comprised of up to 39
alphanumeric characters, including hyphen).
password is the password associated with your user name.
The password is comprised of up to 39 letters and
digits, including hyphen. You should keep your
password secret.
account is your account descriptor.
Operation
1. Type LOG and press the ESC key; the system prints
IN (USER)
@LOGIN (USER)
2. Type your user name and press the ESC key. The system prints
(PASSWORD). If you type an incorrect user name, the system
immediately prints a ? and returns to command level.
@LOGIN (USER) LANGLEY (PASSWORD)
3. Type your password (it is not printed) and press the ESC key;
the system prints (ACCOUNT #).
@LOGIN (USER) LANGLEY (PASSWORD) (ACCOUNT #)
LOGIN Command (continued) Page II-174
4. Type a valid account number and press the RETURN key; the
system prints a line containing your job number, terminal
number, and the date and time.
@LOGIN (USER) LANGLEY (PASSWORD) (ACCOUNT #) 10400
JOB 27 ON TTY16 16-JAN-76 15:54
@
Errors
1. If you type an invalid (non-existing) user name, the system
responds with a ? immediately and does not let you continue.
Check to see if you are spelling the name correctly.
2. If you type an incorrect password, the system prints the
following message and does not log you in.
?INCORRECT PASSWORD
Reissue the command with the correct password.
3. If you type an incorrect number of account characters, the
system prints an error indication (?) and does not log you
in.
@LOGIN (USER) PAVOLA (PASSWORD) (ACCOUNT #) 1234567
?
@
Reissue the command with a correct account.
4. If you give an alphanumeric account when an account number is
required, the system prints the following message.
?NON-DIGIT TYPED WHERE NUMBER REQUIRED
Reissue the command with a numeric account.
Output
Once you have completed the LOGIN command, the system prints a
line that contains your job number, terminal number and the date
and time you logged in.
Next, the system prints any system messages that were created
since the last time you logged in. If you do not want to read
the messages, type a CTRL/O.
If you have exceeded your permanent disk storage allocation, the
system prints the message:
<directory> OVER PERMANENT STORAGE ALLOCATION BY n PAGES
where directory is your logged-in directory and n is the number
of pages by which you have exceeded your quota. You should
delete and expunge enough files so that you are under this quota.
If another user has left you a message, the system prints:
YOU HAVE A MESSAGE, READ WITH RDMAIL
LOGIN Command (continued) Page II-175
Use the RDMAIL program to read your mail. Otherwise, until you
run RDMAIL, you will receive this message every time you log in.
If you have a LOGIN.CMD file and/or a COMAND.CMD file, the system
processes these files and prints:
END OF COMAND.CMD
and/or
END OF LOGIN.CMD
Characteristics
The LOGIN command is usually the first command that you give
after the initial CTRL/C; and it leaves your terminal at TOPS-20
command level.
Also, the LOGIN command implicitly CONNECTs to and ACCESSes your
logged-in directory on PS:. If you give the INFORMATION (ABOUT)
STRUCTURE command after you log in, your user name will appear in
both the CONNECTed and ACCESSing user lists.
Restrictions
You can give the LOGIN command only after you type a CTRL/C.
You cannot use recognition in typing the arguments to a LOGIN
command.
Examples
The user CONNOLY logs in to the system and finds he has a
message.
@LOGIN (USER) CONNOLY (PASSWORD) _ (ACCOUNT #) 10231
JOB 23 ON TTY34 16-JAN-76 10:27
YOU HAVE A MESSAGE, READ WITH RDMAIL
@
LOGOUT Command Page II-176
Function
The LOGOUT command expunges deleted files in your connected and
logged-in directory, deletes all ;T (temporary) files created
during this session in your connected and logged-in directories,
decrements the mount count for any SMOUNT commands you have
given, checks disk storage allocation, ends your job and prints a
message. You may also log out another job as long as it is
logged in under your user name.
Format
@LOGOUT n
n is the job number of the job you want to log out. If you are
logging out your current job (as is the common case), do not
type a number.
Operation
1. Type LOGO and press the ESC key; the system prints UT.
@LOGOUT
2. To log out your current job, press the RETURN key. (If your
connected directory is over its disk storage allocation, the
system prints a message.)
@LOGOUT
KILLED JOB 13, USER LESTER, ACCOUNT 10563, TTY 45,
AT 16-JAN-76 20:03:01 USED 0:1:46 IN 3:44:12
3. If you are logging out another job, type the job number and
press the RETURN key.
@LOGOUT 23
@
Errors
1. If you try to log out another user's job, the system ignores
the LOGOUT command and prints the message:
?WHEEL OR OPERATOR CAPABILITY REQUIRED
2. If no user is logged in under that job number, the system
ignores the LOGOUT command and prints the message:
?THAT JOB DOES NOT EXIST
LOGOUT Command (continued) Page II-177
Output
If you exceed your permanent disk storage allocation, the system
prints the message:
<directory> OVER PERMANENT STORAGE ALLOCATION BY n PAGES
where directory is your logged-in directory and n is the number
of pages by which you exceeded your quota. You should log in and
delete and expunge enough files to get under quota. Before you
log out, you can give the INFORMATION (ABOUT) DISK-USAGE command
to find if you are over your allocation.
Characteristics
The LOGOUT command:
Clears any program from memory and expunges the deleted files
in your connected and logged-in directory, unless you are
logging out another job, in which case it leaves your
terminal at TOPS-20 command level.
Terminates any ACCESS, CONNECT and SMOUNT commands you have
given throughout your job session.
Restrictions
You cannot log out another user's job.
You cannot give a job number when you are logging out your own
job.
Examples
The user logs out his own job, but is over his permanent disk
storage allocation by 5 pages.
@LOGOUT
<HARDING> OVER PERMANENT STORAGE ALLOCATION BY 5 PAGES.
KILLED JOB 36, USER HARDING, ACCOUNT 34, TTY 2,
AT 16-JAN-76 3:04:01 USED 0:0:23 IN 0:5:12
The user logs out job 34 which is logged in under his user name.
@LOGOUT 34
@
MACRO Assembler Page II-178
Function
The MACRO assembler produces object programs from MACRO source
programs.
Hints
A program written in the MACRO assembly language may contain
machine language instructions, assembler pseudo-ops and monitor
calls.
To run a MACRO program:
1. Enter your source program into a file (usually you will use
EDIT),
2. Give the EXECUTE command to assemble, load and start your
program.
3. If you do not plan to make changes to the program (EDIT) and
plan to run the program often, use the LOAD, SAVE and RUN
commands instead of EXECUTE.
If you have a main program and assorted subroutines that require
special loading, refer to Chapter 8 which describes the
LOAD-class commands. Also refer to the description of the LINK
program.
The best way to produce a listing file for a MACRO program is to
give a LOAD-class command with the /CREF switch. In addition to
your relocatable binary program, the system then produces a file
with cross-reference information about symbols. Give the CREF
command to process this file and print it. Refer to the
examples.
Operation
1. Enter your program into a file using EDIT.
@CREATE (FILE) TEST1.MAC
Input: TEST1.MAC.1
00100 TITLE TEST1
00200 SEARCH MONSYM
00300 TEST1: RESET
00400 HRROI T1,[ASCIZ /This is only a test program!
00500 /]
00600 PSOUT
00700 HALTF
00800 END TEST1
00900 $
*E
[TEST1.MAC.1]
@
2. Compile, load, and start your program.
@EXECUTE (FROM) TEST1.MAC
MACRO: TEST1
LINK: Loading
[LNKXCT TEST1 EXECUTION]
THIS IS ONLY A TEST PROGRAM!
@
MACRO Assembler (continued) Page II-179
Characteristics
Giving a LOAD-class command to run a MACRO program clears any
previous program from memory and, depending on the command, may
or may not leave you at TOPS-20 command level.
Examples
The user compiles his MACRO program.
@COMPILE (FROM) VTED
MACRO: VTED
EXIT
@
The user compiles his program, producing a file that is used by
the CREF command to produce a cross-reference listing on the line
printer.
@COMPILE (FROM) /CREF INOUT
MACRO: INOUT
EXIT
@CREF !Give the CREF command
CREF: INOUT
@
The user compiles two files to produce one source program, then
loads it into memory.
@LOAD (FROM) DEFS+PROMPT
MACRO: PROMPT
LINK: Loading
EXIT
@
The user loads his main program (REINIT) and two subroutines
(MEMDMP and CONFIG) into memory, saves the resulting program,
then runs the program.
@LOAD (FROM) REINIT,MEMDMP,CONFIG
MACRO: REINIT
MACRO: MEMDMP
MACRO: CONFIG
LINK: Loading
EXIT
@SAVE
REINIT.EXE.1 SAVED
@RUN REINIT
NAME OF FILE TO INITIALIZE: SYMTAP.EXT.1 !NEW FILE!
CONFIGURATION COMPLETED.
ANOTHER FILE? NO
[DONE!]
@
MAIL Program Page II-180
Function
The MAIL program sends a message (commonly referred to as mail)
to another user or group of users.
Special Cases
If you have not read a message that has been sent to you since
the last time you ran RDMAIL, the system prints the line:
YOU HAVE A MESSAGE, READ WITH RDMAIL
on your terminal whenever you log in to the system.
If you are logged in at the time someone sends you a message, the
system prints the following line on your terminal:
[YOU HAVE A MESSAGE FROM sender]
(If you are refusing links, the system does not print the above
message.)
If an important new message-of-the-day has been sent to SYSTEM
since you logged in, you are notified with the message:
[NEW MESSAGE-OF-THE-DAY AVAILABLE]
You can read the new SYSTEM message with the RDMAIL program.
Type /M to the DATE AND TIME prompt.
You can send MAIL to a directory called REMARKS. This directory
has been set up to receive complaints about any miscellaneous
system problems you may have (e.g., your terminal is not working
properly or you need paper supplies). The type of complaints
that are sent usually do not require an immediate response from
the operator.
If you have WHEEL or OPERATOR capabilities, you can also send
messages to SYSTEM. Sending a message to SYSTEM generates a new
message-of-the-day to all users. Type SYSTEM to the prompt TO:.
Note that SYSTEM and REMARKS are the only files-only directories
that will accept mail.
Hints
The RDMAIL program allows you to read new system messages and
mail sent to you by another user.
You can type a ? after any one of the queries (i.e., TO:, CC:,
SUBJECT:, and MESSAGE:) and the system prints a short summary of
what you are expected to type.
Normally if you have a list of users to whom you are sending
mail, you must type their user names on the line following TO:
or CC: (for copies to). But, if you have a long list of user
names you can enter them into an indirect file using EDIT. Then,
in the place of the user names, type an at-sign and type (or use
recognition on) the file name and file type. Refer to the second
example.
You can also send mail to yourself. A convenient time to use
this facility is when you are running a Batch job and want to
MAIL Program (continued) Page II-181
know when it is done. You can send a message to yourself by
including the MAIL program commands at the end of your Batch
control file. After the last command in the control file has
been executed, you are notified that you have a message in the
form:
[YOU HAVE A MESSAGE FROM sender]
Sender, in this case, is yourself. Run RDMAIL to read your
message. (Refer to Examples.)
Operation
1. Start the program by typing (or using recognition on) the
name MAIL, then press the RETURN key. The system leaves a
blank line and prints TO:
@MAIL
TO:
2. Type (or use recognition on) the list of user names;
separate them with commas. If you are using an indirect file
(i.e., you have stored the list of user names in a file),
type an @, then type (or use recognition on) the file name
and file type. The system then prints CC:.
TO: HURLEY,MILLER,MURPHY,@USERS.LST
CC:
3. Type or use recognition on the user names to whom you want to
send copies of the mail. You may use an indirect file here
also. The system prints SUBJECT:.
CC: @MEMOS.DIR
SUBJECT:
4. Type a one-line heading for the message and press the RETURN
key. The system prints the second line below that prompts
you for your message.
SUBJECT: SYSTEM CHARGES
MESSAGE (TERMINATE WITH ESC OR ^Z):
5. Type the message; when you are finished, press the key
labeled ESC.
If you wish, you can type the message into a file; if you
have done so, at this time type an @ and the file name.
Then, press the RETURN key. If the mail gets sent without
any system errors, the system prints a three-line message
confirming that the mail was sent.
MAIL Program (continued) Page II-182
MESSAGE (TERMINATE WITH ESC OR ^Z):
WOULD YOU PLEASE SEND THE LIST OF NEW SYSTEM CHARGES
TO THE PROJECT SUPERVISORS?
THANKS.
$
PROCESSING MAIL...
NO ERRORS.
-DONE-
@
Errors
1. No user will receive more than one copy of the mail. Thus,
if you include a certain name once under the TO: and another
time under CC:, the system prints the message:
%DUPLICATE NAME PURGED - user name
and removes the duplicate name from the list of users who
will receive the mail.
2. If there is an error sending a message to a particular user,
the system prints the following error message:
user name NOT SENT reason
You should try to send the message again. If the second
attempt fails, contact the operator.
3. If you give a non-existent user name, the system ignores that
name and prints the message:
?ILLEGAL USER NAME - name
However, if you have sent mail to a list of users, the list
is printed with the illegal name deleted.
4. If the recipients' directory is over its working quota, the
system refuses to send the mail and prints the following
message.
user name NOT SENT QUOTA EXCEEDED
If the user is logged in, try using the TALK command.
Characteristics
After you start the MAIL program, any previous program is cleared
from memory and your terminal is left at MAIL command level.
Answer the questions, type your message, press the ESC key and
your terminal will be left at TOPS-20 command level. If you need
to return to TOPS-20 command level immediately, type a CTRL/C.
Restrictions
You cannot send mail to a files-only directory (other than SYSTEM
or REMARKS) or to a directory on a structure other than PS:.
MAIL Program (continued) Page II-183
Examples
The user sends mail to the users COHEN, BRUCKERT, and PORADA; a
copy is sent to user RICHER.
@MAIL
TO: COHEN, BRUCKERT, PORADA
CC: RICHER
SUBJECT: SYSTEM USERS
MESSAGE (TERMINATE WITH ESC OR ^Z):
PLEASE INFORM ALL NEW USERS OF THE LOCATIONS OF THE TERMINAL
ROOMS AND THE HOURS OF THEIR OPERATION.
$
PROCESSING MAIL...
NO ERRORS.
-DONE-
@
The user sends mail to two users and a list of users stored in
the file REST.FIL. One user, WYMAN, occurs twice so the system
eliminates the redundancy.
@MAIL
TO: MCCARTHY, TOLMAN, @REST.FIL
CC: LEWINE, WYMAN
%DUPLICATE NAME PURGED - WYMAN
SUBJECT: MAINTENANCE
MESSAGE (TERMINATE WITH ESC OR ^Z):
PLEASE BE ADVISED THAT THE SYSTEM WILL BE DOWN FROM 0100 TO
0300 FOR MAINTENANCE.
$
PROCESSING MAIL...
NO ERRORS.
-DONE-
@
The user sends a message stored in the file MACRO.CMD to the user
ALUSIC.
@MAIL
TO: ALUSIC
CC:
SUBJECT: MACRO FILES
MESSAGE (TERMINATE WITH ESC OR ^Z):
@MACRO.CMD.1
PROCESSING MAIL...
NO ERRORS.
-DONE-
@
MAIL Program (continued) Page II-184
The user sends a message-of-the-day to all users of the system.
This user has WHEEL or OPERATOR capabilities enabled.
@MAIL
TO: SYSTEM
CC:
SUBJECT: NEW MANUALS
MESSAGE (TERMINATE WITH ESC OR ^Z):
THE NEW DECSYSTEM-20 MANUALS WILL BE AVAILABLE IN MY OFFICE
AFTER 2:00 PM TODAY.
$
PROCESSING MAIL...
NO ERRORS
-DONE-
@
The user sends MAIL to REMARKS.
@MAIL
TO: REMARKS
CC:
SUBJECT: SUPPLIES
MESSAGE (TERMINATE WITH ESC OR ^Z):
I NEED TWO BOXES OF TERMINAL
PAPER, SIZE 97/8 X 11.
$
PROCESSING MAIL...
NO ERRORS
-DONE-
@
The user sends a message to inform himself when his Batch job is done
by placing the MAIL commands in his control file. Note that he uses a
dot (or period) for the first program command TO:.
@CREATE (FILE) TEST.CTL
INPUT: TEST.CTL
00100 @FILCOM
00200 *TEST.FOR=DIFFER.FOR,ADDEM.FOR/A
00300 @PRINT TEST.FOR
00400 @MAIL
00500 *.
00600 *
00700 *BATCH JOB IS DONE
00800 *^Z
00900 $
*E
MAKLIB Program Page II-185
Function
The MAKLIB program updates files containing one or more object
programs and manipulates the individual programs within these
files.
Hints
Languages that produce object programs are MACRO, FORTRAN, COBOL,
ALGOL, and BLISS-10.
A program can be complete, or can be just a set of subroutines.
One reason for collecting a group of object programs into one
file is to enable LINK to use the file as a library (see the LINK
Reference Manual). The updating process employs three files:
1. A master file containing the file to be updated,
2. A transaction file containing the object programs to be used
when updating, and
3. An output file containing the updated file.
All three files can be on the same device if it is DSK.
Format
@MAKLIB
*output dev:file.typ=master dev:file.typ/switch:(object-programs),
transaction dev:file.typ/switch:(object-programs)
output dev: is the device name or logical name to which
the updated file is written. If you omit the
device, MAKLIB assumes DSK: (currently
connected structure).
master dev: is the device name or logical name that
specifies the location of the file to be
updated. If you omit the device, MAKLIB
assumes DSK: (currently connected
structure). To separate the master file and
transaction file, use a comma.
transaction dev: is the device containing the object programs
that MAKLIB will use in updating.
Note that the default for the device is DSK:
(currently connected structure).
file.typ is the name and type of each file. You must
specify file names for directory devices, but
you may omit the types. If you omit a type,
MAKLIB assumes it is .REL unless you include
the /L switch in the command string. In this
case, MAKLIB assumes the output file type is
.LST.
Project-programmer numbers appearing after a
file name apply to that file only. If the
project-programmer number appears before the
file name, it applies to all subsequent files
until you specify another device.
MAKLIB Program (continued) Page II-186
MAKLIB gives the master file's protection
number to the output file.
You may use the asterisk wildcard character
in input file specifications.
(object-programs) are the names of programs that MAKLIB will
use in updating. Group these within
parentheses in the same order in which they
appear in the file, and separate them by
commas. While you are manipulating all the
programs in a file, you need specify only the
file name. You may not specify program names
for the output file.
/switch specifies a function you wish MAKLIB to
perform. Each function causes the updated
file to be output to the specified device.
Table II-17
MAKLIB Switches
/APPEND Appends the specified object programs in
the transaction file(s) to the master file,
and adds these programs to the end of the
output file.
/NOLOCAL Compresses the master file by deleting
local symbols. These symbols are included
in object programs primarily because they
are useful in debugging.
NOTE
Local symbols cannot be deleted
from .REL files; for these files,
the /NOLOCAL switch will be
ignored. Large libraries of
debugged routines, such as LIBOL,
frequently have the local symbols
deleted in order to save disk space
and reduce the amount of I/O
required during the loading
process.
/DELETE Deletes the specified object programs from
the master file.
/EXIT Returns you to TOPS-20 command level.
/EXTRACT Extracts the specified files and/or object
programs from the input files. If you do
not specify program names, MAKLIB extracts
the entire file.
/HELP Types the commands and switches available.
MAKLIB Program (continued) Page II-187
Table II-17 (Cont.)
MAKLIB Switches
/INSERT Inserts object programs from the specified
transaction files into the master file.
MAKLIB inserts the programs in the
transaction files immediately before those
programs specified by /M in the master
file. A comma is used to separate the
transaction files.
/INDEX Writes index blocks into a library file on
disk. Indexes cannot be written on
magnetic tape. Index blocks are used in a
direct access library search. (See the
LINK Reference Manual)
/LIST Lists the names of the modules that are in
the MASTER file.
The name of the master file is the default
file name for spooled output.
/MASTER Specifies which programs in the master file
are to be used in inserting and replacing.
/POINTS Lists all the entry points within an object
program. These are listed across the page.
The name of the master file is the default
file name for the spooled output.
/REPLACE Replaces the specified object programs in
the master file with the specified object
programs in the transaction file. The
number of replacing programs must be the
same as the number of programs to be
replaced.
Operation
1. Type the program name MAKLIB, then press the RETURN key.
When the MAKLIB program has started, it prints the asterisk
prompt on your terminal.
@MAKLIB
*
2. After the asterisk, type a command comprised of an output
file, an equals sign, a master and file, any necessary
switch, a colon if the switch requires one, and any necessary
object programs followed by a comma. (If the switch you use
requires you to specify a transaction device, see the next
paragraph.) Then press the RETURN key. MAKLIB prints any
output your switch has requested: in this case, a list of
programs and their segment breaks. When MAKLIB is finished,
it prints a second asterisk.
*TTY:=TSTLB2/LIST
SORT 401745 007136
MAIN 000444 001400
TESTER 011473 001400
*
MAKLIB Program (continued) Page II-188
If you have used a switch that requires you to specify a
transaction device and/or file, continue your command by
typing this information after the comma; then type any
necessary switch, a colon if the switch requires one, and any
necessary object programs. Press the RETURN key. When
MAKLIB is finished, it prints a second asterisk.
*LIBRY=LIBRY/MAS:TESTER, TSTBL1/INSERT:DUMP
*
3. After MAKLIB prints the second asterisk, you can give another
command to MAKLIB. If you want to stop MAKLIB, type a
CTRL/C.
*^C
@
NOTE
To end a command line, press the RETURN key. To
continue the command on the next line, type a hyphen
on your current line and then press the RETURN key.
You may include comments on the MAKLIB command string by
preceding each comment with a semicolon. MAKLIB ignores all
characters after the semicolon--except for escape--until the
next line feed, vertical tab, or form feed character.
Characteristics
After you start the MAKLIB program, any previous program is
cleared from memory and your terminal is at MAKLIB command level.
Restrictions
The MAKLIB program does not allow you to use recognition input in
typing file specifications. File specifications may not contain
the characters -, $, or _ and the wildcard characters are * and
?. The comment character is ; instead of !. Refer to Chapter
5. To access a file in another user's directory, use a
project-programmer number. Refer to Section 5.3.1.
Examples
@MAKLIB
*TTY:=TSTLB2/LIST ;List the programs in
TSTLB2.REL on the terminal.
SORT 401745 007136
OVRLAY 402736 000544
MAIN 000444 001400
TESTER 011473 001400
*LIBRY=TSTLB2,POLSTR/APP:PS ;Create a library containing
TSTLB2.REL and the program PS
from the file POLSTR.REL.
List the contents of the
library.
MAKLIB Program (continued) Page II-189
*TTY:=LIBRY/LIST
SORT 401745 007136
OVRLAY 402736 000544
MAIN 000444 001400
TESTER 011473 001400
PS 000414
*LIBRY=LIBRY/MAS:(SORT,MAIN),TSTBL1/REP:EDITOR,-
;Replace SORT with the program
EDITOR and replace the program
MAIN with the program INPUT.
List the entry points in the
new library.
POLSTR/REP:INPUT
*TTY:=LIBRY/POINTS
EDITOR
OVRLAY GETOV. INIOV. LOGOV. REMOV. RUNOV. .OVRLA .OVRLU
INPUT INPBYT INPUT STRING
TESTER TESTER
PS
*LIBRY=LIBRY/MAS:TESTER,TSTBL1/INSERT:DUMP
;Insert the program DUMP from
the file TSTBL/-.REL into the
library before TESTER.
*TTY:=LIBRY/LIST
EDITOR 000130
OVRLAY 402736 000544
INPUT 000043
DUMP 000206
TESTER 011473 001400
PS 000414
*LIBRY=LIBRY/DELETE:(EDITOR,OVRLAY,PS)
;Delete EDITOR, OVERLAY and
PS. Delete local symbols.
Index the library.
*LIBRY=LIBRY/NOLOC
*LIBRY=LIBRY/INDEX
*/EXIT
@
MERGE Command Page II-190
Function
The MERGE command places an .EXE file in memory, merging it with
any existing program.
Hints
The INFORMATION (ABOUT) MEMORY-USAGE command is useful in
checking the operation of the MERGE command.
Special Cases
Generally, any currently assigned memory is left intact except
where pages of the new file overlap the pages of the existing
memory. In that case, the pages of the new file replace the
pages of memory.
Format
@MERGE (PROGRAM) filespec
filespec is the file specification of the file you want to
merge. If you do not give a file type, the system
uses .EXE.
Operation
1. Type MERG and press the ESC key; the system prints E
(PROGRAM).
@MERGE (PROGRAM)
2. Type (or use recognition on) the file specification, then
press the RETURN key. The system prints an @ when the merge
is complete.
@MERGE (PROGRAM) TOPTAP.EXE.1
@
Errors
1. If the program is not in the form of an .EXE file, the system
may print the message:
?UNEXPECTED END-OF-FILE TRAP IN EXEC AT n
Make sure you have specified the correct file (n is a
particular location in memory.)
2. If the program is not in the form of an .EXE file, the system
may merge it. However, later you may receive the message:
?ENTRY VECTOR IS NOT LESS THAN 777
Make sure you have specified the correct file.
MERGE Command (continued) Page II-191
Characteristics
The MERGE command changes the contents of memory and leaves your
terminal at TOPS-20 command level.
The MERGE command does not alter the entry vector if the file
being merged is in proper .EXE file format.
Examples
The user merges the program TESTOP.EXE with the program currently
in memory.
@MERGE (PROGRAM) TESTOP.EXE
@
The user places the RTRANS program in memory, checks it by giving
the INFORMATION command, merges the PA1050 program, then finally
checks the contents of memory again.
@GET (PROGRAM) SYS:RTRANS.EXE.20
@INFORMATION (ABOUT) MEMORY-USAGE
4. PAGES, ENTRY VECTOR LOC 140 LEN 254000
0-3 <OLD>RTRANS.EXE.20 2-5 R, CW, E
@MERGE (PROGRAM) SYS:PA1050.EXE.395
@INFORMATION (ABOUT) MEMORY-USAGE
27. PAGES, ENTRY VECTOR LOC 140 LEN 254000
0-3 <OLD>RTRANS.EXE.20 2-5 R, CW, E
700-726 <SUBSYS>PA1050.EXE.395 1-27 R, E
@
PLEASE Program Page II-192
Function
The PLEASE program helps you communicate with the operator.
After starting the PLEASE program, you may communicate with the
operator in a two-way conversation.
Hints
To send a one-way message to the operator, type your message on a
line, but press the ESC key before you press the RETURN key. If
you use this method, you do not have to wait for the operator to
respond.
If you type CTRL/T while you are running the PLEASE program, the
system prints a message telling you where you are in the waiting
list. If the operator can service your request, the message
contains the text: You are the current user.
Operation
1. Start the program by typing PLEASE, then press the RETURN
key. The system prints WHAT IS THE OPERATOR'S ID?.
@PLEASE
WHAT IS THE OPERATOR'S ID?
2. Type the operator's identification. In many cases the
operator's ID is not required. In this case, simply type
PLEASE and a space and enter the text of your message. If
the operator's identification is required, it can be obtained
from the system manager or by contacting the operator in
person. Most of the time, just pressing the RETURN key will
link your terminal with the main operator's terminal. The
system prints ENTER TEXT:.
WHAT IS THE OPERATOR'S ID?
ENTER TEXT:
3. Type the message you want to send to the operator, ending the
first line by pressing the RETURN key. If the operator is
not busy, the system prints [OPERATOR HAS BEEN NOTIFIED];
otherwise it prints [OPERATOR IS BUSY. PLEASE WAIT.].
ENTER TEXT: HOW CAN I GET SOME MORE PAPER FOR MY TERMINAL?
[OPERATOR HAS BEEN NOTIFIED.]
4. If you get the message [OPERATOR HAS BEEN NOTIFIED.],
continue typing your message to the operator. Whatever you
type is printed on the operator's terminal, and whatever the
operator types is printed on your terminal.
When you are finished typing, press the ESC key. The system
prints [FINISHED AT hh:mm:ss], where hh:mm:ss is the current
time.
[OPERATOR HAS BEEN NOTIFIED.]
DID YOU LOOK IN THE STORAGE ROOM BEHIND YOU?
NO, WAIT A MINUTE I'LL SEE... OK THERE IS SOME,
PLEASE Program (continued) Page II-193
THANKS.
$
[FINISHED AT 23:54:15]
@
5. If you get the message [OPERATOR IS BUSY. PLEASE WAIT.],
continue typing; your message is stored inside the system
until the operator is available. When the operator is
available, he receives your message and a two-way
communication, as described in step 4, starts. The system
prints [OPERATOR HAS BEEN NOTIFIED.] to tell you that you are
in two-way communication. When you are done, press the ESC
key. The system prints the FINISHED message.
[OPERATOR IS BUSY. PLEASE WAIT.]
[OPERATOR HAS BEEN NOTIFIED.]
I LOOKED IN THE SUPPLY ROOM NEAR THE WINDOW AND
THERE IS NO PAPER.
HI. SORRY FOR THE WAIT. DID YOU LOOK IN THE STORAGE ROOM
BEHIND YOU?
NO, WAIT A MINUTE AND I WILL. THANKS, ITS THERE. BYE.
$
[FINISHED AT 23:59:10]
@
6. If the program that the operator uses to service your request
is not running, you will get the message:
?OPERATOR JOB TO SERVICE PLEASE
REQUESTS IS NOT RUNNING
Exit the program by typing a CTRL/C and try again later.
Characteristics
After you start the PLEASE program, any previous program is
cleared from memory and your terminal is left at PLEASE command
level. Type your message and press the ESC key to finish; at
that time you are returned to TOPS-20 command level. If you must
return to TOPS-20 command level immediately, type a CTRL/C.
Examples
The user sends a message to the operator telling him that his
terminal needs a new ribbon.
@PLEASE
WHAT IS THE OPERATOR'S ID?
ENTER TEXT: COULD YOU INSTALL A NEW RIBBON IN TERMINAL S/N 64?
[OPERATOR HAS BEEN NOTIFIED]
OK, IN ABOUT AN HOUR.
THANKS$
[FINISHED AT 11:04:58]
@
POP Command Page II-194
Function
The POP command terminates the current command level and returns
you to the next higher level. The system terminates all programs
started at the command level that is being terminated. (Refer to
Section 7.7.)
Hints
After giving the POP command, you can give the CONTINUE command
to resume execution of a program you had previously stopped by
typing two CTRL/Cs.
The PUSH command performs the exact opposite function by creating
a new copy of the command language. Therefore, you can interrupt
one program with 2 CTRL/Cs, do a PUSH command, run another
program, do a POP command, and successfully continue the first
program.
Format
@POP (COMMAND LEVEL)
There are no arguments to the POP command.
Operation
1. Type POP and press the ESC key; the system prints (COMMAND
LEVEL).
@POP (COMMAND LEVEL)
2. Press the RETURN key; when the system has terminated the
current command level, it prints an @.
@POP (COMMAND LEVEL)
@
Errors
1. If there is no previous level, the system ignores the command
and prints the message:
?NO HIGHER COMMAND LEVEL
Characteristics
The POP command clears any program from memory, terminates the
current TOPS-20 command level, and returns your terminal to the
TOPS-20 command level from which you gave the most recent PUSH
command. Note that this previous copy of memory is generally not
disturbed by any command (except LOGOUT) you may give between the
PUSH and POP commands.
POP Command (continued) Page II-195
Examples
The user terminates the current command level.
@POP (COMMAND LEVEL)
@
The user runs his compute-bound program for almost an hour and
receives an error because he has forgotten to create a simple
file. The user types a CTRL/C, gives the PUSH command, creates
the file, gives the POP command, and returns to the original
TOPS-20 command level. The user gives the CONTINUE command to
continue his program exactly where he left off.
@RUN (PROGRAM) CHKERR
DATA FILE: RUN54.DAT
COMPARISON FILE: RUN20.DAT
%FRSOPN File was not found
Unit=1 DSK:PARAM.R20/ACCESS=SEQIN/MODE=ASCII
Enter new file specs. End with an $ (ALT)
*^C
@PUSH (COMMAND LEVEL)
TOPS-20 Command processor 2(236)
@CREATE (FILE) PARAM.R20
Input: PARAM.R20.1
00100 35 CHECKS
00200 $
*E
[PARAM.R20.1]
@POP (COMMAND LEVEL)
@CONTINUE
$
STOP
END OF EXECUTION
CPU TIME: 36:8.94 ELAPSED TIME: 59:14.58
EXIT
@
PRINT Command Page II-196
Function
The PRINT command places entries into, examines the contents of,
or removes entries from the line printer output queue.
Hints
The line printer output queue is a list of jobs waiting to be
printed.
To examine the contents of the entire queue, give just the PRINT
command; if you want just your job(s), include the /CHECK
switch. To examine the contents of both the line printer and
Batch input queues, give the QUEUE command without any arguments.
If you want to examine just your jobs, include the /CHECK switch.
(The QUEUE and PRINT command clear any program from memory and
leaves your terminal at TOPS-20 command level.)
If you always want your PRINT commands to contain certain
switches, include a line in your SWITCH.INI file beginning with
the word PRINT and followed by the switches. Refer to Section
7.4.
Format
@PRINT jobname=filespecs/switches
jobname is the name you want to assign to the printing
job. If you do not type a jobname, the system
uses the name of the first file you want to print.
When omitting the jobname, you may also omit the
equals sign.
filespecs is a list of file specifications, separated by
commas. Each file specification may contain only
a device name, file name, file type, and
project-programmer number. If the file type is
.LST, you do not have to include it in the file
specification. To print a file from another
user's directory, connect to the directory, or
COPY the file into your own directory, and give
the PRINT command. Alternatively, you may include
a project-programmer number after the file
specification; refer to Section 5.3.1. File
names can only be 6-alphanumeric characters and
file types cannot be more than 3-characters. If
you have files with long names, COPY them to a
shorter file name and PRINT the file (with the
short name). The /DELETE switch to PRINT is
useful for removing the short-named file after it
is printed.
switches is a list of switches selected from Table II-18.
If you want a switch to apply to only one file,
place the switch after the particular file
specification; if you want the switch to apply to
all files in the list, place the switch before the
list of file specifications.
To print the contents of the line printer output
queue, give the PRINT command without any
arguments.
PRINT Command (continued) Page II-197
Table II-18
PRINT Command Switches
/AFTER:time
Submits the file for printing after the specified time.
The argument time is in the form hh:mm (24-hour time of
day), or +hh:mm (time later than the current time). You
must separate the hours from minutes by typing a colon.
/CHECK
Prints only your entries in the line printer output queue.
(Normally, the system prints all the entries in the line
printer output queue.) If you include a file
specification, the system only prints the contents of the
queue; it does not print the file.
/COPIES:n
Makes n copies of the file(s). The argument n (the number
of copies) must be less than 64. Normally, the PRINT
command makes one copy of each file.
/DELETE
Immediately removes the file from your directory, does not
count its size in your permanent disk space allocation and
deletes the file after it is printed. This is the default
if the file has a .LST file type.
/FILE:ASCII
Specifies that the file is in ASCII text format. This is
assumed for all files with file types other than .DAT.
/FILE:COBOL
Specifies that the file contains COBOL SIXBIT text.
/FILE:FORTRAN
Specifies that the file contains FORTRAN ASCII text and
obeys the conventions of FORTRAN control characters. This
is assumed for all files with the type .DAT.
/FORMS:size
Asks the operator to mount the specified forms before the
system prints the job. The argument size must be six (or
less) alphanumeric characters; usually it is either
NARROW (for 8 1/2 x 11 paper) or NORMAL (for 15 x 11
paper). The default is usually NORMAL, but depends on
your installation.
/HEADER:n
Outputs block headers at the beginning of each file (if
you do not give the switch, or if n is 1), or else
suppresses the headers (if n is 0). The header contains
the name of the file, the date of the request and other
useful information.
/HELP
Prints the general syntax of the PRINT command, including
a complete list of switches.
/HELP:SWITCHES
Prints a list of all the switches, along with a brief
description of each.
PRINT Command (continued) Page II-198
Table II-18 (Cont.)
PRINT Command Switches
/KILL
Removes the specified jobnames from the line printer
output queue. When you give the /KILL switch, type a
jobname or the /SEQ switch on the left side of the equals
sign before typing the switch /KILL on the right side. If
more than one job has the same jobname, use the /SEQ
switch to identify the proper job.
/LIST
Prints information from the line printer output queue
about the jobnames you specify in the command. If you do
not specify a jobname, the system prints the status of the
entire line printer output queue.
/NOTE:text
Prints the string text (not more than 12 characters) on
the header page. If text contains non-alphanumerics,
enclose it in double quotes. The /NOTE switch applies to
the entire printing job, not individual files.
/REPORT:code
Includes only those lines that begin with the specified
code of up to twelve alphanumeric characters. When these
lines are printed, the system strips the code before
printing the line.
/SEQ:n
Aids you in specifying the exact job to kill or examine.
The number argument n is the sequence number listed when
you examine the contents of the line printer output queue.
/START:n
Starts printing on the nth line of the file. If you omit
this switch, the system always starts at the beginning of
the file.
Operation
1. Type PRINT and leave a space.
@PRINT
2. Type the list of file specifications and switches, then press
the RETURN key.
@PRINT TEST.OUT/FORTRAN, ENABLE.MAC/COPIES:2
[LPT:TEST=/SEQ:2040/LIMIT:200, 2 FILES]
@
PRINT Command (continued) Page II-199
Output
If you are printing a file, the system prints a message in the
form:
[LPT:jobname=/SEQ:n/LIMIT:p, f FILES]
jobname is the name of your job, n is the sequence number, p is
the number of pages in your print request and f is the number of
files in that request.
If you are killing a job, the system prints a message in the
form:
[n Jobs Killed]
where n is the number of jobs you removed from the queue. If the
job is currently being output, the system prints
[No Jobs Killed, n Job(s) Cancelled]
The system prints the contents of the line printer output queue
in the form:
DEV USER JOB SEQ PRIO LIMIT AFTER
LPT MCKIE TEST 170 10 42
PLPT0* MILLER KMON 165 10 115
* JOB BEING OUTPUT NOW
TOTAL: LPT: 2 JOBS; 167 PAGES
DEV is the device name. The device name is LPT until the job is
actually being printed, then the system changes the device name
to the physical printer that is doing the printing. USER is the
user name who is printing the job. JOB is the jobname; SEQ is
the sequence number; PRIO is the priority number; LIMIT is the
number of pages in the request and AFTER is the length of time
the system must wait before printing the file (usually it is 0).
Characteristics
The PRINT command runs the QUEUE program, thereby clearing any
previous program from memory and leaving your terminal at TOPS-20
command level.
Restrictions
To print a file from another user's directory, connect to the
directory and give the PRINT command, or (while connected to your
directory) precede the file specification with a
project-programmer number.
You may use recognition only on the command name.
PRINT Command (continued) Page II-200
Examples
The user prints the file DATA.FIL.
@PRINT DATA.FIL
[LPT:DATA=/SEQ:101/LIMIT:10, 1 FILE]
@
The user prints four files with the note RUN4 on the header page.
@PRINT INDEP.VAR,DEPEND.VAR,ERROR.DEV,TIMES.VAR/NOTE:RUN4
[LPT:INDEP=/SEQ:102/LIMIT:235, 4 FILES]
@
The user removes the entry he made in the last example. All four
files are killed.
@PRINT INDEP=/KILL
[1 JOB KILLED]
@
PUSH Command Page II-201
Function
The PUSH command preserves the contents of memory at the current
command level and creates a new command level. After creating
the new command level the system prints a message and takes
commands from the file COMAND.CMD (if it exists). Refer to
Section 3.2.5.
Hints
You can type two CTRL/Cs to stop your program, then give a PUSH
command to create a new command level. Run programs to create
new files or perform other functions, then give a POP command to
return to the original command level. Then, if you give a
CONTINUE command, you will resume execution of your original
program.
The POP command performs the exact opposite function of the PUSH
command. The POP command terminates the current command level.
Format
@PUSH (COMMAND LEVEL)
There are no arguments to the PUSH command.
Operation
1. Type PUSH and press the ESC key; the system prints (COMMAND
LEVEL).
@PUSH (COMMAND LEVEL)
2. Press the RETURN key; the system prints a message followed
by an @ when it has created a new command level.
@PUSH (COMMAND LEVEL)
TOPS-20 Command processor 2(236)
@
Errors
1. If another command level is not available from the system
resources, the system ignores your command and prints the
message:
?INSUFFICIENT RESOURCES AVAILABLE
Characteristics
The PUSH command preserves the contents of memory, and leaves
your terminal at a new TOPS-20 command level with a fresh copy of
memory. Give the POP command to terminate this new command level
and return to the old one, restoring the preserved contents of
memory. The POP command destroys the contents of the memory
associated with the TOPS-20 command level it terminates. You can
not retrieve its contents after giving a POP command.
PUSH Command (continued) Page II-202
Examples
The user creates a new command level.
@PUSH (COMMAND LEVEL)
TOPS-20 Command processor 2(236)
@
RDMAIL Program Page II-203
Function
The RDMAIL (for ReaDing MAIL) program prints any messages which
you have received.
Hints
If you have received a message since the last time you logged in
to the system, the line:
YOU HAVE A MESSAGE, READ WITH RDMAIL
is printed when you log in to the system.
If someone sends you a message while you are logged in, the
system rings the terminal bell and prints the line:
[YOU HAVE A MESSAGE FROM sender]
on your terminal. If you are refusing links, you will not
receive this message.
If an important new SYSTEM message of the day has been sent since
you logged in, you are notified with the message:
[NEW MESSAGE-OF-THE-DAY AVAILABLE]
You can read the new SYSTEM message with the RDMAIL program by
typing /M to the DATE AND TIME prompt.
To send a message, run the MAIL program.
Operation
1. Start the program by typing (or using recognition on) RDMAIL,
then press the RETURN key. The system prints DATE AND
TIME (/H FOR HELP).
@RDMAIL
DATE AND TIME (/H FOR HELP)
2. To receive all messages which you have not seen before, just
press the RETURN key. If you want to see all the messages
after a certain date and time, type the date and time in the
standard TOPS-20 format of month/day/yr hr:min (where the
time is in 24-hour format). If you type just the date, the
system uses a time of 00:01 to avoid any confusion of the
meaning of 0:0:0.
There are switches which you may type following the date and
time to perform special operations. The switches and their
functions are outlined in Table II-19. If you omit the date
when giving a /M, /P, or /S switch the system uses only the
messages you have not read.
RDMAIL Program (continued) Page II-204
Table II-19
RDMAIL Switches
/A Prints all the messages, regardless of their
date.
/H Prints a message outlining the format for the
date and listing the explanations of the
switches.
/L Prints the messages on the line printer instead
of your terminal.
/M Instructs RDMAIL to look at the system
Message-of-the-day file (normally new entries
from it are printed on your terminal when you
log in), rather than your own message file.
/P Peruses your mail by inhibiting the printing of
each message; RDMAIL prints only the DATE:,
FROM:, TO:, CC:, and SUBJECT: lines.
/S Stops printing after each message. To make
RDMAIL continue, press the RETURN key.
You may add any switches together that you want; for instance,
/A/P lets you peruse all your messages.
After you type the date and time and/or any switches you want,
RDMAIL prints out the messages you requested.
DATE AND TIME (/H FOR HELP)
--------
DATE: 25-AUG-75 13:11
FROM: OPERATOR
TO: BOSACK
-----
SUBJECT: MAGNETIC TAPES
PLEASE REMOVE YOUR EXTRA MAGNETIC TAPES FROM THE OPERATOR'S TABLE
AS SOON AS YOU CAN.
========
@
Output
Each message starts with eight hyphens, then five hyphens precede
the subject line, and eight equals end the message.
Characteristics
When you run the RDMAIL program, any previous program is cleared
from memory and your terminal is left at RDMAIL command level.
Type the necessary RDMAIL command and your terminal will be left
at TOPS-20 command level. If you need to return to TOPS-20
command level immediately, type two CTRL/C's.
RDMAIL Program (continued) Page II-205
Examples
The user reads all his mail since 3PM today.
@RDMAIL
DATE AND TIME (/H FOR HELP) 25-AUG-75 15:00
--------
DATE: 25-AUG-75 15:32
FROM: SYSTEM-MANAGER
TO: BOSACK
CC: OPERATOR
-----
SUBJECT: YOUR MAGTAPES
PLEASE REMOVE YOUR MAGNETIC TAPES FROM THE OPERATOR'S TABLE
IMMEDIATELY.
========
@
The user reads the system message-of-the-day file, but only
those messages made on or after March 2, 1976.
@RDMAIL
DATE AND TIME (/H FOR HELP) 2-MAR-76 /M
--------
DATE: 2-MAR-76 13:11
FROM: IVAS
TO: SYSTEM
-----
SUBJECT: MULTIPLE GENERATIONS
PLEASE TRY TO KEEP ONLY ONE GENERATION
OF A FILE. THANKS.
========
@
RENAME Command Page II-206
Function
The RENAME command changes the file specification, account
descriptor, and protection number of a file.
Hints
The most efficient method of moving files from one directory to
another on the same structure is to rename them rather than copy
them. That way, the system just changes the file specifications
as opposed to the larger task of actually creating new files
containing the information from the source files. You also have
to give one less command, since after the COPY command you would
normally give a DELETE command that is not necessary after a
RENAME command. Note, however, that you cannot RENAME files
across structures. Use the COPY command to move files on one
structure to a different structure.
If the new file specification refers to an existing file, the
contents of the renamed file supersede the contents of the
existing file. You cannot recover the contents of the existing
file.
To change just the account descriptor or protection number of a
file, use the SET FILE command.
Format
@RENAME (EXISTING FILE) filespec (TO BE) filespec;Pprot;Aaccount
filespec is the source file specification of the
file you are renaming. If you do not
specify a generation number for the
source file specification, the system
uses an *, which causes all generations
of the source file to be renamed.
filespec;Pprot;Aaccount is the new file specification,
protection number, and account
descriptor of the source file. The
system sets up defaults which are used
if you do not specify a complete new
file specification. The device defaults
to your connected structure; the
directory defaults to your connected
directory; the file name and file type
default to those of the source file;
and the generation defaults to -1, which
searches the directory in the new file
specification and assigns a generation
number one higher than the highest
existing generation number for a file
with the same file name and type.
Operation
1. Type RENA and press the ESC key; the system prints ME
(EXISTING FILE).
@RENAME (EXISTING FILE)
RENAME Command (continued) Page II-207
2. Type (or use recognition on) the file you want to rename and
press the ESC key (if you did not use recognition). The
system prints (TO).
@RENAME (EXISTING FILE) TEST2.DAT.* (TO)
If you type an incorrect file name, type or generation
number, the system prints one of the following messages.
Find the correct source file and reissue the command.
?No such filename
?No such file type
?File not found
3. Type (or use recognition on) the new file specification and
(if you want to change them) the new protection number and
account descriptor, then press the RETURN key.
@RENAME (EXISTING FILE) TEST2.DAT.* (TO) TEST1.DAT.1
TEST2.DAT.1 => TEST1.DAT.2 [OK]
@
If you want the same file name and type as the source file,
and a new generation number, press the ESC key (if you want
the defaults printed on your terminal), then press the RETURN
key. These defaults are useful when you are copying files
from another directory.
If you want a new file name, but want the default file type,
press the ESC key at the end of the file name. The system
prints the rest of the file specification and creates a new
generation of the file. Press the RETURN key to confirm the
command.
If you want to create a new generation of the file, press the
ESC key after typing the file type, or simply omit the file
type and press the RETURN key. The system creates a new
generation number according to the files in the directory
which will contain the new file.
Output
If the source file specification or the new file
specification has a wildcard character, the system prints
each source file specification, an arrow =>, and the
corresponding new file specification. When the renaming of a
file is complete, the system prints [OK]. If the rename
fails, the system prints a reason; often it is: Source file
is not closed.
If there are no wildcard characters in the source file
specifications and you use recognition on the new file
specification, the system prints one of the following
messages describing the new file specification.
!Old generation! if you are superseding an existing file.
!New generation! if you are creating a new generation of
an existing file.
!New file! if you are creating a new file.
RENAME Command (continued) Page II-208
Errors
1. If the source file you specify is open or mapped into memory,
the system prints the message:
?Source file is not closed
Give the RESET command before renaming the file. If this
does not help try the POP command and RESET again.
Characteristics
The RENAME command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
The source file and the destination file must both be closed
before the file can be renamed.
You cannot RENAME files across structures; use the COPY command.
Examples
The user renames the file DUMPER.TXT to be DUMPER.OLD.
@RENAME (EXISTING FILE) DUMPER.TXT.* (TO BE) DUMPER.OLD.-1
DUMPER.TXT.55 => DUMPER.OLD.1 [OK]
@
The user renames all files with the file type .TXT to have the
file type .FIL.
@RENAME (EXISTING FILE) *.TXT.* (TO BE) *.FIL
10.TXT.7 => 10.FIL.1 [OK]
7.TXT.23 => 7.FIL.1 [OK]
7A.TXT.61 => 7A.FIL.1 [OK]
MAIL.TXT.1 => MAIL.FIL.1 [OK]
NEWBAT.TXT.1 => NEWBAT.FIL.1 [OK]
SAVE.TXT.3 => SAVE.FIL.1 [OK]
SET.TXT.1 => SET.FIL.1 [OK]
SUBMIT.TXT.3 => SUBMIT.FIL.1 [OK]
TERMIN.TXT.2 => TERMIN.FIL.1 [OK]
VTED.TXT.16 => VTED.FIL.1 [OK]
WORDS.TXT.1 => WORDS.FIL.1 [OK]
@
The user obtains a file from the directory MILLER.
@RENAME (EXISTING FILE) <MILLER>GTJFN.MAC.* (TO BE)
<MILLER>GTJFN.MAC.221 => GTJFN.MAC.1 [OK]
@
The user changes the name of a set of files.
@RENAME (EXISTING FILE) TEST.LEM.* (TO BE) TEST2.LEM.*
TEST.LEM.1 => TEST2.LEM1 [OK]
TEST.LEM.2 => TEST2.LEM.2 [OK]
TEST.LEM.3 => TEST2.LEM.3 [OK]
@
RESET Command Page II-209
Function
The RESET command clears the contents of memory.
Special Cases
The RESET command closes files that are open and still mapped
into memory.
If you try to expunge a file that is mapped into memory (you can
find this out by giving the INFORMATION command with
MEMORY-STATUS parameter), the expunge will not succeed unless you
give a RESET command first.
Hints
The RESET command does not deassign any input-output devices
which are assigned to your job, nor does it change any logical
name assignments.
Format
@RESET
There are no arguments to the RESET command.
Operation
1. Type RESE and press the ESC key; the system prints T. Press
the RETURN key; when your memory is reset the system prints
an @.
@RESET
@
Characteristics
The RESET command clears any program in memory and leaves your
terminal at TOPS-20 command level.
Examples
The user clears memory and checks the contents of memory.
@RESET
@INFORMATION (ABOUT) MEMORY-USAGE
NO PROGRAM
@
REWIND Command Page II-210
Function
The REWIND command rewinds a magnetic tape to its load point.
Hints
Remember to assign the tape drive to your job and have the
operator mount your tape on it.
Be sure you have the correct tape parameters set (check them with
the INFORMATION (ABOUT) TAPE-PARAMETERS command); if necessary,
give the SET TAPE command.
Format
@REWIND (DEVICE) dev:
dev: is the magnetic tape device name in the form MTAn:
where n is the drive number.
Operation
1. Type REWI and press the ESC key; the system prints ND
(DEVICE).
@REWIND (DEVICE)
2. Type the magnetic tape device name (the colon is optional)
and press the RETURN key. The system prints an @ when the
tape is rewound.
@REWIND (DEVICE) MTA2:
@
Errors
1. If the device is not on line, the system ignores the command
and prints the message:
?Device is not on-line
Use the PLEASE program to contact the operator, then reissue
the command.
2. If you type a CTRL/C to exit from a program that has opened
the magnetic tape drive, and then you give the REWIND
command, the system prints the following message:
%Device MTAn: open on JFN n
%Close JFN? YES
If you answer YES (or just press the RETURN key), the system
closes the file, prints a confirming message, rewinds the
tape, and leaves you at TOPS-20 command level. Continuing
the program that previously opened the magnetic tape may
produce an error because the file has been closed.
REWIND Command (continued) Page II-211
@REWIND (DEVICE) MTA1:
?Device MTA1: open on JFN 3
%Close JFN? YES
3 MTA1: [OK]
@
If you answer NO, the system prints the message ?Command
aborted... and does not close the file or rewind the tape.
Characteristics
The REWIND command does not change a program in memory and leaves
your terminal at TOPS-20 command level.
Restrictions
The REWIND command works only for magnetic tapes.
Examples
The user rewinds his tape on drive 1.
@REWIND (DEVICE) MTA1:
@
RUN Command Page II-212
Function
The RUN command clears the contents of memory, and loads and
starts an executable program.
Hints
If you are running another user's program, all you have to do is
type (or use recognition on) the full file specification
including the directory name; you do not have to give the RUN
command.
To run system programs all you have to do is type their name and
press the RETURN key.
The RUN command is equivalent to a combined GET and START
command.
If you plan to run a program often, use the LOAD command followed
by a SAVE command, before you give the first RUN command.
Format
@RUN (PROGRAM) filespec
filespec is the file specification of the program you want
to run. If you omit the file type, the system
assumes .EXE. If you omit the generation number,
the system uses the highest generation.
Operation
1. Type RUN and press the ESC key; the system prints (PROGRAM).
@RUN (PROGRAM)
2. Type (or use recognition on) the file specification and press
the RETURN key. The system starts the program.
@RUN (PROGRAM) TELL
MESSAGES ARE BEING SENT...
DONE.
@
Characteristics
The RUN command clears any previous program from memory and
leaves your terminal at command level in your program.
Examples
The user runs the program TESTER.
@RUN (PROGRAM) TESTER
THIS IS A TEST OF THE DISK RECOVERY PROCEDURE.
HOW MANY DIRECTORIES? 5
NO ERRORS.
DONE.
@
SAVE Command Page II-213
Function
The SAVE command saves the program in memory in a disk file or on
magnetic tape.
Hints
After giving the LOAD command to load an object program into
memory, you may give the SAVE command to store a copy of the
resulting executable program in a disk file or on magnetic tape.
To run the stored program, give the RUN command instead of the
EXECUTE command. You will notice that the RUN command is much
faster and cheaper than the EXECUTE command. Refer to Section
8.3.
The file containing the copy of memory is called an EXE file
because its file type is .EXE and because it contains an
executable program.
Format
@SAVE (ON FILE) filespec
filespec specifies the disk file or magnetic tape drive on
which you want to save the program. If you do not
give a file specification, the system uses the
name of the current program and the file type
.EXE. You may find the name of the current
program by giving the INFORMATION (ABOUT) VERSION
command.
Operation
1. Type SAVE and press the ESC key; the system prints (ON
FILE).
@SAVE (ON FILE)
2. Type (or use recognition on) the file specification, then
press the RETURN key. In using recognition on the file type,
the system defaults the output file type to .EXE. If you
want to use the default (the name of the current program and
the file type .EXE), press the RETURN key without typing a
file specification.
@SAVE (ON FILE) TEST.EXE.1 !New file! (PAGES FROM)
TEST.EXE.1 SAVED
@
The guide words (PAGES FROM) indicate a field which allows
you to save only a portion of memory. Generally you will not
have to use this portion of the command, so ignore it.
SAVE Command (continued) Page II-214
Errors
1. If you have no program in memory, the system ignores the
command and prints the message:
?No program
Load a program into memory using the LOAD command or the LINK
program.
Characteristics
The SAVE command does not change the contents of memory and
leaves your terminal at TOPS-20 command level.
Examples
The user saves his program using the default file specification.
@SAVE (ON FILE)
PTYCON.EXE.1 SAVED
@
The user saves his program, giving his own file specification.
@SAVE (ON FILE) FINLK.EXE.2
FINLK.EXE.2 SAVED
@
The user saves the DUMPER program on magnetic tape drive 1.
@SAVE (ON FILE) MTA1:
MTA1: DUMPER SAVED
@
SDISMOUNT Command Page II-215
Function
The SDISMOUNT command informs the system that you no longer
require access to a particular structure and decrements the mount
count (the number of users who have given the SMOUNT command) for
that structure.
Hints
SDISMOUNT is meaningful only if you have given the SMOUNT command
for that structure.
If you are connected to a directory on that structure, you are
still connected and can use the files in that directory or access
other directories and files.
If the open file count and mount count for a structure equal 0,
the operator can assume that no user requires access to this
structure, and may remove it from the disk drive(s).
You cannot use recognition on structure names.
Format
@SDISMOUNT (FILE STRUCTURE) name:
name: is the name of the file structure, followed by a colon.
Operation
1. Type SD and press the ESC key; the system prints ISMOUNT
(FILE STRUCTURE).
@SDISMOUNT (FILE STRUCTURE)
2. Type the name of the file structure and press the RETURN key.
@SDISMOUNT (FILE STRUCTURE) ACCTG:
3. If you had given the SMOUNT command for this structure, the
system responds with the message:
STRUCTURE ACCTG: DISMOUNTED
@
4. If you had not given an SMOUNT command for this structure or
you mistyped the name, the system responds with the message:
%STRUCTURE ACCTG: WAS NOT MOUNTED
@
Characteristics
SDISMOUNT does not change any program in memory and leaves your
terminal at TOPS-20 command level.
SDISMOUNT Command (continued) Page II-216
Examples
The user informs the system that he no longer requires access to
structure LANG:.
@SDISMOUNT (FILE STRUCTURE) LANG:
STRUCTURE LANG: DISMOUNTED
@
SET Command Page II-217
Function
The SET command sets the value of various job parameters.
Hints
The INFORMATION command prints the values of many of the
parameters you can set with the SET command.
The TERMINAL command sets various terminal parameters which you
can examine with the INFORMATION (ABOUT) TERMINAL-MODE command.
Format
@SET parameter value
parameter is the name of the parameter you want to set.
Table II-20 lists the names of some of the
parameters you may set.
value is the value of the parameter. Some
parameters do not have values; they specify
actions which are taken or not taken.
Table II-20
SET Command Parameters
ACCOUNT (NUMBER TO) number
Changes the account which the system charges for your use
of the computer and file storage. The account number may
be a number or (if you have the proper privileges) an
alphanumeric string.
ERROR-RETRY (OF COMMANDS)
Directs the system to reprint the text of an erroneous
command (minus the last erroneous field) on the line
following the error and let you retype just the incorrect
field.
FILE ACCOUNT (OF FILES) filespec (TO) account
Charges the accounts of the specified files to the given
account number or string.
FILE GENERATION-RETENTION-COUNT (OF FILES) FILESPECS (TO) n
Sets the number of generations of a file that will be
kept. Normally, this is one. If you change the
generation-retention-count to a number other than one,
refer to Section 5.6.
FILE PROTECTION (OF FILES) filespec (TO) protection
Changes the protection of the specified files to the given
protection number. Refer to Section 4.1.3 which describes
the valid file protection numbers.
TAPE DENSITY (TO) density
Declares the default density for magnetic tape operations.
The valid densities are 200, 556, 800, and 1600 bpi (bits
per inch). To return to the usual density, type
SYSTEM-DEFAULT. The INFORMATION (ABOUT) TAPE-PARAMETERS
prints the current value of the density.
SET Command (continued) Page II-218
Table II-20 (Cont.)
SET Command Parameters
TAPE FORMAT (TO) format
Sets the default format for magnetic tape operations. The
valid formats are ANSI-ASCII, CORE-DUMP, and
INDUSTRY-COMPATIBLE. To return to the usual format, type
SYSTEM-DEFAULT. The INFORMATION (ABOUT) TAPE-PARAMETERS
command prints the current format.
TAPE PARITY (TO) parity
Sets the default parity for magnetic tape operations. The
usual setting is ODD.
TAPE RECORD-LENGTH (TO) bytes
Sets the default record length for magnetic tape
operations. The argument, bytes, is the decimal number of
bytes in a record. Setting the record length to a large
number (such as 1000) works for most applications.
Operation
1. Type SET and leave a space.
@SET
2. Type (or use recognition on) the rest of the arguments to the
SET command, then press the RETURN key.
@SET ACCOUNT (NUMBER TO) 10400
Time used on previous account: 10300
0:00:57 in 4:31:08
@
Characteristics
The SET command does not change a program in memory and leaves
your terminal at TOPS-20 command level.
Examples
The user changes the protection of his files named TEST.
@SET FILE PROTECTION (OF FILES) TEST.* (TO) 775500
TEST.EXE.1 [OK]
TEST.MAC.1 [OK]
TEST.REL.1 [OK]
@
The user changes the default magnetic tape density to 1600 bpi.
@SET TAPE DENSITY (TO) 1600
@
The user changes his account number to 10500.
@SET ACCOUNT (NUMBER TO) 10500
Time used on previous account: 10300
0:0:22 in 1:05:02
@
SKIP Command Page II-219
Function
The SKIP command advances a magnetic tape a certain number of
files or records, or to the logical end-of-tape.
Hints
Remember to assign the tape drive to your job and have the
operator mount your tape.
Be sure to have the correct tape parameters set (check them with
the INFORMATION (ABOUT) TAPE-PARAMETERS command); if necessary,
give the SET TAPE command.
Format
@SKIP (DEVICE) dev: x units
dev: is the magnetic tape device name in the form MTAn:
where n is the drive number.
x is the number of files or records over which you
want to skip. If you are skipping to the logical
end-of-tape, you must type a number but it is
ignored.
units is either FILES, or RECORDS, or LEOT (for logical
end-of-tape).
Operation
1. Type SKIP and press the ESC key; the system prints (DEVICE).
@SKIP (DEVICE)
2. Type the device name and leave a space.
@SKIP (DEVICE) MTA3:
If the device is not a magnetic tape, the system ignores the
command and prints the message:
?dev: Device is not a magtape
where dev: is the device name you typed.
If you typed a non-existent device, the system ignores the
command and prints the message: ?No such device.
3. Type the number of files or records and leave a space. If you
are skipping to the logical end-of-tape, you may type any
arbitrary number.
@SKIP (DEVICE) MTA3: 2
4. Type (or use recognition on) the word FILES, RECORDS, or LEOT
(for logical end-of-tape) and press the RETURN key. The
system prints an @ when it finishes advancing the tape.
@SKIP (DEVICE) MTA3: 2 FILES
@
SKIP Command (continued) Page II-220
Errors
1. If the device is not on line, the system ignores the command
and prints the message:
?Device is not on-line
Use the PLEASE program to contact the operator, then reissue
the command.
2. If you type a CTRL/C to exit from a program that has opened
the magnetic tape drive, and then you give the SKIP command,
the system prints the following message:
?Device MTAn: open on JFN n
%Close JFN? YES
If you answer YES (or just press the RETURN key), the system
closes the file, prints a confirming message, advances the
tape, and leaves you at TOPS-20 command level. Continuing the
program that previously opened the magnetic tape may produce
an error because the file has been closed.
@SKIP (DEVICE) MTA1: 3 FILES
?Device MTA1: open on JFN 3
%Close JFN? YES
3 MTA1: [OK]
@
If you answer NO, the system prints the message ?Command
aborted... and does not close the file or advance the tape.
Characteristics
The SKIP command does not change any program in memory and leaves
your terminal at TOPS-20 command level.
Restrictions
The SKIP command works only for magnetic tapes.
Examples
The user skips over three records.
@SKIP (DEVICE) MTA1: 3 RECORDS
@
The user skips over 6 files.
@SKIP (DEVICE) MTA2: 6 FILES
@
The user skips to the logical end-of-tape.
@SKIP (DEVICE) MTA0: 0 LEOT
@
SMOUNT Command Page II-221
Function
The SMOUNT command informs the system that you require the use of
a particular file structure and increments a mount count (the
number of users who have given the SMOUNT command) for that
structure. This incremented count assures you that a structure
will remain mounted until you no longer need it. If a structure
is not mounted at the time you give the SMOUNT command, the
operator is informed of the request and physically mounts the
structure or informs you why your request is being denied.
Hints
Refer to Section 4.1.1 for more information about structures and
when you would use the SMOUNT command.
You must log in to the system before giving the SMOUNT command.
After you log in, you are connected to your logged in directory
on PS:. You do not have to give an SMOUNT command for PS:. PS:
is always mounted.
Once you have given an SMOUNT command for a structure, you can
access directories and files on that structure according to the
protection codes set for "all users". If you require "owner" or
"group" member privileges to directories and files on that
structure, use the CONNECT or ACCESS command after SMOUNT.
You cannot use recognition on structure names.
If you want to know what structures are presently mounted, give
the INFORMATION (ABOUT) STRUCTURE * command. If you want to know
if a particular structure is mounted, give the INFORMATION
(ABOUT) STRUCTURE str: command.
When you no longer require access to a structure, you should give
the SDISMOUNT command to relinquish your hold on that structure.
Format
@SMOUNT (FILE STRUCTURE) name:
name: is the file structure name, followed by a colon.
Operation
1. Type SM and press the ESC key; the system prints OUNT (FILE
STRUCTURE).
@SMOUNT (FILE STRUCTURE)
2. Type the name of the file structure followed by a colon and
press the RETURN key.
@SMOUNT (FILE STRUCTURE) ADMIN1:
The system searches all the mounted structures for the name
you have entered.
SMOUNT Command (continued) Page II-222
3. If the structure is found, the system does not print a
message to the operator. He is unaware of your request.
SMOUNT succeeds immediately and increments the mount count.
The system prints the following message on your terminal.
STRUCTURE ADMIN1: MOUNTED
@
4. If the structure is not found, the system informs the
operator of your request and prints a message on your
terminal.
WAITING FOR STRUCTURE ADMIN1: TO BE PUT ON LINE...
The operator places the structure on the available disk
drives. The mount count is incremented and the message:
STRUCTURE ADMIN1: MOUNTED
@
is printed on your terminal.
5. There may be an occasion when your request to mount a
structure is denied. The operator sends a message to your
terminal in the form:
?SMOUNT REQUEST DENIED -- THE REASON GIVEN:
THERE ARE NO AVAILABLE DRIVES,
PLEASE TRY LATER.
@
Also, if the operator has specified that a structure is
unavailable for general use, you will receive the following
message.
?UNAVAILABLE FOR MOUNTING
@
In both cases, your terminal is left at TOPS-20 command
level.
6. If an operator is not in attendance at the time of the SMOUNT
request and the structure is not mounted, the system prints
the following message.
WAITING FOR STRUCTURE ADMIN1: TO BE PUT ON LINE...
%NO OPERATOR IN ATTENDANCE
Press two CTRL/C's to return to command level or follow your
installation's procedure for allowing user requests when an
operator is unavailable. Contact your system manager for
this procedure.
7. If the operator is busy at the time of your request, you will
receive a message as follows.
SYSTEM BUSY, PLEASE HOLD ON...
Type two CTRL/C's to exit or wait for the operator to respond
to your request.
SMOUNT Command (continued) Page II-223
Characteristics
The SMOUNT command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
The SMOUNT command remains in effect until you give the SDISMOUNT
command or you log out of the system.
You are only required to enter the SMOUNT command for a
particular structure once. If you give the SMOUNT command again,
the system responds with a warning message:
%STRUCTURE ALREADY MOUNTED
@
and leaves your terminal at TOPS-20 command level.
Examples
The user requires access to structure STUDNT:.
@SMOUNT (FILE STRUCTURE) STUDNT:
STRUCTURE STUDNT: MOUNTED
@
The user requires access to a structure that is not mounted.
@SMOUNT (FILE STRUCTURE) LANG:
WAITING FOR STRUCTURE LANG: TO BE PUT ON LINE...
After the user sees this message, he decides not to mount this
structure. He enters two CTRL/C's to return to TOPS-20 command
level.
^C^C..
@
SORT Program Page II-224
Function
The SORT program orders the contents of a file according to rules
you specify in a SORT command.
Hints
With the SORT program, you may alphabetize entries or place them
in numerical order, then store the results back on disk or
magnetic tape.
If you are using magnetic tape, refer to the SET TAPE command and
the information (ABOUT) TAPE-PARAMETERS command.
Format
@SORT
*outfil.typ=infil1.typ/switches,infil2.typ/switches,...
outfil.typ specifies the output file. No matter how many
input files you have, you can specify only one
output file. This file receives the results of
sorting each input file. The output file can be a
disk file or a magnetic tape unit.
infil.typ specifies an input file. You can specify more
than one input file, and the results of each
successive sort are merged into the output file.
switches is a list of switches which control the sorting
process. Table II-21 describes some of the SORT
switches. You must have at least one /KEY switch
and one /RECORD switch for each input file. Use a
combination of the switches to control the sorting
process. You may abbreviate a switch name to the
number of letters that uniquely identify it from
any other switch. Thus, /ALP is a valid
abbreviation for /ALPHANUMERIC and /R is a valid
abbreviation for /RECORD.
Each SORT command must contain:
1. Only one output file,
2. An equal sign,
3. At least one input file,
4. At least one /KEY switch, and
5. At least one /RECORD switch.
SORT Program (continued) Page II-225
Table II-21
SORT Switches
/ALIGN
Starts each record in the output file at the beginning of
a word. /ALIGN increases the speed of the transfer and
the size of the output file. You may find the /ALIGN
switch useful in aligning records at the left margin so
you can print the output file. If you do not give the
/ALIGN switch, SORT does not align each record.
/ALPHANUMERIC
Declares that the current key field contains alphanumeric
characters. If you do not give a data-type switch
(/ALPHANUMERIC, /COMP, /COMP1, /COMP3, OR /NUMERIC), SORT
uses /ALPHANUMERIC; however when you give one of the sign
switches, it uses /NUMERIC.
/ASCII
Processes the input and output files in ASCII mode. If
you do not give a recording-mode switch, (/ASCII, /BINARY,
/EBCDIC, or /SIXBIT), SORT uses a default mode which
depends on the data type:
Data type Default mode
/ALPHANUMERIC /ASCII
/NUMERIC /ASCII
/COMP /SIXBIT
/COMP1 /SIXBIT
/COMP3 /EBCDIC
/BINARY
Processes binary input and output files (if they are
produced by COBOL). If not, Refer to the /ASCII switch
for the normal defaults.
/BLOCKED:n
Blocks the input and output files with n logical records
per logical block. If the blocking factor is different
for each input and output file, place a separate /BLOCKED
switch after each file; otherwise place the /BLOCKED
switch before all the files.
/COMP
Declares that the current key field contains
computational-fixed-point binary data. Refer to
/ALPHANUMERIC for the defaults.
/COMP1
Declares that the current key field contains
computational-1-floating-point binary data. Refer to
/ALPHANUMERIC for the defaults.
/COMP3
Declares that the current key field contains
computational-3-packed-decimal data. Refer to
/ALPHANUMERIC for the defaults.
/CORE:nP
Allocates n pages (512 words) of memory for use in the
sorting process.
SORT Program (continued) Page II-226
Table II-21 (Cont.)
SORT Switches
/EBCDIC
Processes EBCDIC input and output files.. Refer to /ASCII
for the defaults.
/FIXED
Fixes the record size for the input and output files. If
the files vary, place a separate switch after each file;
otherwise place the switch before all the files. If you
do not give a /FIXED or /VARIABLE switch, the system uses
/FIXED for SIXBIT and EBCDIC files and /VARIABLE for ASCII
files.
/FORTRAN
Treats the input and output files as FORTRAN binary files.
If you do not give the /FORTRAN switch, the system assumes
a file specified with /BINARY is a COBOL binary file.
/HELP
Prints a list of the SORT switches.
/KEY:f:n:o
Specifies the location and size of the next field to sort
and whether to sort it in ascending or descending order.
f (a decimal integer) specifies the position of the
first character in the field.
Count alphanumeric and numeric characters starting at
position 1. Thus, to start at the letter G in the
following record give the value 7 to f.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Count COMP and COMP1 keys by specifying the leftmost
character position (which must begin on a word
boundary). The method of counting COMP and COMP1
keys depends on the recording mode: SIXBIT fields, f
is any value 6n+1 (i.e., 1, 7, 13, etc.). For ASCII
fields, f is any value 5n+1 (i.e., 1, 6, 11, etc.).
For EBCDIC fields, f is any 4n+1 (i.e., 1, 5, 9,
etc.). For example, to specify the third SIXBIT
field, use the value 13; to specify the fourth ASCII
field use the value 16; to specify the second EBCDIC
field, use the value 5. Using ASCII or EBCDIC for
binary files is not recommended since they may cause
a loss of data.
The value you give for f must not be greater than the
record length you specify.
n (a decimal integer) specifies the number of
characters or digits in the key. Specify numeric and
alphanumeric keys in characters. Specify COMP,
COMP1, and COMP3 keys in digits - 10 digits or less
are one word; 11 digits or more are two words (do
not count the sign for COMP3).
SORT Program (continued) Page II-227
Table II-21 (Cont.)
SORT Switches
o determines how the SORT is ordered: use the letter A
(for ascending) or D (for descending). If you do not
give an ordering argument, the sort is done in
ascending order. The order you specify applies only
to the current key.
Line numbers
If you have ASCII files containing
line numbers, remember that they
occupy one word (5 character
positions) at the beginning of the
line.
/LABEL:type
Designates the label status of a magnetic tape file. The
type is either STANDARD (to read and write DEC-standard
labels), NONSTANDARD (to by-pass labels on input and omit
them on output), or OMITTED (to omit looking for, or
producing, labels). Nonstandard labels are assumed to be
one record in length. If you omit the /LABEL switch, SORT
assumes that the files are labeled.
/NUMERIC
Declares that the current key field contains numeric
display characters. Refer to /ALPHANUMERIC for the
defaults.
/RECORD:n
Specifies the length of the record and must be specified
at least once in each SORT command. The value n is a
decimal integer identifying the number of characters or
items in the record. When determining the record size, do
not include the character count word in SIXBIT records or
the carriage-return/linefeed sequence in ASCII records.
For variable length records, use a record size equal to or
greater than the length of the longest record.
You may use the /RECORD switch to fix the record length in
both the output and the input files. If all the input
files have the same record length, give the /RECORD switch
immediately after the equals sign; otherwise, give the
/RECORD switch after each individual file.
If the record length is actually larger than n, the record
will be truncated.
/SIGNED
Uses the operational sign in the /NUMERIC, /COMP, /COMP1,
or /COMP3 field when comparing that field to the sorting
key. If you do not specify a /SIGNED or /UNSIGNED switch,
the system assumes /SIGNED. You must type the /SIGNED
switch directly after a data type switch (i.e., /NUMERIC,
/COMP, /COMP1, or /COMP3).
SORT Program (continued) Page II-228
Table II-21 (Cont.)
SORT Switches
/SIXBIT
Processes SIXBIT input and output files. Refer to the
/ASCII switch for the normal defaults.
/UNSIGNED
Ignores the operational sign of a /NUMERIC, /COMP, /COMP1,
or /COMP3 field when comparing that field to the sort key.
Normally the sign is used in these key comparisons.
/VARIABLE
Specifies that the record length varies. When using the
/VARIABLE switch, always specify a record length equal to
or greater than the length of the longest record. If you
do not give a /FIXED or /VARIABLE switch, the system uses
/FIXED for SIXBIT or EBCDIC files and /VARIABLE for ASCII
files.
Operation
1. Type SORT and press the RETURN key; the system prints an
asterisk.
@SORT
*
2. Type a SORT command; when the system is finished sorting, it
prints a message.
*NAME.ALP=NAME.LIS/KEY:1:10/RECORD:60/ASCII
Sorted 16 Records
52 KEY comparisons, 3.25 per record
0 Runs
0:00:01 CPU time, 81.00 MS per record
0:00:33 Elapsed
*
Errors
1. If one of the input files does not exist, the system ignores
the command and prints the message:
?SRTLRE LOOKUP ERROR (0) FILE WAS NOT FOUND DSK:name.typ
Reissue the command with the correct file specification.
Characteristics
Starting the SORT program clears any program from memory and
leaves your terminal at SORT command level. Type a CTRL/C when
you want to return to TOPS-20 command level.
Examples
The user sorts a text file. The first sort has two keys. The
first key sorts on columns 1 through 10; the second key sorts on
SORT Program (continued) Page II-229
columns 10 through 49. The input file has records of up to 200
characters in length; the output file name is NAMES.1
@SORT
*NAMES.1=NAMES.FIL/K:1:10/K:10:40/RECORD:200
[SRTXPN Expanding to 212P]
Sorted 608 Records
5195 KEY comparisons, 8.54 per record
0 Runs
0:00:03 CPU time, 5.62 MS per record
0:00:05 Elapsed
*
The second sort uses the same first key, but the second key sorts
on columns 30 through 34 in descending order.
*NAMES.2=NAMES.FIL/K:1:10/K:30:5:D/RECORD:200
Sorted 608 Records
5225 KEY comparisons, 8.59 per record
0 Runs
0:00:03 CPU time, 4.95 MS per record
0:00:05 Elapsed
*^C
@
The user sorts a computational file on characters 1 through 6 of
each record.
@SORT
*T1.SRT=T1.OUT/K:1:6/COMP/R:18
[SRTXPN Expanding to 53P]
Sorted 100 Records
644 KEY comparisons, 6.44 per record
0 Runs
0:00:01 CPU time, 10.25 MS per record
0:00:02 Elapsed
*^C
@
The user sorts a computational-1 file using two keys.
@SORT
*T2.SRT=T2.OUT/K:1:6/K:7:6/COMP1/R:18
[SRTXPN Expanding to 45P]
Sorted 100 Records
608 KEY comparisons, 6.08 per record
0 Runs
0:00:00 CPU time, 8.83 MS per record
0:00:02 Elapsed
*^C
@
SORT Program (continued) Page II-230
The user sorts a computational-3 file on a single key.
@SORT
*T3.SRT=T3.OUT/K:1:6/COMP3/RECORD:18
[SRTXPN Expanding to 39P]
Sorted 50 Records
221 KEY comparisons, 4.42 per record
0 Runs
0:00:00 CPU time, 13.78 MS per record
0:00:02 Elapsed
*^C
@
START Command Page II-231
Function
The START command starts the program currently in memory.
Format
@START (PROGRAM)
Operation
1. Type STAR and press the ESC key; the system prints T
(PROGRAM). Press the RETURN key to start your program.
@START (PROGRAM)
INPUT FILE:
Errors
1. If you do not have a program in memory, the system ignores
the START command and prints the message:
?NO PROGRAM
Use the LOAD or GET command to place your program in memory.
Characteristics
The START command starts the program in memory at the start
address specified in its entry vector. Your terminal is left
under control of the program.
Restrictions
You may not give a START command to restart a COBOL program after
it has already executed.
Example
The user loads and starts his program. This example is
equivalent to the command EXECUTE (FROM) TRANSL.REL.
@LOAD (FROM) TRANSL.REL
LINK: Loading
EXIT
@START (PROGRAM)
TRANSLATE (DIRECTORY) MILLER
<MILLER> (IS) [4,104]
@
SUBMIT Command Page II-232
Function
The SUBMIT command places entries into, examines the contents of,
or removes entries from the Batch input queue.
Hints
The Batch input queue is a list of jobs waiting to be run by the
Batch system.
To examine the contents of the entire queue, give the SUBMIT
command without any arguments; if you want just the information
about your jobs, include the /CHECK switch. To examine the
contents of both the line printer and Batch input queues, give
the QUEUE command without any arguments. If you want to examine
just your jobs, include the /CHECK switch. (The QUEUE command
clears any previous program from memory and leaves your terminal
at TOPS-20 command level.)
Refer to Section 3.4 and the description of the Batch Commands.
If you always want your SUBMIT commands to contain certain
switches, include a line in your SWITCH.INI file beginning with
the word SUBMIT and followed by the switches. Refer to Section
7.4.
You can include the MAIL program commands in your Batch control
file and have the MAIL message inform you when your Batch job is
complete. Refer to the MAIL program for a complete description.
Format
@SUBMIT jobname=control-filespec,log-filespec/switches
jobname is the name (of no more than six alphanumeric
characters) you want to assign to the Batch
job. If you do not type a jobname, the
system uses the name of the log-filespec.
When omitting the jobname, you may also omit
the equals sign. If both the jobname and
log-filespec are omitted, the system defaults
to the control-filespec.
control-filespec specifies the control file you are submitting
to the Batch input queue. The system uses a
file type of .CTL unless you specify
otherwise. If you want to specify a file in
any directory but your connected directory,
use a project-programmer number (refer to
Section 5.3.1).
log-filespec specifies the file which will contain a
record of the action taken during the course
of the job. If you do not specify a
log-filespec, the system uses the jobname and
the file type .LOG.
switches is a list of switches selected from Table
II-22.
To print the contents of the Batch input
queue, give the SUBMIT command without any
arguments.
SUBMIT Command (continued) Page II-233
Table II-22
SUBMIT Command Switches
/AFTER:date:time
Submits the job, but runs it only after the specified date
and time. The date is in the form dd-mmm-yy (i.e.,
:10-JAN-77:). You must separate the day, month and year
with hyphens. Note also that specifying the date is
optional. You can give a future time without a date
preceding it. The argument time is in the form hh:mm
(24-hour time of day), or +hh:mm (time later than the
current time). You must separate the date and time and
hours from minutes by typing a colon.
/HELP
Prints the general syntax of the SUBMIT command, including
a complete list of switches.
/KILL
Removes the specified jobnames from the Batch input queue.
When you give the /KILL switch, you must type a jobname or
the /SEQ switch on the left side of the equals sign before
typing the switch /KILL on the right side. If more than
one of your jobs has the same jobname, use the /SEQ switch
to identify the proper job.
/LIST
Prints information about the specified jobnames in the
Batch input queue. If you do not specify a jobname, the
system prints the status of the entire Batch input queue.
/NORESTART
Inhibits the system from restarting the job when the
system recovers after a failure. The system normally does
not restart a job. Refer to the /RESTART switch.
/OUTPUT:condition
Specifies the condition under which a log file is printed.
The system always prints a log file if the condition is
LOG or if you do not specify the /OUTPUT switch. If you
do not want a log file printed, use a condition of NOLOG.
If you want the log file printed only if there are errors,
use the condition ERROR.
/PAGE:n
Permits the job to print up to n pages on the line
printer. Normally, the system allows 200 pages; if you
specify the /PAGE switch without a value, the system
allows 2000 pages. If the job should go over this limit,
the system cancels any more line printer output.
/RESTART
Restarts the job when the system restarts after a failure.
You should not have a job restarted if it is potentially
dangerous to your files or the system. The system does
not normally restart jobs. Refer to the /NORESTART
switch.
SUBMIT Command (continued) Page II-234
Table II-22 (Cont.)
SUBMIT Command Switches
/TAG:label
Starts the job at the first line containing the specified
label (of up to five alphanumeric characters). This is
equivalent to a GOTO (refer to the description of the
Batch commands) at the beginning of the control file.
/TIME:time
Specifies the maximum amount of central processor time the
job may use. The argument time is in the form hh:mm:ss
(hours:minutes:seconds). If you do not specify a switch,
the system uses a limit of five minutes; if you specify
the switch without a time, the system uses a limit of one
hour. If your job exceeds this limit, the system prints
the message ?TIME LIMIT EXCEEDED in the control file then
kills the job.
/UNIQUE:n
To run any number of concurrent batch jobs logged in under
your user name, give n a value of 0. Normally (and when
you give n a value of 1), the system does not log in a new
batch job under your user name until there are no other
batch jobs with your user name.
Operation
1. Type SUBMIT and leave a space.
@SUBMIT
2. Type the arguments to the SUBMIT command, then press the
RETURN key.
@SUBMIT MAKMON.CTL
[INP:MAKMON=/SEQ:1026/TIME:00:05:00]
@
Output
If you are submitting a job, the system prints a message in the
form:
[INP:jobname=/SEQ:n/TIME:hh:mm:ss]
jobname is the name of your job, n is the sequence number, and
hh:mm:ss is the time limit for the job.
If you are killing a job, the system prints a message in the
form:
[n Jobs Killed]
where n is the number of jobs you removed from the queue. If
your job is running, the system stops it and prints the message
[No Jobs Killed, 1 Job Cancelled].
SUBMIT Command (continued) Page II-235
The system prints the contents of the Batch input queue in the
following form:
INPUT QUEUE:
STS JOB SEQ PRIO TIME USER
RUN 2MSCM 1197 10 01:00:00 HURLEY
AFT OTSJIE 1205 10 01:00:00 EGAN After:+01:12
PTYCON 2144 10 00:05:00 HURLEY
FRS20 2130 10 00:20:00 WHITLOCK
2CSCM 1198 10 01:00:00 HURLEY
2ESCM 1199 10 01:00:00 HURLEY
LSTLST 1200 10 01:00:00 HURLEY
TOTAL: INP: 7 jobs; 05:25:00 Runtime
@
STS is the job status if the job is deferred, the letters AFT
(for AFTER) are placed in this field. JOB is the jobname; SEQ
is the sequence number and TIME is the time limit for the job.
USER is the user name who is submitting the job.
Characteristics
Giving SUBMIT command runs the QUENCH program which clears any
previous program from memory and leaves your terminal at TOPS-20
command level.
Restrictions
To submit a file from another user's directory, precede the file
specification with a project-programmer number; you may not use
a logical name. Refer to Section 5.3.1.
You may use recognition only on the command name.
Examples
The user submits a Batch job.
@SUBMIT STAR
[INP:STAR=/SEQ:44/TIME:00:05:00]
@
The user submits a Batch job and assigns it a name. The job
cannot be started until 2 hours from the time the command is
given. The log file will not be printed.
@SUBMIT RUN3=STAR.CTL/AFTER:2:00:00/OUTPUT:NOLOG
[INP:STAR=/SEQ:45/TIME:00:05:00]
@
The user kills a job waiting in the Batch input queue.
@SUBMIT NEWFIL=/KILL
[1 Job Killed]
@
SUBMIT Command (continued) Page II-236
The user lists the jobs running under the Batch system.
@SUBMIT
INPUT QUEUE:
STS JOB SEQ PRIO TIME USER
RUN CHECK 7342 10 00:05:00 MCKIE
TOTAL: INP: 1 job; 00:05:00 Sec. Runtime
@
The user then cancels the running job.
@SUBMIT CHECK=/KILL
[No Jobs Killed, 1 Job Cancelled]
@
SYSTAT Command Page II-237
Function
The SYSTAT command prints information about the current state of
the system.
Format
@SYSTAT arguments
arguments is an optional list of user names and/or job numbers,
separated by spaces. The word ALL and/or a dot (.)
can also be used as arguments in place of a user name
or job number.
no arguments prints the header and the job number,
line number, current program name and
user name for each job.
user name prints information about only the
specified user.
job number prints information about only the
specified job. If you want to get
information about your current job,
type a dot (.).
ALL prints the header and the job number,
controlling job number (if it is a
pseudo-terminal), line number, current
program name, state of the job, the
accumulated run time, the run time
limit, the user name and connected
directory for each job.
You may combine any or all of these arguments to print
the desired information. The arguments must be
separated by a space, tab or comma.
Operation
1. Type (or use recognition) on SYSTAT and leave a space.
@SYSTAT
2. Type the arguments (if any), separating them with spaces, and
press the RETURN key. The system prints the information on
your terminal.
@SYSTAT
WED 4-FEB-76 10:55:05 UP 1:33:31
16+5 JOBS LOAD AV 1.70 1.35 1.15
JOB LINE PROGRAM USER
2 3 RIP EIBEN
4 14 EXEC MILLER
9 41 FORTRA EKLUND
10 43 EXEC POTTINGER
11 32 EXEC CLARK
12 73 EXEC BROWNE
13 50 EXEC CONNOR
14 4 EXEC NOT LOGGED IN
15 15 EXEC KIRSCHEN
SYSTAT Command (continued) Page II-238
16 61 EXEC EDU-SERV
19* 110 EXEC MCKIE
20 74 PTYCON LIEMAN
21 23 PTYCON MCKIE
22 115 EXEC LIEMAN
23 114 EXEC LIEMAN
24 107 STATUS EIBEN
25 10 SDDT LEWINE
1 101 EXEC OPERATOR
3 106 EXEC OPERATOR
5 105 OPLEAS OPERATOR
6 103 LPTSPL OPERATOR
7 104 BATCON OPERATOR
@
Output
The first line of output gives the day of the week, date, time,
and the length of time since the system was last started. In the
following example, the date is Wednesday, February 4, 1976 at
10:55:20 AM. The system has been up for about an hour and a
half.
@SYSTAT ALL
WED 4-FEB-76 10:55:20 UP 1:33:46
The second line gives the number of user jobs plus the number of
operator jobs. In the next example, there are 16 user jobs and 5
operator jobs.
16+5 JOBS LOAD AV 1.85 1.40 1.17
The last three numbers on the second line indicate the average
number of runnable processes over a one minute, five minute, and
fifteen minute period. These numbers can range from zero on up.
The higher the numbers the longer a job has to wait for CPU time.
The lines following the load averages contain information about
each job. When you give the SYSTAT command without any
arguments, only the columns JOB, LINE, PROGRAM, and USER are
printed; when you give the ALL argument, they all are printed.
JOB - is the job number. An * is printed beside
your job number.
CJB - is the controlling job number if the job is a
Batch job, a job controlled by the PTYCON
program or any other job that uses
pseudo-terminals.
LINE - is the line number of the job which is also
the terminal number. That is TTY3 is
connected to line 3. If the line is "DET",
the job has been detached from a terminal (to
reattach to the job, give the ATTACH
command).
PROGRAM - is the name of the program the user is
currently running. If the name is EXEC, the
user is probably at TOPS-20 command level or
giving a TOPS-20 command.
STATE - is the state of the user's job. It is either
running (RUN) or waiting for the user to type
some input on his terminal (TI).
SYSTAT Command (continued) Page II-239
TIME - is the total central processor time the job
has used.
LIMIT - is the limit of central processor time the
job can use most often used for batch jobs
only.
USER - is the name of the user under which the job
is logged in. If the user has typed a
CTRL/C, but not yet logged in, the system
prints NOT LOGGED IN.
dev:<directory> - is the name of the job's connected structure
and directory if it is other than the logged
in directory.
JOB CJB LINE PROGRAM STATE TIME LIMIT USER, <DIRECTORY>
2 3 RIP TI 0:05:46 EIBEN, <1EIBEN>
4 14 EXEC TI 0:00:00 MILLER
9 41 FORTRA TI 0:03:36 EKLUND
10 43 EXEC TI 0:02:54 POTTINGER,PS:<RMS-DEBUG>
11 32 EXEC TI 0:00:29 CLARK
12 73 EXEC TI 0:00:05 BROWNE
13 50 EXEC TI 0:00:01 CONNOR
14 4 EXEC TI 0:00:00 NOT LOGGED IN
15 15 EXEC TI 0:03:53 KIRSCHEN
16 61 EXEC TI 0:00:51 EDU-SERV
19* 21 110 EXEC RUN 0:00:01 MCKIE,ADMIN:<MCKIE>
20 74 PTYCON TI 0:00:11 LIEMAN
21 23 PTYCON TI 0:01:10 MCKIE
22 20 115 EXEC TI 0:00:16 LIEMAN
23 20 114 EXEC TI 0:00:15 LIEMAN,PS:<DOC-SPECS>
24 7 107 STATUS RUN 0:00:03 0:20:01 EIBEN
25 10 SDDT RUN 0:01:26 LEWINE
Last, the system lists the information for the operator's jobs.
1 101 EXEC TI 0:00:22 OPERATOR
3 1 106 EXEC TI 0:00:33 OPERATOR
5 1 105 OPLEAS RUN 0:00:00 OPERATOR
6 1 103 LPTSPL RUN 0:00:35 OPERATOR
7 1 104 BATCON TI 0:00:59 OPERATOR
@
Characteristics
The SYSTAT command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user prints all the information about the user EIBEN.
@SYSTAT EIBEN ALL
2 3 TV TI 0:05:51 EIBEN, <1EIBEN>
24 7 107 STATUS RUN 0:00:03 0:20:01 EIBEN
@
SYSTAT Command (continued) Page II-240
The user gives the SYSTAT command without any arguments.
@SYSTAT
WED 4-FEB-76 10:56:10 UP 1:34:36
16+5 JOBS LOAD AV 2.57 1.69 1.29
JOB LINE PROGRAM USER
2 3 EXEC EIBEN
4 14 EXEC MILLER
9 41 FORTRA EKLUND
10 43 EXEC POTTINGER
11 32 EXEC CLARK
12 73 EXEC BROWNE
13 50 EXEC CONNOR
14 4 EXEC NOT LOGGED IN
15 15 EXEC KIRSCHEN
16 61 EXEC EDU-SERV
19* 110 EXEC MCKIE
20 74 PTYCON LIEMAN
21 23 PTYCON MCKIE
22 115 EXEC LIEMAN
23 114 EXEC LIEMAN
24 107 STATUS EIBEN
25 10 EXEC LEWINE
1 101 EXEC OPERATOR
3 106 EXEC OPERATOR
5 105 OPLEAS OPERATOR
6 103 LPTSPL OPERATOR
7 104 BATCON OPERATOR
@
TALK Command Page II-241
Function
The TALK command links your terminal to another terminal
(referred to as the linked terminal). Whatever you type is
printed on both your terminal and the linked terminal; whatever
a user types on the linked terminal appears both on his terminal
and your terminal.
The linkage affects only the output of the terminals; the input
of the terminals is left intact. For example, if your program is
waiting for a command and a user types a command on the linked
terminal, that command works only for his job, not yours - you
see only the resulting typescript.
Hints
The TALK command is useful when you are teaching another user
about a system feature. By using the TALK facility, the teacher
and pupil do not have to physically be in the same location.
To avoid getting the message ?UNRECOGNIZED COMMAND, precede your
comments with an !.
The BREAK command breaks any links you have established with the
TALK command.
Format
@TALK (TO) identifier
identifier is either a user name or a line number.
Operation
1. Type TALK and press the ESC key; the system prints (TO).
@TALK (TO)
2. Type a user name or a terminal number and press the RETURN
key. You may use recognition in typing user names. If you
type a valid user name or terminal number, the system prints
a message on both terminals.
@TALK (TO) WATERS
LINK FROM MCKIE, TTY 23
@
3. If there is more than one job logged in under a user name,
the system prints out a list of terminal numbers. Select the
job you want and type the appropriate terminal number.
@TALK (TO) MACK
TTY35, EXEC
TTY110, BLIS10
TTY: 35
LINK FROM MCKIE, TTY 23
@
TALK Command (continued) Page II-242
4. If the job you are linking to is logged in on a
pseudo-terminal (as are Batch jobs and jobs logged in under
the PTYCON job controller), the system prints a message after
which you must press the RETURN key. If you should link to a
Batch job, remember that if you type a ? or a %, the Batch
system may interpret this as an error within the job.
@TALK (TO) KIRSCHEN
[PSEUDO-TELETYPE CONFIRM]
LINK FROM MCKIE, TTY 23
@
Errors
1. If the user is not logged in, the system ignores the command
and prints the message:
?USER IS NOT LOGGED-IN
USE "MAIL" TO SEND MAIL TO USER
Use the MAIL program to send the message to the user.
2. If the user is not allowing anyone to establish a link to his
terminal, the system rings both terminal bells five times,
then prints the following message on your terminal.
?REFUSED, USE "MAIL" TO SEND MAIL TO USER
Use the MAIL program or wait until a later time.
Characteristics
The TALK command does not change any program in memory and leaves
your terminal at TOPS-20 command level.
Restrictions
You may not link to a detached job.
The TALK command does not print a password onto any linked
terminals. If, however, you type a CTRL/R while giving a command
containing a password, the password is printed.
Examples
The user TALKs to user POMFRET then BREAKS the link.
@TALK (TO) POMFRET
LINK FROM MCKIE, TTY 23
@! Did you update the FORTRAN sources?
@! Yes, they are in <FORLIB>
@! Thanks....
@BREAK (LINKS)
@
TDIRECTORY Command Page II-243
Function
The TDIRECTORY command prints a list of your files, ordered by
the date and time the files were most recently written to the
least recently written.
Hints
Giving the TDIRECTORY command is exactly like giving the
DIRECTORY command with the subcommands CHRONOLOGICAL (BY) WRITE,
REVERSE (SORTING), and TIMES (AND DATES OF) WRITE. Refer to the
DIRECTORY command for more information; you can give any of the
DIRECTORY subcommands with TDIRECTORY.
Format
@TDIRECTORY (OF FILES) filespecs
filespecs is a list of the file specifications about which
you want to obtain the information. If you omit
the file specifications, the system prints
information about all the files in your connected
directory.
Operation
1. Type TDIR and press the ESC key; the system prints ECTORY
(OF FILES).
@TDIRECTORY (OF FILES)
2. Type (or use recognition on) the file specifications, then
press the RETURN key. The system prints the directory
information.
@TDIRECTORY (OF FILES) EDIT
<MCKIE>
WRITE
EDIT.EXE.1 17-NOV-75 16:32:48
@
Output
The system lists the files in the order of the most recently
written file to the least recently written file. The following
information is listed for each file:
1. Name, type, generation number,
2. The date and time the file was last written, and
3. A line summarizing the number of listed files (if greater
than 1).
TDIRECTORY Command (continued) Page II-244
Characteristics
The TDIRECTORY command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user obtains the information about all his files with the
name DUMPER.
@TDIRECTORY (OF FILES) DUMPER
<MCKIE>
WRITE
DUMPER.MEM.2 6-NOV-75 20:28:49
.TXT.4 6-NOV-75 19:18:30
.RNO.2 27-JUL-66 05:00:00
TOTAL OF 3 FILES
@
TERMINAL Command Page II-245
Function
The TERMINAL command changes various terminal parameters such as:
1. Input/output speed,
2. Handling of lowercase characters,
3. Length and width of the terminal page, and
4. Handling of the RUBOUT key.
Hints
The TERMINAL command helps make typing on the terminal more
convenient. When you want to temporarily stop output from your
terminal, set the PAGE parameter; you can then stop printing by
typing a CTRL/S and resume printing by typing a CTRL/Q.
If you use a video terminal, you can have the system erase
deleted characters from the screen, rather than printing the
character followed by a backslash. Do this by giving the
TERMINAL command with your terminal type as an argument. If you
use this type of terminal often, place the command in your
LOGIN.CMD file. Refer to Section 3.2.4.
You can print the current values of your terminal parameters by
giving the INFORMATION (ABOUT) TERMINAL-MODE command.
Refer to Chapter 9 for more information.
Special Cases
Occasionally, your terminal may not work. If typing CTRL/Cs does
not work, try the following procedures before contacting the
operator:
1. Type a CTRL/T. This will not hurt any work you have done and
causes the system to print a line of information. If the
line prints, your terminal is working correctly; if the line
does not print, continue.
2. Type a CTRL/Q, then a CTRL/T. If the line prints, the
terminal has page mode set; if the line does not print,
contact the operator.
Format
@TERMINAL (MODE IS) parameter
parameter is any one of the parameters listed in Table
II-23.
TERMINAL Command (continued) Page II-246
Table II-23
Terminal Parameters
33
Informs the system that your terminal is a Teletype Model
33. The system assumes that a Model 33:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters as uppercase,
3. Needs extra time to print tabs and formfeeds,
4. Has a line width of 72, and
5. Has a page length of 66.
35
Informs the system that your terminal is a Teletype Model
35. The system assumes that a Model 35:
1. Has a formfeed and tab mechanism,
2. Prints lowercase letters as uppercase,
3. Needs extra time to print tabs and formfeeds,
4. Has a line width of 72, and
5. Has a page length of 66.
37
Informs the system that your terminal is a Teletype Model
37. The system assumes that a Model 37 has the same
characteristics as a Model 33, except that it prints
lowercase letters.
EXECUPORT
Informs the system that your terminal is an Execuport.
The system assumes that an Execuport:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters,
3. Needs extra time to perform a carriage-return,
4. Has a line width of 80, and
5. Has a page length of 66.
FLAG (UPPER CASE OUTPUT)
Instructs the system to print a single quote before it
prints an uppercase character. This works only if you
have set the NO LOWERCASE parameter. To stop the
flagging, set the NO FLAG parameter. The system does not
ordinarily flag uppercase.
TERMINAL Command (continued) Page II-247
Table II-23 (Cont.)
Terminal Parameters
FORMFEED (EXISTS ON TERMINAL)
Informs the system that your terminal has a formfeed
mechanism; otherwise the system simulates formfeeds by
printing the correct number of blank lines if you have set
TERMINAL NO INDICATE, or by printing an ^L you have set
TERMINAL INDICATE. To inform the system that a formfeed
does not exist, set the NO FORMFEED parameter.
FULLDUPLEX (MODE FOR TERMINAL)
Instructs the system to repeat each character as you type
it; your terminal does not print what you type until the
system sends the character back to the terminal. The
system normally sets the FULLDUPLEX parameter.
HALFDUPLEX (MODE FOR TERMINAL)
Inhibits the system from repeating each character as you
type it; your terminal must print each character itself.
The system normally sets FULLDUPLEX parameter.
HELP
Prints information about the terminal parameters.
IMMEDIATE (ECHO MODE)
Instructs the system to immediately echo each character as
you type it; normally the system waits until the proper
program (or the command language interpreter) receives the
character (i.e., NO IMMEDIATE is the default). To turn
off immediate mode echoing, set the NO IMMEDIATE
parameter. IMMEDIATE echoing works only when the
FULLDUPLEX parameter is set.
INDICATE (FORMFEED)
Instructs the system to print a ^L instead of advancing
the proper number of lines whenever outputting a formfeed
(or CTRL/L). The system normally advances the proper
number of lines as in NO INDICATE.
LA30
Informs the system that your terminal is a Digital
Equipment Corporation LA30. The system assumes an LA30:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters as the corresponding
uppercase letters,
3. Needs extra time to perform a carriage-return,
linefeed, tab and formfeed,
4. Has a line width of 80, and
5. Has a page length of 66.
TERMINAL Command (continued) Page II-248
Table II-23 (Cont.)
Terminal Parameters
LA36
Informs the system that your terminal is a Digital
Equipment Corporation LA36. The system assumes an LA36:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters,
3. Has a line width of 132, and
4. Has a page length of 66.
LENGTH (OF PAGE IS) n
Sets the number of lines you have on a page. If you have
terminal PAGE mode set, the system stops after printing n
lines and waits for you to type a CTRL/Q. If you set the
page length to 0, the system stops printing only when you
type a CTRL/S; it does not automatically stop at the end
of a page.
LINE-HALFDUPLEX (MODE FOR TERMINAL)
Inhibits the system from printing each character as you
type it. Same as HALFDUPLEX.
LOWERCASE (EXISTS ON TERMINAL)
Tells the system that your terminal handles lowercase
characters properly. (Handling lowercase properly means
either printing the lowercase character or printing the
proper uppercase character.) If your terminal does not
handle lowercase properly, use the NO LOWERCASE parameter.
When NO LOWERCASE is set, the system converts lowercase
letters to the appropriate uppercase letters. Also refer
to the FLAG parameter and the RAISE parameter.
NO parameter
Reverses the parameters; FLAG, FORMFEED, IMMEDIATE,
INDICATE, LOWERCASE, PAGE, RAISE, and TABS.
PAGE (MODE) n
Instructs the system to stop printing whenever it either
reaches the end of a page or you type a CTRL/S. To
continue the printout, type a CTRL/Q. To set the page
length, give the number n or set the LENGTH parameter. If
you set the page length to 0, the system stops printing
only when you type a CTRL/S; it does not automatically
stop at the end of a page. To turn off page mode, use the
NO PAGE parameter. The system does not normally set the
page parameter.
RAISE (TERMINAL INPUT)
Instructs the system to change all lowercase characters
(which you type on your terminal) into the corresponding
uppercase character. To revert to the condition of not
raising input, use the NO RAISE parameter.
TERMINAL Command (continued) Page II-249
Table II-23 (Cont.)
Terminal Parameters
SPEED (OF INPUT) rate (AND OUTPUT) rate
Sets the rate at which your terminal does input and
output. Your installation sets the rate at which your
terminal starts at. If you want to change that rate, set
the SPEED parameters, then change the baud rate switch on
your terminal. If you do not give an output speed the
system uses the input speed. The valid speeds are: 50,
75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800, and
9600. Hints: Most hard-copy terminals run at either 110
or 300 baud; display terminals usually run at a variety
of speeds up to 9600 baud; a 2741 terminal runs at 134
baud (actually 134.5); the maximum speed you can use over
a conventional telephone line is 300 baud. If you set a
baud rate your terminal cannot handle, obtain your line
number (if possible) and ask the operator to set the baud
rate to an appropriate value.
TABS (EXIST ON TERMINAL)
Informs the system that your terminal has mechanical tab
stops every eight columns; otherwise, the system
simulates the tabs by printing the correct number of
spaces. To invoke simulation, set the NO TABS parameter.
TERMINET
Informs the system that your terminal is a Terminet. The
system assumes a Terminet:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters,
3. Needs extra time to perform a carriage-return,
linefeed, tab and formfeed,
4. Has a line width of 72, and
5. Has a page length of 66.
TI
Informs the system that your terminal is a Texas
Instruments terminal. The system assumes a TI terminal
has the same characteristics as an Execuport.
TYPE n
Instructs the system to treat your terminal as terminal
type n. The following table describes the characteristics
of the different terminal types.
Terminal
Type Characteristics
0 Same as Model 33.
1 Same as Model 35.
2 Same as Model 37.
3 Same as EXECUPORT and TI.
4-7 Reserved for customer use.
8 Same as TERMINET. (This is the default type.)
9 Has a TAB and FORMFEED mechanism, prints
lowercase, infinite line width, infinite page
length.
TERMINAL Command (continued) Page II-250
Table II-23 (Cont.)
Terminal Parameters
10 Same as VT05.
11 Same as VT50.
12 Same as LA30.
13 Same as VT52, except with a page length of 30.
Used for a Digital Equipment Corporation GT40.
14 Same as LA36.
15 Same as VT52.
VT05
Informs the system that your terminal is a Digital
Equipment Corporation VT05. The system assumes a VT05:
1. Does not have a formfeed mechanism,
2. Has a tab mechanism,
3. Prints lowercase letters as the corresponding
uppercase letters,
4. Needs extra time to perform a linefeed, or formfeed,
5. Has a line width of 72, and
6. Has a page length of 20.
VT50
Informs the system that your terminal is a Digital
Equipment Corporation VT50. The system assumes a VT50:
1. Does not have a formfeed or tab mechanism,
2. Prints lowercase letters as the corresponding
uppercase letters,
3. Has a line width of 80, and
4. Has a page length of 12.
VT52
Informs the system that your terminal is a Digital
Equipment Corporation VT52. The system assumes the same
characteristics as a VT50 except that it has a tab
mechanism, prints lowercase letters, and has a page length
of 24 lines instead of 12.
WIDTH (OF LINE IS) n
Tells the system the width of your terminal line. When
the system prints a line longer than your terminal width,
it prints the first n positions, then advances a line and
prints the rest.
TERMINAL Command (continued) Page II-251
Operation
1. Type TERM and press the RETURN key; the system prints INAL
(MODE IS).
@TERMINAL (MODE IS)
2. Type (or use recognition on) the parameter you want to set.
If you do not have to give a parameter argument, press the
RETURN key. If you have to give one or more parameters,
press the ESC key, type (or use recognition on the argument),
then press the RETURN key.
@TERMINAL (MODE IS) LOWERCASE (EXISTS ON TERMINAL)
@TERMINAL (MODE IS) LENGTH (OF PAGE IS) 30
@
Characteristics
The TERMINAL command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user sets the width of his terminal line to 65.
@TERMINAL (MODE IS) WIDTH (OF LINE IS) 65
@
The user sets terminal page mode with a page length of 20.
@TERMINAL (MODE IS) PAGE (MODE) 20
@
The user tells the system to change all lowercase output to
uppercase.
@TERMINAL (MODE IS) NO LOWERCASE (EXISTS ON TERMINAL)
@
The user tells the system to change any lowercase characters he
types to the corresponding uppercase character.
@TERMINAL (MODE IS) RAISE (TERMINAL INPUT)
@
TMOUNT Command Page II-252
Function
The TMOUNT command assigns a magnetic tape drive to your job,
asks the operator to mount a tape on the drive, and allows you to
assign a logical name to reference the drive.
Hints
The DEASSIGN command deassigns a drive assigned by the TMOUNT
command.
Format
@TMOUNT (TAPE) logical-name (VOLID) identifier,
logical-name is the logical name you want assigned to the
drive. The logical name may be up to 39
alphanumeric characters (including hyphen) in
length.
identifier is an identifier of up to 6 alphanumeric
characters (including hyphen) which helps the
operator identify the tape you want mounted
on the drive.
Subcommands
Normally the operator will mount the tape READ-ONLY. If you want
to write on the tape, use the WRITE-ENABLED subcommand and the
operator will insert a ring and then mount the tape. If you want
to be sure you do not destroy any information on the tape, give
the READ-ONLY subcommand.
@@WRITE-ENABLED
Tells the operator to mount the tape with the write-ring
inserted so you can write information on the tape.
@@READ-ONLY
Tells the operator to mount the tape with the write-ring
removed so you cannot inadvertantly destroy valuable
information.
NOTE
Although you can give both the WRITE-ENABLED and
READ-ONLY subcommands consecutively, only the last
subcommand you enter will be acted upon by the
operator.
Operation
1. Type TMOUNT and press the ESC key; the system prints (TAPE).
@TMOUNT (TAPE)
2. Type the logical name you want associated with the drive and
then press the ESC key. The system prints a colon and the
guide word (VOLID).
TMOUNT Command (continued) Page II-253
@TMOUNT (TAPE) TAPE: (VOLID)
3. Type the identifier which will help the operator identify the
tape. Press the RETURN key; if you want to give
subcommands, type a comma before pressing the RETURN key and
proceed to the next step. The system prints [Operator
notified], and the [MTAn: assigned] when the operator has
mounted the tape.
@TMOUNT (TAPE) TAPE: (VOLID) GREEN
[Operator notified]
[MTA1: assigned]
@
4. Type the subcommand you need, and then press the RETURN key
an extra time.
@TMOUNT (TAPE) TAPE-1: (VOLID) RED,
@@WRITE-ENABLED
@@
[Operator notified]
[MTA0: assigned]
@
Errors
1. If the system prints:
[Operator busy, waiting...]
the system is busy with another user's request. When it
successfully informs the operator, the system will print
[Operator notified].
2. If this facility is not available at your system, your
terminal will print:
?No operator in attendance, or
?Error while notifying operator, TMOUNT canceled.
Contact the operator or system manager.
3. If there are not enough drives available, the operator may
cancel your request and the message:
?TMOUNT unsuccessful
is printed on your terminal. Use the PLEASE program to talk
to the operator, or reissue the TMOUNT command at a later
time.
Characteristics
The TMOUNT command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Type two CTRL/Cs if you want to abort the TMOUNT request.
TMOUNT Command (continued) Page II-254
Restrictions
The TMOUNT command does not enforce the WRITE-ENABLED or
READ-ONLY subcommands, it only advises the operator which way you
want the tape mounted. Therefore, if the operator has mistakenly
mounted a tape write-enabled when you wanted it read-only, you
will be able to write on the tape.
Examples
The user requests a tape drive, rewinds the tape, and then
returns the drive so other users can access it.
@TMOUNT (TAPE) NEW: (VOLID) BLK34
[Operator notified]
[MTA0: assigned]
@REWIND (DEVICE) NEW:
@DEASSIGN (DEVICE) NEW:
@
The user creates a Batch job which will save his entire disk area
on tape.
@CREATE (FILE) SAVE.CTL
Input: SAVE.CTL.1
00100 @TMOUNT (TAPE) WRITE: (VOLID) NEW,
00200 @WRITE-ENABLED
00300 @
00400 @DUMPER
00500 *TAPE WRITE:
00600 *FILES
00700 *SSNAME DIRECTORY-TAPE
00800 *SAVE *.*.*
00900 *EXIT
01000 @DEASSIGN WRITE:
01000 $
*E
[SAVE.CTL.1]
@
TRANSL Program Page II-255
Function
The TRANSL program translates between directory names and
project-programmer numbers.
Format
@TRANSL
TRANSLATE (DIRECTORY) dev:<directory>
dev: is thre file structure that contains the directory
(optional if the currently connected structure is
used).
<directory> is a directory name or a project-programmer
number. If you type a directory name, the system
prints the corresponding project-programmer
number; if you type a project-programmer number,
the system prints the corresponding directory
name.
You must include square or angle brackets around
the directory name. You can also use recognition
on directory names.
Operation
1. Type TRANSL and press the RETURN key; the system prints
TRANSLATE (DIRECTORY) on the next line.
@TRANSL
TRANSLATE (DIRECTORY)
2. Type (or use recognition on) the directory name or type the
project-programmer number, and press the RETURN key. The
system prints the corresponding project-programmer number or
directory name.
TRANSLATE (DIRECTORY) <FORTRAN-LIBRARY>
<FORTRAN-LIBRARY> (IS) [4,133]
@
3. You can translate directory names and project-programmer
numbers on different structures by including the structure
name with the directory name or project-programmer number.
TRANSLATE (DIRECTORY) LANG:<SMITH>
LANG:<SMITH> (is) [4,123]
@
or
TRANSLATE (DIRECTORY) LANG:[4,123]
LANG:[4,123] (is) SMITH
Characteristics
Running the TRANSL program clears any previous program from
memory and leaves your terminal at TOPS-20 command level.
TRANSL Program (continued) Page II-256
Examples
The user translates the project-programmer number [4,226].
@TRANSL
TRANSLATE (DIRECTORY) [4,226]
[4,226] (IS) <HALL>
@
The user translates the directory name CONNOR.
@TRANSL
TRANSLATE (DIRECTORY) <CONNOR>
<CONNOR> (IS) [4,116]
@
TYPE Command Page II-257
Function
The TYPE command prints the contents of a file(s) on your
terminal.
Hints
The TYPE command is useful for quickly examining the contents of
a file, although printing an entire file may become tiresome. In
the latter case, use the PRINT command to send the output to the
line printer which operates at a much higher speed.
If you want to stop the printing of a file, type a CTRL/O or two
CTRL/Cs. Refer to the commonly used control characters on the
back of the Part I divider.
If your file has line numbers, the system prints them on your
terminal.
Format
@TYPE (FILE) filespecs
filespecs is a single file specification or a string of file
specifications (separated by commas) that indicate
the files you want printed on your terminal.
Operation
1. Type TYPE and press the ESC key; the system prints (FILE).
@TYPE (FILE)
2. Type (or use recognition on) the file specifications, then
press the RETURN key. The system prints the file(s) on your
terminal.
@TYPE (FILE) TRANSL.MAC.5
;<MCKIE>TRANSL.MAC.5, 2-OCT-75 09:46:48, Edit by MCKIE
TITLE TRANSLATE
COMMENT \
1. Translates a <directory> into a [ppn] and indicates if it
is files only, or
2. Tr ^O...
@
Output
If you type more than one file with a single TYPE command, the
system prints the proper file specification followed by a blank
line, before it prints the file.
Characteristics
The TYPE command does not change any program in memory and leaves
your terminal at TOPS-20 command level.
TYPE Command (continued) Page II-258
Examples
The user prints the files ONE.FIL and TWO.FIL.
@TYPE (FILE) ONE.FIL,TWO.FIL.1
ONE.FIL.1
THIS FILE HAS JUST ONE LINE!
TWO.FIL.1
THIS FILE IS A LITTLE BIT BIGGER;
IT HAS TWO LINES
@
UNDELETE Command Page II-259
Function
The UNDELETE command restores previously DELETEd disk files to
their normal status.
Hints
If you use the default for the UNDELETE command, the system
undeletes all the available generations of that file. Thus,
after the UNDELETE command you may have more than one generation
of a file. The next time you create a new generation of that
file or append to the highest generation, the system deletes all
but one (or the number specified by your file-retention-count, if
it is different from one) generation(s) of that file. (To change
the file-retention-count, refer to the SET command; to print the
file-retention-count of a file, give the FDIRECTORY command.) Be
sure that a file you need is not accidentally deleted (and
consequently expunged).
Format
@UNDELETE (FILES) filespecs
filespecs is a single file specification or a string of file
specifications (separated by commas) that indicate
the files to be undeleted. If you do not give a
generation number, all the files with the
specified name and type will be undeleted.
Operation
1. Type UNDE and press the ESC key; the system prints LETE
(FILES).
@UNDELETE (FILES)
2. Type (or use recognition on) the file specifications you want
undeleted, then press the RETURN key. The system prints a
line for each file, indicating whether it can be undeleted or
not.
@UNDELETE (FILES) T.FIL.*
T.FIL.2 [OK]
T.FIL.3 [OK]
@
Errors
1. If any one of the files you are trying to undelete does not
exist, the system ignores the entire command and prints one
of the following messages:
?File not found
?No such file type
?No such generation number
UNDELETE Command (continued) Page II-260
Characteristics
The UNDELETE command prints no error message when it cannot
restore a set of files you have specified with the wildcard
construction.
The UNDELETE command does not change a program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
You cannot undelete files that have been expunged (i.e., actually
removed from disk storage). At no time does the system guarantee
that you can undelete a previously deleted file - it is a feature
available only when there is enough system disk space available.
If your attempt to UNDELETE a file fails, ask the operator (via
the PLEASE program) to restore the file from the system backup
tapes.
If MAIL.TXT is deleted, its contents are immediately expunged.
Therefore, a subsequent UNDELETE command to MAIL.TXT will return
the filename but none of its contents.
Examples
The user undeletes a single file.
@UNDELETE (FILES) OUTPUT.TXT.4
OUTPUT.TXT.4 [OK]
@
The user undeletes all the files with the name T.
@UNDELETE (FILES) T.*
T.MEM.4 [OK]
T.RNO.2 [OK]
T.TXT.5 [OK]
@
UNLOAD Command Page II-261
Function
The UNLOAD command rewinds a magnetic tape until it is completely
on the source reel.
Hints
The UNLOAD command makes it impossible to access the tape unless
it is reloaded by the operator.
Format
@UNLOAD (DEVICE) dev:
dev: is the magnetic tape device name in the form MTAn:
where n is the drive number.
Operation
1. Type UNLO and press the ESC key; the system prints AD
(DEVICE).
@UNLOAD (DEVICE)
2. Type the magnetic tape device name followed by a colon and
press the RETURN key. The system prints an @ when the tape
is unloaded.
@UNLOAD (DEVICE) MTA0:
@
Errors
1. If the device is not on line, the system ignores the command
and prints the message:
?Device is not on-line
Use the PLEASE program to contact the operator, then reissue
the command.
2. If you type a CTRL/C to exit from a program that has opened
the magnetic tape drive, and then you give the UNLOAD
command, the system prints the following message:
?Device MTAn: open on JFN m
%Close JFN? YES
If you answer YES (or just press the RETURN key), the system
closes the file, prints a confirming message, unloads the
tape, and leaves you at TOPS-20 command level. Continuing
the program that previously opened the magnetic tape may
produce an error because the file has been closed.
@UNLOAD (DEVICE) MTA1:
?Device MTA1: open on JFN 3
%Close JFN? YES
3 MTA1: [OK]
@
UNLOAD Command (continued) Page II-262
If you answer NO, the system prints the message ?Command
aborted... and does not close the file or unload the tape.
Characteristics
The UNLOAD command does not change any program in memory and
leaves your terminal at TOPS-20 command level.
Restrictions
The UNLOAD command works only for magnetic tapes.
Examples
The user unloads his tape on drive 3.
@UNLOAD (DEVICE) MTA3:
@
VDIRECTORY Command Page II-263
Function
The VDIRECTORY (for verbose directory) command prints the file
specification, protection number, number of pages, number of
bytes (including byte size), and date and time the file was most
recently written.
Hints
Giving the VDIRECTORY command is exactly like giving the
DIRECTORY command with the subcommands LENGTH, NO HEADING,
PROTECTION, SIZE, and TIMES (AND DATES OF) WRITE.
Refer to the DIRECTORY command for more information; you can
give any of the DIRECTORY subcommands with VDIRECTORY.
Format
@VDIRECTORY (OF FILES) filespecs
filespecs is a list of the file specifications about which
you want the information. If you omit the file
specifications, the system prints information
about all the files in your connected directory.
Operation
1. Type VDIR and press the ESC key; the system prints ECTORY
(OF FILES).
@VDIRECTORY (OF FILES)
2. Type (or use recognition on) the file specifications; then
press the RETURN key. The system prints the directory
information.
@VDIRECTORY (OF FILES) EDIT
<MCKIE>
EDIT.EXE.1;P777752 61 31232(36) 17-NOV-75 16:32:48
@
Output
The system lists the files in alphabetical order. The following
information is listed for each file:
1. Name, type, generation number,
2. Protection code,
3. Size (in pages),
4. Length (in bytes) and byte size (in parentheses), and
5. The date and time the file was last written,
6. A line summarizing the total size (in pages) and number of
the listed files.
VDIRECTORY Command (continued) Page II-264
Characteristics
The VDIRECTORY command does not change a program in memory and
leaves your terminal at TOPS-20 command level.
Examples
The user obtains the information about all his files with the
name DUMPER.
@VDIRECTORY (OF FILES) DUMPER
<MCKIE>
DUMPER.MEM.2;P777752 5 12658(7) 6-NOV-75 20:28:49
.RNO.2;P777752 5 2389(36) 27-JUL-66 05:00:00
.TXT.4;P777752 4 9672(7) 6-NOV-75 19:18:30
TOTAL OF 14 PAGES IN 3 FILES
@
APPENDIX A
STANDARD FILE TYPES
Table A-1 lists the file types that have a specific meaning to the
system. When you create a file for use with a particular program, you
should assign the correct file type. If you do, the system has more
information about the file and can attempt to perform the correct
function after you type a minimum set of commands or switches.
Normally, no penalty arises from assigning an undefined file type, but
if you assign an incorrect file type, the system may incorrectly
interpret the file, especially when you use the LOAD-class commands.
Table A-1
Standard File Types
File Type Kind of File Meaning
A10 ASCII ASCII version of a
DECSYSTEM-20 program loaded
by the PDP-11
A11 ASCII ASCII version of a PDP-11
program loaded by the PDP-11
ABS Object Absolute (nonrelocatable)
program
AID Source Source file in AID language
ALG Source Source file in ALGOL
language
ALP ASCII Printer forms alignment
ATO ASCII PTYCON automatic command
file
ATR Binary Attribute file in SIMULA
language
AWT Binary Data for automatic wire
tester.
B10 Source Source file in BLISS
B11 Source Source file in BLISS-11
BAK Source Backup file from TECO or
LINED
STANDARD FILE TYPES (continued) Page A-2
BAS Source Source file in BASIC
language
BCM ASCII Listing file created by
FILCOM (binary compare)
BCP Source Source file in BCPL language
BFR ASCII Copy of VTECO buffer
BIN Binary Binary file
BLB ASCII Blurb file
BLI Source Source file in BLISS
language
BOX ASCII Output of box program -
picture for use in
specifications and manuals
BUG Object Saved to show a program
error
BWR ASCII Beware file listing warnings
about a file or program
CAL Object CAL data and program files
CBL Source Source file in COBOL
language
CDP ASCII, Binary Spooled output for card
punch
CED ASCII Input to COPYED
CFL ASCII RUNFIL command file
CKP Binary Checkpoint core image file
created by COBOL operating
system
CHN Object CHAIN file
CMD ASCII Command file
COB ASCII COBOL Source File
COR ASCII Correction file for SOUP
CPY Binary Copy of a crash written by
SETSPD
CRF ASCII CREF (cross-reference) input
file
CTL ASCII Batch control file
DAT ASCII, Binary Data (FORTRAN) file
DCT ASCII Dictionary of words
STANDARD FILE TYPES (continued) Page A-3
DIR ASCII Directory from DIRECTORY
command
DMP ASCII COBOL compiler dump file
DOC ASCII Listing of modifications to
the most recent version of
the software
DRW Binary Drawing for VB10C drawing
system
ERR ASCII Error message file
EXE Object Executable program
FAI Source Source file in FAIL language
FCL Source Source file in FOCAL
language
FLO ASCII English language flowchart
FOR Source Source file in FORTRAN
language
FRM ASCII Blank form for handwritten
records
FTP Source FORTRAN test programs
GND ASCII List of ground pins for
automatic wirewrap
HGH Object Nonsharable high segment of
a TOPS-10 two-segment
program
HLP ASCII Help files containing switch
explanations, etc.
IDA ASCII, Binary COBOL ISAM data file
IDX ASCII,SIXBIT Index file of a COBOL ISAM
file
INI ASCII, Binary Initialization file
LAP ASCII Output from the LISP
compiler
LIB ASCII COBOL source library
LOG ASCII Batch, PTYCON or LINK log
file
LOW Object Low segment of a TOPS-10
two-segment program
LPT ASCII Spooled output for line
printer
LSP Source Source file in LISP language
STANDARD FILE TYPES (continued) Page A-4
LSQ ASCII Queue listing created by
QUEUE program
LST ASCII Listing data created by
assemblers and compilers
MAC Source Source file in MACRO
language
MAN ASCII Manual (documentation) file
MAP ASCII LINK map file
MEM ASCII Memorandum file
MID Source Source file in MIDAS (MIT
Assembler) language
MIM Binary Snapshot of MIMIC simulator
MSB Object Music compiler binary output
MUS Source Music compiler input
N Source Source file in NELIAC
language
NEW All New version of a program or
file
OBJ Object PDP-11 relocatable binary
file
OLD Source, Object Backup source program
OPR ASCII Installation and assembly
instructions
OVR Object COBOL overlay file
P11 Source Source program in MACX11
language
PAL Source Source file in PAL 10 (PDP-8
assembler)
PCO ASCII Program change order
PL1 Source Source file in PL1 language
PLM ASCII Program logic manual
PLO Binary Compressed plot output
PLT ASCII Spooled output for plotter
PPL Source Source file in PPL language
PTP ASCII, Binary Spooled output for
paper-tape punch
Qxx ASCII Edit backup file.
STANDARD FILE TYPES (continued) Page A-5
RAM ASCII DECSYSTEM-20 microcode
REL Object Relocatable binary file
RIM Object RIM loader file
RNB ASCII RUNOFF input for producing a
.BLB file
RNC ASCII RUNOFF input for producing a
.CCO file
RND ASCII RUNOFF input for producing a
.DOC file
RNE ASCII RUNOFF input for producing
error message text
RNH ASCII RUNOFF input for producing a
.HLP file
RNL ASCII RUNOFF input for a program
logic manual
RNM ASCII RUNOFF input for producing a
.MAN file
RNO ASCII Programming specifications
in RUNOFF input
RNP ASCII RUNOFF input for producing a
.OPR file
RNS ASCII RUNOFF input for a text file
of standards
RSP ASCII Script response time log
file
RSX All Files for RSX-11
RUN ASCII Command file for SYSJOB
SAI Source Source file in SAIL language
SAV Object Low segment from a
one-segment TOPS-10 program
SCD ASCII Differences in directory
SCM ASCII Listing file created by
FILCOM (source compare)
SCP ASCII SCRIPT control file
SEQ ASCII, SIXBIT Sequential COBOL data file,
input to ISAM program
SHR Object A TOPS-10 sharable program
SIM ASCII Source file in SIMULA
language
STANDARD FILE TYPES (continued) Page A-6
SMP Source Source file in SIMPLE
language
SNO Source Source file in SNOBOL
language
SPC ASCII Corrected file for SPELL
program
SPD ASCII Dictionary for SPELL program
SPM ASCII File of mispelled words for
SPELL program
SPT ASCII SPRINT - created files
SPU ASCII File of uppercase words for
SPELL program
SPX ASCII File of exception (error)
lines for SPELL program
SRC ASCII Source files
STD ASCII Standards
SYM Binary LINK symbol file
SYS Binary Special system files
TEC ASCII TECO macro
TEM ASCII, Binary Temporary files
TMP ASCII, Binary Temporary files
TPB ASCII Typeset input for producing
a .BLB file
TPC ASCII Typeset input for producing
a .CCO file
TPD ASCII Typeset input for producing
a .DOC file
TPE ASCII Typeset input for producing
error message text
TPH ASCII Typeset input for producing
a .HLP file
TPL ASCII Typeset input for producing
a logic manual
TPM ASCII Typeset input for producing
a .MAN file
TPO ASCII Typeset input for producing
a programming specification
TPP ASCII Typeset input for producing
an .OPR file
STANDARD FILE TYPES (continued) Page A-7
TST All Test data
TV ASCII Command file for TV
TXT ASCII Text file
UPD ASCII Updates flagged in margin
(FILCOM)
WCH ASCII SCRIPT monitor (WATCH) file
WRL ASCII Wirelist
XOR Binary Module data for XOR tester
XPN Object Expanded save file (FILEX
and LINK)
Zxx ASCII EDIT original file (all xx)