FASTPATH Utility Program for ISPF

                    

INTRODUCTION

FASTPATH is a multi-function utility program which allows a TSO user to take advantage of the fast-path command facility in ISPF without having to set up or modify the existing ISPF environment. FASTPATH temporarily installs its own commands in the ISPF command table and provides 30 built-in functions to support them.

FASTPATH is written in assembler. It is a free program, available in source-code and load-module format in the freeware section of this Web site.

           

OVERVIEW

FASTPATH was originally designed for consultants and application programmers who often are not allowed to customize the ISPF environment in which they have to work. To use FASTPATH, the TSO user must be able to install (or update) a load-library on MVS and issue a TSO command from within ISPF; that's all.

For example, let's assume that you just logged on TSO as JOHNDOE using a LOGON procedure and ISPF set-up you know nothing about. You transfer CBTTAPE.FILE183.LOAD to your MVS system, then activate FASTPATH by issuing the TSO CALL 'CBTTAPE.FILE183.LOAD(FASTPATH)' command, which returns to you with the "ISPCMDS Updated" message in the upper right hand corner of the ISPF screen. If you press the HELP key at this time, you get a long message that indicates the name of the commands that have been added to the in-storage copy of the ISPF command table (ISPCMDS).

At this point, FASTPATH has initialized itself by doing the following:

  1. make itself resident in memory for the rest of the ISPF session
  2. add a set of fast-path commands to your own in-storage copy of ISPCMDS; these commands are:
    	Function | Description
         --------------------------------------------------------------------------
    	BR	 | Browse Entry Panel
    	CALendar | Display pop-up calendar
    	CONNECT	 | Connect to your Workstation
    	CNTL 0	 | Edit your ISPCTL0 or SPFTEMP0.CNTL data set
    	CNTL	 | Edit the current ISPCTLn or SPFTEMPn.CNTL data set
    	CRASH	 | Quick exit from ISPF to TSO READY
    	D2X	 | Convert a decimal value to hexadecimal
    	ED	 | EDIT Entry Panel
    	FSPASTE	 | Full-screen PASTE
    	FSTso	 | TSO full-screen command (was TSOFS)
    	ICS	 | ISPF Command Shell (opt 6)
    	IND$FILE | IND$FILE command (this allows you to transfer files to/from
    		 | your PC without having to go to TSO READY or opt 6)
    	LC	 | Full-screen LISTCAT
    	LISTBc	 | LISTBC command
    	LOAD	 | Load a program in memory
    	LOGON	 | Exit ISPF and re-LOGON
    	LOGOFf	 | Exit ISPF and LOGOFF
    	MAClib	 | View a member in SYS1.MACLIB or SYS1.MODGEN
    	NETStat  | Display NETSTAT output in full-screen mode
    	PARMLib  | Edit a member in SYS1.PARMLIB
    	RECEive  | RECEIVE command
    	REXXTry  | Execute a REXX statement
    	RMFmon	 | Start RMF
    	SDsf	 | SDSF
    	SYSID	 | Show system id in screen corner
    	TIME	 | Display time, date and julian date
    	TSOCmd	 | TSO command
    	UNLOAD	 | Remove a program from memory
    	UTil	 | Utility Selection Panel (PDF opt 3)
    	VERAse	 | Remove a variable from the Shared and/or Profile pool.
    	VI	 | View Entry Panel (ISPF V4)
    	WP	 | Work-Place (Opt 11 in ISPF V4R2)
    	X2D	 | Convert a hexadecimal value to decimal
    	ZDEL	 | Display and set the ZDEL variable 
  3. make specific TSO, ISPF and SDSF modules resident to improve performance
  4. start a timer to prevent the TSO session from timing out (if FASTPATH has been assembled with the SYSPARM(STOP522) option)

You're all set to use FASTPATH. Here are some of the capabilities you can take advantage of:

  1. Command Stacking

    Enter ED and the EDIT Entry Panel appears on top of the current screen; Enter UT 4 and the Data Set List panel comes up. Enter any of the fast-path commands listed above to activate a new function on top of the current one. The number of functions you can "stack" in this fashion is only limited by the REGION parameter you specified at LOGON; to unstack, use the END, RETURN or CANCEL key.

  2. Command Stacking with Dsname or Tag

    Enter a data set name after the ED, BR, VI or WP commands to directly process the specified data set or PDS member; for example, entering the VI 'SYS1.PROCLIB(JES2)' command allows you to VIEW the JES2 procedure.

    Enter a character string (a "tag") after the ED, BR, VI or WP commands and the values you enter will be associated with the tag.

    For example, enter ED JCL and enter the values JOHNDOE USER JCL in the Project, Group and Type fields; from that point on, each time you invoke the ED, BR, VI or WP with the JCL tag, FASTPATH will present the same values to you, which you can change at any time. For the UT (utilities) and SD (SDSF) commands, the tag is the sub-option for the command; for example, UT 4 takes you to the Data Set List panel (PDF opt 3.4); SD H gets you directly into the SDSF Held Output Display.

  3. Cursor-driven Command Stacking

    Enter BR in the command field, move the cursor under a data set name currently appearing on your screen and press ENTER. FASTPATH extracts the data set name from the screen and invokes BROWSE. This feature works with ED, BR, VI, WP and LC.

