BSP - Beratung, Schulung, Projekte


MVS on your PC - Turnkey MVS System Utilities

While I was working on the turnkey system, I thought: "Well, the whole thing is nearly finished now, what's next?!"

And then the questions started to come in. As a consequence, I decided to add this page to the hercules site. It will contain utilities for MVS and/or Windows that might make life easier for the MVS enthusiast. Those utilities will be added to this page whenever a new one becomes available. If you want to contribute your own utilities, fell free to do so.

I have decided to make those utilities that I write/salvage from old code/pry out of someone's cold hands in source form and load module form as well. For assembly I will rely on the turnkey system, i.e. you will need SYS2.MACLIB (which might be updated from time to time as well), and the resulting load modules will be placed into SYS2.LINKLIB (for STC and BATCH programs) or SYS2.CMDLIB (for TSO CPs)

Obviously, I cannot guarantee that these programs really will work, you will have to take the full risk of useability etc. Remember? You get what you paid for, and even more than that....

List of modules

List of modules

BSPVTMWT - Wait for VTAM to Initialize

Don't you hate unnecessary and repeating work? Well, typing

1retry
on the MVS console cannot really be called "work", but it is unnecessary nevertheless. Whenever the MVS Turnkey system starts, the network (VTAM, NET) and TSO will be started automatically. Unfortunately, TSO is usually faster in its startup processing than VTAM and complains that it cannot accept logons. The reason is that NET hasn't finished initialising yet and hasn't made the TSO ACB available.

In comes the program BSPVTMWT - which waits for VTAM to make an ACB available.

Just prepend it to the PROC/JOB step that is to start a VTAM application. For TSO this would look similar to

//TSO     PROC MEM=00
//WAITTSO EXEC PGM=BSPVTMWT,PARM='TSO'
//TSO     EXEC PGM=IKTCAS00,TIME=1440
//PARMLIB  DD  DISP=SHR,DSN=SYS1.PARMLIB(TSOKEY&MEM),FREE=CLOSE
//PRINTOUT DD  SYSOUT=A,DCB=(LRECL=133,RECFM=FBB)
BSPVTMWT will now try 10 times (with an interval of 10 seconds in between) to open the VTAM ACB. If if succeeds, it will close it again and finish, and now TSO can grab the available ACB

You can change the number of retries by modifying the code and recompiling and relinking. In line 1 there is

MAXTRIES EQU 10
Which determines how often the program will retry to open the ACB. Also you will find a variable
INTERVAL DC C'00001000'
Which contains the interval between tries.

Running the member ASMLKG will assemble and link the whole thing Be sure to check the JCL for local naming conventions. You will need the SYS2.MACLIB from the turnkey system in order to successfully assemble the program

BSPVTMWT - The Archive

You can download the utility as a zip or a tar file. The contents in both files are identical

Unpack both files into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 480,[yourdir/]vtamwt.aws
devinit 00c,[yourdir/]vtamwt.jcl eof
A Job should now be started that loads VTAMWAIT into your system. You can now, for example, modify the TSO procedure in SYS1.PROCLIB as shown above, and next time you start MVS there is no need any more for the
r 01,retry
reply

List of modules

ZAPDSCB - Modify VTOC entries via Batch

The MVS turnkey system provides a utility CDSCB (for Change DSCB) with which you can modify VTOC entries in a TSO session. This is usually sufficient, but sometimes to need to do more (like mass-mode changing of expiration dates). In this case a batch version comes in handy. It has been emailed to me by somitcw_at_erols.com, I just compiled and tested it, and it works flawlessly.

How do you use this utility? Very simple - by plain JCL. No control statements, no input or output files, just good old JCL. You will need an EXEC statement for the program, of course, and one DD statement fro each dataset whose VTOC entry you want to modify. The DD-Name for these data sets must begin with the 3 characters ZAP. Then the attributes to be changed follow:

//MODVTOC EXEC PGM=ZAPDSCB
//*     Set expiration date
//ZAP1     DD  DISP=SHR,DSN=MY.DASD.DATASET,LABEL=EXPDT=73150
//*     Remove expiration date
//ZAP2     DD  DISP=SHR,DSN=MY.DASD.DATASET,LABEL=RETPD=0
//*     Modify secondary space allocation
//ZAP3     DD  DISP=SHR,DSN=MY.DASD.DATASET,SPACE=(CYL,(0,2))
//*     Remove any password protection
//ZAP4     DD  DISP=SHR,DSN=MY.DASD.DATASET,FCB=NOPW
//*     Remove any read password protection
//ZAP5     DD  DISP=SHR,DSN=MY.DASD.DATASET,LABEL=(,,NOPWREAD)
//*     Reactivate password protection
//ZAP6     DD  DISP=SHR,DSN=MY.DASD.DATASET,LABEL=(,,PASSWORD)
//* The following attributes can also be changed:
//*    LRECL
//*    BLKSIZE
//*    DSORG
//*    RECFM
//*    OPTCD

