MVS TOOLS AND TRICKS OF THE TRADE SEPTEMBER 2001 Sam Golob MVS Systems Programmer P.O. Box 906 Tallman, New York 10982 Sam Golob is a Senior Systems Programmer. He also participates in library tours and book signings with his wife, author Courtney Taylor. Sam can be contacted at sbgolob@cbttape.org. Information about the CBT MVS Tapes can be found on the web, at http://www.cbttape.org. NAVIGATING THE CBT TAPE COLLECTION Today, I've chosen a big topic. The question here really is: "I need a tool--I don't want to spend (the company's) money--so how do I find it?" Believe it or not, even as the proprietor of the CBT MVS Utilities Tape collection, I'm not the world greatest expert on finding free tools. But being in the position of having to provide some of these services for other people, I have to do my utmost, to help people find the stuff they need. Every so often, people write me, asking if there exists a tool to do a certain job. Much of the time, I can help them--sometimes I can't--and once in a while, I just don't know. So today I'm going to talk about how I, myself, go about looking for a free tool, knowing what I do know. Since I'm in the position of having created much of the CBT Tape documentation, and since people expect me to be able to help them, I figure that maybe a statement of my own methods could be of some general assistance. WHAT IS THE CBT COLLECTION, and WHERE IS IT? The CBT Tape collection is an entirely free and public collection of MVS software and helpful goodies for the MVS Systems Programmer. It is not owned by anybody or by any organization--we just take care of it. The collection was started by Arnold Casinghino at the Connecticut Bank and Trust Company in 1975 as a tape, and its original Version 1, had 7 files on it (which Arnie told me just a few days ago). Arnie put the collection, over a span of 15 years, through 321 versions. I have been working on it for 11 years now, and I have now put it through an additional 117 versions. The current CBT Tape version, as of this writing, is Version 438 so far. The collection now spans two 3480 IDRC tapes, and contains about 800 separate files, many of which are large pds'es. In addition, an old version of the collection, Version 249 from July 1985, is also available, and it contains additional valuable material, even though the material is old. The entire CBT collection, plus a lot of other material, and MVS links, can be accessed from the CBT Tape web site. One of the ways to get to the CBT Tape web site is through the www.naspa.com Members Only page. This Internet access is what's used by most people nowadays, but the actual collection, as Sam Knutson (our webmaster) will tell you, is still completely tape based. Today's question is quite simple to ask, but is not always so easy to answer. It is: "I need a tool to do such-and-such. First of all, does a free one exist? Second, how do I find it? Third, how do I use it? Fourth, how do I start looking in the first place?" What I can do (as this collection's proprietor), is to make mention of some of the searching capabilities that we've put out there, in the hope that they will help. I'm also open to any new search suggestions, and if anybody has ideas about new ways of finding free tools, you're certainly free to email Sam Knutson or me about them, and we'll listen. FILE 001 The two tapes which contain most of the CBT Tape collection, are called the "Regular CBT Tape" and the "CBT Overflow Tape". Each of these tapes has an FB-80 documentation file as its first file. Arnold Casinghino is the architect of most of the structure of this first file, and a "good searcher" nearly always begins, by looking at "File 001". File 001 of the Regular CBT Tape now contains over 43000 lines, so you can either search it with a brute-force machine-readable method, such as ISPF EDIT FIND, or you can take some time to learn the structure of its many sections, which have been designed to assist your search in various ways. I'd like to add that File 001 can be broken up into a pds, containing more bite-sized sections. On File 004 (FB-80) and File 006, (a compressed pds) there is a program called CBTUPD which reads FILE 001 and inserts IEBUPDTE-type ./ ADD NAME= cards in strategic places, so a subsequent IEBUPDTE or PDSLOAD (from File 093) run, will stow the bite-sized pieces, in their proper order, as members of a partitioned dataset. That makes the different sections of this documentation easier to look at, and print out. The CBTUPD program will work properly, both on the Regular CBT Tape's File 001, and on the CBT Overflow Tape's File 001. TAPEMAP and CBT FILE COMPRESSION Most of the files on the CBT Tapes, if they were initially FB-80 source-type files, are in a compressed format. The compression program is called "CBT973", and its source code can be found as File 002 of both tapes, in FB-80 format. CBT973 compression works only on FB-80 files, and basically removes blanks. Most of the compressed files have first been turned from pds'es to sequential FB-80 files, by stringing the members in order, with IEBUPDTE-type ./ ADD NAME= cards in-between. But ISPF statistics have been optionally preserved on many of the files in "LISTPDS format" (from the LISTPDS program on File 316), and they can be restored if you use the PDSLOAD program from File 093, instead of the IBM IEBUPDTE program. Experienced CBT Tape users are familiar with the procedures for extracting files from the tape. Beginners should just customize the JCL on File 003 of either tape, and plow forward. If you get CBT Tape files from the Internet, you don't have to do any of this--on the web site, the files are stored in zipped XMIT format, and a pkunzip, followed by an upload in BINARY to an MVS system, followed by a RECEIVE INDS( ) command under TSO against the file, will restore the original file on your MVS system, to all its former glory. But how do you search the entire tape, for individual pds member names? We've solved that problem too, but you need to know a trick. The trick is connected to a version of the UCLA Tapemap program that can be found on File 299 of the Regular CBT Tape. Only this version of TAPEMAP has support, to recognize a CBT973-compressed tape file, and tell you what all its pds member names are. Sam Knutson has already done the tape mapping for you. On the CBT Tape web site, you can point to TAPEMAP listings for the current tapes, and you can search them to look for any member name, on any CBT Tape file, that you want to find. By using Sam Knutson's canned TAPEMAPs of the recent CBT Tapes, if you know a member name or a program name, or a macro name that you want to look for, just search the TAPEMAP listing and get all the occurrences of that name. The TAPEMAP will tell you what files they are contained in. Then you download those files and look. It's that simple. PARTIAL NAME SEARCHES One of my "tips from experience" in searching the CBT collection, is to search for partial names, rather than for complete names. For example, suppose you need a coding example for the system exit IFG0EX0B. I would definitely NOT search the TAPEMAP listings, or the File 001 documentation, for the name IFG0EX0B. I'd rather search it for some tell-tale string inside that name, such as EX0B. The reason is because some contributors, when constructing the member names in their files, might not use the exact name of the system exit or program. Instead, they might hint at the name. For instance, instead of calling their source member IFG0EX0B, they might call it something like OUREX0B, or something similar, which hints at the real purpose, but which isn't the real name. Therefore, partial name searches might be valuable. Other times, the contributors to the tape might not mention the program's exact name at all. But in the descriptive blurb they write for File 001, they might mention the purpose of the program, without mentioning its name. Therefore, for IFG0EX0B, you might see a mention of "allocation exits", or some other descriptive phrase which tells you the purpose of the program. So you have to think of such phrases, and search for them too. Finally, as a last resort, you can download certain files that you suspect might contain a program you need, and actually do a detailed string search of the contents. A good string searching tool is the PDS program package from File 182 of the CBT Tape. The PDS package contains a FIND subcommand, which can be applied against all the members of the current partitioned dataset, and it will show all occurrences of a string or a program name, if they exist in members of that pds. The PDS program has many other features besides "pds-wide" string searching, and PDS is a tool that it pays to learn to use. If you are licensees of the STARTOOL package from Serena, Inc., STARTOOL is the vendorized version of the PDS package, with a zillion improvements and "extras", and so you can use STARTOOL for these searches, instead of "free PDS" from File 182. THE SECTIONS OF FILE 001 I'm going to conclude today's talk with a discussion of the various "Sections" which are contained in the general File 001 CBT documentation. These 30-or-so sections of File 001 all give you some search help, each one in a different way. Which section to look at first, is a personal matter, but I'll mention a few of the sections here, and when you look at them, you'll be better able to decide how they can help you. The first, and probably the most natural section of File 001 to discuss, is probably the Documentation Section. This section contains a detailed description of the contents of each tape file. The type of description which is found here for each file, may vary. But sometimes this section contains detailed program names, and descriptive phrases. A scan here, may be helpful, although it may not consistently yield the results you want, since its purpose is to indicate whether you should look at the file or not. Often, the author of the file provides the text that's found here, so you've got a built-in inconsistency from file to file. The File Description Section near the beginning of File 001 gives a one-line blurb to describe the contents of each file. I've got about 60 characters, in which to tell you what's there. I wrote this section, and I tried my best. Of course, for some files, I might have written a more picturesque description of the file contents. But the section does at least lend a bit of help, in the "searchability" department. The "What To Do With This Tape First" Section, right after the File Description Section, is my opinion, mostly as of ten years ago, as to where you should start looking through this collection, provided you didn't get any further guidance. Even today, it does help. The File Status Section is a one-line description of each file on the tape, and it contains a surprisingly useful collection of facts about the size and format of each file. The date next to each file, in this section, provides the most accurate description of when that file was last updated. Line counts for source files, and block counts for load library files, together with footage counts, are provided on the same single line. There's even an indicator as to whether the file contains ISPF stats, when you un-compress it and use the PDSLOAD program to make a pds out of it. For people who have used the CBT Tapes for a long time, and who get frequent updates, the Change Section is extremely valuable, and it's searchable too. In each piece of the Change Section, a short description of each changed file is provided, for every version change of the tape. For instance, using the Change Section, you can find all the files which were changed on the tape, since the last version of the CBT tape that you got. It's true, that the File Status Section shows this too, but the Change Section provides a verbal description of the nature of the change, not just the latest change date. Finally, there are a whole bunch of other specialized sections, such as the one which describes which files of the tape are empty. In summary, I'd suggest giving the entire documentation a once-over, some time when you have an hour free. Other Sources The web provides a lot of other sources of help, to find programs. Probably the best other single source of help, is www.xephon.com , where you can download any contributions to the Xephon collection, that are more than 2 years old. If you get on to the CBT Tape web site, or to Eric Loriaux' site: www.ping.be/~ping1475 , you will find links to many other sites, and you can keep busy for a long time. If you are having a particularly hard time finding something, you're welcome to write to me. In summary, I hope this month's talk has given you some ideas as to how to start searching for free programs. It is my experience, that the search process is somewhat "hit-and-miss" in nature, and it is hard to get consistent results. It very much depends on the particulars of what you're searching for. But you don't get any results at all, unless you start trying. That's "the nature of the beast". Good luck to all of you. See you next month!