Installing FASTPATH

FASTPATH works on MVS/ESA V4R3, MVS/ESA V5, OS/390 and z/OS. Four different installation procedures can be used for FASTPATH. The choice is determined by the degree of commitment of the tech support staff toward FASTPATH: cold, lukewarm, hot.

  1. Low-impact installation

    The easiest installation method consists in linking FASTPATH into a load-library that is *not* in the normal search sequence, i.e. not present in the ISPLLIB, STEPLIB or system concatenations. In this case, the user must invoke FASTPATH via the TSO CALL command at the beginning of each ISPF session.

  2. Medium-impact installation

    In this scenario, FASTPATH is link-edited into a load-library that is in the normal search sequence, i.e. present in the ISPLLIB, STEPLIB, TSOLIB or system concatenations. Users who want to take advantage of the FASTPATH facilities must invoke it once, via the TSO FASTPATH command, at the beginning of each ISPF session.

  3. Medium-high-impact installation

    In this scenario also, FASTPATH is link-edited into a load-library that is in the normal search sequence, and the ISPF star-up command is modified to execute FASTPATH; example:

    	ISPSTART PGM(FASTPATH) PARM(SELECT PANEL(MAINMENU)) 
  4. High-impact installation

    In this scenario also, FASTPATH is link-edited into a load-library that is in the normal search sequence, and the technician in charge of ISPF installation customizes the ISPCMDS table (or the site table in ISPF 4.2) to make fast-path commands permanently available. Users no longer have to invoke FASTPATH at the beginning of their ISPF session to activate fast-path commands. Note that initialisation functions (such as PRELOAD and STOP522) are not available in this scenario.

Invoking FASTPATH

FASTPATH can be invoked as a TSO command or as a program. Depending on how it is invoked, FASTPATH will execute an initialisation procedure or perform a function.

  1. Initialisation is performed when FASTPATH is invoked as a command, as a program with PARM='', or as a program with R1=0.
    • When FASTPATH is invoked as a TSO command, the following initialisation routines are executed:
      	o  PRELOAD
      	o  RESET
      	o  STOP522
      	o  ISPCMDS 
    • When FASTPATH is invoked as a program (without a parm), the following initialisation routines are executed:
      	o  PRELOAD
      	o  RESET
      	o  STOP522 

      Initialisation only occurs once during an ISPF session. As part of the initialisation procedure, FASTPATH makes itself resident in memory until ISPF terminates. If a new version of FASTPATH is link-edited, it is not accessible to a user who has already initialized it, because the in-storage copy has precedence over any other version. However, you may issue TSO FASTPATH at any time to receive a message indicating what fast-path commands are available. You may also delete the in-storage copy of FASTPATH by entering the UNLOAD FASTPATH command on each of the ISPF logical screens currently open. Then, by entering TSO FASTPATH, you can install the updated version of FASTPATH.

    • When FASTPATH is invoked via the CALL command with PARM=CRASH, then initialisation functions are not performed. This feature, new in release 139, allows a TSO user to exit ISPF and execute their own set-up CLIST even when their installation forces LOGOFF when ISPF is exited.
  2. function Processing is performed when FASTPATH is invoked as a program with a parm that request a specific function (see parm format, below).

Conflicts between FASTPATH and TSO commands

Some FASTPATH commands have the same name as TSO/E commands. This can be an issue if a user wants to enter a TSO command such as NETSTAT in the ISPF Command Shell (PDF opt 6). ISPF provides two ways around this problem:

Execute commands in a new logical screen

In ISPF 4.2 and above, a user can direct FASTPATH commands to execute in a new logical screen using one of the following methods:

  1. with the ISPF START command: START BR 'sys1.samplib'
  2. by appending a + sign to the command: BR 'sys1.samplib' +
  3. by creating new commands in ISPCMDS; for example:
    	ISPCMDS VERB=BRS,						X
    		TRUNC=0,						X
    		ACT='SELECT PGM(ISPSTRT) PARM(BR &ZPARM) SUSPEND',	X
    		DESC='Start BROWSE in a new screen' 

