CLIST, ISPF 2.x, MVS38J, TSO, Utility

CALISPF in MVS38J

Overview

CALISPF– Calendar on ISPF Panels for MVS38J /ISPF / Hercules
(current version 0.9.00  2023-01-31)

Displaying a calendar view for the current month as part of the ISPF Primary Option Menu is a simple panel modification / configuration task in the current ISPF product from IBM. The calendar date is maintained within ISPF similar to the the various z-variables under ISPF. However, this functionality is currently not available on ISPF v2.2, product from Wally Mclaughlin.

Monthly Calendar View

 January 2023     008  
  S  M  T  W  T  F  S  
  .  .  .  1  2  3  4  
  5  6  7  8  9 10 11  
 12 13 14 15 16 17 18  
 19 20 21 22 23 24 25  
 26 27 28 29 30 31     
                    .

To enable this experience on your personal MVS 3.8J / TSO / ISPF mainframe, an application was created to complement ISPF v2.2!

Calendar for ISPF (CALISPF) is a stand-alone application that can be integrated into ISPF v2.2+ panels to display a calendar view in a 8 x 21 (8 rows, 21 bytes per row) dynamic area as shown in the snippet. This application is comprised of a CLIST and panel logic conforming to ISPF panel flow (display of panel and reading of panel).

I have been utilizing a prototype version on several selection panels since ISPF v2.0 and decided to contribute this add-on package to the MVS 3.8J hobbyist community.

Enjoy your calendar view on ISPF v2.2+!

Larry Belmontes

How It Works

CALISPF transacts at the user-id level by maintaining two session variables in the users ISPF profile, specifically, CALENDAR and CALDATE, through the use of one central CLIST, CCAL.

CALENDAR is a data string representing a current calendar layout with ISPF attributes for colorization including highlighting of current date as rendered in the above snippet.

The monthly content of the 8 x 21 calendar view contains:
Row 1-1 – Month Name, Century-Year, Day of Year
Row 2-2 – Sunday to Saturday weekday abbreviations
Row 3-8 – Dates with highlighted current system date

CALDATE is a Julian date representing the last CALENDAR update date and used to trigger a CALENDAR data update via CCAL when (CALDATE ≠ ZJDATE).

As an external and independent application (not integrated within ISPF, product from Wally Mclaughlin), CALISPF will require various integration points.

Implementing a calendar view on a target panel (selection menu or non-selection panel) requires:
– inserting new attribute definitions (dynamic AREA and type DATAOUT statements)
– inserting logic code in the other sections of the target panel.

After completion of target panel modification, the ISPF user session experience is as follows:

  1. On display of the target panel, if calendar date change is detected (CALDATE ≠ ZJDATE), an action message is displayed “CALDR02 Calendar changed. Press ENTER to refresh calendar.”. Upon ENTER, the calendar view is refreshed on target panel.
  2. On input from the target panel (e.g. select option followed by ENTER), if calendar date change is detected (CALDATE ≠ ZJDATE), the selection is saved and an action message is displayed “CALDR01 Calendar updated. Press ENTER to process previous request.”. Upon ENTER, the saved (currently on the command line) selection is processed from the target panel.
  3. On null input (e.g. pressed ENTER with no selection) from the target panel, if calendar date change is detected (CALDATE ≠ ZJDATE), an alert message is displayed “CALDR00 Calendar updated.”.

CUTIL00 and CALISPF

As previously mentioned, CALISPF uses one CLIST, CCAL, whose overall responsibility is maintaining CALENDAR and CALDATE content including the use of CUTIL00 to support colorization options (COLORS(Y) and COLORS(N)).

CCAL is invoked from a target panel in the a TRANSlate statement format as shown in item h under Sample Implementation:

$CCAL,'CMD(%CCAL &DBUG COLORS(&CCOLOR))'

CCAL makes use of the utility, CUTIL00 (version v1R1M06 or greater), to create or update the monthly calendar string (CALENDAR). For more information including downloading CUTIL00, click here.

One of two CUTIL00 functions are used:

CUTIL00 MCALA CALENDAR
– or –
CUTIL00 MCAL CALENDAR

The resulting string from either function is meant to be physically displayed and/or printed as a 8 x 21 data area for total length of 168 bytes.

The CUTIL00 MCALA CALENDAR function creates or updates CLIST string variable (CALENDAR) containing monthly calendar data for the requested date and prefixes each calendar element with a specific ISPF attribute as shown below:

Calendar string for 01082023 (MMDDCCYY):

'aJUNUARY 2023    b008c Sd Md Td Wd Td Fb Sd .d .d .d 1d 2d 3d 4d 5d 6d 7e 8d 9d10d11d12d13d14d15d16d17d18d19d20d21d22d23d24d25d26d27d28d29d30d31                       .'
 +--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------
          Row 1                Row 2                Row 3                Row 4                Row 5                Row 6                Row 7                Row 8


In the above string, (a,b,c,d,e) represent the ISPF DATAOUT attributes (x'51',x'52,x'53,x'54,x,55'), respectively, to facilitate color, intensity and highlighting panel display customization.

ISPF attribute DATAOUT values are:

  • x’51’ to colorize Month Name-Year
  • x’52’ to colorize Julian date
  • x’53’ to colorize Weekend Day Name Abbreviations
  • x’54’ to colorize Week Day Name (exclude Weekend) Abbreviations and calendar dates
  • x’55’ to colorize current date

The CUTIL00 MCAL CALENDAR function creates or updates CLIST string value (CALENDAR) containing monthly calendar data for the requested date and prefixes the today’s date with a visual marker (‘@’ sign) as shown below:

Calendar string for 01082023 (MMDDCCYY):

' JUNUARY 2023     008  S  M  T  W  T  F  S  .  .  .  1  2  3  4  5  6  7 @8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31                       .'
 +--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------
          Row 1                Row 2                Row 3                Row 4                Row 5                Row 6                Row 7                Row 8



The ‘@’ visual highlighter can be transformed to a BLANK to prevent potential conflicts should the ‘@’ be used in the candidate panel set of defined attributes. After CUTIL00 MCAL/MCALA function completes, CUTIL00 REPLACE can be used for the transformation.

 January 2023     008  
  S  M  T  W  T  F  S  
  .  .  .  1  2  3  4  
  5  6  7  8  9 10 11  
 12 13 14 15 16 17 18  
 19 20 21 22 23 24 25  
 26 27 28 29 30 31     
                    .
 January 2023     008  
  S  M  T  W  T  F  S  
  .  .  .  1  2  3  4  
  5  6  7  @8 9 10 11  
 12 13 14 15 16 17 18  
 19 20 21 22 23 24 25  
 26 27 28 29 30 31     
                    .

