IF CX1 <> 1 THEN IX1 = POS(S1,LST.B)
IF CX2 <> 1 THEN IX2 = POS(S2,LST.B)
IF CX3 <> 1 THEN IX3 = POS(S3,LST.B)
IF IX1 <> 0 & CX1 <> 1 THEN DO
KLN = STRIP(TRANSLATE(SUBSTR(LST.B,IX1+6,18),' ','-'))
CX1 = 1
END
IF IX2 <> 0 & CX2 <> 1 THEN DO
KPS = STRIP(TRANSLATE(SUBSTR(LST.B,IX2+6,18),' ','-'))
RL1 = POS(S4,LST.B)
RLN = STRIP(TRANSLATE(SUBSTR(LST.B,RL1+8,16),' ','-'))
CX2 = 1
END
IF IX3 <> 0 & CX3 <> 1 THEN DO
RCS = STRIP(TRANSLATE(SUBSTR(LST.B,IX3+9,15),' ','-'))
CX3 = 1
END
IF CX1 & CX2 & CX3 THEN DO
B = LST.0
IF RCS <> 0 THEN DO
SAY "RECORDS COUNT GT 0 FOR "DSN
ITERATE A
END
"FREE FI(WORK,VSAM)"
"ALLOC FI(WORK) DA('"WORKDSN"') SHR"
"ALLOC FI(VSAM) DA('"DSN"') SHR"
IF KPS > 0 THEN AA = LEFT(' ',KPS)!!COPIES('00'X,KLN)
ELSE AA = COPIES('00'X,KLN)
QUEUE AA
IF KPS > 0 THEN AA = LEFT(' ',KPS)!!COPIES('00'X,KLN)
ELSE AA = COPIES('FF'X,KLN)
QUEUE AA
"EXECIO" QUEUED() "DISKW WORK ( FINIS"
"FREE FI(WORK)"
"ALLOC FI(WORK) DA('"WORKDSN"') SHR"
" REPRO IFILE(WORK) OFILE(VSAM) "
SAY "RETURN CODE "RIGHT(RC,4)" FOR "DSN
"FREE FI(WORK,VSAM)"
ITERATE A
END
END
END