MVS TOOLS AND TRICKS OF THE TRADE APRIL 2006 (Written jointly with Courtney Taylor.) 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. INTERNATIONALIZATION Today we'd like to address an aspect of MVS development and history that we seldom thought about in previous years. This world is becoming "one world", more and more. The Internet is bringing people of all countries together, like never before. The Internet transcends and penetrates national boundaries. People in five or ten different countries can all conference with each other at the same time, as well as people in far flung corners of the same country, like the United States or Canada. Miles and kilometers don't mean anything, when it comes to Internet messaging and traffic. Messages can bounce halfway (or all the way) around the world and back again, sometimes in less time than it takes to blink an eye, only limited by the speed of light. The implications for MVS are about as great as they are for anything else. Recently, we've received software products from MVS vendors, without tapes. I just downloaded the entire product from an FTP site, and uploaded it and installed it on the MVS mainframe in a few minutes. Tapes? What tapes? No tapes were ever involved. And it didn't even seem to make a difference what country the product was coming from. We've gotten products from Australia the same way as from the U.S. As the proprietor of the "CBT Tape" collection of free MVS software, this internationalization through the Internet has affected me (and you) even more. In years past, when I had to make an update to some products in the collection, I had to carry a satchel full of tapes into the computer room, mount them on tape drives, figure out what was on them (one tape at a time), copy the stuff off onto DASD, and package each creation coherently to make sure all the stuff was installable by a reasonably trained MVS sysprog. Most of the time, the tapes came from the U.S. Canada has some sort of strict regulation about exporting computer tapes to the U.S., but we got a few from there too. And from other countries, the difficulty of sending a tape was often so prohibitive (if not to say expensive also), that we got very few contributions from the far-flung countries of the world. Today, it doesn't matter where the contributor is from. The messages fly "fast and furious", and sometimes a dozen messages will get sent back and forth more than halfway around the world (each time) in the space of an hour, to fix a contributed product. My, has the world changed! All we have to worry about is time zones. Eighty years ago, some utopians, liberals (I don't know how to name them accurately) wanted to start a movement to make "one world". I remember hearing about this from my grandfather. Of course, in the proposed "one world", there would be a small obstacle known as a language barrier. The peoples of the world happen to speak hundreds of different languages (in their everyday conversation and communications). How would you propose to solve that small problem (eighty years ago)? One inventive soul then, proposed to create a "universal language" which he called "Esperanto", and he thought he could get all the people to forget the languages they were born with, throw them all into the garbage pail, and only speak Esperanto. I think you can figure out what happened to that plan! But in the 1920s, everybody was talking about it, and a few were even speaking Esperanto (to their friends only). I'll tell you, more people were speaking "Pig Latin". But today, to our big surprise, this "one world" actually exists! It has sneaked up on us. And the Internet has made it happen. What about the language barriers? People haven't forgotten all their languages. But they've all learned English in addition, and English seems to be the de facto "Esperanto" that the fellow 80 years ago was looking for. Sometimes even the most Utopian dreams can actually come true. Go know! They just have to wait for the right time. IBM IS ALL OVER THE WORLD Everybody knows that IBM, and the MVS operating system, is all over the world, in many countries. There is a lot of "National Language Support" (known as NLS) in IBM's products, MVS included. Just go to IBM's web site, www.ibm.com, and you'll see the long list of countries. You might think that "it's all well and good, but how does that relate to me?" Well, with the Internet being what it is, and with newsgroups on the Internet reaching out to MVS sysprogs all over the world, as soon as we get onto one or more of the newsgroups and have a discussion, we find ourselves talking to people from Europe, Asia, Australia, Africa, of course North and South America, and just about any place except Antarctica. (I don't think IBM has established a North Pole office on the ice yet. But the technology is better now. And I don't think they'd need a raised floor for a datacenter there.) Being in charge of the CBT Tape contributions, I feel the effects of internationalizaton a lot more. Just a few days ago, a fellow in the middle of Siberia wrote me with a modification of a fantastic program called IEBLIST (a quick dataset lister for DASD packs, but much more versatile than your usual VTOC lister programs). IEBLIST was written by a Brazilian fellow, (then) working for IBM Portugal, whose name is Ricardo J. Paranhos. Since Ricardo (who speaks and writes Portuguese) was an IBM'er and an excellent Assembler coder, his program was supremely useful to everyone (see CBT Tape File 510, member name IEBLIST). But the allowed dataset selection criteria needed some more tweaking. The Russian fellow, Alexander I. Vasilenko, (who works for the Krasnoyarsk Railway System) put some extra code into IEBLIST to allow selection of datasets by either "creation date" and/or block size. Then Alexander sent his code to me. Well for me, this was a scenario entitled "IEBLIST revisited." The first time I had seen IEBLIST five years ago, the place where I then worked, needed the program very much. So I didn't want to leave the Portuguese comments just as they were. Somebody who didn't know Portuguese might have to read them later. So I wrote to Ricardo offering to try and translate them into English. I bought a Portuguese dictionary, found that Portuguese is a lot different from Spanish, and got about a third of the way through the program, before time constraints (and my boss) forced me to stop. Ricardo checked my translations and found them OK. Then he went a bit further and translated a few more of the comments himself. But about half the program's comments still remained in Portuguese. When Alexander sent me his modified version, I decided to translate the rest of the comments into English. As of this writing, we can't locate Ricardo, but both Alexander and I appreciate his work very much, and we both want to publicly thank him. This is what the MVS world has now become, in microcosm. While I had Alexander's attention, I asked him to send me the code pages for EBCDIC Russian Language support. The issue was relevant to IEBLIST itself, because I wanted to know if I should uppercase the dataset names that were being reported. But I worried that the technique for uppercasing characters in Russian might be different from that in English. (In English you don't need a translate table. Since uppercase letters in EBCDIC in English are represented the same as lowercase, except for the X'40' bit, you can uppercase any letter in English by "or-ing it" against a blank, which is X'40' in EBCDIC.) I had had another issue with MVS in the Russian language. When Valentin Chernyak first released the source code to his marvelous REASM interactive disassembler program which runs under ISPF, I had seen some Russian language pds member names, and I was confused by them. Valentin's REASM source code is on CBT Tape File 243, (the rest of his product is on Files 238 thru 242) and the Russian pds member names have since been cleaned up. But I wanted to know, from Alexander, whether IBM permits Russian-language pds names, dataset names, or volume names in the MVS operating system, when NLS support for Russian is enabled. Alexander answered all my questions and he sent me a copy of the EBCDIC Russian language code pages. I found out that the "or-ing" trick with blanks doesn't work in Russian. Since the EBCDIC representation of Russian lowercase letters does not fit nicely with the EBCDIC representation of the corresponding uppercase letters, you have to use a customized translate table to "uppercase" the characters in Russian. Obviously, for other languages that have uppercase and lowercase letters, you'd need a different customized translate table for that purpose. So you can't use one technique to cover uppercasing for multiple languages. I also found out that pds member names can certainly be in Russian letters. (Remember SMP4, where many of the pds member names were hex values?) But dataset names have to be in English characters, and the jury is out on volser names. Alexander tells me that where he works, they haven't tried to use Russian volser names. So from this experience, I have already seen an eyeful. I have no experience at all with the "double byte character set" languages like Chinese, Japanese, or Korean. But even with a "single byte character set" that has different characters, like Russian, I've encountered plenty of MVS issues. And I've come to the conclusion that internationalization is certainly a relevant consideration in today's MVS world. OTHER USEFUL PROGRAMS FROM THE WORLD OVER Now that we've gotten your curiosity going about CBT Tape contributions from all over the world, it is only fair to you that we mention a few of them to you. To get hold of the CBT Tape files over the Internet, just do a www.google.com search for "CBT Tape", and our CBT Tape web site should come out at, or near, the top. Everything there is free to download, and you don't need a password. CBT Tape Files 535, 536, and 670 come from my friend Deru Sudibyo in Indonesia. Deru used to work for IBM Indonesia and is (like Ricardo) a very good coder. File 535 contains a TSO command to do dynamic dataset allocation and deallocation, and it is quite a bit more general than most commands of this type. File 536 contains XDI, a combined CA-Xcom and CA-DIspatch solution for Report Distribution Management. File 670 contains a mathematical functions package for REXX, similar to the math function package for PL/I. You can see that Deru has done some very useful work. I have to say something about the very large Australian contingent. My first introduction to them was through Greg Price, who is a very skilled Assembler programmer, and who has produced enormous enhancements to the REVIEW program (CBT Files 134 and 135), including an ISPF-like editor that works under both RAW TSO and ISPF. Greg has also added a lot of PDSE support to the PDS program package (CBT File 182), together with John Kalinich. (Here you see some more international cooperation. John Kalinich is in Saint Louis, Missouri. Greg is in Melbourne. No problem.) Andrew Armstrong's varied and highly innovative contributions (Files 628, 629, 640, 647, 706, and 725) have already been mentioned a bit here, and his work deserves much more "press" than we have space for this month. Paul Gillis (File 382) has a nice collection of programs, Murray Nicholas (CBT File 345) has provided a generalized MPF exit which is the basis for Glenn Siegel's enormously enhanced "generalized MPF exit package" that is on File 708. Now that Glenn's package is out, I'd recommend installing it over Murray's package, but Murray's package is the one that started things off. I'd also like to refer you to Gerard Nicol's REXX function package (CBT Files 323 and 324). Solomon Santos (CBT File 555) is a Filipino from Manila who lives in Sydney, Australia, and who has been a longtime contributor to the MVS community in various ways. David Marsden (Files 374, 375, 376) has sent in some very innovative things, especially on File 376. I also want to thank Shane Ginnane for his good work, as well. Contributors from Spain have been there too. Salvador Carrasco (File 386) had been employed as a computer operator, and taught himself MVS systems programming without any help or job tasks in the field. As a result of his enormous efforts to learn the field on his own (which is almost unheard of), Salvador's contributions and utilities are unique and highly original. I think he eventually got a systems programming job. (At least I hope so.) Other contributors from Spain are: Baldomero Castilla (File 480 and 481), Jose Maria Martinez and Angel Luis Dominguez (File 513), and Chema Alvarez (File 687). It's time to close, but I can't forget to mention Paul Moinil's original contributions and modifications to other CBT files (Files 453 thru 459) which, although they are getting a bit old, are still relevant today. Paul has retired from computing altogether; he is from Belgium and he lives in Italy. Paul's friend Antonio Colombo (formerly of Amdahl Italy) has sent Paul's work to me over the years, and I still correspond with them through Antonio. Antonio used to actually mail "real tapes" to me, in years gone by. So I hope you've gotten a small glimpse of "MVS International", so to speak. MVS sysprogs and programmers everywhere are a very clever and innovative bunch. So when you have access to the work of more of them, you'll always benefit from it. I wish all of you the best of everything, and I'm looking forward to seeing you here again next month.