Note: For each user-id, it is suggested using either option MCALA (COLOR(Y)) or MCAL (COLORS(N) to prevent altering appearance in calendar view when used in more than one target panel.

Sample Implementation:

To ensure CALENDAR and CALDATE are initialized and up-to-date at the start of a users ISPF session, add the following new command line statement before the ISPF start-up command as shown below to your installations TSO/ISPF logon procedure:

.
.
/**********************************************************************/
/* INVOKE CCAL to initialize calendar view    (Y-colors N-monochrome) */
/**********************************************************************/
ISPF CMD(%CCAL COLORS(Y))        <<--- New command line
.
.
ISPF                             <<--- existing ISPF Session Start-up command
.
.

Next, modify target panel(s) with new panel attribute definitions and logic to support the calendar view.

This sample implementation walk-through uses the ISPF v2.2 main menu as the target panel to enable a calendar view by injecting (inserting) code snippets.

Let’s get started with the various panel injections!

In the following, the left side describes each injected set of code and the finalized panel content is shown on the right-side with yellow highlighted inserted code.

/********************************************************************/
/*    Main Menu from Wally's ISPF Product, ISR@PRIM                 */
/********************************************************************/          
)ATTR                                                                           
 + TYPE(TEXT)   INTENS(LOW)  SKIP(ON)    COLOR(GREEN)                           
 % TYPE(TEXT)   INTENS(HIGH) SKIP(ON)    COLOR(WHITE)                           
 ^ TYPE(TEXT)   INTENS(LOW)  SKIP(ON)    COLOR(YELLOW)                          
 _ TYPE(INPUT)  INTENS(LOW)  JUST(LEFT)  COLOR(TURQ)                            
 # TYPE(INPUT)  INTENS(LOW)  JUST(ASIS)                                         
 ~ TYPE(INPUT)  INTENS(HIGH) JUST(LEFT)                                         
 ! TYPE(INPUT)  INTENS(HIGH) JUST(RIGHT)                                        
 { TYPE(OUTPUT) INTENS(LOW)  JUST(LEFT)                                         
 } TYPE(OUTPUT) INTENS(LOW)  JUST(RIGHT)
                                        
/* ----------------------------------------------------------------- CALISPF-A*/
/* Dynamic Area for Calendar                                         CALISPF-A*/
/* ----------------------------------------------------------------- CALISPF-A*/
 * AREA(DYNAMIC) SCROLL(ON)   COLOR(GREEN)                                      
/* ----------------------------------------------------------------- CALISPF-A*/

/* ----------------------------------------------------------------- CALISPF-B*/
/* Attributes for Calendar Colorization                              CALISPF-B*/
/* ----------------------------------------------------------------- CALISPF-B*/
 51 TYPE(DATAOUT) INTENS(LOW)  COLOR(RED)                                       
 52 TYPE(DATAOUT) INTENS(LOW)  COLOR(PINK)                                      
 53 TYPE(DATAOUT) INTENS(LOW)  COLOR(TURQ)                                      
 54 TYPE(DATAOUT) INTENS(HIGH) COLOR(BLUE)                                      
 55 TYPE(DATAOUT) INTENS(HIGH) COLOR(PINK)  HILITE(REVERSE)                     
/* ----------------------------------------------------------------- CALISPF-B*/

)BODY WIDTH(&ZSCREENW) EXPAND(//)                                               
%-------------------------  ISPF PRIMARY OPTION MENU  ----/-/                   
%OPTION  ===>_ZCMD                                                              
                                                        / /+USERID   - &ZUSER  +
%   0 +ISPF PARMS  - Specify terminal and user parms    / /+TIME     - &ZTIMEL +
%   1 +BROWSE      - Display source data using Review   / /+TERMINAL - &ZTERM  +
%   2 +EDIT        - Change source data using Revedit   / /+PF KEYS  - &ZKEYS  +
%   3 +UTILITIES   - Perform utility functions          / /+PANEL    - &ZPANELID
%   4 +FOREGROUND  - Invoke language processors         / /+SCREEN   - &ZSCREEN+
%   5 +BATCH       - Submit job for language processing / /+LANGUAGE - &ZLANG  +
%   6 +COMMAND     - Enter TSO command or CLIST         / /+APPL ID  - &ZAPPLID+
%   7 +DIALOG TEST - Perform dialog testing             / /+RELEASE  - &ZVERSION
%   A +ACETEST     - APF-authorized test facility       / /+PRIM     - &ZPRIM  +
%   C +CHANGES     - Summary of changes for this release/ /+SYSTEMID - &ZSYSID +
%   T +TUTORIAL    - Display information about ISPF     / /+PROC     - &ZSYSPROC
%   X +EXIT        - Terminate ISPF using log and list defaults                 
%                                                                               
+Enter%END+command to terminate ISPF.                  / /*CALENDAR           *+
%                                                      / /*                   *+
%                                                      / /*                   *+
%                                                      / /*                   *+
%                                                      / /*                   *+
%                                                      / /*                   *+
%                                                      / /*                   *+
%                                                      / /*                   *+
)INIT                                                                           
  .HELP = ISP00000                                                              
  &ZPRIM = YES        /* ALWAYS A PRIMARY OPTION MENU      */                   
  &ZHTOP = ISP00000   /* TUTORIAL TABLE OF CONTENTS        */                   
  &ZHINDEX = ISP91000 /* TUTORIAL INDEX - 1ST PAGE isptutor*/                   
 
/* ----------------------------------------------------------------- CALISPF-D*/
/* Initialize calendar working variables and fetch calendar          CALISPF-D*/
/* user profile variables                                            CALISPF-D*/
/* ----------------------------------------------------------------- CALISPF-D*/
  &Z    = ''                           /* Set &Z to NULL             CALISPF-D*/
  &CCOLOR = 'Y'                        /* Y-colors  N-monochrome     CALISPF-D*/
  &DORCMD = 'Y'                        /* Y-Do RCMD N-bypass RCMD    CALISPF-D*/
  &RCMD = ''                           /* Set &RCMD to NULL          CALISPF-D*/
  &DBUG = ''                           /* Set &DBUG to NULL          CALISPF-D*/
  VGET (CALENDAR) PROFILE              /* Fetch CALENDAR variable    CALISPF-D*/
  VGET (CALDATE)  PROFILE              /* Fetch CALDATE variable     CALISPF-D*/
/* ----------------------------------------------------------------- CALISPF-D*/
 
/* ----------------------------------------------------------------- CALISPF-E*/
/* System date change alert via msg CALDR02                          CALISPF-E*/
/* ----------------------------------------------------------------- CALISPF-E*/
  IF (&CALDATE NE &ZJ4DATE)            /* Check for calendar date    CALISPF-E*/
    .MSG = CALDR02                     /* change and alert user      CALISPF-E*/
/* ----------------------------------------------------------------- CALISPF-E*/
 
)REINIT
/* ----------------------------------------------------------------- CALISPF-E*/
/* System date change alert via msg CALDR02                          CALISPF-E*/
/* ----------------------------------------------------------------- CALISPF-E*/
  IF (&CALDATE NE &ZJ4DATE)            /* Check for system date      CALISPF-E*/
    .MSG = CALDR02                     /* change and alert user      CALISPF-E*/
