Hello Walter-san, Thank you for your suggestion. I completely agree with you.
I didn't know that there is a REXX biult-in-function to invoke REXX stage explicitly. The name of the REXX stage which loads old VMFPLC dumped tape was just given by Heij-san. I should change more meaningful name such as LDVMFPLC (LoaD VMFPLC ?) instead of cryptic name "MM" which is initial of my name. ;-) Minoru Massaki (M*M) On Tue, 17 Jan 2006 11:16:26 -0600, Mike Walter <[EMAIL PROTECTED]> wrote: >Minoru, > >When you look back some years from now at the command: PIPE tape 181 | mm >T | cons >you may wonder from where the "MM" stage came, since you cannot find it in >any CMS Pipelines manual. > >In my humble opinion it is a good practice when specifying home-grown >stages, as opposed to Built-In-Feature (BIF's), with the REXX stage. Thus >your command would become: PIPE tape 181 | REXX mm T | cons > >Anyone glancing at the command should immediately be able to tell that the >"MM" stage is not part of the distributed CMS Pipelines, and not to bother >looking for "MM" doc in the IBM manuals. Using REXX also causes Pipes to >not bother looking for a BIF stage, instead searching for an external >function. This has two advantages, 1) it's faster (although in this case >it would be immeasurable) and, 2) if at some point in the future IBM >distributes an MM stage as a BIF, your code will continue to work. Being >somewhat cryptic, "MM" is unlikely to be chosen as an IBM stage name, but >getting into the habit of using the REXX stage can save you later when you >write your own stage with a name that IBM may define. > >Using the "REXX" for home-grown external stages falls into the same >category of "good coding practices" as beginning REXX execs (where >possible) with: address COMMAND > >Mike Walter >Hewitt Associates >The opinions expressed herein are mine alone, not my employer's. > > > > >"Minoru Massaki" <[EMAIL PROTECTED]> > >Sent by: "VM/ESA and z/VM Discussions" <[email protected]> >01/17/2006 08:17 AM >Please respond to >"VM/ESA and z/VM Discussions" <[email protected]> > > > >To >[email protected] >cc > >Subject >Re: How to restore VMFPLC dumped files on z/VM V5.1 > > > > > > >I should add an usage guide for the Piplines REXX. >Assume that file name and file type of the Piplines REXX file are "MM >REXX". > The VMFPLC dumped tape is mounted on and attached with virtual device >address 181. >Enter following PIPE command to restore the files on the tape into disk >mode >"T" disk. > > PIPE tape 181 | mm T | cons > >I hope that this might help someone in the future. > >Minoru Massaki (M*M) > > >On Tue, 17 Jan 2006 08:46:46 -0500, [EMAIL PROTECTED] wrote: > >>Thank you for posting the final code back to the list. Although I do not >>have a use for it, this could be of immense help to someone in the >>future. >> >>-----Original Message----- >>From: VM/ESA and z/VM Discussions [mailto:[EMAIL PROTECTED] On >>Behalf Of Minoru Massaki >>Sent: January 16, 2006 22:20 >>To: [email protected] >>Subject: Re: How to restore VMFPLC dumped files on z/VM V5.1 >> >>Finally, I have completely restore my old VMFPLC tapes by using a new >>version of the Pipelins REXX which has been made by Heij-san. >> >>After some my tests, the pipelines REXX was require small changes to >>restore all files completely. The changes has been made by Heij-san. >> >>I really appreciate his efforts. >> >>Here is the finel version of the Pipelines REXX to restore old VMFPLC >>(not >>VMFPLC2) dumped tape. >> >>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >>/* MM REXX Decode the VMFPLC data from Minoru Massaki */ >>/* Author: Rob van der Heij, 11 Jan 2006 */ >> >>arg outfm . /* Output filemode with default */ >>parse value outfm 'T' with outfm . >> >>signal on error >> >>do forever >> 'peekto plch' >> if left(plch,5) <> '02'x || 'PLCH' then exit 1 >> >> 'callpipe (end \ name MM.REXX:10)', >> '\ *: ', >> '| take', >> '| spec 6.40 1', /* Take relevant portion */ >> '| fmtfst cdf iso', /* .. in readable format */ >> '| dateconvert w8 iso full', /* .. make DMSPLU happy */ >> '| var fspec | *:' >> >> parse var fspec fn ft fm recfm lrecl nrec blks date time >> >> if recfm = 'F' then fmt = 'fblock' lrecl '40' >> else fmt = 'deblock cms' >> >> 'callpipe (end \ name MM.REXX:11)', >> '\ *:', >> '| strtolabel x02D7D3C3C8', /* Upto PLCH again */ >> '| not chop 5', /* Discard prefix */ >> '|' fmt, /* Format as it should */ >> '| trl: take' nrec, /* .. discard trailer */ >> '| >' fn ft outfm recfm, /* .. and write the file */ >> '\ trl: | hole' >> >> address command , >> 'DMSPLU' fn ft outfm date time /* Repair timestamp */ >> >>end >>error: return rc * ( rc <> 12 ) >> >>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> >>To restore the tape, command is following; >> >> pipe tape | mm T | cons >> >> T is disk mode to restore the files. >> >>Minoru Massaki (M*M) >> >>On Wed, 11 Jan 2006 11:09:31 +0100, Rob van der Heij <[EMAIL PROTECTED]> >> >>wrote: >> >>>One should never challenge a plumber... >>> >>> RVDHEIJ FILELIST A0 V 169 Trunc=169 Size=15 Line=1 Col=1 Alt=0 >>>Cmd Filename Filetype Fm Format Lrecl Records Blocks Date >> >>Time >>> $$DISK EXEC T1 F 80 160 4 2/01/1980 >>15:12:00 >>> $UPDTE MODULE T1 V 13248 3 4 1/31/1980 >>16:37:00 >>> BYADDR ASSEMBLE T1 F 80 210 5 5/25/1979 >>22:11:00 >>> BYNAME ASSEMBLE T1 F 80 210 5 5/25/1979 >>22:07:00 >>> BYADDR EXEC T1 F 80 10 1 5/25/1979 >>21:23:00 >>> CARD F5 T1 F 80 3370 66 12/18/1978 >>20:42:00 >>> CARD F4 T1 F 80 2250 44 12/18/1978 >>20:13:00 >>> CARD F3 T1 F 80 2210 43 12/18/1978 >>19:55:00 >>> >>>If I had left out comments (as usual) it would have been less than a >>>screen, but in >>>case you're interested: >>>/* MM REXX Decode the VMFPLC data from Minoru Massaki */ >>>/* Author: Rob van der Heij, 11 Jan 2006 */ >>> >>>arg outfm . /* Output filemode with default */ >>>parse value outfm 'T' with outfm . >>> >>>signal on error >>> >>>do forever >>> 'peekto plch' >>> if left(plch,5) <> '02'x || 'PLCH' then exit 1 >>> >>> 'callpipe (end \ name MM.REXX:10)', >>> '\ *: ', >>> '| take', >>> '| spec 6.40 1', /* Take relevant portion */ >>> '| fmtfst cdf', /* .. in readable format */ >>> '| dateconvert 57.8 short full', /* .. make DMSPLU happy */ >>> '| var fspec | cons' >>> >>> parse var fspec fn ft fm recfm lrecl nrec blks date time >>> >>> if recfm = 'F' then fmt = 'fblock' lrecl >>> else fmt = 'deblock cms' >>> >>> 'callpipe (end \ name MM.REXX:11)', >>> '\ *:', >>> '| strtolabel x02D7D3C3C8', /* Upto PLCH again */ >>> '| not chop 5', /* Discard prefix */ >>> '|' fmt, /* Format as it should */ >>> '| >' fn ft outfm recfm /* .. and write the file */ >>> >>> address command , >>> 'DMSPLU' fn ft outfm date time /* Repair timestamp */ >>> >>>end >>>error: return rc * ( rc <> 12 ) >>>-- >>>Rob van der Heij rvdheij @ gmail.com >>>======================================================================= >>= >> >> >>The information transmitted is intended only for the person or entity to >which it is addressed and may contain confidential and/or privileged >material. Any review, retransmission, dissemination or other use of or >taking of any action in reliance upon, this information by persons or >entities other than the intended recipient or delegate is strictly >prohibited. If you received this in error, please contact the sender and >delete the material from any computer. The integrity and security of this >message cannot by guaranteed on the Internet. The Sender accepts no >liability for the content of this e-mail, or for the consequences of any >actions taken on basis of the information provided. The recipient should >check this e-mail and any attachments for the presence of viruses. The >sender accepts no liability for any damage caused by any virus transmitted >by this e-mail. This disclaimer is the property of the TTC and must not >be >altered or circumvented in any manner. > > > > > >The information contained in this e-mail and any accompanying documents may contain information that is confidential or otherwise protected from disclosure. If you are not the intended recipient of this message, or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message, including any attachments. Any dissemination, distribution or other use of the contents of this message by anyone other than the intended recipient is strictly prohibited. >=========================================================================
