MVS TOOLS AND TRICKS OF THE TRADE January 1999 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. CBT Tape Support Online Today I'd like to introduce you to an important new facility and to place it in perspective, in relation to existing facilities. This facility is the new online "home" of the CBT MVS Tape files: http://www.cbttape.org "Sponsored by NaSPA". While www.cbttape.org is intended to serve MVS systems programmers all over the world, it is not intended to supersede the CBT Tapes (as tapes) or the NaSPA cd-rom disks. Each of these has its own proper place, not interfering with the usefulness of the others. In this month's column, I hope to explain how to make good use of all of them. Let's start with a little history. Since the beginning days of the MVS Operating System, and throughout the heyday of its predecessor MVT, collections of "system mods and utilities" were prevalent, useful, and necessary. IBM's system design and programming efforts, while enormous, could never be so thorough and pervasive, as to satisfy every installaton's needs. IBM operating system designers were the first to recognize that fact. Furthermore, if they themselves didn't recognize some need, it was usually pointed out to them by members of user groups like SHARE, GUIDE, and others. IBM therefore deliberately left many MVS system interfaces open for user development and customization. In earlier times, IBM also made most of the operating system source code publicly available. Thus, if IBM themselves didn't "get around to filling some need", often the users themselves wrote their own code, and solved the problems. We now come to the question of how "user-written code" would be spread to systems programmers at other installations. Back in the MVT days, there were lots of "system mods tapes" that served as forums for exchanging user-written code. One of these forums was the famous "Michigan Mods Tape" for the MVT operating system. Shortly after MVS was released in 1975, Arnold Casinghino, who worked at the Connecticut Bank and Trust Company in Hartford, CT, started a similar tape, to collect and distribute newly-written user modifications for the MVS operating system, and to carry over many of the MVT modifications so they'd work on MVS also. Arnie pursued this project for many years, with enormous dedication and attention to detail. His collection became known as the "Connecticut Bank and Trust Mods Tape", or "CBT Tape" for short. The CBT Tape has become the original source for many utilities that are "floating around" in many MVS and OS/390 installations throughout the world. Probably most of the system programmers who've used and modified those utilities, don't have a clue as to where they originally came from. What can happen with user-written programs? When IBM changes the level of the MVS operating system, sometimes a user-written program will continue to work, and sometimes it will have to be changed a bit, to function as before. When a user-written program is changed to adapt to the newer MVS environment, the source code is almost always fixed too. Most user-programs on the CBT Tape come with complete source code. Often, the person who fixes some user code for a later version of the MVS system, will send the fixes back to the proprietor of the CBT Tape or whatever other collection it came from. In that way, the public has a chance to get access to the new code, and they also can add their own improvements. There's also another side to this process. From looking at user-code, people can get to learn assembler language. There's a trend nowadays in systems programming which I call the "vendorization of system utilities", or to put it more bluntly, "the unintentional encouragement of system programmer ignorance". While software vendors are constantly churning out helpful program packages which we take advantage of, they tend to hide their source code, so we can't use it to learn how the system works. Also IBM, with their "object code only" or "OCO" policy that restricts access to much of their own system code, systems programmers are getting blocked from access to knowledge of system internals. To top that off, there's a general tendency in the MVS world, to go away from system customization. It makes system upgrades easier if there aren't so many "user mods", as the saying goes, and this is true. All of these trends are working toward making systems programmers into mere "installers" who don't know how to program, and who don't really know how most of the components of the system work. Having access to source code for system utilities, is a great force to counter this trend toward "system programmer ignorance". It also serves to make system upgrades easier, and not harder. I'll explain how. During a system upgrade, "tech support management" is sometimes put under great pressure from a group of users, to upgrade a certain user-written program that the users "can't do without". I've seen situations where the tech support management wants to cook up an answer that "the utility isn't available any more", but the users won't hear of it. They send management the ultimatum that "if we can't have that utility, we're not going to let you upgrade!" I don't wish to discuss politics, but sometimes there is an answer that'll solve everything, and help our management to save face under the user pressure. Often, the original source of the utility in question was the CBT Tape, or one of the other collections. There were other shops which had faced a similar situation in the recent past. The utility had also stopped working for them. Someone at that shop went through the trouble to fix the utility, and they were considerate enough of others, to send the fixes back to the proprietor of the "software collection of origin". If an installation that's trying to upgrade, has a way of easily knowing about fixes to user-written utilites, it solves many of their system upgrade problems. All they need do, is to install a later version of the utility in place of the old version that no longer works. That's where newer versions of the CBT Tape come in, and that's one of the main purposes of www.cbttape.org. The CBT Tape (and the CBT Overflow Tape for that matter) are upgraded quite often. New versions come out several times a year. If you're busy upgrading a system, and you're looking for the latest "fixes" to one of your favorite user programs, you can now search for, and find these materials online, without having to wait for a new CBT Tape to be shipped to you. www.cbttape.org is connected to an ftp site that has all of the newest CBT Tape files online and ready to be downloaded. These files do not require ASCII <---> EBCDIC translation. They're in EBCDIC already. All the files from the latest "CBT Overflow Tape" are there too. The www.cbttape.org site additionally gives you access to CBT Tape version 249, from 1985, which contains source for many user programs that can't be found nowadays. If the installation has lost the original source for one of their programs, the CBT249 "ancient source code" files will help them find them the original code that they can start fixing for themselves and for others. HOW DOES www.cbttape.org COMPARE WITH "REAL TAPES" AND THE NASPA CD-ROM? I'm still a big advocate of having a physical CBT Tape in your possession. It's nice to have it "all there", and not to have to spend time downloading files over the Internet. However, the CBT Tape is updated quite often. This year alone, there were over 100 significant changes. Practically speaking, you can't order a new tape every time one comes out. You can try to get a recent one, but it's nice to be able to get to the updated files if you need them. Therefore if you've got a recent tape, supplemented by access to www.cbttape.org, you're well covered. Enter the NaSPA cd-rom. The cd-rom files are IBM PC-oriented, and most of them are meant to be loaded to a pc hard drive, unzipped, and then uploaded to the mainframe using ASCII to EBCDIC translation. This cd-rom is big in capacity. It contains more material than just the CBT Tape and the CBT Overflow Tape files. There's the NaSPA VIP tape materials and lots of other stuff too. And it's all in one very small package, available to be carried around on trips, or wherever you're going. The fact that the source code on the cd-rom is represented in ASCII helps you read it on a pc. You don't need a mainframe to use the materials. Here are some disadvantages of the cd-rom. Some special characters are distorted during ASCII to EBCDIC translation, and when certain source files, especially REXX execs, are uploaded to the mainframe, they may not be accurate. The cd-rom is only updated once a year, whereas the tapes and the web site are kept up-to-date. Thus, without the web site, you might lose some of the latest utility support for the newest systems. A physical tape doesn't need ASCII to EBCDIC translation, whereas the materials on the cd-rom usually do. Then again, the physical tapes, even the newest ones, have disadvantages too. One physical tape doesn't contain all the materials in the CBT Tape, the CBT Overflow Tape, the NaSPA VIP tapes, and the rest, which the NaSPA cd-rom contains in one small self-contained unit. It comes out that both the physical tapes, and the cd-roms are necessary, but they both have disadvantages that www.cbttape.org is designed to alleviate. I'd say that www.cbttape.org should best be used as a supplement to the other two mediums, to make up for the disadvantages of both of them. Furthermore, www.cbttape.org provides crucial program support whenever you need it, during odd hours when you're upgrading or fixing your system. WHAT MATERIALS ARE AVAILABLE? Regular readers of this column will have a very good idea of how much your "system programming lifestyle" can be enhanced from using tools and materials from the CBT Tapes. I write about this stuff here, every month. But the free materials in the tapes are so vast, that I can't even scratch the surface of what's available, in what I write. You have to search the tapes for yourselves. For this reason, I'd like to say a few words about how to search. The TAPEMAP program from File 299 of the CBT Tape, when run against a CBT Tape itself, will report all member names of all pds'es in all the files, in its second report, using its SYSPRNT2 ddname. You can write this report to a disk file. I usually designate a pds that has LRECL=133, RECFM=FB or FBA, for the purpose, and copy TAPEMAP reports to members of this pds. Then I search the reports for a given member name, and find all occurrences of the name, in all files on the tape. I can then load those files to disk, and see if they have what I want. Another piece of advice is to write the 32000-odd lines of CBT Tape documentation which is on File 001 of the tape, to disk, and search that documentation for whatever type of material you're looking for. Sometimes that search will lead to paydirt, too. Experience tells me that both methods are sometimes needed, and they aren't 100 percent sure-fire. For example, suppose you want a coding example for an IBM open exit, IFG0EX0B. A search through the second TAPEMAP report will yield all occurrences of pds member names which match IFG0EX0B. However, if a coding example for this exit routine is not called IFG0EX0B in the tape file, you won't find it. Using the other method, looking at the tape documentation file, File 001, you're depending on the thoroughness of the documentation. Sometimes, a contributor of a file will have a code example of this exit in his collection on that file, but whoever wrote the description in File 001, neglected to mention that an IFG0EX0B coding example is included there. Either way, the search can fall through the cracks and not find something, even if it is there. However, you still have to try, and often you'll find what you want. Sam Knutson, the webmaster of www.cbttape.org, is now working on a writing a search engine to help you find materials which are archived at the ftp site. As the facilities at the web site are improved, you should find the site more and more useful. Currently, the contents of the files at the ftp site are very complete, and if, for example, you need to download a copy of the latest version of free PDS 8.5 (from File 182), or some of its supplementary utilities (from Files 296 and 112), or of SHOWMVS from File 183, very recent versions of these files are always kept posted. These are just a few examples of many. You can use www.cbttape.org to keep your installed free utilities always up to date. The site at which all of these materials are archived, is, to my knowledge, "guarateed to be up" 24 hours a day, 7 days a week. At least it's supposed to be very reliable, and very available. There's also supposed to be quite a bit of redundancy there, so you're very well supported, even at odd times, when you need the support the most. Good luck in all your endeavors. Technology is getting better, and user-code support is getting better and better too. I'm sure this new facility will help you. See you next month.