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.

Reply via email to