CLIST, COBOL, ISPF 2.x, MVS38J

TASKLIST in MVS38J

Preview

Using a daily planning application under ISPF to conveniently manage and maintain a to-do calendar list was a brilliant idea, especially in the 1980’s, before the availability of personal digital assistants (e.g. PalmPilot or Newton MessagePad)!

On CBTTAPE.ORG, CBT231 contains such an application named TASKLIST written by Joe Veilleux from APC contributed circa 1985. Download CBT231 for reference and read $DOC.

Joe Veilleux presented SPF Hints, Samples and Tricks as part of SHARE 66 in March 1984. CBT file 230 includes a handout with Joe’s presentation. The TASKLIST application ran under ISPF 2.1 from what I surmised reading his presentation material. Also, download CBT230 (EBCDIC data content) for a good ISPF read!

In this post, TASKLIST components will be transformed to execute under ISPF 2.2 (ISPF-like product from Wally Mclaughlin) on MVS 3.8J / TSO.

The original authors functionality and logic will remain unchanged unless modification is necessary for adoption under MVS 3.8J TSO / ISPF 2.2.

As a show of gratitude for authoring TASKLIST, a SHOUT OUT to Joe Veilleux.

The application suite includes a CLIST, application and tutorial panels, message and skeleton files and a PL/I program.

At first glance… skeleton! This functional area requires an alternate solution as ISPF 2.2 does not support skeletons (file tailoring).

Second, tutorial panels cannot be presented in a tutorial fashion as ISPF 2.2 merely displays the first help panel and returns to the previous panel upon subsequently depressing ENTER key.

Without further ado, let’s get started….

Tutorial Panels

PanelDescription
TASKTCONTutorial Menu
TASKTGNRGeneral Information
TASKTUPDAdd/Delete/Update Tasks 1 of 2
TASKTUP2Add/Delete/Update Tasks 2 of 2
TASKTPRTPrint Tasks List
TASKTNBAdd/Update Notebook Entries 1 of 2
TASKTNB2Add/Update Notebook Entries 2 of 2
TASKTENDSaving Tasks List and Exiting

Modifications:

  • Re-define header (line 1) without use of EXPAND characters.
    ISPF 2.2 can only properly handle one set of EXPAND verbs. Otherwise, the result of two EXPAND verbs does not center correctly on the terminal line.
  • Place attributes in column 1 of each line in the )BODY section to render a Mod-2 real-estate.
    ISPF 2.2 wraps text across the 3270 real-estate (whether a Mod-2 or Mod-5 terminal) resulting in a ‘skewed’ panel presentation.
  • Insert &Z = ” statement, if needed.
    ISPF 2.2 appears to not declare &Z as a general Z-type variable for use in a panel definition.
  • Insert *,’?’ statement.
    Required per LBTUTOR tutorial panel requirement.

Below are two snippets of panel TASKTCON highlighting the modifications (after version) in contrast to the original. The remaining panels underwent similar changes.

Original:

)BODY EXPAND(//)                                                                
%TUTORIAL-/-/- Online Tasks-List -/-/-TUTORIAL                                  
%COMMAND ===>_ZCMD                                                             +
%                                                                               
+Using the%Online Tasks-list+program, you can maintain an online list of tasks. 
 You can sort the list in various ways, and you can get a hardcopy of the list. 
                                                                                
 The sections listed below will be presented in sequence (hit%ENTER+to go on to 
 the next screen) or you may select a particular subject by number:             
                                                                                
%  1+- General information about the Online Tasks-List program                  
%  2+- Adding, Deleting, Updating tasks on your Tasks-List                      
%  3+- Printing your Tasks-List: the PRT command                                
%  4+- Adding and updating "notebook" entries: NOTEBOOK and "N" commands        
%  5+- Saving the Tasks-List and exiting:  END, CANCEL, and SAVE commands       
                                                                                
+Enter%&EPF+to exit the tutorial and return to the tasks list                   
+Hit%ENTER+to go on to the next tutorial panel                                  
)INIT                                                                           
  &EPF = PFK(END)                                                               
  IF (&EPF = &Z)                                                                
    &EPF = 'END'                                                                
  &D = TRUNC(&EPF,2)                                                            
  &DT = .TRAIL                                                                  
  &D = TRUNC(&DT,1)                                                             
  IF (&D = '0')                                                                 
    &DT = .TRAIL                                                                
    &EPF = 'PF&DT'                                                              
)PROC                                                                           
  /******************************************************************/          
  /* Panelid: TASKTCON                                              */          
  /* Author:  Joe Veilleux, MIS Tech Support                        */          
  /* History: 27Feb85-JJV-1.00-Original experimental release        */          
  /*          14Mar85-JJV-1.01-Added NOTEBOOK tutorial reference    */          
  /* Purpose: Table of contents for Tasks-List Utility Tutorial     */          
  /******************************************************************/          
  &ZSEL = TRANS(&ZCMD                                                           
                1,TASKTGNR                                                      
                2,TASKTUPD                                                      
                3,TASKTPRT                                                      
                4,TASKTNB                                                       
                5,TASKTEND                                                      
                )                                                               
  &ZTRAIL = .TRAIL                                                              
)END                                                                            

After:

)BODY EXPAND(//)                                                                
%----------------------------- Online Tasks-List -------------------------------
%COMMAND ===>_ZCMD                                                             +
%                                                                               
+Using the%Online Tasks-list+program, you can maintain an online list of tasks. 
+You can sort the list in various ways, and you can get a hardcopy of the list. 
+
+The sections listed below will be presented in sequence (hit%ENTER+to go on to 
+the next screen) or you may select a particular subject by number:             
+
%  1+- General information about the Online Tasks-List program                  
%  2+- Adding, Deleting, Updating tasks on your Tasks-List                      
%  3+- Printing your Tasks-List: the PRT command                                
%  4+- Adding and updating "notebook" entries: NOTEBOOK and "N" commands        
%  5+- Saving the Tasks-List and exiting:  END, CANCEL, and SAVE commands       
+
+Enter%&EPF+to exit the tutorial and return to the tasks list                   
+Hit%ENTER+to go on to the next tutorial panel                                  
)INIT                                                                           
  Z = ''
  &EPF = PFK(END)                                                               
  IF (&EPF = &Z)                                                                
    &EPF = 'END'                                                                
  &D = TRUNC(&EPF,2)                                                            
  &DT = .TRAIL                                                                  
  &D = TRUNC(&DT,1)                                                             
  IF (&D = '0')                                                                 
    &DT = .TRAIL                                                                
    &EPF = 'PF&DT'                                                              
)PROC                                                                           
  /******************************************************************/          
  /* Panelid: TASKTCON                                              */          
  /* Author:  Joe Veilleux, MIS Tech Support                        */          
  /* History: 27Feb85-JJV-1.00-Original experimental release        */          
  /*          14Mar85-JJV-1.01-Added NOTEBOOK tutorial reference    */          
  /* Purpose: Table of contents for Tasks-List Utility Tutorial     */          
  /******************************************************************/          
  &ZSEL = TRANS(&ZCMD                                                           
                1,TASKTGNR                                                      
                2,TASKTUPD                                                      
                3,TASKTPRT                                                      
                4,TASKTNB                                                       
                5,TASKTEND                                                      
                *,'?'
                )                                                               
  &ZTRAIL = .TRAIL                                                              
)END                                                                            

Application Panels

PanelDescription
TASKNDSNSpecify Notebook Dataset Name
TASKTBDUpdate List of Tasks
TASKUPD Update Task List entry

Below are two snippets of panel TASKTBD highlighting the modifications (after version) in contrast to the original. The remaining panels underwent similar changes.

