Hi Folks,

This is for people who are interested in copying tapes, or tape files. Direct relevance is if you want to strip all the labels from an SL tape to make an NL tape. Programs referred to, can be found on CBT Tape File 229 (www.cbttape.org) on the UPDATES page.

Historically, I have had a need to strip tape labels off (a copy of) an SL tape, to make an NL tape. Recently, I found that both of my tools for that purpose, the programs COPYMODS (with PARM=STRIP) and COPYSLNL (derived from the COPYFILE program, originally from File 316), had two separate problems, and both of them did not work properly. (Trouble!) Now I have fixed both problems, as I shall explain, and have placed updated source and load, on CBT Tape Files 229, 316, and 035) on the Updates page of www.cbttape.org.

The problem with COPYMODS was a bug. When stripping labels from SL tapes (option STRIP) in COPYMODS, if the tape DATA file contained a block with length EXACTLY 80 bytes, then the program would not put a tape mark after that file, on the copied tape. (Bad error, but it doesn't occur often. Very annoying when it does occur.) This was fixed in COPYMODS levels 082 and 083.

COPYSLNL, which strips the labels off the copy of a SL tape (by counting, not by "feel", as COPYMODS does), had an intermittent I/O error which caused a bad WRITE unpredictably. I fixed that one by replacing Frank Yates' original "double buffering" doing a WRITE and then a READ, by the very straightforward READ and WRITE into a single 64K buffer which is part of the program and is not GETMAINed. This is a more reliable method, which COPYMODS also uses. Double buffering made more sense in 1975, when that code was written. We have faster hardware now. Single buffering seems good enough, and seems also to be more reliable in later z/OS versions. As an aside, the COPYMODS program, which used to be just for making multiple copies of NL tapes, has been taken from Level 002 to Level 083 by me, over the years. Any tape copying program can also be used as a tape mapping program, since it works by reading a block of tape data into a buffer, and then copying the data out to wherever you say. While you have the tape data in the buffer, you can do whatever you want with it, including measure it, or make note of the characteristics of the data it contains. So tape copying programs and tape measuring programs can be one and the same. Therefore, I educated the COPYMODS program through 81 new levels, in 81 stages. Since I had most of the intermediate levels of the program still lying around, I decided to make a CBT Tape file out of them, File 847 (Updates page). It's a good thing to learn from. In this file, I retrofitted the bug fix (mentioned above) to all levels from Level 050 (when PARM=STRIP was introduced) thru Level 081 (the level before it was fixed). A load library is included with all the load modules too. The purpose of doing this, was to provide an example of a piece of program development, that people might learn from. Many program developers don't keep all their intermediate stages, in source code, especially in FREE source code. I had all of these lying around. They're free code too. So I thought that maybe they'd benefit somebody.

COPYMODS Level 083 uses 44 separate options (out of a possible 80, currently), and you might like to see how it was done, keeping all the options straight and accounted for. Again, I hope this helps somebody.

   Anyway, it's all out there.

   All the best of everything to all of you.......

Sincerely, Sam
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to