*DECK JOBPTFS 
*CWEOR,00 
*WIDTH,80,0 
JOBPTFS 
TITLE(JOB) JOBPTFS - PTFS RELEASE DEFAULT JOB SKELETON. 
.*
.*
.*  THIS IS THE STARTUP JOB FOR PTFS. 
.*
.*    THIS RECORD MUST BE ADDED TO THE NAMSTRT FILE FOR PTFS
.*    TO BE STARTED WITH THE REST OF THE NETWORK. 
.*
.*    STATEMENTS OF THE FORM
.*               JOB(JOBPTFS,PS,SY,NS)
.*    MUST BE ADDED TO ALL PARAMETER RECORDS TO SELECT THIS RECORD
.*    TO BE PROCESSED BY NAMI AND SUBMITTED TO START PTFS.
.*
.*    THE PERMANENT FILES THAT PTFS DUMPS AND TRACES ARE WRITTEN TO 
.*    WILL BE COLLECTED BY THE COLLECTOR JOB ALONG WITH THE 
.*    REST OF THE THE NETWORK TRACES AND DUMPS. 
.*
.*
.*  THE FOLLOWING PARAMETERS MUST BE SET IN THE PARAMETER RECORD. 
.*
.*    PTFSDLY = NUMBER OF SECONDS FOR PTFS TO DELAY BEFORE
.*              NETTING OFF WHEN WAITING FOR CONNECTION.
.*
.*
.*  PERMANENT FILES FOR RUN DATA ARE DEFINED AT JOB TERMINATION.
.*
.*       TFN       LFN       PFN       CONTENTS 
.*
.*       OUTPUT    PTFSOUT   PSD0FIL   OUTPUT FROM JOB (DMP,DMD,ETC). 
.*       ZZZZDMB   PTFSDMB   PSD2FIL   BINARY FIELD LENGTH DUMPS. 
.*                 PTFSLST   PSL0FIL   JOB DAYFILE. 
.*       ZZZZZSN   PSSTATS   PSS0FIL   AIP STATISTICS FILE. 
.*       ZZZZZDN   TRCLEV1             AIP TRACE FILE WRITTEN BY PTFS.
.*                 TRCLEV3   PST0FIL   PERMANENT AIP TRACE FILE.
.*
.*
.*
PTFS_CIN,T77777.   PTFS RELEASE DEFAULT JOB.
USER(UNM,PWM) 
CLASS(CT) 
NORERUN.
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
RETURN(OUTPUT)
.*
.*  SET UP THE ZZPTFS FILE. 
.*
COPYBR(INPUT,NEW,2) 
COPYBR(INPUT,SETID) 
BEGIN(,SETID,HID+B) 
WHILE(1,INTLKLP)
ATTACH(INTRLCK=ZXPTFS/NA,M=W) 
IF(.NOT.FILE(INTRLCK,AS),INTLKOK) 
DEFINE(INTRLCK=ZXPTFS/NA) 
IF(.NOT.FILE(INTRLCK,AS),INTLKOK) 
ENDW(INTLKLP) 
.*
ENDIF(INTLKOK)
GET(OLD=ZZPTFS/NA)
IF(FILE(OLD,AS),INIT) 
SKIPR(OLD,2)
COPYEI(OLD,NEW) 
RENAME(OLD=NEW) 
LIBEDIT(P=OLD,B=REP,N=NEW)
ELSE(INIT)
COPYBR(REP,NEW) 
ENDIF(INIT) 
REPLACE(NEW=ZZPTFS) 
ROUTE(NEW,DC=IN,OT=SYOT)
RETURN(INTRLCK) 
ROLLOUT(3)
NOEXIT. 
ATTACH(INTRLCK=ZXPTFS)
ONEXIT. 
IF(FILE(INTRLCK,AS))  PURGE(ZXPTFS/NA)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  PTFS 
.*
WHILE(1,LSTLOOP)
ATTACH(PTFSLST=PSL0FIL/NA,M=W)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
DEFINE(PTFSLST=PSL0FIL/NA)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(PTFSLST) 
NOTE(DFL,NR)/PSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,PTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  PTFS 
.EOR
.*
.*  THIS IS THE COMMON JOB PART OF THE ZZPTFS FILE. 
.*
PTFS,T77777.
CLASS(CT) 
NORERUN.
BEGIN(APPLHID,INPUT,HID+B)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  PTFS 
.*
USER(UNM,PWM) 
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
WHILE(1,LSTLOOP)
ATTACH(PTFSLST=PSL0FIL/NA,M=W)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
DEFINE(PTFSLST=PSL0FIL/NA)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(PTFSLST) 
NOTE(DFL,NR)/PSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,PTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  PTFS 
.EOR
.*
.*  THIS PROC SELECTS THE ACTUAL PROC TO EXECUTE BASED ON HID.
.*
.PROC,APPLHID*I,ID=(*S4(01234567)). 
.EX.BEGIN(PS_ID,INPUT)
.EOR
.*
.*  THIS PROC PUTS THE HOST ID IN THE APPL PROC, WHICH IS THE 
.*  LOWER PART OF THIS PROC.
.*
.PROC,SETID*I,ID=(*S4(01234567)). 
REVERT.  SETID
EXIT.  SETID
REVERT(ABORT)  SETID
.*
.DATA,REP 
.PROC,PS_ID.
SETJOB(PTFS_CIN)
.*
.*  ASSIGN OUTPUT AND NETWORK STATISTICS AND TRACE FILES. 
.*
ASSIGN(MS,OUTPUT) 
ASSIGN(MS,ZZZZZSN)
ASSIGN(MS,ZZZZZDN)
REWIND(INPUT,ZZZZZJB) 
COPYEI(INPUT,ZZZZZJB) 
.*
.*  START PTFS. 
.*
PTFSN(CD=600)                      TEN MINUTE DELAY 
.*
.*  PTFS NORMAL TERMINATION - DO NOT SAVE RUN DATA ON PERMANENT FILES.
.*
IF,R1.EQ.0.ROUTE,ZZZZZJB,DC=IN,OT=SYOT.  START NEW PTFS IF NO ERROR 
SKIP(BAILOUT) 
.*
EXIT.  PTFS 
.*
.*
.*  PTFS FAILED - SAVE RUN DATA IF REQUIRED.
.*
.*
DISPLAY(EF) 
IF(EF.NE.SYE,BAILOUT) 
USER(UNM,PWM) 
SKIP(SAVFILS) 
.*
ENDIF(BAILOUT)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  PTFS 
.*
.*  SAVE RUN DATA IF AVAILABLE. 
.*
ENDIF(SAVFILS)
.*
REWIND(OUTPUT)
SKIPR(OUTPUT) 
IF(.NOT.FILE(OUTPUT,EOI),NOUTPUT) 
WHILE(1,OUTLOOP)
ATTACH(PTFSOUT=PSD0FIL/NA,M=W)
IF(.NOT.FILE(PTFSOUT,AS),GOTFILE) 
DEFINE(PTFSOUT=PSD0FIL/NA)
IF(.NOT.FILE(PTFSOUT,AS),GOTFILE) 
ENDW(OUTLOOP) 
.*
ENDIF(GOTFILE)
REWIND(OUTPUT)
SKIPEI(PTFSOUT) 
COPYEI(OUTPUT,PTFSOUT)
RETURN(OUTPUT,PTFSOUT)
ELSE(NOUTPUT) 
RETURN(OUTPUT)
ENDIF(NOUTPUT)
.*
IF(FILE(ZZZZDMB,AS),NOZZDMB)
WHILE(1,DMBLOOP)
ATTACH(PTFSDMB=PSD2FIL/NA,M=W)
IF(.NOT.FILE(PTFSDMB,AS),GOTFILE) 
DEFINE(PTFSDMB=PSD2FIL/NA)
IF(.NOT.FILE(PTFSDMB,AS),GOTFILE) 
ENDW(DMBLOOP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZDMB) 
SKIPEI(PTFSDMB) 
COPYEI(ZZZZDMB,PTFSDMB) 
RETURN(ZZZZDMB,PTFSDMB) 
ENDIF(NOZZDMB)
.*
REWIND(ZZZZZSN) 
SKIPR(ZZZZZSN)
IF(.NOT.FILE(ZZZZZSN,EOI),NOSTATS)
WHILE(1,STATSLP)
ATTACH(PSSTATS=PSS0FIL/NA,M=W)
IF(.NOT.FILE(PSSTATS,AS),GOTFILE) 
DEFINE(PSSTATS=PSS0FIL/NA)
IF(.NOT.FILE(PSSTATS,AS),GOTFILE) 
ENDW(STATSLP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZZSN) 
SKIPEI(PSSTATS) 
COPYEI(ZZZZZSN,PSSTATS) 
RETURN(ZZZZZSN,PSSTATS) 
ENDIF(NOSTATS)
.*
RENAME(TRCLEV1=ZZZZZDN) 
REWIND(TRCLEV1) 
SKIPR(TRCLEV1)
IF(.NOT.FILE(TRCLEV1,EOI),NOTRACE)
WHILE(1,TRCLP2) 
ATTACH(TRCLEV3=PST0FIL/NA,M=W)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
DEFINE(TRCLEV3=PST0FIL/NA)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
ENDW(TRCLP2)
.*
ENDIF(GOTFILE)
SKIPEI(TRCLEV3) 
REWIND(TRCLEV1) 
COPYBF(TRCLEV1,TRCLEV3) 
BKSP(TRCLEV3) 
SKIPR(TRCLEV3)
IF(.NOT.FILE(TRCLEV3,EOF))  WRITEF(TRCLEV3) 
RETURN(TRCLEV1,TRCLEV3) 
ENDIF(NOTRACE)
.*
ENDIF(ABORTED)
USER(UNM,PWM) 
WHILE(1,LSTLOOP)
ATTACH(PTFSLST=PSL0FIL/NA,M=W)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
DEFINE(PTFSLST=PSL0FIL/NA)
IF(.NOT.FILE(PTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(PTFSLST) 
NOTE(DFL,NR)/PSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,PTFSLST) 
RETURN(PTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  PTFS 
*WIDTH