Before:

)ATTR                                                                           
  # TYPE(INPUT) INTENS(LOW) CAPS(ON)                                            
  @ TYPE(OUTPUT) INTENS(LOW) SKIP(ON)                                           
  + TYPE(TEXT) INTENS(LOW) SKIP(ON)                                             
)BODY EXPAND(//)                                                                
%-/-/- Online Tasks-List Update Panel -/-/-                                     
%COMMAND ===>_ZCMD                                            %SCROLL ===>_AMT +
%                                                                               
+Current sort order: &TASKSRTF                                                  
+Dataset name of notebook: &TASKNDSN                                            
+                                                                               
%               Target  Est                                                     
%Act Category P Date    Hour Stat Task Description                              
%--- -------- - ------- ---- ---- ----------------------------------------------
)MODEL CLEAR(A)                                                                 
#A  @CATEGORY@Z@Z      @Z   @Z   @TASK                                          
+--- -------- - ------- ---- ---- ----------------------------------------------
)INIT                                                                           
  /******************************************************************/          
  /* Panelid: TASKTBD                                               */          
  /* Author:  Joe Veilleux, MIS Tech Support                        */          
  /* History: 27Feb85-JJV-1.00-Original experimental release        */          
  /*          28Feb85-JJV-1.01-Correct to allow SAVE command        */          
  /*          08Mar85-JJV-1.02-Implement notebook facility          */          
  /* Purpose: This panel displays a user's tasks list for update    */          
  /******************************************************************/          
  .ZVARS = '(PRIORITY TARGDATE HOURS STATUS)'                                   
  .HELP = TASKTCON                                                              
  &ZHTOP = TASKTCON                                                             
  &AMT  = PAGE                                                                  
  &ZTDMARK = '=============================== BOTTOM OF TABLE +                 
              ==============================='                                  
  /* Format current date and save in shared pool (for printing) */              
  &CURMMM = TRANS(&ZMONTH                                                       
    01,January 02,February 03,March 04,April 05,May 06,June                     
    07,July 08,August 09,September 10,October 11,November 12,December)          
  &CURDATE = '&ZDAY &CURMMM 19&ZYEAR'                                           
  VPUT (CURDATE) SHARED                                                         
)REINIT                                                                         
  IF (.MSG ^= &Z)                                                               
    .ATTR(.CURSOR) = 'COLOR(RED)'                                               
    .AUTOSEL = YES                                                              
    .CSRROW = &CRP                                                              
)PROC                                                                           
  &CMD = TRANS( TRUNC (&ZCMD,' ')                                               
           I,INPUT INP,INPUT CAN,CANCEL NB,NOTEBOOK NOTE,NOTEBOOK *,*)          
  VER (&CMD,LIST,INPUT,CANCEL,NOTEBOOK,PRT,SORT,SAVE,MSG=TASK003E)              
  IF (&CMD = 'SORT')                                                            
    &ZTRAIL = .TRAIL                                                            
    &SF1 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY                  
             HOUR,HOURS STAT,STATUS *,*)                                        
    VER (&SF1,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)            
    &ZTRAIL = .TRAIL                                                            
    &SF2 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY                  
             HOUR,HOURS STAT,STATUS *,*)                                        
    VER (&SF2,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)            
    &ZTRAIL = .TRAIL                                                            
    &SF3 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY                  
             HOUR,HOURS STAT,STATUS *,*)                                        
    VER (&SF3,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)            
    &ZTRAIL = .TRAIL                                                            
    &SF4 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY                  
             HOUR,HOURS STAT,STATUS *,*)                                        
    VER (&SF4,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)            
    &ZTRAIL = .TRAIL                                                            
    &SF5 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY                  
             HOUR,HOURS STAT,STATUS *,*)                                        
    VER (&SF5,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)            
    &ZTRAIL = .TRAIL                                                            
  IF (&CMD = 'INPUT')                                                           
    &INPN = .TRAIL                                                              
    IF (&INPN = &Z)                                                             
      &INPN = 1                                                                 
    VER (&INPN,NB,NUM)                                                          
  IF (&CMD = 'PRT')                                                             
    &PRTDEST = .TRAIL                                                           
    IF (&PRTDEST ^= &Z)                                                         
      &D = TRUNC(&PRTDEST,1)                                                    
      VER (&D,LIST,U,R,MSG=TASK003D)                                            
      &D = .TRAIL                                                               
      VER (&D,NB,NUM,MSG=TASK003D)                                              
  IF (&CMD = 'NOTEBOOK')                                                        
    &NBDSN = .TRAIL                                                             
    VER (&NBDSN,DSNAME)                                                         
  IF (&ZTDSELS ^= 0000)                                                         
    &ACT = TRUNC(&A,1)                                                          
    VER (&ACT,LIST,R,D,U,N,MSG=TASK003L)                                        
    &N = .TRAIL                                                                 
    IF (&N = &Z)                                                                
      &N = 1                                                                    
    VER (&N,NB,NUM)                                                             
)END                                                                            

After:

)ATTR
  # TYPE(INPUT) INTENS(LOW) CAPS(ON)
  @ TYPE(OUTPUT) INTENS(LOW) SKIP(ON)
  + TYPE(TEXT) INTENS(LOW) SKIP(ON)
)BODY EXPAND(//)
%---------------------- Online Tasks-List Update Panel -------------------------
%COMMAND ===>_ZCMD                                            %SCROLL ===>_AMT +
%
+Current sort order: &TASKSRTF
+Dataset name of TASKLIST: &TASKNDSN
+
%               Target  Est
%Act Category P Date    Hour Stat Task Description
%--- -------- - ------- ---- ---- ----------------------------------------------
)MODEL CLEAR(A)
#A  @CATEGORY@Z@Z      @Z   @Z   @TASK
+--- -------- - ------- ---- ---- ----------------------------------------------
)INIT
  /******************************************************************/
  /* Panelid: TASKTBD                                               */
  /* Author:  Joe Veilleux, MIS Tech Support                        */
  /* History: 27Feb85-JJV-1.00-Original experimental release        */
  /*          28Feb85-JJV-1.01-Correct to allow SAVE command        */
  /*          08Mar85-JJV-1.02-Implement TASKLIST facility          */
  /* Purpose: This panel displays a user's tasks list for update    */
  /******************************************************************/
  .ZVARS = '(PRIORITY TARGDATE HOURS STATUS)'
  .HELP = TASKTCON
  &ZHTOP = TASKTCON
  &AMT  = PAGE
 &Z    = ''
  &ZTDMARK = '=============================== BOTTOM OF TABLE +
              ==============================='
  /* Format current date and save in shared pool (for printing) */
  &CURMMM = TRANS(&ZMONTH
    01,January 02,February 03,March 04,April 05,May 06,June
    07,July 08,August 09,September 10,October 11,November 12,December)
  &CURDATE = '&ZDAY &CURMMM 20&ZYEAR'
  VPUT (CURDATE) SHARED
)REINIT
/*IF (.MSG ^= &Z)                    */
  /*.ATTR(.CURSOR) = 'COLOR(RED)'    */
  /*.AUTOSEL = YES                   */
  /*.CSRROW = &CRP                   */
)PROC
  &CMD = TRANS( TRUNC (&ZCMD,' ')
           I,INPUT INP,INPUT CAN,CANCEL NB,TASKLIST NOTE,TASKLIST *,*)
  VER (&CMD,LIST,INPUT,CANCEL,TASKLIST,PRT,SORT,SAVE
                 UP,DOWN,MSG=TASK003E)
  IF (&CMD = 'SORT')
    &ZTRAIL = .TRAIL
    &SF1 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY
             HOUR,HOURS STAT,STATUS *,*)
    VER (&SF1,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)
    &ZTRAIL = .TRAIL
    &SF2 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY
             HOUR,HOURS STAT,STATUS *,*)
    VER (&SF2,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)
    &ZTRAIL = .TRAIL
    &SF3 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY
             HOUR,HOURS STAT,STATUS *,*)
    VER (&SF3,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)
    &ZTRAIL = .TRAIL
    &SF4 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY
             HOUR,HOURS STAT,STATUS *,*)
    VER (&SF4,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)
    &ZTRAIL = .TRAIL
    &SF5 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY
             HOUR,HOURS STAT,STATUS *,*)
    VER (&SF5,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S)
    &ZTRAIL = .TRAIL
  IF (&CMD = 'INPUT')
    &INPN = .TRAIL
    IF (&INPN = &Z)
      &INPN = 1
    VER (&INPN,NB,NUM)
  IF (&CMD = 'PRT')
    &PRTDEST = .TRAIL
    IF (&PRTDEST ^= &Z)
      &D = TRUNC(&PRTDEST,1)
      VER (&D,LIST,U,R,MSG=TASK003D)
      &D = .TRAIL
      VER (&D,NB,NUM,MSG=TASK003D)
  IF (&CMD = 'TASKLIST')
    &NBDSN = .TRAIL
    VER (&NBDSN,DSNAME)
  IF (&ZTDSELS ^= 0000)
    &ACT = TRUNC(&A,1)
    VER (&ACT,LIST,R,D,U,N,MSG=TASK003L)
    &N = .TRAIL
    IF (&N = &Z)
      &N = 1
    VER (&N,NB,NUM)
)END

Modifications:

  • Re-define header (line 1) without use of EXPAND characters.
    ISPF 2.2 can only properly handle one set of EXPAND verbs. Otherwise, the result of two EXPAND verbs will not center correctly on the terminal line.
  • Place attributes in column 1 of each line in the )BODY section to render a Mod-2 real-estate.
    ISPF 2.2 wraps text across the 3270 real-estate (whether a Mod-2 or Mod-5 terminal) resulting in a ‘skewed’ panel presentation.
  • Insert &Z = ” statement, if needed.
    ISPF 2.2 appears to not declare &Z as a general Z-type variable for use in a panel definition.
  • Comment .MSG, .ATTR(), .AUTOSEL and .CSRROW assignment statements.
    ISPF 2.2 does not the assignment statement or invalid use in declared panel section.
  • Expand VER statement to include UP and DOWN for a LIST-type.
    ISPF 2.2 passes the PF7/PF8 (UP/DOWN) commands via the COMMAND field and the panel logic must validate or results in an error message (INVALID COMMAND).
  • Other modifications applied are self-explanatory.

Skeleton (File Tailoring)

PanelDescription
TASKPRTNPrint Tasks List to sequential file
X1A100PL/I program to obtain user details
PRTTASKS (new)COBOL program to create tasks-list report to sequential file

Modification:

  • None. TASKPRTN is not used as ISPF 2.2 does not support file tailoring.

X1A100 will not be used as it is customized for Joe Veilleux installation at APC.

New program, PRTTASKS, substituted to facilitate tasks-list printing is integrated into the PRT function executed in CLIST SPTASKDR.

Message

PanelDescription
TASK00Tasks List Messages

Modifications:

  • No changes required for use under ISPF 2.2!

CLIST

PanelDescription
SPTASKDRTasks List CLIST Driver

Modifications to SPTASKDR were extensive due to transforming TASKLIST functionality into MVS 3.8J TSO and ISPF 2.2. The modifications are solely based on my personal experience with ISPF 2.2 (ISPF-like product from Wally Mclaughlin).

