Professional Documents
Culture Documents
ISPF Screen Shots
ISPF Screen Shots
This guide is intended to give you a basic reference to the use of the TSO/ISPF
environment. TSO stands for Time Sharing Option, which is a multi-user environment for
the IBM MVS mainframe operating system. TSO divides available CPU time and
allocates the slices to users. Since the time slices are very short and the system cycles
through the requesting users very quickly, it appears as if they have simultaneous access.
ISPF (Interactive System Productivity Facility) is a menu driven full screen interface to
the most commonly accessed TSO features. It includes facilities to edit, browse, and
manage data and programs.
Within this guide two conventions are used for instructions. Italicized words represent
actions. Bold face words represent either keys or commands to be typed in. For example
press ENTER instructs you to press the ENTER key on the keyboard. Another example
would be type ISPF which instructs you to type the letters ISPF.
Logonid and userid are used interchangeably throughout this manual and are
synonymous.
Logging On
To enter the TSO system (log on), you must first have an account and an accompanying
user id. Your instructor will provide this information to you. To access the TSO system
from the CBA student menu choose option P from the main menu. This system will then
present a screen with these lines near the top of the screen.
On the line marked "Application: " type TSO then press ENTER
example:
example
ENTER USERID -
BA0145
IKJ56700A ENTER USERID -
BA0145
You will be presented a TSO logon screen illustrated below.
------------------------------- TSO/E LOGON
----------------------------------
PF1/PF13 ==> Help PF3/PF15 ==> Logoff PA1 ==> Attention PA2
==> Reshow
You may request specific HELP information by entering a '?' in any
entry field.
ENTER LOGON PARAMETERS BELOW: RACF LOGON
PARAMETERS:
PERFORM ===>
COMMAND ===>
You are now in TSO at the READY prompt. The following instructions show you how to
access ISPF (the editor that you will be using in this class).
The ISPF primary menu is shown below. There are a number of options that will not be
used in this class. Options are selected by typing the number of the option at the OPTION
prompt. This class will be using the EDIT option. This will allow students to create, edit,
and execute COBOL programs and JCL required for assignments in this class. To enter
the edit mode type 2 at the OPTION prompt and press ENTER.
Menu Utilities Compilers Options Status Help
----------------------------------------------------------------------
--------
ISPF Primary Option Menu
Option ===>
Note: Some classes will have the PDS allocated by the instructor. Other classes will be
given directions by the instructor. Please conform to the class requirements.
From The ISPF PRIMARY OPTION MENU select Option 3 (Utilities) by the following
method.
Menu Help
-----------------------------------------------------------------------
-------
Utility Selection Panel
Option ===> 2
This will present the Data Set Utility screen illustrated below.
ISPF Library:
Project . . BA0145
Group . . . SPRING97
Type . . . . COBOL
ISPF Library:
Project . . BA0145
Group . . . SPRING97
Type . . . . COBOL
ISPF Library:
Project . . BA0145
Group . . . sample
Type . . . . programs
Volume Serial
This is the VOL-SER code for the unit on which you wish to place this data set. If you
leave this space blank, the system will provide a default code. For data sets stored on tape
the VOL-SER code identifies the reel on which the data set is stored. For disk data sets
this identifies the specific device and any logical partitions on the device. Unless
instructed otherwise leave this blank and accept the default.
Generic Unit
System resources are often assigned generic names which are easier for the human users
to remember. You may specify this rather than a VOL-SER. Unless instructed
otherwise leave this blank and accept the default.
Space Units
Storage space may be allocated in a variety of size units. These include blocks (BLKS),
tracks (TRKS) and cylinders (CYLS) which are related to disk organization or bytes
(BYTES), kilobytes (KB) and megabytes (MB) which are units of raw data. Unless
instructed otherwise allocate space for a PDS in TRKS.
Primary Quantity
This is the number of units that of space that are initially set aside for the data set. For
most College of Business courses, set this to 1 or 2.
Secondary Quantity
As the data set is used the initial allocation may fill up. By specifying a secondary
quantity, the system will automatically provide additional space. For most College of
Business courses, set this to 1 or 2.
Directory Blocks
The MVS system maintains a directory for each PDS so that it can access the members
individually. The number required for the PDS is dependent upon the number of
members expected. Each 256 byte block can accommodate 21 members. This parameter
allocates the number of directory blocks specified.
If left blank or 0 is specified then the system allocates the file as a single sequential file
rather than a PDS.
For most College of Business courses, set this to 5 to 10 for a PDS or 0 for a
sequential file.
Record Format
Most PDS or sequential files are allocated as fixed block (FB) which means that all
records in the file have the same length and are blocked for better I/O performance.
Variable block (VB) allows variable length records and fixed unblocked (F) is available
but seldom used. For a PDS that will contain program source code, program object
code or JCL this should be FB.
Record Length
This specifies the logical length of each record in the file. COBOL, SAS and JCL were
originally developed for 80 character punch cards therefore the correct logical record
length (sometimes referred to as LRECL) is 80 bytes or characters. For a PDS that will
contain program source code, program object code or JCL this should be 80.
Block Size
Block size is always some multiple of the record length. Secondary storage devices do
not use every available byte of storage for data. There are I/O size considerations, space
requirements for directories and other overhead data and the amount of space capacity of
the disk that must be considered when determining the optimal blocking factor. This
optimal factor is device dependent. For 80 character record lengths on the OU MVS
system use a 4800 character block.
Expiration Date
Coding anything into this parameter will cause the data set to be uncataloged on the
expiration date or after the specified number of days has been reached. For most College
of Business courses, set this to 5 to 10 for a PDS or 0 for a sequential file.
PROJECT refers to the highest qualifier, usually the owners logonid. GROUP and TYPE
refer to the second and third level qualifiers of the PDS name. Member refers to the
actual Member name. When the screen comes up, the default values for the Project,
Group and Type qualifiers are the last PDS where editing was performed.
The data set NAME line allows a non-PDS sequential data set to be edited or a fully
qualified PDS name or sequential file name must be enclosed in single quotes.
ISPF Library:
Project . . . BA0145
Group . . . . SPRING97 . . . . . . . . .
Type . . . . COBOL
Member . . . (Blank or pattern for Member
selection list)
Workstation File:
File Name . . . . .
To open EXAMPLE1 for editing, type EXAMPLE1 on the Member line and
press Enter.
ISPF Library:
Project . . . BA0145
Group . . . . SPRING97 . . . . . . . . .
Type . . . . COBOL
Member . . . EXAMPLE1 (Blank or pattern for Member
selection list)
Workstation File:
File Name . . . . .
ISPF is a full screen editor you may move the cursor anywhere within the text being
edited by using the arrow keys on your terminal. Common editing operations will be
discussed on the following pages.
Frequently you need to make up copy of an existing Member in your PDS. This is done
by using a COMMAND Line operation. If you have an existing Member with the fully
qualified name 'BA0145.SAMPLE.PROGRAMS(JCL)' and you wish to copy it to the
new 'BA0145.SAMPLE.PROGRAMS(EXAMPLE1)', you must first open the new
Member EXAMPLE1 in the manner explained earlier. When the new Member is open
type copy jcl following the arrow on the COMMAND Line then press ENTER. Since
the Member JCL exists within the same PDS, the Member name is all that is required. A
new copy of the data in the Member JCL now exists with the name EXAMPLE1.
If you were attempting to copy a Member from a different PDS then simply type copy
and you will be presented with a screen that allows you to enter the fully qualified data
set name.
The COPY command may also be used to import another Member into a specific location
in an existing Member. If you wish to insert the copied text after a specific line type a in
the line number area of that line then execute the COPY command as described above. If
you wish to insert the copied text before a specific line type b in the line number area of
that line then execute the COPY command as described above. If a specific line is not
specified by use of the positional LINE commands, the copied text is appended to the
bottom of the Member.
You may end an edit session either of two ways. First you may type end on the
COMMAND Line then press ENTER. There is also a standard function key shortcut. If
you press F3 you will immediately end your session. Either way, changes made since
the last SAVE command (or since opening the edit session if no SAVE command has
been issued) will be automatically saved upon exit.
Saving Changes
Although not common, system failures can lead to lost work. If you have been editing for
a particularly long time and are still not ready to exit, type save on the COMMAND Line
and press ENTER. This will save changes made since the last save to disk or since the
start of the edit session if no previous SAVE command has been issued.
Discarding Changes
You may want to discard changes made during an edit session. Type cancel on the
COMMAND Line and press ENTER. This will discard all changes since the last SAVE
command or since opening the edit session if no SAVE has been issued. One problem
that often arises is when a Member is copied and changes are made without a SAVE
command ever being issued. If the user wishes to discard the changes and issues a
CANCEL command it will also cancel the COPY command and the original will need to
be copied again.
When editing an existing Member you may want to search for a specific sequence (string)
of characters. ISPF provides a Command Line command to accomplish this. If you were
looking for the character string 'string' you would
type f 'string' on the Command Line and press ENTER. This will find the next
occurrence down from where the cursor is currently positioned in the body of the
Member. occurrences occurring above the position of the cursor are not found. When the
string is found, the cursor is repositioned to the first character of the found string. The
FIND command can be repeated using a standard function key, F5. Press F5 and the
cursor will move to the next occurrence below the current cursor position. If there are no
occurrences below the current cursor position, ISPF will respond with a message that the
end of the data has been reached. If you press F5 again, the search will start at the top of
the Member.
If a search starts at the top of a Member, and no occurrences of the string are found, ISPF
will notify that the string is not found. The repeat FIND for that string will remain active
as long as the edit session is open or until another FIND command is issued.
The FIND command also has several modifiers to make usage more flexible. To find the
first occurrence in the data without regard to the current position of the cursor, type f
'string' first and press ENTER. This will find the very first occurrence in the data or
notify you that the string is not found within the data.
To find the very last occurrence in the data, type f 'string' last and press ENTER. This
will position the cursor on the last occurrence within the data.
To find the last occurrence of the string above the current cursor position,
type f 'string' prev and press ENTER. When using the F5 repeat FIND command with
either the LAST or PREV modifiers the effect is the same as repeating the command with
the PREV modifier, you would find the occurrence of the string immediately previous to
the current cursor position.
When working with data in a tabular format or data that must be in a particular position
within a record, there is a modifier that allows you to find only the occurrences of the
string starting in the specified position in the record or line. To find occurrences of 'string'
starting 11 characters from the beginning of the line, type f 'string' 11 and press
ENTER. This will place the cursor on the next occurrence of 'string' that start in position
11 of a line. The positional parameter can be used in conjunction with the FIRST, LAST
and PREV modifiers. For example to find the last occurrence of 'string' in position 11 of a
line, type f 'string' 11 last and press ENTER.
When using a FIND command, the string found will not necessarily be a stand alone
word. If that sequence of characters is embedded within another word it will still be
found. This is because ISPF treats anything, including spaces, within the Member as data
characters. This implies that you should be as specific as possible when entering the find
command to ensure that the occurrences that are returned are the expected values.
Alphabetic strings can be entered without using the quotation marks but any string that
contains imbedded commas, or contains imbedded spaces must be entered using the
quotation marks. If you are using the POSITION modifier with a numeric string you must
also use quotation marks around the string. If the string has imbedded quotation marks or
apostrophes it must be entered like the example below:
f "'string'" or f "o'riley".
It may be necessary to change all occurrences of a word or text string. You may have
misspelled a word or made a typographical error that prevents your program from
compiling. You may correct that error with the Change command.
The CHANGE command is related to and works with the FIND command. The best way
to discuss the change command is to use an illustration. If you wish to change the text
'pgae-counter' to 'page-counter' you would type
This will change the next occurrence of the 'pgae-counter' string from the point in the text
where the cursor is currently positioned. Occurrences before the cursor position are not
changed. What has occurred is that the ISPF editor has issued a FIND command for the
first string entered on the command line. When it finds that string it replaces it with the
second string entered on the command line. The R5 key repeats the search for the next
occurrence and places the cursor there. The R6 key will then repeat the replacement. If
the R6 key is used alone, both the search and the replace will be performed. Just as with
the FIND repeat, the CHANGE repeat will go to the end of the file then start back at the
top of the file.
The modifiers for FIRST, PREVIOUS, LAST and the positional or column modifier are
available for use with the CHANGE command and they behave in the same way as with
the FIND command. Replacement is performed when the appropriate string is found.
There is one other very powerful modifier available with the CHANGE command and its
use requires caution. The ALL modifier changes all occurrences of the string within the
file without asking for confirmation. This includes occurrences of the string that may be
imbedded within another word. The format for the ALL modifier is illustrated below:
When using this modifier, be very specific on the string being changed. If there
Copying a Line
To copy a line within the text, you must determine the source (line to be copied) and the
destination (where you want the copied line placed). Type c over one of the digits of the
line number on the line you wish to copy. You must not be in insert mode when this is
done. It is good practice to type a blank space after the c also for reasons that will be
discussed later. You then need to find the destination for the copy. You can mark this
destination either of two ways: 1) Type a (which stands for "after") over one of the digits
of the line number on the line just before the destination or 2) Type b (which stands for
"before") over one of the digits of the line number on the line just after the destination.
When the source and destination have been marked then press ENTER. This is
illustrated on the next page.
The copy operation can be used on blocks of lines as well as single lines. The start and
end of the source block are marked by type cc in the number of line that begins the block
and in the number of the line that ends the block. The destination is marked in the same
way as a single line copy, then press ENTER to complete the operation. This is
illustrated below.
A block can also be marked by determining the number of lines that are included in the
block and (in this example 3) then type c3. Since it is possible to inadvertently mark a
block in this manner when doing a single line copy or inadvertently mark a larger block
than intended, it is good practice to leave a blank space following the commands on the
source line. The destination is marked as in previous examples then press ENTER. If an
unintended operation occurs, the command line UNDO will restore the dataset to the
previous state. The block command with explicit numbers is illustrated below.
Moving a Line
The line commands to move a line within the text are similar in operation to the copy
commands. The principle difference is that while copy leaves the source line intact, move
removes the old source line leaving only the new line at the destination. The move is
accomplished by marking the source line, type m in the line numbers on the source line,
then marking the destination with a or b just as we did with the copy command. The
command is executed when you press ENTER. This is illustrated below.
000100 IDENTIFICATION DIVISION.
m00200 PROGRAM-ID. EXAMPLE1.
000300 AUTHOR. JENNIFER STUDENT.
000400 INSTALLATION. UNIVERSITY OF OKLAHOMA.
000500 DATE-WRITTEN. AUGUST 8, 1997.
a00600 DATE-COMPILED.
000700
Block commands for move work in the same manner as the copy command with the same
warning on using the space after the line command to prevent inadvertent block
operations. UNDO is also available.
Deleting a Line
Deleting a line is accomplished by the following procedure. Type d over a number in the
line number next to the line to be deleted. Press ENTER to complete the operation. This
process is illustrated below.
Block operations are accomplished in the same manner as the copy and move operations
and the UNDO command is available.
You may then begin typing the new line. As long as you enter some kind of character on
this line (including a space) a new line will be inserted when ENTER is pressed. To stop
insertion, Press ENTER without entering anything on the line.
Insert has a block command ability using the explicit number of lines that you wish to
insert. If nothing is entered on any line then that line will disappear when ENTER is
pressed to complete the operation.
Repeating a Line
Repeating a line is essentially copying a line to a position immediately after the source
line. To repeat a line type r over one the numbers on the line number of the source line
then press ENTER to complete the operation. This operation is illustrated below.
Block operations are available with this command as is the UNDO command.
Submitting a Job
Once you have entered a program into the TSO editor, you must submit the job for
processing by the operating system. To submit a job, type SUBMIT (or SUB) at the
Command prompt:
To then track the progress of your job, you should follow a submit command with the
command that takes you to IOF, IOF:
The DEST/DEVICE field indicates where the print will be routed to when the job is
released from the Held Output Queue. In this example it is ADAMS which indicates that it
will go to the line printer in Adams Hall. Finally the HLDS field indicates how many
sections of output were generated by the job. In this example 6 sections of output were
generated by the job. This parameter is obtained from the JCL card shown below.
The parameter R15 means "Remote 15," which is a system code for the Adams Hall
printer. If you are working in a lab outside of Adams Hall and would like to send the
print to that lab, ask the lab assistant what the remote number is for that lab and change
the JCL to route the print accordingly.
When you type =i on the COMMAND line of any screen you will be presented with the
screen shown below.
There are 2 methods of selecting a job to view. First simply type the number that is listed
left of the job on the COMMAND line. To view SAMPLJOB in the example, type 1 on the
COMMAND line and press ENTER. This is illustrated below.
An alternate method is to type an s next to the position of the job on the list: Type s in the
space to the left of SAMPLJOB and press ENTER. This is illustrated below.
The jobs are listed in order of the JOBID which in this example is J00416. This JOBID is
assigned by the job scheduling software attached to the MVS operating system. These
numbers start over with J00000 each day so that it is possible to have more recent jobs
listed above jobs from a prior day. Keep this caution in mind if you have multiple jobs
that have run over several days. The JOBNAME field corresponds to the jobname on the job
card of the JCL used to submit this job. The job card for this run is listed below. Note that
the entire job card does not need to be included on one line of JCL.
This particular job is an execution of a sample COBOL program using the compile and
run PROC COBV2CLG. A PROC (procedure) is a collection of JCL statements that are
stored and run as if they were a single program. Statements within COBV2CLG cause a
COBOL source code file to be compiled and the resulting object code executed before
deleting the object code.
The first line of information on the IOF Job Summary screen shows the JOBNAME, JOBID,
and print DEST that were shown on the Job List Menu. Also shown here are the job
STATUS and the time and date that the job was executed. This information is valuable in
determining the correct job to view.
When the JCL is written for a job, each program executed is organized into a job step.
Each step is given a name. The programs executed and the corresonding steps are shown
in the next block of information. The number at the left of each line is a return code for
that step. The return code is generated when the step is executed and indicates whether a
normal execution took place. A return code of 0 means normal execution. Common
errors will be ABND (ABEND or abnormal end) and NCAT2 (Not Cataloged error 2). This
line also notes the PROC name if the steps were included within a PROC. The comments
area will usually contain a brief error message if the step did not execute normally.
The main section of the the Job Summary screen lists sections of output produced by the
execution of the job. The names listed for these sections correspond to the names in the
DD statements of the JCL. The step name indicates the step with which the DD statement
was associated. A status of HELD indicates that there is output to view associated with that
line.
There are 2 methods of selecting the element of the job output you wish to view. First
simply type the number that is listed left of the job on the COMMAND line. Or, again, you
can Type s in the space to the left of the appropriate output entry and press ENTER.
LOG *
Statistics regarding the start and stop times of the job, amount of CPU
time used, and various accounting figures.
JCL * The JCL you submitted, in a form processed by the system.
MESSAGES *
Itemized description of the actions of the compiler, including allocation
of memory and storage space.
A copy of the COBOL source listing, after being processed by the
SYSPRINT COB2 system. This is where you will find many answers as to why your
programs are not working.
At any time after a job submission, you may send the output to the printer specified by
the ROUTE statement in your JCL (A list of codes is coming soon). There are 2 methods of
selecting the element of the job output you wish to release. First, simply type the number
that is listed left of the job on the COMMAND line, followed by the letter r. Or, you can Type
r in the space to the left of the appropriate output entry and press ENTER:
------------------------------ IOF Job List Menu -------------
( 1 )------------
COMMAND ===> 1 r SCROLL
===> SCREEN
--------------------------------- Output Jobs
---------------------------------
-------JOBNAME--JOBID--ACT-STA-DEST/DEVICE--------RECS-HLDS-DAY--
TIME--PAGES---
r 1 SAMPLJOB J00416 ADAMS 5
Note that you may also release your job from the IOF Job Summary screen. You can also
release individual components of your job from the Job Summary Screen.
You can also "stack up" release commands. For example, if you wanted to print jobs 1-5,
you could type "1-5 r" at the COMMAND line.
Canceling Jobs
From time to time, you may want to cancel jobs that may have not compiled correctly,
and/or those you chose not to release to the printer. There are 2 methods of selecting the
element of the job output you wish to cancel. First, simply type the number that is listed
left of the job on the COMMAND line, followed by the letter c. Or, you can Type c in the
space to the left of the appropriate output entry and press ENTER:
Note that you can "stack up" cancelling commands. For example, if you wanted to cancel
jobs 1-5, you could type "1-5 c" at the COMMAND line.