/* ----------------------------------------------------------------- CALISPF-E*/

/* ----------------------------------------------------------------- CALISPF-F*/
/* Reflect command if one was initated due to system date change     CALISPF-F*/
/* ----------------------------------------------------------------- CALISPF-F*/
  IF (&RCMD > &Z)                      /* If saved command present,  CALISPF-F*/
    &ZCMD = &RCMD                      /*  set ZCMD from RCMD        CALISPF-F*/
/* ----------------------------------------------------------------- CALISPF-F*/
 
)PROC                                                                           
/* ----------------------------------------------------------------- CALISPF-G*/
/* Determine if system date changed to invoke CCAL via               CALISPF-G*/
/* ZSEL to update calendar user profile variables and save           CALISPF-G*/
/* any entered command to be displayed in next panel display.        CALISPF-G*/
/* ----------------------------------------------------------------- CALISPF-G*/
  VGET (CALDATE) PROFILE               /* Fetch CALDATE variable     CALISPF-G*/
  IF (&CALDATE NE &ZJ4DATE)            /* Check for cal date chg     CALISPF-G*/
    IF (&ZCMD > &Z)  AND               /* If command present,        CALISPF-G*/
       (&DORCMD = Y)                   /* and do RCMD,               CALISPF-G*/
      &RCMD= '&ZCMD'                   /*  save to reflect back on   CALISPF-G*/
      &ZCMD= '$CCAL'                   /*  on panel                  CALISPF-G*/
      .MSG = CALDR01                   /*  with message              CALISPF-G*/
    IF (&ZCMD = &Z)                    /* If command absent,         CALISPF-G*/
      &ZCMD = '$CCAL'                  /*  call CCAL CLIST and       CALISPF-G*/
      .MSG = CALDR00                   /*  set message only          CALISPF-G*/
/* ----------------------------------------------------------------- CALISPF-G*/
 
  &ZSEL = TRANS(TRUNC(&ZCMD,'.')                         
            $CCAL,'CMD(%CCAL &DBUG COLORS(&CCOLOR))'             /*  CALISPF-H*/
                0,'PANEL(ISPOP0)'                        
                1,'PANEL(ISPREVB) NEWAPPL(ISR)'          
                2,'PANEL(ISPREVE) NEWAPPL(ISR)'          
                3,'PANEL(ISPUTILS)'                      
                4,'PANEL(ISRFPA)'                        
                5,'PGM(ISRJB1) PARM(ISRJPA) NOCHECK'     
                6,'CMD(ISPOPT6)'                         
                7,'PANEL(ISPOPT7)'                       
                A,'CMD(ACETEST) NEWAPPL(ACE) NOCHECK'    
                C,'PANEL(ISPOPC0)'                       
                T,'PGM(ISPTUTOR) PARM(ISP00000)'         
              ' ',' '                                    
                X,'EXIT'                                 
                *,'?' )                                  
  &ZTRAIL = .TRAIL                                       
 
)END                                                     
                 

a) Add dynamic area definition to )ATTR section for use of calendar view display in )BODY declaration. (PCALA)

b) Following above injection point, add attribute DATAOUT definitions to )ATTR section to support colorization. (PCALB)

c) Determine placement of monthly calendar display area (8 rows x 21 bytes) and add CALENDAR view to )BODY section. (PCALC)

d) Add system date change alert message logic to )INIT section. (PCALD)

e) Add initialization logic to )INIT section. (PCALE)

f) Add system date change alert message and reflect logic to )REINIT section. (PCALE), (PCALF)

g) Add system date change detection logic to )PROC section. (PCALG)

h) Add TRANSlate option-command pair to ZSEL setting statement in )PROC section. $CCAL will execute the calendar maintenance clist, CCAL. (PCALH)

Each of the panel injection content members reside in CALISPF.VxRxM00.ISPF distribution PDS:
PCALA through PCALH, inclusive.

Ensure target panel does not use any of the new attribute characters used by CALISPF. Otherwise, consider modifying your target panel or not including the new ATTR entries and using the monochrome mode via COLORS(N) in the $CCAL selection-command entry by setting &CCOLOR to N in item h above.

Below is a rendering of the ISPF v2.2 primary menu with calendar display:


 -------------------------  ISPF PRIMARY OPTION MENU  --------------------------
 OPTION  ===>                                                                   
                                                            USERID   - LARRY02  
    0  ISPF PARMS  - Specify terminal and user parms        TIME     - 15:10:48 
    1  BROWSE      - Display source data using Review       TERMINAL - 3278     
    2  EDIT        - Change source data using Revedit       PF KEYS  - 0012     
    3  UTILITIES   - Perform utility functions              PANEL    - ISP@PRIM 
    4  FOREGROUND  - Invoke language processors             SCREEN   - 1        
    5  BATCH       - Submit job for language processing     LANGUAGE - ENGLISH  
    6  COMMAND     - Enter TSO command or CLIST             APPL ID  - ISP      
    7  DIALOG TEST - Perform dialog testing                 RELEASE  - V2.2.000 
    A  ACETEST     - APF-authorized test facility           PRIM     - YES      
    C  CHANGES     - Summary of changes for this release    SYSTEMID - BSP1     
    T  TUTORIAL    - Display information about ISPF         PROC     - ISPLGN01 
    X  EXIT        - Terminate ISPF using log and list defaults 

 Enter END command to terminate ISPF.                      January 2023     008
                                                            S  M  T  W  T  F  S  
                                                            .  .  .  1  2  3  4   
                                                            5  6  7  8  9 10 11  
                                                           12 13 14 15 16 17 18  
                                                           19 20 21 22 23 24 25  
                                                           26 27 28 29 30 31  . 
                                                                                