Below is the after version of SPTASKDR highlighting modifications.

After:

PROC 0 TEST TBLDSN(TASKLIST)                                            00010000
/*TITLE SPTASKDR: DRIVER FOR ONLINE TASKS-LIST APPLICATION   (CSS)    */00020000
/* AUTHOR:  JOE VEILLEUX                                              */00030000
/* HISTORY: 27FEB85-JJV-1.00-ORIGINAL EXPERIMENTAL RELEASE            */00040000
/*          28FEB85-JJV-1.01-ADD ACK FOR SORT, SAVE                   */00050001
/*          08MAR85-JJV-1.02-ADD NOTEBOOK, CHANGE DEFAULT SORT ORDER  */00060003
/*          18MAR85-JJV-1.03-CHANGE DEFAULT SORT ORDER AGAIN          */00070003
/* ------------------------------------------------------------------ */LB00
/*  Modified by Larry Belmontes to execute under MVS 3.8J TSO and     */LB00
/*  ISPF 2.2 (ISPF-like product from Wally Mclaughlin.                */LB00
/* ------------------------------------------------------------------ */LB00
CONTROL MAIN END(ENDO) NOMSG                                            00080000
/* ------------------------------------------------------------------ */LB00
/*  Obtain ZUSER to fully qualify all DSN for ALLOCATIONS and         */LB00
/*  ISPF EDIT statements                                              */LB00
ISPEXEC VGET (ZUSER) SHARED                                             LB00
/*                                                                    */LB00
/*  Declare variables used in CLIST to prevent error messages         */LB00
SET CRP = 0                                                             LB00
SET ZTDSELS = 0                                                         LB00
/*                                                                    */LB00
/*  Declare table column variables                                    */LB00
/*  NAMES(CATEGORY TASK PRIORITY TARGDATE TARGSORT HOURS STATUS)      */LB00
/*           (8)   (46)   (1)      (7)      (10)    (4)   (4)         */LB00
SET CATEGORY = &STR(12345678)                                           LB00
SET TASK     = &STR(1234567890123456789012345678901234567890123456)     LB00
SET PRIORITY = &STR(1)                                                  LB00
SET TARGDATE = &STR(1234567)                                            LB00
SET TARGSORT = &STR(1234567890)                                         LB00
SET HOURS    = &STR(1234)                                               LB00
SET STATUS   = &STR(1234)                                               LB00
/* ------------------------------------------------------------------ */LB00
IF &TEST EQ TEST THEN CONTROL LIST SYMLIST CONLIST MSG                  00090000
ISPEXEC VGET (TASKSRTF) PROFILE                                         00100000
IF &LASTCC EQ 8 OR &TASKSRTF EQ THEN SET &TASKSRTF = &STR(**UNKNOWN**)  00110002
ISPEXEC VGET (TASKNDSN) PROFILE                                         00120002
IF &LASTCC EQ 8 OR &TASKNDSN EQ THEN SET &TASKNDSN = &STR(**NOT SET**)  00130002
/*  Dropped LIBRARY and SHARE options from TBOPEN                     */LB00
ISPEXEC TBOPEN TASKLIST WRITE                                           00140000
IF &LASTCC EQ 8 THEN DO                                                 00150000
/*  Dropped LIBRARY and SHARE options from TBCREATE                   */LB00
  ISPEXEC TBCREATE TASKLIST WRITE +                                     00160000
    NAMES(CATEGORY TASK PRIORITY TARGDATE TARGSORT HOURS STATUS)        00170000
  IF &LASTCC NE 0 THEN DO                                               00180000
    ISPEXEC SETMSG MSG(TASK001S)                                        00190000
    EXIT                                                                00200000
    ENDO                                                                00210000
  ISPEXEC SETMSG MSG(TASK001T)                                          00220000
  ISPEXEC TBSORT TASKLIST +                                             00230002
    FIELDS(STATUS,C,D PRIORITY,N,A HOURS,N,D TARGSORT,N,A)              00240003
  SET &TASKSRTF = &STR(STATUS(D) PRIORITY HOURS(D) DATE)                00250003
  ISPEXEC VPUT (TASKSRTF) PROFILE                                       00260000
  ENDO                                                                  00270000
/* SET FLAG TO DELETE "PRINT" DATASET ON EXIT */                        00280000
SET &PRTDEL =                                                           00290000
SET &RC = 0                                                             00300000
SET &ZTDTOP = 0                                                         00310000
SET &UPDTFLAG =                                                         00320000
/* DISPLAY THE TABLE FOR UPDATE UNTIL "END" OR "CANCEL" */              00330000
DO WHILE 1=1                                                            00340000
  IF &RC EQ 4 THEN ISPEXEC TBDISPL TASKLIST POSITION(CRP)               00350000
  ELSE DO                                                               00360000
    /* REPOSITION THE TABLE AS THE USER LAST SAW IT */                  00370000
    ISPEXEC TBTOP   TASKLIST                                            00380000
    ISPEXEC TBSKIP  TASKLIST NUMBER(&ZTDTOP)                            00390000
    /* HONOR A PENDING SCROLL REQUEST (IF ANY) */                       00400000
    ISPEXEC VGET (ZVERB ZSCROLLN)                                       00410000
    IF &ZVERB EQ UP THEN ISPEXEC TBSKIP TASKLIST NUMBER(-&ZSCROLLN)     00420000
    ELSE IF &ZVERB EQ DOWN THEN ISPEXEC TBSKIP TASKLIST +               00430000
      NUMBER(&ZSCROLLN)                                                 00440000
    /* NOW REDISPLAY THE TABLE */                                       00450000
    ISPEXEC TBDISPL TASKLIST PANEL(TASKTBD) POSITION(CRP)               00460000
    ENDO                                                                00470000
  SET &RC = &LASTCC                                                     00480000
  IF &CMD EQ CANCEL OR &RC GT 4 THEN GOTO LOOPEXIT /* EXIT LOOP */      00490000
  ELSE IF &CMD EQ SORT THEN DO                                          00500000
    IF &SF1 EQ THEN DO                                                  00510000
      SET &SF1 = STATUS                                                 00520000
      SET &SF2 = PRIORITY                                               00530003
      SET &SF3 = HOURS                                                  00540003
      SET &SF4 = DATE                                                   00550003
      SET &SF5 =                                                        00560000
      ENDO                                                              00570000
    SET &SORTFLDS =                                                     00580000
    SET &TASKSRTF =                                                     00590000
    SET &I = 1                                                          00600000
    DO WHILE &I LT 6                                                    00610000
      SET &SF = SF&I                                                    00620000
      SET &S = &&&SF                                                    00630000
      IF &S EQ CATEGORY THEN DO                                         00640000
        SET &SORTFLDS = &STR(&SORTFLDS CATEGORY,C,A)                    00650000
        SET &TASKSRTF = &STR(&TASKSRTF CATEGORY)                        00660000
        ENDO                                                            00670000
      ELSE IF &S EQ PRIORITY THEN DO                                    00680000
        SET &SORTFLDS = &STR(&SORTFLDS PRIORITY,N,A)                    00690000
        SET &TASKSRTF = &STR(&TASKSRTF PRIORITY)                        00700000
        ENDO                                                            00710000
      ELSE IF &S EQ DATE THEN DO                                        00720000
        SET &SORTFLDS = &STR(&SORTFLDS TARGSORT,N,A)                    00730000
        SET &TASKSRTF = &STR(&TASKSRTF DATE)                            00740000
        ENDO                                                            00750000
      ELSE IF &S EQ HOURS THEN DO                                       00760000
        SET &SORTFLDS = &STR(&SORTFLDS HOURS,N,D)                       00770000
        SET &TASKSRTF = &STR(&TASKSRTF HOURS(D))                        00780000
        ENDO                                                            00790000
      ELSE IF &S EQ STATUS THEN DO                                      00800000
        SET &SORTFLDS = &STR(&SORTFLDS STATUS,C,D)                      00810000
        SET &TASKSRTF = &STR(&TASKSRTF STATUS(D))                       00820000
        ENDO                                                            00830000
      SET &I = &I + 1                                                   00840000
      ENDO                                                              00850000
    ISPEXEC VPUT (TASKSRTF) PROFILE                                     00860000
    ISPEXEC TBSORT TASKLIST FIELDS(&SORTFLDS)                           00870000
    ISPEXEC SETMSG MSG(TASK005R)                                        00880001
    ENDO                                                                00890000
  ELSE IF &CMD EQ SAVE THEN DO                                          00900000
/*  Dropped REPLCOPY and LIBRARY options from TBSAVE                  */LB00
    ISPEXEC TBSAVE TASKLIST PAD(15)                                     00910000
    SET &UPDTFLAG =                                                     00920000
    ISPEXEC SETMSG MSG(TASK005S)                                        00930001
    ENDO                                                                00940000
  ELSE IF &CMD EQ INPUT THEN DO                                         00950000
    ISPEXEC CONTROL DISPLAY SAVE                                        00960000
    DO WHILE &INPN GE 1                                                 00970000
      ISPEXEC TBVCLEAR TASKLIST                                         00980000
      ISPEXEC DISPLAY PANEL(TASKUPD)                                    00990000
      IF &LASTCC EQ 0 THEN DO                                           01000000
        ISPEXEC TBADD TASKLIST ORDER                                    01010000
        SET &UPDTFLAG = YES                                             01020000
        ENDO                                                            01030000
      SET &INPN = &INPN-1                                               01040000
      ENDO                                                              01050000
    ISPEXEC CONTROL DISPLAY RESTORE                                     01060000
    ENDO                                                                01070000
  ELSE IF &CMD EQ NOTEBOOK THEN DO                                      01080002
    ISPEXEC CONTROL DISPLAY SAVE                                        01090002
    IF &NBDSN EQ THEN DO /* EDIT NOTEBOOK DATASET */                    01100002
      ISPEXEC VGET (TASKNDSN) PROFILE                                   01110002