INITIALISATION FUNCTIONS

1. ISPCMDS

The ISPCMDS adds a set of fast-path commands to the in-storage copy of the ISPCMDS table. The commands are defined in a table at the end of the FASTPATH program. Example:

	ISPCMDS VERB=SDsf,						X
		TRUNC=2, 						X
		ACT='SELECT PGM(FASTPATH) PARM(SDSF,&ZPARM)',		X
		DESC='Fast Path Command: SDSF' 

Before adding a command to ISPCMDS, FASTPATH checks for an existing command with the same name (homonym) and, if one is found, deletes it. In ISPF 4.2 and above, FASTPATH also checks and deletes homonyms commands when they exist in the "user" and "site" tables.

2. PRELOAD

The purpose of the PRELOAD routine is to speed up access to some re-entrant programs (such as PDF Edit and Browse) which normally reside in system libraries (LPA or link-list). The PRELOAD processing is driven by an in-line table which can be customized by the user.

o For LPA modules, PRELOAD creates an entry in the Job Pack Area (JPAQ). When LOAD, LINK, ATTACH or XCTL is issued, MVS looks in the JPAQ for a useable copy of the module. If one is found there, I/O is reduced because the ISPLLIB and STEPLIB directories do not need to be searched. The following programs are among the LPA modules processed by PRELOAD:

	ISRBRO  	PDF 1
	ISREDIT 	PDF 2
	ISRUDA  	PDF 3.1 & 3.2
	ISPEXEC 	ISPF application interface
	IRXEXEC 	REXX interpreter
	IRXSTAMP	REXX stack manager 

o Other re-entrant modules (link-list, ISPLLIB, STEPLIB, etc), are made permanently resident in the user's address-space. This can improve performance because no directory searches or module loads are required when these programs are invoked. It can also increase paging activity; therefore, pre-loading non-LPA modules should be used with caution.

o Other modules can be pre-loaded from the tasklib when FASTPATH is initialized using the CALL command (see "low-impact Installation" above). In this case, FASTPATH can pre-load modules that are present in the library from which it executes. These modules can be RENT or REUS.

NOTE: Pre-loading of PLPA modules in available in MVS/ESA 4.3 and above. This function uses undocumented formats of the LOAD and IDENTIFY macros to clone the LPDE, create two CDEs and one XTLST for each module and chain the CDEs to the JPAQ. Note that the modules themselves are not duplicated, the only version that exists is the one in PLPA; all that PRELOAD does is create entries in the JPAQ that point to the PLPA modules.

3. RESET EDIT Macro

FASTPATH issues the IDENTIFY macro to define the RESET entry point as a program. When RESET is executed as an EDIT macro, it issues the following statements:

	ISREDIT MACRO
	ISREDIT RESET 

This allows you to specify !RESET as an initial macro without having to have a program by that name anywhere. This is no longer needed in ISPF V5 where any EDIT command can be specified as initial macro.

4. STOP522

This function establishes a recurring timer that prevents system time-out abends (S522) between the hours of 08:00 and 19:00 to keep the TSO session active. STOP522 sets its timer interval just one minute shorter than the SMF Job Wait Time (JWT); for example, if the JWT is set to 0030 (30 minutes), STOP522 uses a 29-minute interval.

The STOP522 function has two requirements:

  1. SYSPARM(STOP522) must be specified when FASTPATH is assembled.
  2. FASTPATH must execute in a TSO/E 2.4 environment (or above).

FASTPATH Commands

The ED, BR, VI and WP commands

The BR, VI, ED and WP commands produce five different results:

  1. Display the corresponding PDF Entry panel on top of the currently displayed application, or
  2. Invoke the Browse, View or Edit PDF service (or the ISPF Work-place) using the data set name specified in the command, or
  3. Invoke the View or Edit PDF service for a Work-station file whose name is specified in the command, or
  4. Display the Reference Data Set List and, when the user selects an entry, invoke the Browse, View or Edit PDF service (or the ISPF Work-place) for the corresponding data set, PDS member or Work-station file, or
  5. Invoke the Browse, View or Edit PDF service (or the ISPF Work-place) using the data set name under which the cursor is positionned when the user presses ENTER. This technique is often called "point-and-shoot".

