*COMDECK JOBNIP 
JOBNIP
*IF -DEF,SVL,1
TITLE(JOB) JOBNIP - NIP RELEASE DEFAULT JOB SKELETON. 
*IF DEF,SVLC,1
TITLE(JOB) JOBNIP - NIP SUNNYVALE CLOSED SHOP DEFAULT JOB SKELETON. 
*IF DEF,SVLD,1
TITLE(JOB) JOBNIP - NIP SUNNYVALE DEVELOPMENT DEFAULT JOB SKELETON. 
.*
.*
.*  THIS IS THE STARTUP JOB FOR NIP.
.*
.*    THE PERMANENT FILES THAT NIP 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. 
.*
.*    NIISTP = STOP NPU(S) AT HOST INITIALIZATION.
.*
.*    NIFSTP = STOP NPU(S) AT HOST TERMINATION. 
.*
*IF DEF,SVLC,1
.*    ZZNIPMC = MESSAGE COUNT BEFORE RELEASE OF TRACE FILE. 
*IF -DEF,SVLC,1 
.*    ZZMC = MESSAGE COUNT BEFORE RELEASE OF TRACE FILE.
.*
.*
.*  PERMANENT FILES FOR RUN DATA ARE DEFINED AT JOB TERMINATION.
.*
.*       TFN       LFN       PFN       CONTENTS 
.*
.*       OUTPUT    NIPOUT    NID0FIL   OUTPUT FROM JOB (DMP,DMD,ETC). 
.*       ZZZZZPP   PIPDMP    NID1FIL   PIP DUMPS ON REPRIEVE. 
.*       ZZZZDMB   NIPDMB    NID2FIL   BINARY FIELD LENGTH DUMPS. 
.*       ZZZZTMP   NIPZTMP   NID3FIL   BINARY DUMP FILE.
.*                 NIPLST    NIL0FIL   JOB DAYFILE. 
.*       ZZZZZDN   TRCLEV1             NIP TRACE FILE WRITTEN BY NIP. 
.*                 TRCLEV2   ZZNIFIL   INTERMEDIATE NIP TRACE FILE. 
.*                 TRCLEV3   NIT0FIL   PERMANENT NIP TRACE FILE.
.*
.*
.*
USER(UNM,PWM) 
NORERUN.
*IF DEF,SVL,1 
DTSET.*  TODAY IS WWW MMDDYY, SN = SSS. 
*IF -DEF,SVL,2
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
RETURN(OUTPUT)
SETJOB(NAM_CIN) 
.*
.*  PURGE OLD LEVEL-2 TRACE FILES.
.*
PURGE(ZZNI_OIN,ZZNI_CIN/NA) 
*IF DEF,SVLC
.*
XEDIT(NRF2,L=0);Y/L.<-->./L.<.0/WR/D/-;END
SKIPR(NRF2) 
DEFINE(TRCLEV2=ZZNI_CIN)
COPYBF(NRF2,TRCLEV2)
NOTE(TRCLEV2,NR)/NIT0_CIN 
RETURN(TRCLEV2) 
REWIND(NRF2)
SKIPR(NRF2) 
WRITEF(NRF2)
*ENDIF
.*
.*  START NIP.
.*
*IF DEF,SVL,1 
RFL(100000) 
*IF DEF,SVLD,1
NIP(NIN=CIN,ISTP=NIISTP,FSTP=NIFSTP,MC=ZZMC,N1PRUB=4,N2PRUB=8,N3PRUB=4) 
*IF DEF,SVLC,1
NIP(NIN=CIN,ISTP=NIISTP,FSTP=NIFSTP,MC=ZZNIPMC,N1PRUB=4,N2PRUB=8,N3PRUB=4)
*IF -DEF,SVL,2
RFL(60000)
NIP(NIN=CIN,ISTP=NIISTP,FSTP=NIFSTP,MC=ZZMC,INACT=ZZINACT)
.*
.*  NIP NORMAL TERMINATION - CHECK FOR ABNORMAL CONDITIONS. 
.*
RFL(0)
SKIP(BAILOUT) 
.*
EXIT.  NIP
.*
.*
.*  NIP FAILED - SAVE RUN DATA IF REQUIRED. 
.*
.*
DISPLAY(EF) 
IF(EF.NE.SYE,BAILOUT) 
SKIP(SAVFILS) 
.*
ENDIF(BAILOUT)
IF(.NOT.FILE(ZZZZTMP,AS),SAVFILS) 
.*
.*  NO ABNORMAL CONDITIONS - DO NOT SAVE RUN DATA ON PERMANENT FILES. 
.*
PURGE(NIT0FIL,ZZNI_CIN/NA)
RETURN(OUTPUT)
WRITER(OUTPUT)
EXIT.  NIP
.*
.*  SAVE RUN DATA IF AVAILABLE. 
.*
ENDIF(SAVFILS)
.*
IF(FILE(OUTPUT,AS),NOUTPUT) 
ATTACH(NIPOUT=NID0FIL/NA,M=W) 
*IF DEF,SVL,1 
IF(.NOT.FILE(NIPOUT,AS))  DEFINE(NIPOUT=NID0FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(NIPOUT,AS))  DEFINE(NIPOUT=NID0FIL)
REWIND(OUTPUT)
SKIPEI(NIPOUT)
COPYEI(OUTPUT,NIPOUT) 
RETURN(OUTPUT,NIPOUT) 
ENDIF(NOUTPUT)
.*
IF(FILE(ZZZZZPP,AS),NOZZZPP)
ATTACH(PIPDMP=NID1FIL/NA,M=W) 
*IF DEF,SVL,1 
IF(.NOT.FILE(PIPDMP,AS))  DEFINE(PIPDMP=NID1FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(PIPDMP,AS))  DEFINE(PIPDMP=NID1FIL)
REWIND(ZZZZZPP) 
SKIPEI(PIPDMP)
COPYEI(ZZZZZPP,PIPDMP)
RETURN(ZZZZZPP,PIPDMP)
ENDIF(NOZZZPP)
.*
IF(FILE(ZZZZDMB,AS),NOZZDMB)
ATTACH(NIPDMB=NID2FIL/NA,M=W) 
*IF DEF,SVL,1 
IF(.NOT.FILE(NIPDMB,AS))  DEFINE(NIPDMB=NID2FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(NIPDMB,AS))  DEFINE(NIPDMB=NID2FIL)
REWIND(ZZZZDMB) 
SKIPEI(NIPDMB)
COPYEI(ZZZZDMB,NIPDMB)
RETURN(ZZZZDMB,NIPDMB)
ENDIF(NOZZDMB)
.*
IF(FILE(ZZZZTMP,AS),NOZZTMP)
ATTACH(NIPZTMP=NID3FIL/NA,M=W)
*IF DEF,SVL,1 
IF(.NOT.FILE(NIPZTMP,AS))  DEFINE(NIPZTMP=NID3FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(NIPZTMP,AS))  DEFINE(NIPZTMP=NID3FIL)
REWIND(ZZZZTMP) 
SKIPEI(NIPZTMP) 
COPYEI(ZZZZTMP,NIPZTMP) 
RETURN(ZZZZTMP,NIPZTMP) 
ENDIF(NOZZTMP)
.*
ATTACH(TRCLEV2=ZZNI_CIN/NA) 
IF(FILE(TRCLEV2,AS),NTRCLV2)
*IF DEF,SVLC,1
SKIPF(TRCLEV2)
*IF -DEF,SVLC,2 
SKIPR(TRCLEV2)
IF(.NOT.FILE(TRCLEV2,EOF))  REWIND(TRCLEV2) 
ELSE(NTRCLV2) 
IF(FILE(ZZZZZDN,AS),NOTRACE)
ENDIF(NTRCLV2)
ATTACH(TRCLEV3=NIT0FIL/NA,M=W)
*IF DEF,SVL,1 
IF(.NOT.FILE(TRCLEV3,AS))  DEFINE(TRCLEV3=NIT0FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(TRCLEV3,AS))  DEFINE(TRCLEV3=NIT0FIL)
SKIPEI(TRCLEV3) 
COPYEI(TRCLEV2,TRCLEV3) 
PURGE(ZZNI_CIN/NA)
IF(FILE(ZZZZZDN,AS),NTRCLV1)
RENAME(TRCLEV1=ZZZZZDN) 
REWIND(TRCLEV1) 
*IF DEF,SVLC,1
IF(ZZNIPMC.NE.0)  SKIPR(TRCLEV1)
*IF -DEF,SVLC,1 
IF(ZZMC.NE.0)  SKIPR(TRCLEV1) 
COPYBF(TRCLEV1,TRCLEV3) 
BKSP(TRCLEV3) 
SKIPR(TRCLEV3)
IF(.NOT.FILE(TRCLEV3,EOF))  WRITEF(TRCLEV3) 
ENDIF(NTRCLV1)
RETURN(TRCLEV1,TRCLEV2,TRCLEV3) 
ENDIF(NOTRACE)
.*
ATTACH(NIPLST=NIL0FIL/NA,M=W) 
*IF DEF,SVL,1 
IF(.NOT.FILE(NIPLST,AS))  DEFINE(NIPLST=NIL0FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(NIPLST,AS))  DEFINE(NIPLST=NIL0FIL)
SKIPEI(NIPLST)
NOTE(DFL,NR)/NIDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,NIPLST)
.*
RETURN(OUTPUT)
WRITER(OUTPUT)
*IF DEF,SVL 
IF(EF.NE.0,DONE)
IF(EF.NE.ODE,DONE)
IF(EF.NE.DRE,DONE)
IF(EF.NE.SSE,DONE)
IF(EF.NE.SYE,DONE)
IF(EF.NE.RAE,DONE)
IF(EF.NE.ORE,DONE)
PAUSE.**NAM FAILED-NOTE/REINITIATE
ENDIF(DONE) 
*ENDIF
EXIT.  NIP
.EOR
.*
.*
*IF DEF,SVLC,1
.*  THIS JOB IS SUBMITTED EVERY ZZNIPMC MESSAGES TO PLACE 
*IF -DEF,SVLC,1 
.*  THIS JOB IS SUBMITTED EVERY ZZMC MESSAGES TO PLACE
.*    THE TRACE INFORMATION FROM THE PROGRAM (LEVEL 1) ONTO 
.*    THE INTERMEDIATE PERMANENT FILE ZZNIFIL (LEVEL 2).
*IF -DEF,SVLC 
.*
.*    IF ALL THAT HAPPENS IS THAT THIS JOB IS REPEATEDLY
.*    SUBMITTED THEN THE TRACE INFORMATION IS KEPT FOR
.*    ONLY THE LAST 2 TIMES ZZMC MESSAGES.
.*
.*    THIS CONSTRAINS THE SIZE OF THE TRACE FILE KEPT 
.*    WHEN THE NETWORK IS RUNNING WITHOUT ANY PROBLEMS. 
*ENDIF
.*
.*
NIPA_CIN,T77777.     DUMP AIP TRACE TO ZZNIFIL. 
USER(UNM,PWM) 
ATTACH(TRCLEV2=ZZNI_CIN/M=W,NA) 
*IF DEF,SVLC
IF(FILE(TRCLEV2,AS),ABORTED)
COPYBR(TRCLEV2,NRF3)
COPYBF(TRCLEV2,PROCFIL) 
SKIPEI(TRCLEV2) 
COPYEI(INPUT,TRCLEV2) 
BEGIN(DFFLLTH,,INPUT) 
BEGIN(CKFLLTH,,TRCLEV2,NIPPRUS) 
IF(FILE(TRCLEV2,AS))  ROUTE(NRF3,DC=IN,OT=SYOT) 
ENDIF(ABORTED)
*ENDIF
*IF -DEF,SVLC 
IF(FILE(TRCLEV2,AS),NTRCLV2)
SKIPF(TRCLEV2)
COPYBF(TRCLEV2,TEMP)
REWIND(TRCLEV2,TEMP)
COPYBF(TEMP,TRCLEV2)
ELSE(NTRCLV2) 
DEFINE(TRCLEV2=ZZNI_CIN)
WRITEF(TRCLEV2) 
ENDIF(NTRCLV2)
COPYBF(INPUT,TRCLEV2) 
BKSP(TRCLEV2) 
SKIPR(TRCLEV2)
IF(.NOT.FILE(TRCLEV2,EOF))  WRITEF(TRCLEV2) 
*ENDIF
SETJOB(DC=NO) 
EXIT.  NIPA 
.EOR
.*
.*
.*  THIS JOB IS SUBMITTED IN RESPONSE TO A
.*    *HOP RELEASE DEBUG LOGFILE* COMMAND.
.*
.*    THE PURPOSE OF THIS JOB IS TO SAVE ON THE LEVEL 3 PERMANENT 
*IF DEF,SVLC,1
.*    FILE *NIT0FIL* ALL THE MESSAGES 
*IF -DEF,SVLC,1 
.*    FILE *NIT0FIL* THE PREVIOUS 2 TIMES ZZMC MESSAGES 
.*    CURRENTLY IN THE INTERMEDIATE (LEVEL 2) FILE *ZZNIFIL*
.*    BEFORE WRITING THE NEW TRACE DATA (FROM LEVEL 1 FILE) 
.*    ON THE INTERMEDIATE (LEVEL 2) FILE. THIS WILL ALLOW THESE 
.*    TRACE MESSAGES TO BE COLLECTED AND WRITTEN TO TAPE. 
.*
.*
NIPB_CIN,T77777.     DUMP TO PERMANENT TRACE FILE.
USER(UNM,PWM) 
ATTACH(TRCLEV2=ZZNI_CIN/M=W,NA) 
*IF DEF,SVLC,2
IF(FILE(TRCLEV2,AS),ABORTED)
SKIPF(TRCLEV2)
*IF -DEF,SVLC,3 
IF(FILE(TRCLEV2,AS),NTRCLV2)
SKIPR(TRCLEV2)
IF(.NOT.FILE(TRCLEV2,EOF))  REWIND(TRCLEV2) 
ATTACH(TRCLEV3=NIT0FIL/NA,M=W)
*IF DEF,SVL,1 
IF(.NOT.FILE(TRCLEV3,AS))  DEFINE(TRCLEV3=NIT0FIL/CT=PU)
*IF -DEF,SVL,1
IF(.NOT.FILE(TRCLEV3,AS))  DEFINE(TRCLEV3=NIT0FIL)
SKIPEI(TRCLEV3) 
COPYEI(TRCLEV2,TRCLEV3) 
*IF DEF,SVLC,3
REWIND(TRCLEV2) 
SKIPF(TRCLEV2)
COPYEI(INPUT,TRCLEV2) 
*IF -DEF,SVLC 
EVICT(TRCLEV2)
ELSE(NTRCLV2) 
DEFINE(TRCLEV2=ZZNI_CIN)
ENDIF(NTRCLV2)
WRITEF(TRCLEV2) 
COPYBF(INPUT,TRCLEV2) 
BKSP(TRCLEV2) 
SKIPR(TRCLEV2)
IF(.NOT.FILE(TRCLEV2,EOF))  WRITEF(TRCLEV2) 
*ENDIF
SETJOB(DC=NO) 
EXIT.  NIPB 
*IF DEF,SVLC
<-->
NIPC_CIN. 
USER(UNM,PWM) 
WHILE(1,LOOP1)
SKIP(NEXT)
EXIT.  NIPC 
SKIP(ABORTED) 
ENDIF(NEXT) 
LABEL(TAPE,D=GE,PO=MW)  HOST DUMP TAPE
SKIP(OK)
EXIT.  NIPC 
SKIP(CHKERR)
ENDIF(OK) 
ATTACH(TRCLEV2=ZZNI_CIN/NA,M=W) 
IF(FILE(TRCLEV2,AS),ABORTED)
SKIPF(TRCLEV2)
SKIP(NEXT)
EXIT.  NIPC 
SKIP(ABORTED) 
ENDIF(NEXT) 
SKIPEI(TAPE)
BKSP(TAPE)
COPYBF(TRCLEV2,TAPE)
SKIP(OK)
EXIT.  NIPC 
SKIP(CHKERR)
ENDIF(OK) 
REWIND(TRCLEV2) 
SKIPF(TRCLEV2)
BKSP(TRCLEV2) 
WRITEF(TRCLEV2) 
SETJOB(DC=NO) 
EXIT.  NIPC 
SKIP(ABORTED) 
.*
ENDIF(CHKERR) 
DISPLAY(EF) 
IF(EF.NE.ODE,ABORTED) 
IF(EF.NE.DRE,ABORTED) 
IF(EF.NE.SYE,ABORTED) 
IF(EF.NE.RAE,ABORTED) 
IF(EF.NE.ORE,ABORTED) 
SET(EF=0) 
UNLOAD(TAPE)
ENDW(LOOP1) 
.*
EXIT.  NIPC 
ENDIF(ABORTED)
*************************** 
* *                     * * 
*   *******************   * 
*   *                 *   * 
*   *   NIPC FAILED   *   * 
*   *                 *   * 
*   *******************   * 
* *                     * * 
*************************** 
<-->
.PROC,DFFLLTH,FN. 
IF(FILE(FN,AS),NOTASGD) 
REWIND(FN)
SKIPR(FN) 
IF(.NOT.FILE(FN,EOI),EMPTY) 
RETURN(DFFLF01) 
ENQUIRE(#FN=FN,O=DFFLF01) 
XEDIT(DFFLF01,I=DFFLXDV,L=0)
BEGIN(,DFFLPRC) 
RETURN(DFFLXDV,DFFLF01,DFFLPRC) 
REVERT.  DFFLLTH
.*
ENDIF(NOTASGD)
* 
*  FN NOT ASSIGNED
* 
REVERT.  DFFLLTH
.*
ENDIF(EMPTY)
* 
*  FN EMPTY 
* 
REVERT.  DFFLLTH
.*
EXIT.  DFFLLTH
REVERT(ABORT)  DFFLLTH
.*
.DATA,DFFLXDV 
DEL ; 
D.---FN.* 
RM 20;TRUNC;WM 11 11;CW..%.;C..%.;C/%...%//;WM 1 10;CW. ..
C..*  FN = .;+IB2;.PROC,DFFLPRC.;*;+I;* 
+I3;REVERT.  DFFLPRC;EXIT.  DFFLPRC;REVERT(ABORT)  DFFLPRC
END,DFFLPRC 
<-->
.PROC,CKFLLTH,FN,LTH. 
IF(FILE(FN,AS),NOTASGD) 
REWIND(FN)
SKIPR(FN) 
IF(.NOT.FILE(FN,EOI),EMPTY) 
RETURN(CKFLF01) 
ENQUIRE(#FN=FN,O=CKFLF01) 
XEDIT(CKFLF01,I=CKFLXDV,L=0)
BEGIN(,CKFLPRC) 
ELSE(EMPTY) 
RETURN(FN)
ENDIF(EMPTY)
ENDIF(NOTASGD)
RETURN(CKFLXDV,CKFLF01,CKFLPRC) 
REVERT.  CKFLLTH
.*
EXIT.  CKFLLTH
REVERT(ABORT)  CKFLLTH
.*
.DATA,CKFLXDV 
DEL ; 
D.---FN.* 
RM 20;TRUNC;WM 11 11;CW..%.;C..%.;C/%...%//;WM 1 10;CW. ..
C..IF(.;+A;.LT.LTH)  RETURN(FN);+IB;.PROC,CKFLPRC.
+I3;REVERT.  CKFLPRC;EXIT.  CKFLPRC;REVERT(ABORT)  CKFLPRC
END,CKFLPRC 
*ENDIF
*CWEOR,0