/*    Added &STR for TASKNDSN                                         */LB00
      IF &LASTCC NE 0 OR &STR(&TASKNDSN) EQ THEN +                      01120002
        ISPEXEC DISPLAY PANEL(TASKNDSN)                                 01130002
      IF &LASTCC EQ 0 THEN DO                                           01140002
        ISPEXEC VPUT (TASKNDSN) PROFILE                                 01150002
        ERROR DO                                                        01160002
          ERROR DO                                                      01170002
            ISPEXEC SETMSG MSG(TASK006E)                                01180002
            GOTO SKPNBALC                                               01190002
            ENDO                                                        01200002
          ATTR NBATTR RECFM(V B) LRECL(80) BLKSIZE(6233)                01210002
/* ------------------------------------------------------------------ */LB00
/*        Concatenate into &MYSTR removing trailing spaces from       */LB00
/*        variables used in &UNSTRX SET statement                     */LB00
          SET UNSTRX = &STR(&ZUSER..&TASKNDSN($TASK$))                  LB00
          CUTIL00 UNSTR UNSTRX                                          LB00
          SET I = 1                                                     LB00
          SET MYSTR =                                                   LB00
          SET &STRX = &STR(&&UNSTRX)                                    LB00
          DO WHILE &I <= &UNSTRX0                                       LB00
            SET MYSTR = &STR(&MYSTR&STRX&I)                             LB00
            SET I = &I + 1                                              LB00
          ENDO                                                          LB00
/* ------------------------------------------------------------------ */LB00
/*        Use &MYSTR instead of &TASKNDSN($TASK$) for DSN option      */LB00
          ALLOC F(N) DSN('&MYSTR') NEW REUSE +                          01220002
            SP(10 10) TRACKS DIR(5) USING(NBATTR)                       01230002
          FREE ATTR(NBATTR)                                             01240002
          ERROR OFF                                                     01250002
          ENDO                                                          01260002
/* ------------------------------------------------------------------ */LB00
/*        Concatenate into &MYSTR removing trailing spaces from       */LB00
/*        variables used in &UNSTRX SET statement                     */LB00
        SET UNSTRX = &STR(&ZUSER..&TASKNDSN)                            LB00
        CUTIL00 UNSTR UNSTRX                                            LB00
        SET I = 1                                                       LB00
        SET MYSTR =                                                     LB00
        SET &STRX = &STR(&&UNSTRX)                                      LB00
        DO WHILE &I <= &UNSTRX0                                         LB00
          SET MYSTR = &STR(&MYSTR&STRX&I)                               LB00
          SET I = &I + 1                                                LB00
        ENDO                                                            LB00
/* ------------------------------------------------------------------ */LB00
/*      Use &MYSTR instead of &TASKNDSN for DSN option                */LB00
        ALLOC F(N) DSN('&MYSTR') SHR REUSE                              01270002
        SKPNBALC: ERROR OFF                                             01280002
        FREE F(N)                                                       01290002
        ERROR OFF                                                       01300002
        ISPEXEC CONTROL ERRORS RETURN                                   01310002
/*      Use &MYSTR instead of &TASKNDSN for DATASET option            */LB00
        ISPEXEC EDIT DATASET('&MYSTR')                                  01320002
        IF &LASTCC GT 4 THEN ISPEXEC SETMSG MSG(TASK006T)               01330002
        ISPEXEC CONTROL ERRORS CANCEL                                   01340002
        ENDO                                                            01350002
      ENDO                                                              01360002
    ELSE DO                                                             01370002
      SET &TASKNDSN = &NBDSN                                            01380002
      ISPEXEC VPUT (TASKNDSN) PROFILE                                   01390002
      ENDO                                                              01400002
    ISPEXEC CONTROL DISPLAY RESTORE                                     01410002
    ENDO                                                                01420002
  ELSE IF &CMD EQ PRT THEN DO                                           01430000
    ERROR DO                                                            01440000
      ERROR OFF                                                         01450000
      FREE ATTR(VBA)                                                    01460000
/*    Using FBA 133 1330 in place of VBA specification for printing   */LB00
      ATTR VBA RECFM(F B A) LRECL(133) BLKSIZE(1330) DSORG(PS)          01470000
/*    Intentionally replaced ISPFILE with RPTOUT for DDNAME           */LB00
      ALLOC F(RPTOUT)  DSN(TASKTEMP.LISTING) REUSE +                    01480000
        USING(VBA) SP(1 1) TRACKS                                       01490000
      SET &PRTDEL = DELETE                                              01500000
      ENDO                                                              01510000
/*  Intentionally replaced ISPFILE with RPTOUT for DDNAME             */LB00
    ALLOC F(RPTOUT)  DSN(TASKTEMP.LISTING) OLD REUSE                    01520000
    ERROR OFF                                                           01530000
    ISPEXEC SELECT PGM(PRTTASKS)                                        01540000
/* ------------------------------------------------------------------ */LB00
/*  Removed File Tailoring statements                                 */LB00
/* ------------------------------------------------------------------ */LB00
    IF &PRTDEST EQ THEN +                                               01580000
      PRINTO TASKTEMP.LISTING NOHEADING NOMSG                           01590000
/*    Drop UCS option from PRINTO statement                           */LB00
    ELSE PRINTO TASKTEMP.LISTING NOHEADING NOMSG DEST(&PRTDEST)         01600000
    ISPEXEC SETMSG MSG(TASK003P)                                        01610000
    ENDO                                                                01620000
  ELSE IF &ZTDSELS GE 1 THEN DO                                         01630000
    IF &ACT EQ D THEN -                                                 01640000
      DO WHILE &N GE 1                                                  01650000
        ISPEXEC TBDELETE TASKLIST                                       01660000
        ISPEXEC TBSKIP TASKLIST                                         01670000
        /* CHECK RETURN CODE TO GUARD AGAINST DELETING TOO MANY */      01680000
        IF &LASTCC NE 0 THEN SET &N = 0                                 01690000
        ELSE SET &N = &N-1                                              01700000
        SET &UPDTFLAG = YES                                             01710000
/*      Clear selection field                                         */LB00
        SET &A   = &STR()                                               LB00
        ENDO                                                            01720000
    ELSE IF &ACT EQ R THEN -                                            01730000
      DO WHILE &N GE 1                                                  01740000
        ISPEXEC TBADD TASKLIST ORDER                                    01750000
        SET &N = &N-1                                                   01760000
        SET &UPDTFLAG = YES                                             01770000
/*      Clear selection field                                         */LB00
        SET &A   = &STR()                                               LB00
        ENDO                                                            01780000
    ELSE IF &ACT EQ U THEN DO                                           01790000
/*      Clear selection field                                         */LB00
      SET &A   = &STR()                                                 LB00
      ISPEXEC CONTROL DISPLAY SAVE                                      01800000
      ISPEXEC DISPLAY PANEL(TASKUPD)                                    01810000
      IF &LASTCC EQ 0 THEN DO                                           01820000
        ISPEXEC TBPUT TASKLIST ORDER /* RESAVE ROW IN TABLE */          01830000
        SET &UPDTFLAG = YES                                             01840000
        ENDO                                                            01850000
      ISPEXEC CONTROL DISPLAY RESTORE                                   01860000
      ENDO                                                              01870000
    ELSE IF &ACT EQ N THEN DO                                           01880002
/*      Clear selection field                                         */LB00
      SET &A   = &STR()                                                 LB00
      ISPEXEC CONTROL DISPLAY SAVE                                      01890002
      ISPEXEC VGET (TASKNDSN) PROFILE                                   01900002
/*    Added &STR for TASKNDSN                                         */LB00
      IF &LASTCC NE 0 OR &STR(&TASKNDSN) EQ THEN -                      01910002
        ISPEXEC DISPLAY PANEL(TASKNDSN)                                 01920002
      IF &LASTCC EQ 0 THEN DO                                           01930002
        ISPEXEC VPUT (TASKNDSN) PROFILE                                 01940002
        ERROR DO                                                        01950002
          ERROR DO                                                      01960002
            ISPEXEC SETMSG MSG(TASK006E)                                01970002
            GOTO SKPNALC                                                01980002
            ENDO                                                        01990002
          ATTR NBATTR RECFM(V B) LRECL(80) BLKSIZE(6233)                02000002
/* ------------------------------------------------------------------ */LB00
/*        Concatenate into &MYSTR removing trailing spaces from       */LB00
/*        variables used in &UNSTRX SET statement                     */LB00
          SET UNSTRX = &STR(&ZUSER..&TASKNDSN)                          LB00
          CUTIL00 UNSTR UNSTRX                                          LB00
          SET I = 1                                                     LB00
          SET MYSTR =                                                   LB00
          SET &STRX = &STR(&&UNSTRX)                                    LB00
          DO WHILE &I <= &UNSTRX0                                       LB00
            SET MYSTR = &STR(&MYSTR&STRX&I)                             LB00
            SET I = &I + 1                                              LB00
          ENDO                                                          LB00