ZAPDSCB - The Archive

You can download the utility as a zip or a tar file. The contents in both files are identical

Unpack the file you downloaded into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 00c,[yourdir/]zapdscb.jcl eof
A Job should now be started that loads ZAPDSCB into your system. The target library for the load module must be authorized. The JCL, as supplied, places the load module into SYS2.LINKLIB which is authorized

List of modules

JESMOD01 - JES2 Modification to display MAXCC at job end

When you placed the NOTIFY= parameter on the jobcard, the specified TSO user will be informed when the Job has ended. The information provided is just if the job ended normally or abnormally. The JES modification presented here enhances the information in such a way, that the highest condition code of all the steps in the job is provided as well, or the (last) Abend-code encountered in the Job.

JESMOD01 - The Archive

You can download the modification as a zip or a tar file. The contents in both files are identical

Unpack the file you downloaded into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 480,[yourdir/]jesmod01.aws
devinit 00c,[yourdir/]jesmod01.jcl eof
A Job should now be started that loads JESMOD01 into your system.

Before installing the modifications into the live system you should make sure to be able to have a fallback mechanism in place in case things go wrong. You should either have a fresh backup of your system residence volume MVSRES, or , if you are using shadow files, you should now create a new shadow file generation before proceeding. You can now install the actual modification in one of two ways

You can now install the actual modification in one of two ways
  1. Run job JESMOD01 from dataset SYS1.JESMODS.CNTL
    This will assemble two JES modules and places them into SYS1.LINKLIB or SYS1.LPALIB
  2. Copy the contents of SYS1.JESMODS.LPALIB to SYS1.LPALIB
    Copy the contents of SYS1.JESMODS.LINKLIB to SYS1.LINKLIB
    replacing the existing members

Now shudown your system. Perform an IPL with the CLPA option. From now on you should see the maximum return code in the end-of-job messages sent to your TSO user at job end

List of modules

PCL Overlays for "green bar" printing

While we are doing retrocomputing anyhow, why not bring back the "green bar" print output? Well, not really green bar, bar grey bar output. Here are a few PCL printer overlays that will bring the good old feeling back - One caveat: They have been made with A4 paper size in mind, I don't know what they look like on the American paper sizes 11" or legal, but you can always try, and change. If you make changes to them for the nonstandard sizes, please send them to me an I can incorporate them in this page

The Archive

The overlays are available in zip and in compressed tar format. The contents of the archive is identical. There are several files in the archive, whith the following naming convention

   Lds66132.ovl
   !!!! !  !
   !!!! !  +----- .ovl = overlay file
   !!!! !         .txt = text file explaining parameters
   !!!! +-------- number of columns per page
   !!!+---------- number of lines per page
   !!+----------- constant "s"
   !+------------ s = simplex
   !              d = duplex
   +------------- L = Landscape
                  P = Portrait

List of modules

Fortune Cookies, R2D2, and other goodies

This package contains multiple, only loosely related bit and pieces. They are source, and as ready to run load modules:

BSP38J - The Archive

You can download the archive as a zip or a tar file. The contents in both files are identical

Unpack the archive files into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 480,[yourdir/]bsp38j.aws
devinit 00c,[yourdir/]bsp38j.jcl eof
A Job should now be started that loads a few files into your system.

When you use the supplied JCL to load the Addon Utility tape to disk, the following files will be created

This collection assumes that you have installed the MVS Turnkey system. It has been installed and tested in that environment. If you haven't installed the MVS Turnkey System, these files will most probably work as well, but, you will have to do some adjustments to JCL procedures etc

For instalation instructions see members $$README and $$INSTAL in file CBT.MVS38J.CNTL

DYNABLDL - Dynamic BLDL - Precursor to LLA

This add-on has been provided by Brian Westerman. It has been tested on MVS Tur(n)key System #2 and #3.

DYNABLDL - The Archive

You can download the Add-on as a zip or a tar file. The contents in both files are identical

Unpack the file you downloaded into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 480,[yourdir/]dynabldl.aws
devinit 00c,[yourdir/]dynabldl.jcl eof
A Job should now be started that loads dynabldl into your system.

Read member DOC in the PDS for further instructions

DYNAMASK - Dynamic EDT update

This add-on has been provided by Brian Westerman. It has been tested on MVS Tur(n)key System #2 and #3.

DYNAMASK - The Archive

You can download the Add-on as a zip or a tar file. The contents in both files are identical

Unpack the file you downloaded into a directory of your choice. Adjust the JCL to your needs. Then, at the hercules console, enter
devinit 480,[yourdir/]dynamask.aws
devinit 00c,[yourdir/]dynamask.jcl eof
A Job should now be started that loads dynamask into your system.

Read member DOC in the PDS for further instructions

If I managed to confuse you with these instructions, just drop me a line.

Enjoy your private hercules mainframe




BSP Beratung, Schulung, Projekte GmbH