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

Reply via email to