As additional reference, two sample panels are included in the software distribution-

  1. PMYCAL, sample non-selection panel,
  2. PMYCALS, sample selection panel.

Prerequisites

ISPF v2.2+ (ISPF-like product from Wally Mclaughlin) is necessary to use this software.

Two user-mods, ZP60014 and ZP60038, are REQUIRED to process CLIST symbolic variables via the IKJCT441 API on MVS 3.8J and using this software installation. More information on user-mods ZP60014 and ZP60038 can be obtained from the following website:
http://www.prycroft6.com.au/vs2mods/

Check your system to determine if one or both user-mods are required. ZP60038 requires ZP60014.

Other components are may be required. See README file for a complete list of required and/or optional software including download sites.

Software Disclaimer

No guarantee; No warranty; Install / Use at your own risk.

This software is provided “AS IS” and without any expressed or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.

The author requests keeping authors name intact to any modified versions.

In addition, the author requests readers to submit any code modifications / enhancements and/or associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality and further benefiting the MVS 3.8J hobbyist public domain community.

Access CALISPF now for a demo!

Take CALISPF for a ‘test drive’ before downloading and installing onto your MVS38J system.

Point your TN3270 terminal emulator using TLS to

URL: mywhs.belmontes.net
PORT: 5000
TLS : Version 1.2

Once connected, log on using any of the TK4- default user ids and passcodes.

After successful logon, select option I (I for ISPF) from the TSO Applications Menu.
Note, option I is not listed on the menu – this is intentional.

On the ISPF PRIMARY OPTION MENU, the calendar view is displayed on the lower right.

Use <PF3> to terminate from ISPF PRIMARY OPTION MENU panel.

Use <PF3> to terminate from the TSO Applications Menu returning to the TSO READY prompt.

Log off TSO.

Terminate 3270 session.

Installing CALISPF Software

After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution content (HET and/or XMI) from the your personal computing device to MVS with minimal JCL (less than 24 lines for easy copy-paste) and to continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO.

  • Click here to download the CALISPF zip file to your PC local drive.

The below README file includes a ZIP file content list, pre-installation requirements and installation steps.


CALISPF for MVS 3.8J / Hercules                                           . 
===============================                                           .

Date: 01/31/2023  Release V0R9M00
*  Author:  Larry Belmontes Jr.
*           https://ShareABitofIT.net/CALISPF-in-MVS38J
*           Copyright (C) 2019-2023 Larry Belmontes, Jr.
---------------------------------------------------------------------- 
|    CALISPF      I n s t a l l a t i o n   R e f e r e n c e        | 
---------------------------------------------------------------------- 
   The approach for this installation procedure is to transfer the
distribution content from your personal computing device to MVS with
minimal JCL and to continue the installation procedure using supplied
JCL from the MVS CNTL data set under TSO.                         
   Below are descriptions of ZIP file content, pre-installation
requirements (notes, credits) and installation steps.
 
Good luck and enjoy this software as added value to MVS 3.8J!
-Larry Belmontes
---------------------------------------------------------------------- 
|    CALISPF      C h a n g e   H i s t o r y                        | 
---------------------------------------------------------------------- 
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  01/31/2023 0.9.00   - Initial version released to MVS 3.8J
*                        hobbyist public domain
*
*  10/20/2019 0.5.00   Initial prototyping and development
*                      w ISPF 2.x
*                                                                               
*
======================================================================
* I. C o n t e n t   o f   Z I P   F i l e                           |
======================================================================
o  $INST00.JCL          Define Alias for HLQ CALISPF in Master Catalog
 
o  $INST01.JCL          Load CNTL data set from distribution tape
 
o  $RECVXMI.JCL         Receive XMI SEQ to MVS PDSs                  
 
o  CALISPF.V0R9M00.HET Hercules Emulated Tape (HET) multi-file volume
                        with VOLSER of VS0900 containing software
                        distribution.
 
o  CALISPF.V0R9M00.XMI XMIT file containing software distribution.   
 
o  DSCLAIMR.TXT         Disclaimer
 
o  PREREQS.TXT          Required user-mods 
 
o  README.TXT           This File                                              
 
 
Note:   ISPF v2.2+ (ISPF-like product from Wally Mclaughlin) must be     
-----   installed under MVS 3.8J TSO including associated user-mods
        per ISPF Installation Pre-reqs.
 
Note:   CUTIL00 is a TSO utility that performs various functions using
-----   CLIST variables and must be installed as a pre-requisite.  
        More information including current version download link at:
        