/* ------------------------------------------------------------------ */LB00
/*        Use &MYSTR instead of &TASKNDSN($TASK$) for DSN option      */LB00
          ALLOC F(N) DSN('&MYSTR') NEW REUSE +                          02010002
            SP(10 10) TRACKS DIR(5) USING(NBATTR)                       02020002
          FREE ATTR(NBATTR)                                             02030002
          ERROR OFF                                                     02040002
          ENDO                                                          02050002
/* ------------------------------------------------------------------ */LB00
/*        Concatenate into &MYSTR removing trailing spaces from       */LB00
/*        variables used in &UNSTRX SET statement                     */LB00
        SET UNSTRX = &STR(&ZUSER..&TASKNDSN)                            LB00
        CUTIL00 UNSTR UNSTRX                                            LB00
        SET I = 1                                                       LB00
        SET MYSTR =                                                     LB00
        SET &STRX = &STR(&&UNSTRX)                                      LB00
        DO WHILE &I <= &UNSTRX0                                         LB00
          SET MYSTR = &STR(&MYSTR&STRX&I)                               LB00
          SET I = &I + 1                                                LB00
        ENDO                                                            LB00
/* ------------------------------------------------------------------ */LB00
/*      Use &MYSTR instead of &TASKNDSN for DSN option                */LB00
        ALLOC F(N) DSN('&MYSTR') SHR                                    02060002
        SKPNALC: ERROR OFF                                              02070002
        FREE F(N)                                                       02080002
        ERROR OFF                                                       02090002
/* ------------------------------------------------------------------ */LB00
/*        Concatenate into &MYSTR removing trailing spaces from       */LB00
/*        variables used in &UNSTRX SET statement                     */LB00
        SET UNSTRX = &STR(&ZUSER..&TASKNDSN(&CATEGORY))                 LB00
        CUTIL00 UNSTR UNSTRX                                            LB00
        SET I = 1                                                       LB00
        SET MYSTR =                                                     LB00
        SET &STRX = &STR(&&UNSTRX)                                      LB00
        DO WHILE &I <= &UNSTRX0                                         LB00
          SET MYSTR = &STR(&MYSTR&STRX&I)                               LB00
          SET I = &I + 1                                                LB00
        ENDO                                                            LB00
/* ------------------------------------------------------------------ */LB00
/*      Use &MYSTR instead of &TASKNDSN for DATASET option            */LB00
        ISPEXEC EDIT DATASET('&MYSTR')                                  02100002
        IF &LASTCC EQ 0 THEN ISPEXEC SETMSG MSG(TASK006S)               02110002
        ELSE ISPEXEC SETMSG MSG(TASK006N)                               02120002
        ENDO                                                            02130002
      ISPEXEC CONTROL DISPLAY RESTORE                                   02140002
      ENDO                                                              02150002
    ENDO                                                                02160000
  ENDO                                                                  02170000
/*  Intentionally replaced ISPFILE with RPTOUT for DDNAME             */LB00
LOOPEXIT: -                                                             02180000
FREE F(RPTOUT)  ATTR(VBA) &PRTDEL                                       02190000
IF &CMD EQ CANCEL THEN DO                                               02200000
  ISPEXEC TBEND TASKLIST                                                02210000
  ISPEXEC SETMSG MSG(TASK002C)                                          02220000
  ENDO                                                                  02230000
ELSE IF &UPDTFLAG EQ THEN DO                                            02240000
  ISPEXEC TBEND TASKLIST                                                02250000
  ISPEXEC SETMSG MSG(TASK002N)                                          02260000
  ENDO                                                                  02270000
ELSE DO                                                                 02280000
/*  Dropped REPLCOPY and LIBRARY options from TBCLOSE                 */LB00
  ISPEXEC TBCLOSE TASKLIST PAD(15)                                      02290000
  ISPEXEC SETMSG MSG(TASK002S)                                          02300000
  ENDO                                                                  02310000

Modifications:

  • Insert initialization type statements at start of CLIST:
    Obtain value from ZUSER ISPF variable to fully qualify DSN in ALLOC and ISPF EDIT statements.
    ISPF 2.2 DATASET EDIT statement appears to not properly handle non-fully qualified DSNs with a member name. This issue is rectified by using fully qualified DSNs.
    For consistency, elected to apply this specific change to all DSN usage in CLIST.
  • Insert CLIST assignment statements for variables used in ISPF statements but not declared before usage.
    ISPF 2.2 expects variables to exist before usage.
  • Insert CLIST assignment statements for table columns which include correct length!
    ISPF 2.2 expects variables to exist before usage in TBCREATE.
  • Remove LIBRARAY and SHARE options for TBOPEN and TBCREATE.
    ISPF 2.2 does not support the LIBRARY option.
    ISPF 2.2 appears to not properly handle the SHARE tables option when closing the table resulting in an abend error.
  • Remove REPLCOPY and LIBRARY option in TBSAVE.
    ISPF 2.2 appears to not support REPLCOPY and LIBRARY options.
  • Insert use of &STR function for testing variable &TASKDSN to prevent a command interpreter error.
    MVS 3.8J TSO may interrupt the interpreter if a variable includes math operation symbols such as ‘*’ which &TASKNDSN may include if notebook value is not yet set.
  • Insert a set of statements to properly concatenate (concatenate and remove trailing spaces from each string) for strings for use as a DSN in ALLOC or ISPF EDIT statements.
    CUTIL00 is used for the concatenation function.
    ISPF 2.2 passes values (i.e. from panels, VGET) as-is in original variable length.
  • Change record format from VBA to FBA for use by PRTTASKS (print table tasks pgm)
    Using LRECL=133, BLKSIZE=1330, RECFM(F B A)
  • Change DDNAME (ISPFILE to RPTOUT) for the PRT function.
    Intentional change to prevent confusion as ISPFILE is used by file tailoring.
  • Change program name from X1A100 to PRTTASKS for the PRT function.
    Apply new method to print tasks-list as an alternative under ISPF 2.2.
  • Remove file tailoring statements for the PRT function.
    ISPF 2.2 does not support file tailoring.
  • Remove the PRINTO UCS option for the PRT function.
    Intentional change as UCS options may vary across MVS 3.8J installations.
  • Set &A to spaces in selection processing.
    ISPF 2.2 appears to not support the CLEAR option in the panel model statement.
    Instead, set the selection column ($A) to spaces after each iteration to clear the selected item.
  • Remove REPLCOPY and LIBRARY options in TBCLOSE statement.
    ISPF 2.2 appears to not support REPLCOPY and LIBRARY options.

Revised Print Function

The original tasks-list PRT functional flow invokes program X1A100 to obtain user name and other information (site specific) , followed by file tailoring (via TASKPRT skeleton) to print tasks-list report to a temporary sequential file for subsequent printing via PRINTOFF.

The alternative solution invokes a new program to create the tasks-list report thus eliminating the file-tailoring process.

The revised PRT functional flow invokes a new COBOL program PRTTASKS to print tasks-list report to a temporary sequential file which is subsequently printed via PRINTOFF.

Additional Notes

ISPF EDIT DATASET statement appears to returns RC of zero whether the edits session saves contents or cancels the edit session. Therefore, error TASK006N will never be raised under ISPF 2.2.

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 before using this software. 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.

If any, other components may be pre-requisites.

See README file for a complete list of required and/or optional software including download sites.

Software Disclaimer

In addition to TASKLIST authors disclaimers (see $DOC CBT231).

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 associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality benefiting the MVS 3.8J hobbyist public domain community.

Access TASKLIST now for a demo!

Take TASKLIST 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.

Start the TASKLIST tutorial for familiarization of the TASKLIST application.

From the ISPF PRIMARY OPTION MENU, type tso lbtutor tasktcon in the command field (OPTION ===>) and press ENTER.

Use PF3 to terminate tutorial.

From the ISPF PRIMARY OPTION MENU, type %SPTASKDR in the command field (OPTION ==>) and press ENTER.

The TASKLIST application panel is displayed.

Use PF3 to end TASKLIST.

Use PF3 to exit from ISPF and TSO Applications Menu returning to the TSO READY prompt.

Log off TSO.

Terminate 3270 session.

Installing TASKLIST Software

After downloading the ZIP file, open the ZIP file, open readme.txt for directions.

The initial installation task is to transfer the distribution content file (HET or XMI) from your personal computing device to MVS.

When the transfer is completed, use the associated ASCII load JCL ($inst01.JCL for HET, $RECVXMI.JCL for XMI via RECV370 or $RECVTSO.JCL for XMI using TSO RECEIVE) to submit from your personal computing device provided a TCP/IP socket reader is setup on your hosting Hercules / MVS 3.8J system.

Alternatively, copy-paste the associated JCL from the readme.txt to your 3270 emulator for MVS submission

Once the distribution files are on MVS, continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO per the readme.txt instructions.

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


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


TASKLIST for MVS3.8J / Hercules                                           . 
==============================                                           .

Date: 01/29/2024  Release V0R9M00  **INITIAL software distribution

*  Author:  Larry Belmontes Jr.
*           https://ShareABitofIT.net/TASKLIST-in-MVS38J
*           Copyright (C) 2024  Larry Belmontes, Jr.


----------------------------------------------------------------------
|    TASKLIST     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



----------------------------------------------------------------------
|    TASKLIST     C h a n g e   H i s t o r y                        |
----------------------------------------------------------------------
*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  01/29/2024 0.9.00   - Initial modified version released to MVS 3.8J
*                        hobbyist public domain
*
*                        Original work (TASKLIST) from Joe Veilleux
*                        from CBT file 231 dated circa 1985.
*
*
======================================================================
* I. C o n t e n t   o f   Z I P   F i l e                           |
======================================================================

