ISPF Cut & Paste
- Edit an element
- Using the "cc" block line command, block the section to be copied (not cut)
- On the command line enter the command "cut r" without quotes
- Open a second element for edit
- Using the line command "a" (or "b") indicate where the selection is to be pasted.
- On the command line enter the command "paste" without quotes
- The source item is unchanged. The target has the new lines inserted as indicated.

ISPF Gangpunch
It is occasionally convenient to be able to gangpunch data from one record to another.
This can be done with relative ease in ISPF. Given the following scenario, the unique
information is present in lines 16 through 25. However, it is desired to have "ENC" and
"BJ338 PR #12981 PER GE JONES" in the same columns in all records, 16 through 25. To
accomplish this, use the c line command as you for any copy, and
use the oo block commands to identify the desired range. See the
following example.
000015 //CONTROL DD *
oo0016 J90401.04 3944105 SC97084 DO09058
000017 J90402.04 3944105 SC97084 DO09068
000018 J90403.03 3944105 SC97085 DO09010
000019 123 J90404.03 3944105 SC97085 DO09013 HELLO
000020 J90405.04 3944105 SC97085 DO09058
000021 J90406.04 3944105 SC97086 DO09010
000022 J90407.04 3944105 SC97086 DO09013
000023 J90408.05 3944105 SC97086 DO09058
oo0024 J90409.04 3944105 SC97087 DO09010
c00025 ENC J90410.04 3944105 SC97087 DO09013 BJ338 PR #12981 PER GE JONES
000026 /*
It yields the following result:
000016 ENC J90401.04 3944105 SC97084 DO09058 BJ338 PR #12981 PER GE JONES
000017 ENC J90402.04 3944105 SC97084 DO09068 BJ338 PR #12981 PER GE JONES
000018 ENC J90403.03 3944105 SC97085 DO09010 BJ338 PR #12981 PER GE JONES
000019 123 J90404.03 3944105 SC97085 DO09013 HELLO PR #12981 PER GE JONES
000020 ENC J90405.04 3944105 SC97085 DO09058 BJ338 PR #12981 PER GE JONES
000021 ENC J90406.04 3944105 SC97086 DO09010 BJ338 PR #12981 PER GE JONES
000022 ENC J90407.04 3944105 SC97086 DO09013 BJ338 PR #12981 PER GE JONES
000023 ENC J90408.05 3944105 SC97086 DO09058 BJ338 PR #12981 PER GE JONES
000024 ENC J90409.04 3944105 SC97087 DO09010 BJ338 PR #12981 PER GE JONES
000025 ENC J90410.04 3944105 SC97087 DO09013 BJ338 PR #12981 PER GE JONES
000026 /*
Notes:
- Only blank positions are filled. Non-blank positions are unmolested.
- Use the COLS command to limit the columns to be affected.
- This command does not have a facility for gangpunching blanks into specific columns.
- To affect a single line, use the o line command, rather than the oo block command.
- To affect a sequence of lines, use the o4 line command for example to affect this line and the following three lines.

ISPF Using The COLS & BNDS TSO Line Command
- Edit an element
- Enter COLS in the line command area to have a ruler line appear.
- Enter BNDS in the line command area. A blank line will appear.
- On the blank line, position angle brackets < >in the columns
to be affected. The affected portion will be that portion between the angle brackets,
inclusive. I could find no way to affect a single column.
- The following example shows how to comment out a portion of a paragraph.
EDIT BJ338.NDVR.WORK(CEPEJ624)
Command ===>
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----
=BNDS> <>
000139
000140 00133 A300-PROCESS-CEP-DST.
000141 00134 READ IN-EXPLO INTO IN-HOLD
000142 00135 AT END
000143 00136 MOVE HIGH-VALUES TO IN-HOLD
000144 00137 GO TO A300-PROCESS-CEP-DST-EXIT.
c00145 00138 *
oo0146 00139 IF IN-HOLD-REC-TYP = '60'
000147 00140 MOVE IN-HOLD TO IN-RECD60
000148 00141 MOVE 'Y' TO FLAG
000149 00142 MOVE IN-HOLD-SHOP-ORD TO HOLD-SO
000150 00143 PERFORM A400-PROCESS-RECD60 THRU
oo0001 00144 A400-PROCESS-RECD60-EXIT.
000152 00145
- The following screen shows the results.
EDIT BJ338.NDVR.WORK(CEPEJ624)
Command ===>
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----
=BNDS> <>
000139
000140 00133 A300-PROCESS-CEP-DST.
000141 00134 READ IN-EXPLO INTO IN-HOLD
000142 00135 AT END
000143 00136 MOVE HIGH-VALUES TO IN-HOLD
000144 00137 GO TO A300-PROCESS-CEP-DST-EXIT.
000145 00138 *
000146 00139 * IF IN-HOLD-REC-TYP = '60'
000147 00140 * MOVE IN-HOLD TO IN-RECD60
000148 00141 * MOVE 'Y' TO FLAG
000149 00142 * MOVE IN-HOLD-SHOP-ORD TO HOLD-SO
000150 00143 * PERFORM A400-PROCESS-RECD60 THRU
000151 00144 * A400-PROCESS-RECD60-EXIT.
000152 00145

ISPF Recursive Windows
Under the old SPF when an additional window was needed and you were already in split screen,
you could type HOLD and press enter. This reserved your existing window, and presented
a new window at the primary option menu for temporary use.
HOLD is not available under the new SPF. But there is a new command that has a similar
effect. Experiment with SPLIT NEW.

Building and Using PROCLIBs
Please note: The following are not the only methods for creating, backing up, and
restoring "user proclibs". They are merely examples.
Allocating A PROCLIB As A PDS
Allocating A PROCLIB As A PDSE
Copying To A PROCLIB Using EIBCOPY
Backing Up A PDS (PROCLIB) Using FILEAID
Backing Up A PDSE (PROCLIB) Using FILEAID
Executing From A PROCLIB
Executing From Multiple PROCLIBs

Allocate T???.++++++++.TESTPROC As A PDS
//ALLOCATE EXEC PGM=IEFBR14
//DD1 DD DSN=T???.++++++++.TESTPROC,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// DSNTYPE=PDS,DSORG=PO,
// LRECL=80,RECFM=FB,
// SPACE=(TRK,(primary space,secondary space,dir blocks))

Allocate T???.++++++++.TESTPROC As A PDSE (Partitioned DataSet Extended)
//ALLOCATE EXEC PGM=IEFBR14
//DD1 DD DSN=T???.++++++++.TESTPROC,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// DSNTYPE=LIBRARY,DSORG=PO,
// LRECL=80,RECFM=FB,
// SPACE=(TRK,(primary space,secondary space),RLSE)

Copy Members From TEST.PROCLIB To Another User PROCLIB Using IEBCOPY
//COPY EXEC PGM=IEBCOPY,REGION=300K
//SYSPRINT DD SYSOUT=*
//DD1 DD DSN=TEST.PROCLIB,DISP=SHR
//DD2 DD DSN=T???.++++++++.TESTPROC,DISP=OLD
//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(20))
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(20))
//SYSIN DD *
COPY OUTDD=DD2,INDD=DD1
S M=((PROC1,,R))
S M=((PROC2,,R))
S M=((ETC,,R))
/*

Backing Up A PDS (Can Be Used In Reverse As Restore JCL)
//BACKUP EXEC PGM=FILEAID,REGION=4M
//DD01 DD DSN=T???.++++++++.TESTPROC,DISP=SHR
//DD01O DD DSN=T???.++++++++.whatever.you.want,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// DSNTYPE=PDS,DSORG=PO,
// SPACE=(TRK,(primary space,secondary space,dir blocks))
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD DUMMY
/*

Backing Up A PDSE (Can Be Used In Reverse As Restore JCL)
//BACKUP EXEC PGM=FILEAID,REGION=4M
//DD01 DD DSN=T???.++++++++.TESTPROC,DISP=SHR
//DD01O DD DSN=T???.++++++++.whatever.you.want,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// DSNTYPE=LIBRARY,DSORG=PO,
// LRECL=80,RECFM=FB,
// SPACE=(TRK,(primary space,secondary space),RLSE)
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD DUMMY
/*

Executing A Cataloged Procedures From A User PROCLIB
To execute cataloged procedures from a user PROCLIB, add the following JCL statement
before the first EXEC statement in the job stream. If the cataloged procedure
(PROC) isn't found in your user PROCLIB(s)", PROD.PROCLIB will also be searched./P>
//PROCLIB JCLLIB ORDER=T???.++++++++.TESTPROC

Executing A Cataloged Procedures From Multiple User PROCLIBs
To execute cataloged procedures from a user PROCLIB, add the following JCL statement
before the first EXEC statement in the job stream. If the cataloged procedure
(PROC) isn't found in your user PROCLIB(s)", PROD.PROCLIB will also be searched.
//PROCLIB JCLLIB ORDER=(T???.++++++++.TESTPROC,
// T???.+++++++2.TESTPROC,
// T???.+++++++3.TESTPROC)

Interupting a TSO Search
If a TSO search is taking too long, try hitting [Shift Esc]. It may not work on all
machines, but it does work on some.

TSO Invokation of ISPF
I don't like to have to enter an application step by step anymore than anybody else, but I have noticed that a lot of people sign on to TSO and then enter the ISPF command to invoke ISPF. If when you sign on to TSO, at the TSO/E LOGON screen, which is where you put in your password, you also tab down to the last field labeled COMMAND and enter ISPF, you won't have to manually invoke it in the future. Certain parts of TSO retain values for you, and that COMMAND field is one that will.
--Courtesy of Charles Tolhurst and Robert Thompson

Using QW To Access Documentation
A great deal of documentation is maintained on MVS. The trick is getting to it. Try using the qw command.
- From the OPTTION line on (virtually) any ISPF screen, including the opening screen, enter qw.
- Press [Enter]
- Experiment. However, try entering C.
- Experiment. However, try entering S on the line that says IDCAMS UTILITY.
- Select any option to access IDCAMS documentation.
The qw command is fairly versatile. It will call up an error message directly if you enter qw on the command line and place the cursor on an IBM (or other supported vendor) error number on a SAR listing when SAR is entered via TSO. Note that the qw command will not work as advertised unless you enter TSO directly, as opposed to entering SAR directly.
The qw command seems quite versatile and is worthy of extensive experimentation.
--Courtesy of Charles Tolhurst

|