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