The BR, VI, ED and WP commands invoke the following FASTPATH functions: BROWSE, EDIT, VIEW and WP. FASTPATH always switches to NEWAPPL(ISR) to ensure predictable PFK configuration.

  1. Display the PDF Entry Panel

    If the BR, VI, ED and WP command is entered without any parameter, FASTPATH displays the corresponding PDF entry panel. For example, if the user enters BR, the BROWSE Entry Panel is displayed in ISPF/PDF V3 and, in ISPF V4, the View Entry Panel is displayed with a / in the Browse Mode choice. If the user enters ED, then the Edit Entry panel is displayed.

    If the user specifies a tag such as J or ABCDEF along with the command, FASTPATH displays the corresponding entry panel with the values that were specified the last time the same tag was specified.

    For example, user JOHNDOE enters ED J, fills the Project, Group and Type fields with JOHNDOE, USER and JCL. Each time user JOHNDOE issues BR J, or VI J, or ED J, or WP J, the corresponding entry panel comes up with JOHNDOE, USER and JCL in the Project, Group and Type fields.

    FASTPATH keeps track of most of the fields on the entry panel, namely Project, Group (1 to 4), Type, Initial Macro, Format, and Browse Mode.

    For the Workplace, FASTPATH also keeps track of the last View (Library or Data set), the object name and volume serial.

    When a tag is specified for the first time, FASTPATH checks the catalog for an existing data set, using a dsname built by concatenating the TSO prefix to the tag. If the data set exists, FASTPATH treats the tag as a partially-qualified dsname and invokes the ISPF function directly.

    FASTPATH saves the tags and associated data in profile variables, using names EDBR0000, EDBR0001, etc. The user can clean unwanted variables from the profile using PDF option 7.3 or the VERASE command.

  2. Explicit data set name

    The user can specify a partially or fully qualified data set name which may include a member name. For example, the user may enter BR CLIST, ED 'USER.CLIST' or VI CLIST(XXX*). When this format is used, FASTPATH directly invokes the corresponding ISPF service without displaying the service's entry panel.

    If a partially-qualified data set name is specified, FASTPATH checks the catalog for the name obtained by prefixing the TSO prefix; if the name is found, then it is used. If the prefixed data set name is not found, then FASTPATH uses the name as specified, i.e. without the TSO prefix. For example, if the current TSO prefix is JOHNDOE and the user enters BR SYS1.PROCLIB, then FASTPATH will access JOHNDOE.SYS1.PROCLIB if it exists, SYS1.PROCLIB otherwise.

    Uncataloged data sets can be accessed by specifying the volume serial number as part of the dsname; two formats are available:

    1. dsname/volser - example: BR SYS1.CMDLIB/OLDRES
    2. volser:dsname - example: BR OLDRES:SYS1.CMDLIB

    Instead of a dsname, the user may specify an asterisk, which FASTPATH interprets as "the last data set name explicitely specified".

    FASTPATH saves the dsname and volser in the BRDSN, BRMEM and BRVOL profile variables, for compatibility with the CNAEBROW and CNAEEDIT public-domain CLISTs.

    Note: If the ISPF BROWSE service fails and the BR command is available, FASTPATH invokes it. The BR command is able to process data set formats that are not normally supported by the ISPF BROWSE service, such as VSAM, BDAM, empty data sets, multi-volumes, etc.

  3. Work-station file name

    The user can specify the name of a file on the work-station to which he is connected using the ISPF Work-station agent. This function, which requires ISPF V4R2, only works with Edit and VIEW.

    For FASTPATH to properly identify a work-station file, the name must start with:

    1. a slash: ED /etc/user.text
    2. a drive identifier: VI C:\config.sys
    3. a tilde: ED ~myfile.conf
  4. Reference Data Set List

    If the parameter entered in the BR, VI, ED or WP command consists of a single slash character ("/"), FASTPATH displays the Reference Data Set List; the user can select one of the data set names to be processed as specified by the command entered.

  5. Point-and-shoot

    If the command is entered without a parameter and FASTPATH detects that the cursor is positionned under a data set name, then the dsname is extracted and passed to the corresponding function.

    For example, if the user enters BR, VI or ED, moves the cursor under a dsname appearing on the screen and hits ENTER, the corresponding data set or PDS member is automatically browsed, viewed or edited. If WP is entered instead, the Work Place view is switched to Data Set and the Work Place panel is displayed with the dsname placed in the "Object Name" field.

    Dsname Extraction Rules:

    • the dsname must appear in totality on the screen and can not be on a message line or in a message window
    • the data set must be cataloged
    • the dsname can include a member name
    • the dsname can be enclosed in apostrophes (single quotes) or surrounded by parentheses
    • the dsname can be in upper-case, lower-case or mixed-case
    • the dsname can contain a relative generation number, such as (+1) or (-2)
    • the member name can be generic, i.e. contain asterisks or percent signs

    The following figure shows examples of data set names and the "hot-zone" (marked with hyphens) under which the cursor must be positionned for proper extraction of the data set name.

    If the dsname contains a relative generation number or generic member name, then the "hot-zone" only includes the dsname portion of the name.

             EDSN(JOHNDOE.EXEC)            ((JOHNDOE.DDIR))
                 --------------            ----------------
    
             JOHNDOE.CLIST(LOGPROC)        (JOHNDOE.ISPF.ISPPROF(ISREDIT)
             ----------------------        ------------------------------
    
             dsn (johndoe.clist )          'johndoe.ispf.ispprof(isr*)'
                 --------------            ---------------------
    
             DSN=JOHNDOE.CLIST(PDF44)      DSNAME='JOHNDOE.CLIST(PDF44)'
             ------------------------      -----------------------------
    
             NONVSAM--JOHNDOE.EXEC
             --------------------- 

    Notes: When a dsname is not properly extracted by BR, VI or ED, the user should retry with the WP command, correct the dsname, then enter the B, V or E action character. If the ISPF BROWSE service fails, FASTPATH invokes the BR command if it is available.

    When a BR, ED, VI or WP command is entered for a specific data set, i.e. with the explicit dsname, referral list of point-and-shoot options explained above, FASTPATH issues RACROUTE to check the user's access to the data set. If the user does not have READ access, FASTPATH fails the command to prevent an S913-28 abend and issues a warning message.

  6. Migrated Data Sets

    When it detects that an action is performed against a migrated data set, FASTPATH prompts the user before the system RECALLs the data set. The user has the possibility to terminate the action or RECALL the data set and continue.

  7. Relative Generation data sets

    When it detects that a point-and-shoot action is performed against a dsname which contains a relative generation number such as AA.BB.CC(+1), FASTPATH changes the relative generation number to .G*V%% and invokes the Work-place instead of the requested function. This results in the ISPF Workplace panel being shown with the converted dsname as follows:

    	Object Name . . . . 'AA.BB.CC.G*V%%' 

    The user can then press ENTER to invoke the Data Set List utility to display the currently active generation associated to the specified generation data set.

The CALendar Command

The CALendar command uses the CAL option of the ISPF V4 Status Area to display a calendar in a pop-up window.

The CONNECT Command

The CONNECT command invokes the WSCON function of FASTPATH to initiate a connection with the ISPF Work-station Agent (ISPF 4.2 and above). CONNECT is a shortcut to the panel normally reached using the Settings option. CONNECT has no operand. On ISPF 5.0 and above, the WSCON and WSDISCON commands should be used instead of CONNECT.

The CNTL Command

The CNTL command allows the user to EDIT the ISPF control data set whether it's preallocated in the LOGON procedure to DDNAME(ISPCTLn) or allocated by ISPF to DSNAME(userid.SPFTEMn.CNTL). CNTL edits the control data set that corresponds to the logical screen in which the CNTL command is entered, except if CNTL 0 is entered, in which case the SUBMIT temporary data set (ISPCTL0) is edited.

The CRASH, LOGON and LOGOFF commands

The CRASH command causes ISPF and any application executing under it to terminate and control to return to the TMP. CRASH is useful when the user wants to exit ISPF in a hurry without properly closing work in progress such as EDIT sessions. For all intents and purposes, CRASH causes ISPF to terminate as if the TSO session was cancelled by the operator, except that the TSO session itself does not abend.

The user can specify a TSO command to be executed at the READY prompt after the termination of ISPF. For example, entering CRASH PDF terminates ISPF and re-enters it immediately. Similarly, entering CRASH %MYCLIST or CRASH TSOLIB DEACT execute the corresponding command at the READY prompt.

If the CRASH =pli command is entered, FASTPATH retrieves (and executes at the READY prompt) the following TSO/E commands:

	p. the command specified in the PARM field of the TSO/E LOGON procedure
	l. the command specified in the command field of the TSO/E LOGON panel
	i. the command used to invoke ISPF (such as PDF, ISPF or ISPSTART).  

Each command is executed in the order specified for its identifier (that is, p, l or i) in the =pli string. For example, if CRASH =p is entered, only the command specified in the LOGON proc's PARM is executed; if CRASH =li is specified, both the command from the LOGON panel and the command used to invoke ISPF are executed. If =pli is specified, all three commands are executed.

If CRASH is entered without a command, control returns to the READY prompt or, if ISPF was invoked from a CLIST, to the next CLIST statement. Note that, unlike CLISTs, REXX EXECs do not survive CRASH: any REXX EXEC started before ISPF (and still active at the time CRASH is executed) is terminated.

The LOGON and LOGOFF fast-path commands are shortcuts to CRASH LOGON and CRASH LOGOFF. For example, entering LOGOFF terminates ISPF and executes the LOGOFF command. Entering LOGON JOHNDOE terminates ISPF and issues the LOGON JOHNDOE command to re-logon.

If CRASH is issued while a CLIST or REXX EXEC is running within ISPF, the recovery routine of the EXEC command writes abend messages to the terminal. This is normal and can not be eliminated.

The D2X Command

The D2X command uses the REXXTRY function to convert a decimal value to hexadecimal. Example:

	D2X  12345+23 

The FSPASTE Command

The FSPASTE command displays a completely blank input screen that allows pasting of text that is wider and higher than the ISPF editor input area. Once the data is pasted (using the paste facility of the 3270 emulator), it is presented to the user in a dedicated VIEW session, from which it can be processed with EDIT command or macros (such as CREATE, CUT or ROUTE). FSPASTE requires the presence of the STEMEDIT utility program.

The maximum number of lines that can be pasted is the number of horizontal lines of the 3270-type terminal; for example, a 3270-5 standard terminal, the maximum number of lines is 27. If too many lines are pasted, then additional lines overlay the top lines - it's a mess ! Sorry !

The FSTso Command

The FSTso (TSO Full-Screen) command executes the TSO command passed as a parameter, captures the output using OUTTRAP and displays the result using BRIF (the ISPF BRowse InterFace). FSTso requires the presence of the STEMDISP or STEMEDIT utility programs. When STEMEDIT is used, the user can switch from BROWSE to VIEW by entering the V command, then use commands such as CREATE, CUT or ROUTE to transfer the data to a permanent location.

To display the HELP text for the LISTCAT command, enter:

    FSTso H LISTCAT 

To retrieve the data set name at the cursor location, use the %DSNAME string, as shown in this example:

    FSTso LISTCAT ENT('%DSNAME') 

FSTso uses the standard TSO/E OUTTRAP facility and, consequently, only supports applications that use PUTLINE to write to the TSO terminal. Programs that use TPUT or BSAM/QSAM to write to the TSO terminal do not work with FSTso

The ICS Command

The ICS command invokes the ISPF Command Shell (PDF option 6).

The IND$FILE Command

The IND$FILE command allows 3270-type file transfer on any ISPF screen. This works with IBM's PC/3270 (aka PCOM) and Passport emulators, as well as with some (but not all) non-IBM emulators.

The LC command

The LC command uses the FSTSO function to provide a point-and-shoot, full-screen LISTCAT facility. LC extracts the dsname under the cursor, invokes the LISTCAT command and presents the result in a BROWSE window.

The LISTBc command

The LISTBc command invokes the TSO LISTBC command with MODE(FSCR) to ensure displayed messages are displayed at the top of the screen.

The LOAD and UNLOAD commands

The LOAD command loads a RENT or REUS program in the address space for the duration of the ISPF session or, if ISPF has been invoked via a REXX EXEC, until the EXEC terminates. UNLOAD deletes a module that is currently loaded in memory. Caution should be exercised when using the UNLOAD command, as deletion of an in-use module may cause abends.

Notes:

The MACLib Command

The MACLIB command displays a macro in the SYS1.MACLIB and SYS1.MODGEN concatenation using BROWSE in ISPF/PDF V3 or VIEW in ISPF V4. To display all the TSO macros, enter:

	MAClib IKJ* 

If FASTPATH finds a PVTMACS library on the system, it concatenates it to MACLIB and MODGEN. FASTPATH looks for the following names:

	SYS1.PVTMACS, &ZUSER..PVTMACS, &ZUSER..PVTMACS.MACLIB 

The NETSTAT Command

The NETSTAT command invokes the TCP/IP NETSTAT command and displays the result using BRIF. This function requires the presence of the STEMDISP or STEMEDIT utility programs.

The NETSTAT command accepts the same parameters as the TCP/IP NETSTAT command, except STACK and REPORT. For example:

	NETSTAT DEVLINK 

Note: Specifying NETSTAT without any parameter is equivalent to NETSTAT CONN.

The PARMLib Command

The PARMLib command EDITs members in SYS1.PARMLIB or in the PARMLIB concatenation (OS/390 R2 or above). If the user doesn't have UPDATE authority to SYS1.PARMLIB, then VIEW is used instead of EDIT. Example:

	PARML IEASYS* 

The REXXTry Command

The REXXTry command executes a line of REXX code passed as an argument. For example:

	REXXTRY SAY 256*3 

REXX and ISPF both use the semi-colon to separate statements and commands. Before REXXTRY is invoked to execute a the line of code that contains multiple statements separated by a semi-colon, the ZDEL command should be issued to change the ISPF command delimiter to another character. For example:

    ZDEL :
    REXXT x='abcdef'; SAY x
    ZDEL ; 

The SDsf Command

The SDdf command starts SDSF. An SDSF option can be specified in the command. For example:

    SD H ABC* 

The SYSID Command

The SYSID command displays the system ID (SMFSID) and ISPF logical screen number in the upper left-hand corner of the screen (ISPF 4.2 or above). The display is permanent and only affects the current logical screen. Entering SYSID OFF or SCRNAME OFF turns the display off.

This command can not be entered on an SDSF screen because SDSF has a SYSID command of its own. However, SYSID can be issued on the ISPF primary options menu before SDSF is started. To enter the command while already in SDSF, proceed as follows:

  1. stack any non-SDSF panel on top of SDSF (e.g. enter BR)
  2. issue SYSID
  3. issue the END or RETURN command to go back to the SDSF screen

The TIME Command

The TIME command displays the date and time in the upper right-hand corner of the screen. Pressing the HELP key right after entering the TIME command displays the day of the week and the julian date. Example:

EDIT     GILBERT.FILE183.PDS                               2009-12-14 19:50:45
Command ===>                                                  Scroll ===> CSR
Monday 14 Dec 2009  2009.348  19:50:45  Timezone: E.00.59.16 

The TSOCmd Command

The TSOCmd (TSO Command) command executes the TSO command passed as a parameter. To retrieve the data set name at the cursor location, use the %DSNAME string, as shown in this example:

    TSOCmd LINKMAP '%DSNAME' 

The UTil Command

The UTil command invokes the Utility Selection Panel (PDF option 3). A sub-option can be specified in the command. For example, to invoke the Data Set Utility (PDF option 3.4), enter:

    UTil 4 

The VERASE Command

The VERASE command removes a variable from the shared and/or the profile pool. To delete the EDBR0023 variable from the ISPF profile, enter:

    VERASE EDBR0023 

The X2D Command

The X2D command uses the REXXTRY function to convert a hexadecimal value to decimal. Example:

    D2X  3E8 

The ZDEL Command

The ZDEL command displays or sets the ZDEL variable, which specifies the character used to chain ISPF commands (the default value is ";"). When entered without an operand, ZDEL displays the current value of the ZDEL variable (i.e. the current command delimiter). A new delimiter can be entered in the command; for example, to change the current delimiter to the back-slash, enter:

    ZDEL \ 

The ZDEL function uses an undocumented interface to update the ZDEL variable. This has been tested in ISPF versions from 3.5 through 5.5 but may produce unexpected results in future releases of ISPF.

The B, D, E and V functions

These functions do not correspond to any fastpath command but are available when access to the BROWSE, LMMDEL, EDIT or VIEW services is needed in an ISPF Dialog Manager panel.

The EXECPGM function

This function speeds up the execution of a program from the link-list.

The FTINCL function

This function performs a simple File Tailoring sequence which can be invoked from an ISPF panel. The format of the PARM is as follows:

	PARM='FTINCL,&skel,&panel,&applid' 

The FTINCL functions invokes the following ISPF services:

	DISPLAY PANEL(&panel)	(optional)
	FTOPEN TEMP
	FTINCL &skel
	FTCLOSE
	EDIT DATASET(&ZTEMPF) 

The SELECT function

This function allows FASTPATH to be automatically invoked when ISPF starts to perform initialisation tasks such as ADDCMDS and PRELOAD. When FASTPATH is finished initialising, it starts the main ISPF service, typically a primary option menu such as ISP@MSTR or ISR@PRIM. The main ISPF service is specified in the SELECT parm as shown in this example:

	ISPF PGM(FASTPATH) PARM(SELECT PANEL(APRIOPT) NEWAPPL(MVS)) 

Note that FASTPATH normally requires that a comma be used to separate the name of the function from its parameters; in the case of SELECT, a space may be used as shown in the preceding example.

If PARM is omitted or simply specified as PARM(SELECT), FASTPATH starts PANEL(ISR@PRIM) NEWAPPL(ISR) as the main service.

FASTPATH PARM

       PARM=function<,option><,profile><,parm4>

	function   |  option     | profile  |  parm4
     --------------|-------------|----------|-------------
	B          |  dsn        | profile  |
	BROWSE     |  tag or dsn | profile  |
	CALENDAR   |             |          |
	CONNECT    |             |          |
	CNTL       |  dsn        | profile  |
	CRASH      |  command    |          |
	D          |  dsn        | member   |  NOENQ
	E          |  dsn        | profile  |
	EDIT       |  tag or dsn | profile  |
	EXECPGM    |  pgm name   | parm     |
	FSPASTE    |             |          |
	FSTSO      |  command    |          |
	FTINCL     |  skeleton   | panel    |  applid
	ICS        |             |          |
	LOAD       |  program    |          |
	MACLIB     |  member     | profile  |
	NETSTAT    |  parameters |          |
	PARMLIB    |  member     | profile  |  VIEW/EDIT
	REXXTry    |  command    |          |
	SDSF       |  subcmd     |          |
	SELECT     |  options    |          |
	SYSID      |  OFF        |          |
	TIME       |             |          |
	UNLOAD     |  program    |          |
	UTIL       |  subopt     |          |
	V          |  dsn        | profile  |
	VERASE     |  var name   |          |
	VIEW       |  tag or dsn | profile  |
	WP         |  tag        |          |
	ZDEL       |  new dlm    |          |  

Customizing FASTPATH

1. Tables

FASTPATH contains two tables that can be easily modified.

a. the ISPCMDS table, which contains the entries that FASTPATH adds to the ISPCMDS at the beginning of an ISPF session. This table can be found at the very end of the FASTPATH source .

b. the PRELOAD table, which contains the name of the programs that FASTPATH pre-loads to enhance performance.

2. RESET

The RESET EDIT macro may prevent you from accessing a real program also called "RESET". In that case, you may comment out the IDENTIFY macro that defines RESET.

FASTPATH Q&A

Q. What is the environment required to run FASTPATH?

A. Fastpath runs on MVS/ESA V4R3, MVS/ESA V5, OS/390 and z/OS.

Q. My installation does not allow "command stacking" in ISPF, they claim it "uses too many resources".

A. This is probably incorrect. Command stacking uses less resources than any of its alternatives, particularly when a user constantly switches between functions using jump commands (such as =3.4).

Q. We have already modified ISPCMDS and defined ED and BR as fast-path commands to invoke EDIT and BROWSE directly. We plan to use SITECMDS in ISPF V4.2.

A. FASTPATH offers additional capabilities: tags, cursor-driven capabilities, and APPLid consistency. You can get the best of both worlds by modifying ISPCMDS to invoke FASTPATH built-in functions instead of calling directly EDIT and BROWSE.

Q. We run ISPF 3.5 and have installed fast-path commands in ISRCMDS because we didn't want to modify ISPCMDS.

A. In that case, fast-path commands can only be used when you're in PDF; for example, they won't work in SDSF.

Q. We use ISPF V4 which has the action bar and Reference Lists. Do we still need FASTPATH commands?

A. The action bar is only available when you are in ISPF and it requires more key-strokes than FASTPATH. Reference lists also require key-strokes and scrolling. They offer no equivalent to the cursor-driven capabilities of FASTPATH commands .

Q. Our systems Programmer is a 3.4 maniac who doesn't want to customize ISPF so we can use fast-path commands. What can we do?

A. You can use FASTPATH just for yourself without having to make modifications to the ISPF environment. Link it into a private load-library and call it once at the beginning of an ISPF session: as long as you stay in ISPF, fast-path commands are available to you.

Q. I used fast-path commands before but they were not always working properly: when stacking BROWSE on top of SDSF, for example, the FIND key wouldn't work right.

A. This is an APPLid problem caused by an improper set-up. FASTPATH makes sure every function is invoked with the right APPLid to ensure predictable and constant behaviour.

Q. When using FASTPATH's cursor-driven capabilities, we noticed that the dsname is not always extracted correctly.

A. The dsname extraction algorithm in FASTPATH has been rewritten in release 129 and will be further improved in the future. Dsname extraction only works if the dsname is fully visible on the screen, and not in a message line or message window.

Q. How can I automatically set FASTPATH commands up without having to type TSO FASTPATH each time I start ISPF?

A. You can specify FASTPATH in the ISPF start command, for example:

	ISPF PGM(FASTPATH) PARM(SELECT PANEL(APRIOPT) NEWAPPL(MVS))  

Last Update: July 2012 for the release 149 of FASTPATH.