o  $INST00.JCL          Define Alias for HLQ in Master Catalog

o  $INST01.JCL          Load CNTL data set from distribution tape

o  $RECVXMI.JCL         RECV370 Receive XMI SEQ to MVS PDSs

o  $RECVTSO.JCL         TSO Receive XMI SEQ to MVS PDSs

o  TASKLIST.V0R9M00.HET Hercules Emulated Tape (HET) multi-file volume
   volser=VS0900        containing software distribution library.

o  TASKLIST.V0R9M00.XMI XMIT file containing software distribution library.

o  DSCLAIMR.TXT         Disclaimer

o  PREREQS.TXT          Required user-mods

o  README.TXT           This File
   Note: See application web page for any updates to readme.txt

Note:   TASKLIST is an ISPF application authored by Joe Veilleux from
-----   Air Products and Chemicals, Inc.  This application was contributed
        to CBTTAPE.ORG in 1985-1986.

        More information at:
        https://www.cbttape.org/cbtdowns.htm  FILE #231
 
Credit: Thanks to Joe Veilleux for this software and opportunity to   
------- transform his application to execute under MVS 3.8J / TSO
        / ISPF 2.2 (ISPF-like product from Wally Mclaughlin).

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:   Two user-mods, ZP60014 and ZP60038, are REQUIRED to process
-----   CLIST symbolic variables via the IKJCT441 API on MVS 3.8J before
        using this software.
        More information and download links at:
        http://www.prycroft6.com.au/vs2mods/

