Looking for 'HOLD' CLIST/REXX logic that can be executed from a TSO mainframe command line

538 Views Asked by At

On IBM mainframes, I've been able to type 'hold' on the command line, press enter, and have a new TSO screen appear without losing my original screen. To go back to my previous screen, I'd press F3. Does anyone know where I can find the CLIST/REXX code to do this?

3

There are 3 best solutions below

1
On

Presuming that when you say "TSO" you mean "ISPF," there are a couple of ways to get a new logical ISPF screen in 3270 mode.

One is entering SWAP LIST command. This pops up a window from which you can request a new logical screen.

You can also enter the SPLIT NEW command. This generates a new logical screen and splits the screen where your cursor is located - unless you have unchecked "Always show split line" in Settings. Settings is typically option 0 from the ISPF main menu.

All of this is covered in the ISPF User Guide.

If you really are looking to write an ISPF dialog application to do these sorts of things, I believe you will want to familiarize yourself with the ISPEXEC APIs.

0
On

In the old days, you could only have 2 ISPF split screens. If, for example, you were editing 2 datasets in 2 split screen and needed to check something in SDSF you would have to PF3 out of one of your edits and go into SDSF on that split screen.

A couple of sites I worked at had implemented a command to give you a new 'pseudo' split screen, so that if you had both of your split screen in use, you could quickly do something else. It sounds like your 'hold' command was something like this.

Nowadays, you can have many split screens. In my example above, you can simply type 'split new' to get a new split screen (or maybe 'start s' if 's' is the option for SDSF on your Primary Option Menu), do what you need to in SDSF and then go back to your 2 edits. Previously this was not possible.

0
On

If you know how to edit the ISPCMDS table, you can add a HOLD command there.

Use a verb of HOLD, T of 0, and an action of SELECT PANEL(ISR@PRIM) OPT(&ZPARM) NEWAPPL(ISR) SUSPEND

If your site's primary panel name is something else, use that instead of ISR@PRIM. This will add the HOLD command, just like at EDS.

You may have to copy the current ISPCMDS table to a new dataset and rename it to something else (like TSTCMDS) before you can change it. You'll also have to allocate the new dataset to ISPTABL as well.

After adding the new command at the end of your renamed ISPCMDS table, get out of ISPF, rename the member of your new tables dataset to ISPCMDS, and then allocate your dataset ahead of the ones supplied by your installation. A Google search can shed more light on what has to be done to modify ISPCMDS.

If you are on good terms with your site's systems programmer, he may do it for you and make it available to everyone. It's a nice hack that doesn't require any new code.