CUTIL00 for MVS 3.8J
====================================================================== * II. P r e - i n s t a l l a t i o n R e q u i r e m e n t s | ====================================================================== o The Master Catalog password may be required for some installation steps. o Tape files use device 480. o Below is a DATASET List after tape distribution load for reference purposes: DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT CALISPF.V0R9M00.ASM PUB006 10 1 PO FB 10 1 CALISPF.V0R9M00.CLIST PUB006 4 1 PO FB 25 1 CALISPF.V0R9M00.CNTL PUB006 20 4 PO FB 20 1 CALISPF.V0R9M00.HELP PUB006 4 1 PO FB 25 1 CALISPF.V0R9M00.ISPF PUB006 20 3 PO FB 15 1 CALISPF.V0R9M00.MACLIB PUB006 2 1 PO FB 50 1 **END** TOTALS: 60 TRKS ALLOC 11 TRKS USED 6 EXTENTS Confirm the TOTAL track allocation is available on your device. Note: A different DASD device type may be used to yield different usage results. o TSO user-id with sufficient access rights to update SYS2.CMDPROC, SYS2.CMDLIB, SYS2.HELP, SYS2.LINKLIB and/or ISPF libraries. o For installations with a security system (e.g. RAKF), you MAY need to insert additional JOB statement information. // USER=???????,PASSWORD=???????? o Names of ISPCLIB (Clist), ISPMLIB (Message), ISPLLIB (Load) and/or ISPPLIB (Panel) libraries. o Download ZIP file to your PC local drive. o Unzip the downloaded file into a temp directory on your PC device. o Install pre-requisite (if any) software and/or user modifications. ====================================================================== * III. I n s t a l l a t i o n S t e p s | ====================================================================== +--------------------------------------------------------------------+ | Step 1. Define Alias for HLQ CALISPF in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF0 JOB (SYS),'Def CALISPF Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF in MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for HLQ CALISPF * //* * Note: The master catalog password will be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(CALISPF) IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(CALISPF) RELATE(SYS1.UCAT.MVS)) /* // ______________________________________________________________________ Figure 1: $INST00 JCL a) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. b) Submit the job. c) Review job output for successful DEFINE ALIAS. Note: When $INST00 runs for the first time, Job step DEFALIAS returns RC=0004 due to LISTCAT ALIAS function completing with condition code of 4 and DEFINE ALIAS function completing with condition code of 0. Note: When $INST00 runs after the ALIAS is defined, Job step DEFALIAS returns RC=0000 due to LISTCAT ALIAS function completing with condition code of 0 and DEFINE ALIAS function being bypassed. +--------------------------------------------------------------------+ | Step 2. Determine software installation source | +--------------------------------------------------------------------+ | HET or XMI ? | +--------------------------------------------------------------------+ a) Software can be installed from two sources, HET or XMI. - For tape installation (HET), proceed to STEP 4. **** or - For XMIT installation (XMI), proceed to next STEP. +--------------------------------------------------------------------+ | Step 3. Load XMIPDS data set from XMI SEQ file | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($RECVXMI) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive CALISPF XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVXMI Receive Application XMI Files * //* -------------------------------------------------------* //RECV PROC HLQ=CALISPF,VRM=V0R9M00,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=DISK,DVOLSER=PUB006 <-- Review and Modify //* //RECV370 EXEC PGM=RECV370 //STEPLIB DD DSN=SYS2.LINKLIB,DISP=SHR <-- Review and Modify //RECVLOG DD SYSOUT=* //XMITIN DD DISP=SHR,DSN=&&XMIPDS(&TYP) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&&SYSUT1, // UNIT=SYSALLDA,SPACE=(CYL,(10,05)),DISP=(,DELETE,DELETE) //SYSUT2 DD DSN=&HLQ..&VRM..&TYP,DISP=&DDISP, // UNIT=&DUNIT,SPACE=&DSPACE,VOL=SER=&DVOLSER //SYSIN DD DUMMY //SYSUDUMP DD SYSOUT=* // PEND //* RECEIVE XMIPDS TEMP //XMIPDS EXEC RECV,TYP=XMIPDS,DSPACE='(CYL,(10,05,10),RLSE)' //RECV370.XMITIN DD DISP=SHR,DSN=your.transfer.xmi <-- XMI File //RECV370.SYSUT2 DD DSN=&&XMIPDS,DISP=(,PASS), // UNIT=SYSDA,SPACE=&DSPACE //* RECEIVE CNTL, HELP, CLIST, ISPF, ASM, MACLIB //CNTL EXEC RECV,TYP=CNTL //RECV370.SYSUT2 DD DDNAME=&TYP //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,10,10)), // DISP=&DDISP //HELP EXEC RECV,TYP=HELP //RECV370.SYSUT2 DD DDNAME=&TYP //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(04,02,02)), // DISP=&DDISP //CLIST EXEC RECV,TYP=CLIST //RECV370.SYSUT2 DD DDNAME=&TYP //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(04,02,02)), // DISP=&DDISP //ISPF EXEC RECV,TYP=ISPF //RECV370.SYSUT2 DD DDNAME=&TYP //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,05,10)), // DISP=&DDISP //ASM EXEC RECV,TYP=ASM //RECV370.SYSUT2 DD DDNAME=&TYP //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP //MACLIB EXEC RECV,TYP=MACLIB //RECV370.SYSUT2 DD DDNAME=&TYP //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP // ______________________________________________________________________ Figure 2: $RECVXMI.JCL a) Transfer CALISPF.V0R9M00.XMI to MVS using your 3270 emulator. Make note of the DSN assigned on MVS transfer. Use transfer IND$FILE options: NEW BLKSIZE=3200 LRECL=80 RECFM=FB Ensure the DSN on MVS exists with the correct DCB information: ORG=PS BLKSIZE=3200 LRECL=80 RECFM=FB b) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. Review JCL and apply any modifications per your installation including the DSN assigned during the transfer above for the XMI file. d) Submit the job. e) Review job output for successful load of the following PDSs: CALISPF.V0R9M00.ASM CALISPF.V0R9M00.CLIST CALISPF.V0R9M00.CNTL CALISPF.V0R9M00.HELP CALISPF.V0R9M00.ISPF CALISPF.V0R9M00.MACLIB f) Subsequent installation steps will be submitted from members contained in the CNTL data set. g) Proceed to STEP 6. **** +--------------------------------------------------------------------+ | Step 4. Load CNTL data set from distribution tape | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF1 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC HLQ=CALISPF,VRM=V0R9M00,TVOLSER=VS0900, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCNTL DD DSN=&HLQ..&VRM..CNTL.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(1,SL) //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //STEP001 EXEC LOADCNTL Load CNTL PDS //SYSIN DD * COPY INDD=INCNTL,OUTDD=CNTL // ______________________________________________________________________ Figure 3: $INST01 JCL a) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\CALISPF.V0R9M00.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. b) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE c) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. Review JCL and apply any modifications per your installation. d) Submit the job. e) Review job output for successful load of the CNTL data set. f) Subsequent installation steps will be submitted from members contained in the CNTL data set. +--------------------------------------------------------------------+ | Step 5. Load Other data sets from distribution tape | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF2 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * JOB: $INST02 Load other PDS from distribution tape * //* * Tape Volume: File 1 - CNTL * //* * File 2 - CLIST * //* * File 3 - HELP * //* * File 4 - ISPF * //* * File 5 - ASM * //* * File 6 - MACLIB * //* * Note: Default TAPE=480, DASD=DISK on PUB006 * //* -------------------------------------------------------* //LOADOTHR PROC HLQ=CALISPF,VRM=V0R9M00,TVOLSER=VS0900, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD02 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=&HLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL) //INHELP DD DSN=&HLQ..&VRM..HELP.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL) //INISPF DD DSN=&HLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL) //INASM DD DSN=&HLQ..&VRM..ASM.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL) //INMACLIB DD DSN=&HLQ..&VRM..MACLIB.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(6,SL) //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(04,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(04,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,05,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //* //STEP001 EXEC LOADOTHR Load ALL other PDSs //SYSIN DD * COPY INDD=INCLIST,OUTDD=CLIST COPY INDD=INHELP,OUTDD=HELP COPY INDD=INISPF,OUTDD=ISPF COPY INDD=INASM,OUTDD=ASM COPY INDD=INMACLIB,OUTDD=MACLIB // ______________________________________________________________________ Figure 4: $INST02 JCL a) Member $INST02 installs remaining data sets from distribution tape. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\CALISPF.V0R9M00.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. d) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE e) Submit the job. f) Review job output for successful loads. +--------------------------------------------------------------------+ | Step 6. FULL or UPGRADE Installation | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($UP0900) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPFU JOB (SYS),'Upgrade CALISPF', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP0900 Upgrade CALISPF Software * //* * Upgrade to release V0R9M00 from VxRxMxx * //* * * //* * Review JCL before submitting!! * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * No upgrades for V0R9M00 * //* -------------------------------------------------------* //CALISPF EXEC PGM=IEFBR14 //* // ______________________________________________________________________ Figure 5: $UP0900.JCL Upgrade from previous version to V0R9M00 a) If this is the INITIAL software distribution, proceed to STEP 7. b) This software may be installed in FULL or UPGRADE from a prior version. Note: If the installed software version is customized, a manual ----- review and evaluation is suggested to properly incorporate customizations into this software distribution before proceeding with the installation. Refer to the $UPvrmm.JCL members for upgraded software components being installed. c) If a FULL install of this software distribution is elected regardless of previous version installed on your system, proceed to STEP 7. d) If this is an UPGRADE from the PREVIOUS version, execute the below JCL based on current installed version: - V0R9M00 is initial release, thus, no updates available! e) After upgrade is applied, proceed to validation, STEP 11. +--------------------------------------------------------------------+ | Step 7. Install TSO parts | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF3 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST03 Install TSO parts * //* * * //* * Note: Duplicate members are over-written. * //* -------------------------------------------------------* //STEP001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=CALISPF.V0R9M00.CLIST,DISP=SHR //INHELP DD DSN=CALISPF.V0R9M00.HELP,DISP=SHR //OUTCLIST DD DSN=SYS2.CMDPROC,DISP=SHR //OUTHELP DD DSN=SYS2.HELP,DISP=SHR //SYSIN DD * COPY INDD=((INCLIST,R)),OUTDD=OUTCLIST SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((INHELP,R)),OUTDD=OUTHELP SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ /* // ______________________________________________________________________ Figure 6: $INST03 JCL a) Member $INST03 installs TSO component(s). Note: If no TSO components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 8. Install CALISPF Software | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF4 JOB (SYS),'Install CALISPF', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install CALISPF Software * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 7: $INST04 JCL a) Member $INST04 installs program(s). Note: If no components are included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 9. Install ISPF parts | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISPF5 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST05 Install ISPF parts * //* * * //* * Note: Duplicate members are over-written. * //* * * //* * * //* * - Uses ISPF 2.1 product from Wally Mclaughlin * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: PARTSISPF * //* * Copy ISPF Parts * //* * * //* -------------------------------------------------------* //PARTSI PROC HLQ=MYHLQ,VRM=VXRXMXX, // CLIB='XXXXXXXX.ISPCLIB', // MLIB='XXXXXXXX.ISPMLIB', // PLIB='XXXXXXXX.ISPPLIB', // SLIB='XXXXXXXX.ISPSLIB', // TLIB='XXXXXXXX.ISPTLIB' //* //* -------------------------------------------------------* //* * * //* * CLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPCLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPCLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDCLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //CLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //CLIBOUT DD DSN=&CLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * MLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPMLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPMLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDMLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //MLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //MLIBOUT DD DSN=&MLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * PLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPPLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPPLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDPLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //PLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //PLIBOUT DD DSN=&PLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * SLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPSLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPSLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDSLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //SLIBOUT DD DSN=&SLIB,DISP=SHR //SYSIN DD DUMMY //* //* //* -------------------------------------------------------* //* * * //* * TLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPTLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPTLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDTLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //TLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //TLIBOUT DD DSN=&TLIB,DISP=SHR //SYSIN DD DUMMY //* // PEND //* //ISPF EXEC PARTSI,HLQ=CALISPF,VRM=V0R9M00, // CLIB='XXXXXXXX.ISPCLIB', <--TARGET // MLIB='XXXXXXXX.ISPMLIB', <--TARGET // PLIB='XXXXXXXX.ISPPLIB', <--TARGET // SLIB='XXXXXXXX.ISPSLIB', <--TARGET // TLIB='XXXXXXXX.ISPTLIB' <--TARGET //ADDCLIB.SYSIN DD * CLIB COPY INDD=((CLIBIN,R)),OUTDD=CLIBOUT SELECT MEMBER=C$CAL SELECT MEMBER=CCAL //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=CALDR0 //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=HCCAL SELECT MEMBER=PMYCAL SELECT MEMBER=PMYCALS //ADDSLIB.SYSIN DD * SLIB COPY INDD=((SLIBIN,R)),OUTDD=SLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ //ADDTLIB.SYSIN DD * TLIB COPY INDD=((TLIBIN,R)),OUTDD=TLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ // ______________________________________________________________________ Figure 8: $INST05 JCL a) Member $INST05 installs ISPF component(s). Note: If no ISPF components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Review and update DD statements for ISPCLIB (clist), ISPMLIB (messages), and/or ISPPLIB (panel) library names. The DD statements are tagged with '<--TARGET'. d) Submit the job. e) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 10. Install Other Software | +--------------------------------------------------------------------+ | JCL Member: CALISPF.V0R9M00.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CALISP40 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CALISPF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST40 Install Other Software * //* * Install xxxxxx Programs * //* * * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 9: $INST40 JCL a) Member $INST40 installs additional software. Note: If no other software is included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 11. Validate CALISPF | +--------------------------------------------------------------------+ a) From the ISPF Main Menu, enter the following command: TSO %CCAL DBUG COLORS(Y) Press ENTER. A similar response will display... *** CCAL START *** *** APPLID='ISP ' *** TODAY=2023.jjj *** VGET CALENDAR RC=0 *** LENCAL=0 *** OLDCAL= *** CALDATE= *** DATECHG=1 *** CUTIL00 MCALA RC=0 *** CALDATE=2023.jjj *** VPUT CALDATE RC=0 *** 1 VPUT CALENDAR RC=0 *** CCAL END *** *** b) From the ISPF Main Menu, enter the following command: TSO ISPEXEC SELECT PANEL(PMYCAL) Press ENTER. c) The below panel should display a calendar view including highlighted current date. ________________________________________________________________________________ --------------------------- My Monthly Calendar ------------------------------ OPTION ===> CALDR02 Calendar date changed. Press ENTER to refresh calendar data. Userid - LARRY01 System - BSP1 TSO-PROC - ISPLGN00 Panel - PMYCAL APPLID - ISP Term 0024 x 0080 Time - 09:03:13 January 2023 022 S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ________________________________________________________________________________ Figure 10: Sample PMYCAL panel with calendar view d) To exit, use PF3. e) Validation for CALISPF is complete. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for CALISPF. +--------------------------------------------------------------------+ | Step 13. Incorporate Calendar View onto ISPF 2.2 Main Menu | +--------------------------------------------------------------------+ The following steps include portions of code that can be cut-paste into the various sections in a target panel. ISPF v2.2 contraints: -------------------- - only one dynamic area per panel - expansion (EXPAND(//) not supported for dynamica area floating movement on a panel 1) Add dynamic area definition to )ATTR section for use of calendar view display in )BODY declaration. Tip: Use the COPY operation to copy-paste the appropriate content at injection point on your target panel. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-A*/ /* Dynamic Area for Calendar CALISPF-A*/ /* ----------------------------------------------------------------- CALISPF-A*/ * AREA(DYNAMIC) SCROLL(ON) COLOR(GREEN) /* ----------------------------------------------------------------- CALISPF-A*/ ______________________________________________________________________ Figure 12: CALISPF.V0R0M00.ISPF(CALA) content 2) Following above injection point, add attribute DATAOUT definitions to )ATTR section to support colorization. Tip: Copy CALISPF.V0R9M00.ISPF(PCALB) using your editor at injection point. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-B*/ /* Attributes for Calendar Colorization CALISPF-B*/ /* ----------------------------------------------------------------- CALISPF-B*/ 51 TYPE(DATAOUT) INTENS(LOW) COLOR(RED) 52 TYPE(DATAOUT) INTENS(LOW) COLOR(PINK) 53 TYPE(DATAOUT) INTENS(LOW) COLOR(TURQ) 54 TYPE(DATAOUT) INTENS(HIGH) COLOR(BLUE) 55 TYPE(DATAOUT) INTENS(HIGH) COLOR(PINK) HILITE(REVERSE) /* ----------------------------------------------------------------- CALISPF-B*/ ______________________________________________________________________ Figure 13: CALISPF.V0R0M00.ISPF(CALB) content 3) Determine placement of monthly calendar display area (8 rows x 21 bytes) and add CALENDAR view to )BODY section. ______________________________________________________________________ *CALENDAR * * * * * * * * * * * * * * * ______________________________________________________________________ Figure 14: CALISPF.V0R0M00.ISPF(CALC) content 4) Add system date change alert message logic to )INIT section. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-D*/ /* Initialize calendar working variables and fetch calendar CALISPF-D*/ /* user profile variables CALISPF-D*/ /* ----------------------------------------------------------------- CALISPF-D*/ &Z = '' /* Set &Z to NULL CALISPF-D*/ &CCOLOR = 'Y' /* Y-colors N-monochrome CALISPF-D*/ &DORCMD = 'Y' /* Y-Do RCMD N-bypass RCMD CALISPF-D*/ &RCMD = '' /* Set &RCMD to NULL CALISPF-D*/ &DBUG = '' /* Set &DBUG to NULL CALISPF-D*/ VGET (CALENDAR) PROFILE /* Fetch CALENDAR variable CALISPF-D*/ VGET (CALDATE) PROFILE /* Fetch CALDATE variable CALISPF-D*/ /* ----------------------------------------------------------------- CALISPF-D*/ ______________________________________________________________________ Figure 15: CALISPF.V0R0M00.ISPF(CALD) content 5) Add initialization logic to )INIT section. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-E*/ /* System date change alert via msg CALDR02 CALISPF-E*/ /* ----------------------------------------------------------------- CALISPF-E*/ IF (&CALDATE NE &ZJ4DATE) /* Check for calendar date CALISPF-E*/ .MSG = CALDR02 /* change and alert user CALISPF-E*/ /* ----------------------------------------------------------------- CALISPF-E*/ ______________________________________________________________________ Figure 16: CALISPF.V0R0M00.ISPF(CALE) content 6) Add system date change alert message and reflect logic to )REINIT section. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-E*/ /* System date change alert via msg CALDR02 CALISPF-E*/ /* ----------------------------------------------------------------- CALISPF-E*/ IF (&CALDATE NE &ZJ4DATE) /* Check for calendar date CALISPF-E*/ .MSG = CALDR02 /* change and alert user CALISPF-E*/ /* ----------------------------------------------------------------- CALISPF-E*/ ______________________________________________________________________ Figure 17: CALISPF.V0R0M00.ISPF(CALE) content ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-F*/ /* Reflect command if one was initated due to system date change CALISPF-F*/ /* ----------------------------------------------------------------- CALISPF-F*/ IF (&RCMD > &Z) /* If saved command present, CALISPF-F*/ &ZCMD = &RCMD /* set ZCMD from RCMD CALISPF-F*/ /* ----------------------------------------------------------------- CALISPF-F*/ ______________________________________________________________________ Figure 18: CALISPF.V0R0M00.ISPF(CALF) content 7) In the )REINIT section of the target panel, add logic to post an informational message on a calendar date change when target panel is initially displayed - 'CALDR02 Calendar changed. Press ENTER to refresh calendar.' ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-D*/ /* Initialize calendar working variables and fetch calendar CALISPF-D*/ /* user profile variables CALISPF-D*/ /* ----------------------------------------------------------------- CALISPF-D*/ &Z = '' /* Set &Z to NULL CALISPF-D*/ &CCOLOR = 'Y' /* Y-colors N-monochrome CALISPF-D*/ &DORCMD = 'Y' /* Y-Do RCMD N-bypass RCMD CALISPF-D*/ &RCMD = '' /* Set &RCMD to NULL CALISPF-D*/ &DBUG = '' /* Set &DBUG to NULL CALISPF-D*/ VGET (CALENDAR) PROFILE /* Fetch CALENDAR variable CALISPF-D*/ VGET (CALDATE) PROFILE /* Fetch CALDATE variable CALISPF-D*/ /* ----------------------------------------------------------------- CALISPF-D*/ ______________________________________________________________________ Figure 19: CALISPF.V0R0M00.ISPF(CALD) content 8) Add system date change detection logic to )PROC section. ______________________________________________________________________ /* ----------------------------------------------------------------- CALISPF-G*/ /* Determine if system date changed to invoke CCAL via CALISPF-G*/ /* ZSEL to update calendar user profile variables and save CALISPF-G*/ /* any entered command to be displayed in next panel display. CALISPF-G*/ /* ----------------------------------------------------------------- CALISPF-G*/ VGET (CALDATE) PROFILE /* Fetch CALDATE variable CALISPF-G*/ &RCMD= '' /* Initialize RCMD CALISPF-G*/ IF (&CALDATE NE &ZJ4DATE) /* Check for cal date chg CALISPF-G*/ IF (&ZCMD > &Z) /* If command present CALISPF-G*/ IF (&DORCMD = 'Y') /* and DORCMD = Y, CALISPF-G*/ &RCMD= '&ZCMD' /* save to reflect back on CALISPF-G*/ &ZCMD= '$CCAL' /* to reflect back on CALISPF-G*/ .MSG = CALDR01 /* panel with message CALISPF-G*/ IF (&ZCMD = &Z) /* If command absent, CALISPF-G*/ &ZCMD = '$CCAL' /* call CCAL CLIST and CALISPF-G*/ .MSG = CALDR00 /* set message only CALISPF-G*/ /* ----------------------------------------------------------------- CALISPF-G*/ ______________________________________________________________________ Figure 20: CALISPF.V0R0M00.ISPF(CALG) content 9) Add TRANSlate option-command pair to ZSEL setting statement in )PROC section. $CCAL will execute the calendar maintenance clist, CCAL. ______________________________________________________________________ $CCAL,'CMD(%CCAL &DBUG COLORS(&CCOLOR))' /* CALISPF-H*/ ______________________________________________________________________ Figure 21: CALISPF.V0R0M00.ISPF(CALH) content Each of the panel injection content members reside in CALISPF.VxRxM00.ISPF distribution PDS: - PCALA through PCALH, inclusive. Two sample panels are included in the software distribution as reference. - PMYCAL non-selection panel with calendar view - PMYCALS selection panel with calendar view /* -------------------------------------------------------------------------- */ /* Sample code snippent for non-select panel to */ /* add selection processing to invoke CCAL via ZSEL. */ /* -------------------------------------------------------------------------- */ &ZSEL = TRANS( TRUNC (&ZCMD,'.') $CCAL,'CMD(%CCAL &DBUG COLORS(&CCOLOR))' /* CALISPF-H*/ ' ',' ' ) &ZTRAIL = .TRAIL /* -------------------------------------------------------------------------- */ /* Sample code snippent for select panel to */ /* add selection processing to invoke CCAL via ZSEL. */ /* -------------------------------------------------------------------------- */ &ZSEL = TRANS( TRUNC (&ZCMD,'.') . $CCAL,'CMD(%CCAL &DBUG COLORS(&CCOLOR))' /* CALISPF-H*/ . . ' ',' ' ) Ensure target panel does NOT use any of the attribute symbols used by CALISPF. If so, consider changing your target panel. or not including the new ATTR entries and using the monochrome mode. If you elect to display a monochrome calendar view using the default color green with the visual current date marker, change the COLORS parameter to (N) from (Y) in PCALD code snippet. +--------------------------------------------------------------------+ | Step 14. Modify ISPF Start-up Procedure | +--------------------------------------------------------------------+ To ensure CALENDAR and CALDATE are initialized and up-to-date at the start of a users ISPF session, add the following new command line statement before the ISPF start-up command. a) Identify Procedure that starts your installation ISPF environment. b) Add new command as shown below: 1 10 20 30 40 50 60 70 ----+----+----+----+----+----+----+----+----+----+----+----+----+----+- . . /*******************************************************/ /* Start ISPF per ISPF v2.2 Installation Documentation */ /*******************************************************/ . /**********************************************************************/ /* INVOKE CCAL to initialize calendar view (Y-colors N-monochrome) */ /**********************************************************************/ ISPF CMD(%CCAL COLORS(Y)) <-- new command . ISPF <-- start IPSF command . . c) Review and save revisions. d) Logoff ISPF. e) Relogon to ISPF. f) The ISPF main menu should display a current date calendar view. g) TSO/ISPF Logon procedure update complete. Enjoy CALISPF for ISPF 2.2+ on MVS 3.8J! ====================================================================== * IV. S o f t w a r e I n v e n t o r y L i s t | ====================================================================== - CALISPF.V0R9M00.ASM $ . README Dummy member, this is intentional - CALISPF.V0R9M00.CLIST $ . README Dummy member, this is intentional - CALISPF.V0R9M00.CNTL $ . $INST00 Define Alias for HLQ CALISPF $ . $INST01 Load CNTL data set from distribution tape (HET) $ . $INST02 Load other data sets from distribution tape (HET) $ . $INST03 Install TSO Parts $ . $INST04 Install CALISPF Software $ . $INST05 Install ISPF Parts $ . $INST40 Install Other Software $ . $UP0900 Upgrade to V0R9M00 from V0R9M00 $ . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 $ . DSCLAIMR Disclaimer $ . PREREQS Required User-mods $ . README Documentation and Installation instructions - CALISPF.V0R9M00.HELP $ . README Dummy member, this is intentional - CALISPF.V0R9M00.ISPF $ . PCALA ATTR Dynamic area for Calendar (copy code) $ . PCALB ATTR Attributes for Calendar Colors (copy code) $ . PCALC BODY Calendar 8x21 data area (copy code) $ . PCALD INIT Init and VGET calendar vars (copy code) $ . PCALE INIT Alert system data chanage (copy code) $ . PCALF REINIT Reflect prev cmd entered (copy code) $ . PCALG PROC Calendar date change (copy code) $ . PCALH ZSEL TRANS command (copy code) $ . PMYCAL Sample panel, non-select type with CALENDAR view $ . PMYCALS Sample panel, select type with CALENDAR view $ . CCAL CLIST for ISPF to initialze calendar variables $ . CALDR00 Messages for calendar update notification $ . HCCAL Information panel for CALISPF - CALISPF.V0R9M00.MACLIB $ . README Dummy member, this is intentional - After downloading any other required software, consult provided documentation including any configuration steps (if applicable) for software and HELP file installation. $ - Denotes modified software component for THIS DISTRIBUTION relative to prior DISTRIBUTION # - Denotes new software component for THIS DISTRIBUTION relative to prior DISTRIBUTION

Closing

Enjoy a calendar view on your MVS 3.8J TSO/ISPF system.

Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding CALISPF add-on application.

Thank You.

Version History


*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  01/31/2023 0.9.00   - Initial version released to MVS 3.8J
*                        hobbyist public domain
*
*  10/20/2019 0.5.00   Initial prototyping and development
*                      w ISPF 2.x
*

Tagged , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


CAPTCHA Image
Reload Image

This site uses Akismet to reduce spam. Learn how your comment data is processed.