Note:   PRINTOFF (TSO CP) is a pre-requisite for this install
-----   and may be available on MVS3.8J TK3 and TK4- systems.          
        More information at:
        https://www.cbttape.org/cbtdowns.htm  FILE #325 
        - or -                                                  
        may be downloaded in a MVS 3.8J install-ready format from
        Jay Moseley's site:
        http://www.jaymoseley.com/hercules/cbt_ware/printoff.htm

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
Note: LBTUTOR is an ISPF add-on that performs tutorial dialogs ----- and is OPTIONAL for this install if LBTUTOR will not be used. Current version can be downloaded and more information at:
LBTUTOR in MVS38J
====================================================================== * 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 name for HLQ aliases. o The Master Catalog password may be required for some installation steps. o If loading via tape files, device 480 is utilized. o DATASET List after distribution library load for reference purposes: DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT SHRABIT.TASKLIST.V0R9M00.ASM PUB006 20 2 PO FB 10 1 SHRABIT.TASKLIST.V0R9M00.CLIST PUB006 2 1 PO FB 50 1 SHRABIT.TASKLIST.V0R9M00.CNTL PUB006 20 5 PO FB 25 1 SHRABIT.TASKLIST.V0R9M00.HELP PUB006 2 1 PO FB 50 1 SHRABIT.TASKLIST.V0R9M00.ISPF PUB006 10 3 PO FB 30 1 SHRABIT.TASKLIST.V0R9M00.MACLIB PUB006 8 1 PO FB 12 1 **END** TOTALS: 62 TRKS ALLOC 13 TRKS USED 6 EXTENTS Confirm the TOTAL track allocation is available on your device. Note: A different DASD device type (e.g. 3380) may yield different usage. 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. o JCL from your local device (after unzip) may be edited using Notepad or nano (based on you host OS) and submitted via TCP/IP sockets reader if your system configuration supports this option. This option can replace some copy-paste tasks during installation. For more information on submitting JCL to MVS 3.8J, see
Submitting JCL to MVS 3.8J
o For more information on SHRABIT software distribution library, see
SHRABIT Distributions for MVS38J
o For more information on SHRABIT software installation, see
SHRABIT Installations for MVS38J
====================================================================== * III. I n s t a l l a t i o n S t e p s | ====================================================================== +--------------------------------------------------------------------+ | Step 1. Determine software installation source | +--------------------------------------------------------------------+ | HET or XMI ? | +--------------------------------------------------------------------+ a) Software can be installed from one of two sources, HET or XMI. - For tape installation (HET), proceed to STEP 3. **** or - For XMIT installation (XMI), proceed to next STEP. +--------------------------------------------------------------------+ | Step 2. Load distribution source from XMI file | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($RECVXMI) | | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($RECVTSO) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive TASKLIST 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 * //* * using RECV370 * //* -------------------------------------------------------* //RECV PROC HLQ='SHRABIT.TASKLIST',VRM=V0R9M00,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=DISK,DVOLSER=PUB006 <-- Review and Modify //* //RECV370 EXEC PGM=RECV370 //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 //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* RECV370 TASKLIST Software Distribution //* -------------------------------------------------------* //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 //* //CNTL EXEC RECV,TYP=CNTL //RECV370.SYSUT2 DD DDNAME=&TYP //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,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,(02,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,(02,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,(10,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,(05,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 1a: $RECVXMI.JCL ______________________________________________________________________ //RECV000B JOB (SYS),'TSO RECEIVE XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVTSO TSO RECEIVE APPLICATION XMI FILES * //* * for TASKLIST software distribution * //* -------------------------------------------------------* //* //* This JOB executes two steps: //* //* 1) IDCAMS to ensure parent HLQ alias (SHRABIT) is //* defined on master catalog //* Note: Alias definition bypassed if alias already //* ----- defined. //* //* 2) Executes TSO in BATCH mode and issues //* TSO RECEIVE commands to load the XMI distribution //* library (an XMI SEQ dataset) to a temporary PDS. //* Each software PDS is loaded from before deleting //* temporary PDS. //* //* //* This JCL may be modified to suit your installation //* needs. //* //* The TSO RECEIVE commands use INdataset, DAtaset, VOL, //* and NOPRompt parms. //* //* //* -------------------------------------------------------* //* * * //* * PROC: PBTSO * //* * Batch TSO * //* * * //* -------------------------------------------------------* //PBTSO PROC //STEP01 EXEC PGM=IKJEFT01 //SYSPROC DD DISP=SHR,DSN=SYS2.CMDPROC //*STEPLIB DD DISP=SHR,DSN=SYS2.LINKLIB //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY Command Line Input //* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* TSO RECEIVE TASKLIST Software Distribution //* -------------------------------------------------------* //TSORCV EXEC PBTSO //* -------------------------------------------------------* //* Review and Modify the DSN of the transferred XMI <----- //* used in the TSO RECEIVE SYSTSIN DD. <----- //* -------------------------------------------------------* //STEP01.SYSTSIN DD * /* Modify 'SHRABIT.' with your parent HLQ, if different */ /* Modify 'your.transfer.xmi' with transferred XMI SEQ DSN */ /* Modify 'volser' with VOLSER on your system */ RECEIVE IN('your.transfer.xmi') - DA('SHRABIT.TASKLIST.V0R9M00.XMIPDS') - VOL(volser) NOPROMPT /* Receive CNTL */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(CNTL)') - DA('SHRABIT.TASKLIST.V0R9M00.CNTL') - VOL(volser) NOPROMPT /* Receive HELP */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(HELP)') - DA('SHRABIT.TASKLIST.V0R9M00.HELP') - VOL(volser) NOPROMPT /* Receive CLIST */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(CLIST)') - DA('SHRABIT.TASKLIST.V0R9M00.CLIST') - VOL(volser) NOPROMPT /* Receive ISPF */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(ISPF)') - DA('SHRABIT.TASKLIST.V0R9M00.ISPF') - VOL(volser) NOPROMPT /* Receive ASM */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(ASM)') - DA('SHRABIT.TASKLIST.V0R9M00.ASM') - VOL(volser) NOPROMPT /* Receive MACLIB */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(MACLIB)') - DA('SHRABIT.TASKLIST.V0R9M00.MACLIB') - VOL(volser) NOPROMPT /* Delete XMIPDS */ DELETE 'SHRABIT.TASKLIST.V0R9M00.XMIPDS' /* // ______________________________________________________________________ Figure 1b: $RECVTSO.JCL a) Transfer TASKLIST.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 - or - 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) If using RECV370 to load XMI, Copy and paste the $RECVXMI JCL to a PDS member, update JOB statement to conform to your installation standard. - or - If using TSO RECEIVE to load XMI, Copy and paste the $RECVTSO JCL to a PDS member, update JOB statement to conform to your installation standard. c) The first step ensures the HLQ alias is defined and the subsequent steps perform the XMI load. 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: SHRABIT.TASKLIST.V0R9M00.ASM SHRABIT.TASKLIST.V0R9M00.CLIST SHRABIT.TASKLIST.V0R9M00.CNTL SHRABIT.TASKLIST.V0R9M00.HELP SHRABIT.TASKLIST.V0R9M00.ISPF SHRABIT.TASKLIST.V0R9M00.MACLIB f) Subsequent installation steps will be submitted from members contained in the CNTL data set. g) Proceed to STEP 6. **** +--------------------------------------------------------------------+ | Step 3. Define Alias for HLQ SHRABIT in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS00 JOB (SYS),'Def SHRABIT Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for parent HLQ SHRABIT * //* * Note: The master catalog password may be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and Modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* // ______________________________________________________________________ Figure 2: $INST00 JCL Note: This distribution is installed under the HLQ alias SHRABIT. $INST00 bypasses the DEFINE ALIAS action when the alias is already defined. 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 4. Load CNTL data set from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS01 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC THLQ=TASKLIST,TVOLSER=VS0900, // HLQ='SHRABIT.TASKLIST',VRM=V0R9M00, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCNTL DD DSN=&THLQ..&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,(10,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\TASKLIST.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: SHRABIT.TASKLIST.V0R9M00.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS02 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST 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 THLQ=TASKLIST,TVOLSER=VS0900, // HLQ='SHRABIT.TASKLIST',VRM=V0R9M00, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD02 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=&THLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL) //INHELP DD DSN=&THLQ..&VRM..HELP.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL) //INISPF DD DSN=&THLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL) //INASM DD DSN=&THLQ..&VRM..ASM.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL) //INMACLIB DD DSN=&THLQ..&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,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,05,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(05,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\TASKLIST.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: SHRABIT.TASKLIST.V0R9M00.CNTL($UP0900) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS0U JOB (SYS),'Upgrade TASKLIST', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP0900 * //* * Upgrade TASKLIST Software from release V0R0M00 * //* * * //* * Review JCL before submitting!! * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 5: $UP1202.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 NOT the most recent ----- PREVIOUS version, perform a FULL install. 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. Note: $UPvrmm.JCL members exist in each software version. ----- For example, V1R3M00 software contains $UP1300.JCL to upgrade from previous V1R2M00 distribution. For example, V1R2M00 software contains $UP1200.JCL to upgrade from previous V1R1M00 distribution. 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: SHRABIT.TASKLIST.V0R9M00.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS03 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST 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=SHRABIT.TASKLIST.V0R9M00.CLIST,DISP=SHR //INHELP DD DSN=SHRABIT.TASKLIST.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 TASKLIST Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS04 JOB (SYS),'Install TASKLIST', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install TASKLIST Software * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: COBLKED * //* * COBOL Link-Edit * //* * * //* -------------------------------------------------------* //COBL PROC HLQ=WHATHLQ,VRM=VXRXMXX, // MBR=WHOWHAT, // CPARM1='LOAD,SUPMAP', // CPARM2='SIZE=2048K,BUF=1024K' //*COB EXEC PGM=IKFCBL00,REGION=4096K, //* PARM='LOAD,SUPMAP,SIZE=2048K,BUF=1024K' //COB EXEC PGM=IKFCBL00,REGION=4096K, // PARM='&CPARM1,&CPARM2' //STEPLIB DD DUMMY //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=NULLFILE //SYSUT1 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT2 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT3 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT4 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSLIN DD DSNAME=&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, // SPACE=(80,(500,100)) //SYSLIB DD DSN=&HLQ..&VRM..ASM,DISP=SHR // DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR //SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT //* //LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET', // COND=(5,LT,COB),REGION=96K //SYSLIN DD DSNAME=&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DUMMY //SYSLIB DD DUMMY //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,20)) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * * //* * Compile Link-edit PRTTASKS * //* * * //* -------------------------------------------------------* //PRTTASKS EXEC COBL,HLQ='SHRABIT.TASKLIST',VRM=V0R9M00,MBR=PRTTASKS, // CPARM1='LIST,LOAD,NODECK,PMAP,DMAP' //COB.STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR <--Complr STEPLIB //LKED.SYSLMOD DD DSN=xxxxxxxx.ISPLLIB(PRTTASKS), <-- TARGET // DISP=SHR //LKED.SYSLIB DD DSN=SYS1.COBLIB,DISP=SHR <-- COBOL SYSLIB // DD DSNAME=ISP.V2R2M0.LLIB, <-- ISP SYS LLIB // DISP=SHR // ______________________________________________________________________ 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: SHRABIT.TASKLIST.V0R9M00.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS05 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST05 Install ISPF parts * //* * * //* * Note: Duplicate members are over-written. * //* * * //* * * //* * - Uses ISPF 2.2 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='SHRABIT.TASKLIST',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$PRTTSK SELECT MEMBER=SPTASKDR //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=TASK00 //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=TASKNDSN SELECT MEMBER=TASKTBD SELECT MEMBER=TASKTCON SELECT MEMBER=TASKTEND SELECT MEMBER=TASKTGNR SELECT MEMBER=TASKTNB SELECT MEMBER=TASKTNB2 SELECT MEMBER=TASKTPRT SELECT MEMBER=TASKTUP2 SELECT MEMBER=TASKTUPD SELECT MEMBER=TASKUPD //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: SHRABIT.TASKLIST.V0R9M00.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS40 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST 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 TASKLIST | +--------------------------------------------------------------------+ NOTE: This validation assumes it is first time execution for TASKLIST. ==== a) From the ISPF Main Menu, enter the following command: TSO %SPTASKDR b) The Tasks-List panel is displayed with message 'TASKS-LIST CREATED' at first time. Display below is a representative snippet. ________________________________________________________________________________ ---------------------- Online Tasks-List Update Panel -------TASKS-LIST CREATED COMMAND ===> SCROLL ===> PAGE Current sort order: STATUS(D) PRIORITY HOURS(D) DATE Dataset name of notebook: MY.NOTEBK Target Est Act Category P Date Hour Stat Task Description --- -------- - ------- ---- ---- ---------------------------------------------- ******************************* BOTTOM OF DATA ******************************* ________________________________________________________________________________ Figure 10a: TASKLIST Update Panel at first time c) Type INPUT in the COMMAND line to enter first task. d) Press ENTER. e) The Add Task panel is displayed with default values. Display below is a representative snippet. ________________________________________________________________________________ ----------------------- Online Tasks-List: Add Task ------------------------ COMMAND ===> Specify or change information below: Category ===> Priority ===> 5 (Number 1-9, 1 is highest) Target Date ===> (DDMMMYY) Est Hours ===> (Hours of effort) Status ===> INIT (INIT,OPEN,DONE,HOLD,DROP) Description ===> Hit ENTER to update the information for this task Hit PF3 to cancel this operation and return to tasks-list panel ________________________________________________________________________________ Figure 10b: TASKLIST Add Task panel f) Enter the following: Category ===> START00 Priority ===> 5 (Number 1-9, 1 is highest) Target Date ===> 01JAN23 (DDMMMYY) Est Hours ===> 30 (Hours of effort) Status ===> INIT (INIT,OPEN,DONE,HOLD,DROP) Description ===> Internal kickoff meeting w core team g) Press ENTER. h) The Tasks List panel is refreshed with new task. Display below is a representative snippet. ________________________________________________________________________________ ---------------------- Online Tasks-List Update Panel ------------------------- COMMAND ===> SCROLL ===> PAGE Row 1 to 1 of 1 Current sort order: STATUS(D) PRIORITY HOURS(D) DATE Dataset name of notebook: MY.NOTEBK Target Est Act Category P Date Hour Stat Task Description --- -------- - ------- ---- ---- ---------------------------------------------- START00 5 01JAN23 30 INIT INTERNAL KICKOFF MEETING W CORE TEAM --- -------- - ------- ---- ---- ---------------------------------------------- =============================== BOTTOM OF TABLE =============================== ________________________________________________________________________________ Figure 10c: TASKLIST panel i) Type PRT in the COMMAND line to print the tasks list to local printer. k) Press ENTER. k) Press PF3 to terminate TASKLIST. l) Validation is complete. m) It is recommended reading the tutorial panels to become familiar with available functions of TASKLIST. If LBTUTOR is installed on your system, type the following in the command line and press ENTER: COMMAND ===> tso lbtutor tasktcon See this link for more info on LBTUTOR:
LBTUTOR in MVS38J
If LBTUTOR is not installed on your system, browse the tutorial members in your installed PLIB library. Refer to section IV, Software Inventory List near end of this document to identify tutorial panel names. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for TASKLIST. Note: As with any contributed software, some customization may be required per your installation (e.g. remote printers). +--------------------------------------------------------------------+ | Step 13. Integrate TASKLIST into UTILITY SELECTION Menu | +--------------------------------------------------------------------+ a) To integrate TASKLIST into your ISPF system, refer to Joe Veilleux's $DOC document at the end of this document. Enjoy TASKLIST 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 | ====================================================================== - SHRABIT.TASKLIST.V0R9M00.ASM . PRTTASKS TSO CP to print tasks-list (replacement for X1A100) - SHRABIT.TASKLIST.V0R9M00.CLIST . README Dummy member, this is intentional - SHRABIT.TASKLIST.V0R9M00.CNTL . $INST00 Define Alias for HLQ TASKLIST . $INST01 Load CNTL data set from distribution tape (HET) . $INST02 Load other data sets from distribution tape (HET) . $INST03 Install TSO Parts . $INST04 Install TASKLIST Software . $INST05 Install ISPF Parts . $INST40 Install Other Software . $RECVTSO Receive XMI SEQ to MVS PDSs via TSO RECEIVE . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 . $UP1202 Upgrade to V0R9M00 from V1R2M01 . DSCLAIMR Disclaimer . PREREQS Required User-mods . README Documentation and Installation instructions - SHRABIT.TASKLIST.V0R9M00.HELP . README Dummy member, this is intentional - SHRABIT.TASKLIST.V0R9M00.ISPF TASKLIST CLISTs . C$PRTTSK CLIST to print tasks-lists (stand-alone) . SPTASKDR TASKLIST CLIST Driver TASKLIST Messages . TASK00 TASKLIST Messages TASKLIST Panels . TASKUPD Update tasks-list item Panel . TASKTBD Tasks-list list Panel . TASKNDSN TASKLIST DSN Panel TASKLIST Tutorial Panels . TASKTCON Tutorial Panel Main Menu . TASKTGNR Tutorial Panel General Info . TASKTUPD Tutorial Panel Add/Del/Updt tasks-list 1 . TASKTUP2 Tutorial Panel Add/Del/Updt tasks-list 2 . TASKTPRT Tutorial Panel Print tasks-list . TASKTNB Tutorial Panel Add/Updt TASKLIST entries 1 . TASKTNB2 Tutorial Panel Add/Updt TASKLIST entries 2 . TASKTEND Tutorial Panel Save tasks-list - SHRABIT.TASKLIST.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 +--------------------------------------------------------------------+ | Appendix: $DOC file from CBT231 (Joe Veilleux) | +--------------------------------------------------------------------+ ______________________________________________________________________ $DOC - DOCUMENTATION FOR TASKLIST SOURCE LIBRARY THIS MEMBER DESCRIBES THE TASKLIST APPLICATION, WHAT THE PIECES ARE, HOW TO PUT IT TOGETHER, AND HOW TO EXECUTE IT. UPDATED 11/11/86: I HAVE REMEMBERED TO INCLUDE THE "TASKPRT" SKELETON AND PANEL "TASKNDSN" IN THIS LIBRARY, AND I'VE INCLUDED PROGRAM X1A100 ALONG WITH NOTES ABOUT WHAT IT IS. ------------------------------------------------------------------------ ADMINISTRIVIA (I HAVE TO PUT THIS IN HERE OR THEY FIRE ME): THIS APPLICATION WAS DEVELOPED BY: JOE VEILLEUX MIS CENTRAL SOFTWARE SERVICES - ADMIN III AIR PRODUCTS AND CHEMICALS, INC. (SHARE INSTALLATION CODE APC). P.O. BOX 538 ALLENTOWN, PA 18105 (215) 481-4558 NEITHER JOE VEILLEUX NOR AIR PRODUCTS AND CHEMICALS ASSUMES ANY REPONSIBILITY FOR THE CONTINUED HEALTH OR SANITY OF ANYONE WHO CHOOSES TO USE THIS APPLICATION, ETC., ETC., ETC. THE APPLICATION MAY BE SHARED WITH ANY WILLING PARTY AS LONG AS NO MONEY CHANGES HANDS. THIS IS MEANT TO BE A SAMPLE OF USING ISPF TABLE SERVICES FOR SOMETHING USEFULL (OR REASONABLY SO), AND IS CERTAINLY NOT INTENDED TO BE A COMERCIALLY- VIABLE SOFTWARE PRODUCT (I DO A BETTER JOB ON THE STUFF I SELL). ------------------------------------------------------------------------ WHAT THE APPLICATION IS: THE TASKLIST APPLICATION IS A SET OF ISPF COMPONENTS (A CLIST, SEVERAL PANELS, A SKELETON, AND A MESSAGE MEMBER) WHICH LETS YOU MAINTAIN AN ONLINE THINGS-TO-DO LIST. YOU CAN SORT THE LIST VARIOUS WAYS, PRINT THE LIST, UPDATE TASK DESCRIPTIONS/PRIORITIES/DATE-DUE/ETC. IN SHORT, IT'S A FAIRLY USEFUL LITTLE TOOL FOR ORGANIZING LISTS OF STUFF YOU'VE GOT TO GET DONE (I ALWAYS LIKED ORGANIZING BETTER THAN DOING, ANYWAY). ------------------------------------------------------------------------ HOW DO I GET IT TO OPERATE? ONCE YOU'VE GOT THIS PDS ON DISK, COPY THE MEMBER "SPTASKDR" TO YOUR INSTALLATION'S CLIST LIBRARY (OR TO YOUR OWN PRIVATE CLIST LIBRARY ALLOCATED TO DDNAME "SYSPROC"), COPY "TASK00" TO YOUR ISPF MESSAGE LIBRARY, COPY "TASKPRT" TO YOUR ISPF FILE-TAYLORING SKELETON LIBRARY, AND COPY ALL THE OTHER MEMBERS TO YOUR ISPF PANEL LIBRARY. JUMP INTO ISPF AND INVOKE MENU 7.1 ("INVOKE DIALOG FUNCTION/SELECTION MENU" SUBOPTION OF THE DIALOG TEST FACILITY). FILL IN "%SPTASKDR" IN THE "CMD" FIELD, AND HIT ENTER. YOU SHOULD BE GREETED WITH A PANEL CALLED "ONLINE TASKS-LIST UPDATE PANEL", AND THERE SHOULD BE A MESSAGE SAYING "TASKS-LIST CREATED" IN THE SHORT MESSAGE FIELD. THERE WILL BE AN EMPTY LIST OF TASKS UNDER THE COLUMN HEADINGS (HOW DO YOU LIST AN EMPTY LIST, ANYWAY???). THE SHORT MESSAGE IS WARNING YOU THAT IT DIDN'T FIND A TASKLIST TABLE, SO IT HAS CREATED ONE FOR YOU. **THIS IS NORMAL** THE FIRST TIME YOU INVOKE THE APPLICATION. HIT ENTER ONCE TO CLEAR THE SHORT MESSAGE, THEN HIT PF1 TO JUMP INTO THE GENERAL SECTION OF THE TUTORIAL. VIEW THE TUTORIAL SEQUENTIALLY BY HITTING ENTER REPEATEDLY (THIS SAVES ME FROM HAVING TO EXPLAIN HOW TO USE THE APPLICATION HERE). BEFORE YOU TRY TO ACTUALLY USE THE "PRINT" OPTION, LOOK AT THE NOTE BELOW ABOUT PROGRAM X1A100 AND FOLLOW ITS RECOMENDATION. ONCE YOU HAVE CHECKED-OUT THE APPLICATION AS DESCRIBED ABOVE, YOU'LL PROBABLY WANT TO MAKE IT A LITTLE EASIER FOR YOUR USERS TO INVOKE THE APPLICATION. ADD AN ENTRY TO ONE OF YOUR EXISTING ISPF SELECTION MENUS (ISR@PRIM OR ANY OTHER SELECTION MENU). THE SELECTION SHOULD INVOKE COMMAND "%SPTASKDR": %----------------------------- APCI UTILITIES -------------------------------- %OPTION ===>_ZCMD + % +WHAT WOULD YOU LIKE TO DO? % % 1 +TASK - ONLINE TASKS-LIST UTILITY % )PROC &ZSEL = TRANS( TRUNC (&ZCMD,'.') 1,'CMD(%SPTASKDR)' TASK,'CMD(%SPTASKDR)' ' ',' ' *,'?' ) &ZTRAIL = .TRAIL )END I LIKE TO ALLOW BOTH THE NUMBER ("1") AND THE NAME OF THE APPLICATION ("TASK") TO BE USED TO SELECT AN APPLICATION. * * * PLEASE NOTE: * * * PROGRAM X1A100: THIS IS A PL/1 PROGRAM WHICH IS USED BY THE SPTASKDR CLIST TO GET INFORMATION FROM THE TSO SESSION'S JOB CARD (SPECIFICALLY, USER'S NAME). TO DO THIS, IT CALLS A LOCALLY-WRITTEN SUBROUTINE CALLED "ACOUNT" WHICH I HAVEN'T INCLUDED SINCE I'M SURE IT WON'T WORK ON ANYONE'S SYSTEM BUT OURS (OR AT LEAST I DON'T KNOW ENOUGH ABOUT IT TO BE SURE IT WILL). IF YOU HAVE A SIMILAR PROGRAM, YOU COULD CHANGE THE CALL TO "ACOUNT" IN THE X1A100 PROGRAM TO CALL YOUR PROGRAM. THEN, COMPILE AND LINK X1A100 AND PUT IT INTO YOUR ISPF LOAD LIBRARY (DDNAME ISPLLIB OR IN STEPLIB OR THE SYSTEM LINK LIST). IF YOU DON'T HAVE SUCH A PROGRAM, JUST COMMENT-OUT THE CALL TO X1A100 IN THE SPTASKDR CLIST AND (IF YOU FEEL LIKE IT) REMOVE THE REFERENCE TO &JCNAME IN THE TASKPRT SKELETON. THE LISTING WILL THEN PRINT WITHOUT THE USER'S NAME IN THE TITLE, BUT THAT'S LIFE. IF YOU HAVE TROUBLE GETTING THE APPLIATION TO WORK OR IF YOU HAVE QUESTIONS ABOUT ISPF TABLE HANDLING, FEEL FREE TO CALL OR WRITE TO ME, OR CATCH ME AT SHARE (I'LL BE THE ONE LEAVING SCIDS LAST). ------------------------------------------------------------------------ ______________________________________________________________________ Figure A: $DOC from CBT231

In Closing

Thanks to Joe for his CBT431 TASKLIST contribution and providing this opportunity to demonstrate a transformation approach to utilize ISPF application TASKLIST under MVS 3.8J and ISPF 2.2 (ISPF-like production from Wally Mclaughlin)!

As with any contributed software, custom modifications may be necessary per your MVS 3.8J installation requirements.

I hope you make use of this post and transformation of TASKLIST to advance and/or enhance your MVS 3.8J / TSO / ISPF system / programming knowledge and user experience.

Enjoy,
Larry Belmontes

Version History

*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  01/29/2024 0.9.00   - Initial modified version released to MVS 3.8J
*                        hobbyist public domain
*
*                        Original work (TASKLIST) from Joe Veilleux
*                        from CBT file 231 dated circa 1985.
*
*

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.