%EXTERNALROUTINE DOSTOPD(%STRING(63) SA) %EXTERNALROUTINESPEC COPY(%STRING(63) SB) %EXTERNALROUTINESPEC DESTROY(%STRING(63) SC) %EXTERNALROUTINESPEC DEFINE(%STRING(63) SD) %EXTERNALINTEGERFNSPEC RETURNCODE %BYTEINTEGERARRAY BUF(1:255) %INTEGER I %STRING(80) A,B,C,D,FNAME,PDS %ON %EVENT 9 %START SELECTOUTPUT(3) CLOSESTREAM(2) %IF FNAME # "" %THEN COPY("SCRATCH,".PDS."_".FNAME) DESTROY("SCRATCH") %STOP %FINISH %IF SA -> A.(",").PDS %C %THEN %START DEFINE("ST01,".A) DEFINE("ST02,SCRATCH") SELECTINPUT(1) SELECTOUTPUT(2) FNAME <- "" %CYCLE %WHILE NEXTSYMBOL=10 %OR NEXTSYMBOL=13 %THEN SKIPSYMBOL STRING(ADDR(BUF(1))) <- "" %CYCLE I=2,1,81 %WHILE NEXTSYMBOL=92 %THEN SKIPSYMBOL %IF NEXTSYMBOL=10 %OR NEXTSYMBOL=13 %THEN %EXIT READSYMBOL(BUF(I)) %REPEAT BUF(1) <- I-2 %IF STRING(ADDR(BUF(1)))-> %C A.("SUBFILE: ").B.(".").C.(" @").D %C %THEN %START SELECTOUTPUT(3) CLOSESTREAM(2) %IF FNAME # "" %THEN COPY("SCRATCH,".PDS."_".FNAME) FNAME <- B.C SELECTOUTPUT(2) %FINISH %ELSE %START PRINTSTRING(STRING(ADDR(BUF(1)))) NEWLINE %FINISH %REPEAT %FINISH %ELSE %START DEFINE("ST01,.OUT") SELECTOUTPUT(1) PRINTSTRING("ILLEGAL FILENAME PARAMETERS") NEWLINE %FINISH %END %ENDOFFILE