cdc:nos2.source:nam5871:nppwl
Table of Contents
NPPWL
Table Of Contents
- [00014] PROC NPPWL(BUFADDR)
- [00065] PROC LOCLLCB
- [00066] PROC LOCNCNT
- [00067] PROC NCSTTP
- [00068] PROC NBSTTP
- [00069] PROC OVLCALL
- [00070] PROC XTRACE
Source Code
- NPPWL.txt
- *DECK NPPWL
- USETEXT NIPDEF
- USETEXT NBT
- USETEXT OVERLAY
- USETEXT PARAMP
- USETEXT PARAMS
- USETEXT PCNB
- USETEXT LLCB
- USETEXT NCNB
- USETEXT NCNT
- USETEXT PWL
- USETEXT PT
- USETEXT APPSTAT
- PROC NPPWL(BUFADDR); # PROCESS A PRU WORKLIST #
- STARTIMS;
- #
- *1DC NPPWL
- *
- * 1. PROC NAME AUTHOR DATE
- * NPPWL J.C. LEE 80/04/01
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * PROCESS A PRU WORKLIST
- *
- * 3. METHOD USED.
- * LOCATE NETWORK-SIDE PCNB
- * VALIDATE FOR A PCNB AND ALLOWED OPCODE VALUE,
- * PROCESS PWL
- *
- * 4. ENTRY PARAMETERS.
- * BUFADDR ADDRESS OF WORKLIST BUFFER
- *
- * 5. EXIT PARAMETERS.
- * CODE ZERO IF THERE IS NO SPACE FOR BUFFER
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * NIPDEF OPSIZE OVERLAY
- * PARAMP PCNB PWL
- * LLCB NCNT APPSTAT
- *
- * 7. ROUTINES AND OVERLAYS CALLED.
- * LOCLLCB LOCATE LLCB
- * LOCNCNT LOCATE NCNT
- * NCSTTP NETWORK CONNECTION STATE TAB PROCESSOR
- * NBSTTP NETWORK BLOCK STATE TABLE PROC
- * NGIGO OVL DAYFILE TEXT GENERATED BY NPU/PIP
- * NPISM OVL PROCESS ILLEGAL SUPERVISORY MESSAGE
- * XABTAPP OVL ROUTINE TO ABORT APPLICATION
- * HAPFAIL OVL PROCESSS APPLICATION FAILURE
- * NPPSM OVL PROCESS A PRU SUPERVISORY MESSAGE FROM PIP
- * NRPWL OVL RELEASE A PROCESSED PWL
- * OVLCALL LOAD AND EXECUTE OVERLAY
- * XTRACE TRACE CALLS
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * THIS PROCEDURE IS CALLED BY NEIB1 AND XSACB.
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC LOCLLCB;
- PROC LOCNCNT;
- PROC NCSTTP;
- PROC NBSTTP ;
- PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
- PROC XTRACE;
- END
- #
- INTERNAL VARIABLES
- #
- ITEM BUFADDR; # BUFFER ADDRESS #
- ITEM CODE; # RETURN VALUE #
- ITEM PCNBADDR; # PCNB ADDRESS #
- ITEM NCNTEAD; # NCNT ENTRY ADDRESS #
- ITEM PRUCN; # PRU CONNECTION NUMBER #
- ITEM REASON U ;
- ITEM NCTRIGG ;
- ITEM DISCRDF B ; # WAITING PIP CONN. TERMINATION #
- SWITCH PWLOPJT ,NPWLOP1,NPWLOP2,NPWLOP3,NPWLOP4,NPWLOP5,NPWLOP6 ;
- # ******************************************************************** #
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("NPPWL") ;
- CONTROL FI;
- P<PWLHDR> = BUFADDR; # PRU WORKLIST ADDRESS #
- PARAMP4 = 0; # INITIALIZE NGIGO CALL FLAG #
- DISCRDF = FALSE ;
- IF PWLOP[0] EQ PWLOPDAYFI
- OR ( PWLHN[0] EQ PWLTN[0] AND PWLOP[0] EQ PWLOPBPRU ) # OP =6 #
- # ON A COUPLER, DAYFILE AS OP=5 #
- THEN # DAYFILE TEXT FROM PIP #$
- GOTO NPWLOP5 ; # DAYFILE TEXT FROM PIP #
- PRUCN = PWLCN[0] ;
- LOCLLCB(PWLHN[0],PWLTN[0],P<LLCB>);
- LOCNCNT(P<LLCB>,PRUCN,NCNTEAD);
- P<NCNT> = NCNTEAD;
- PCNBADDR = NCNTNCNB[0];
- # #
- IF PCNBADDR EQ 0
- THEN # CANNOT LOCATE PCNB #
- BEGIN
- PARAMP4 = DMCUCN; # UNKNOWN NETWORK CONNECTION NO #
- END
- ELSE
- BEGIN # FOUND PCNB #
- P<PCNB> = PCNBADDR; # PCNB ADDRESS #
- IF PCNBID[0] NQ PCNBIDVALUE
- AND PCNBID[0] NQ LCNBIDVALUE
- THEN # NOT A PCNB #
- BEGIN
- IF PWLOP[0] EQ PWLOPBPRU # IF OP=6, JUST DAYFILE IT #
- THEN
- BEGIN
- PARAMP4 = DMCPBPE;
- END
- ELSE # DAYFILE AND ABORT ON OP OTHER #
- BEGIN # THAN 6. #
- PARAMP4 = DMCNPCN;
- END
- END
- ELSE
- BEGIN
- CODE = PWLOP[0]; # PRU WORKLIST OPCODE #
- IF CODE LS PWLOPNSM
- OR CODE GR PWLOPXPRU
- THEN # BAD PWL OPCODE #
- BEGIN
- PARAMP4 = DMCBPWO; # BAD PWL OPCODE #
- END
- ELSE # VALID PWL OPCODE #
- BEGIN
- #
- CALL NETWORK BLOCK TABLE TO VALIDATE STATE
- #
- PARAMP2 = 2 ; # PRESET TO INITIAL ERROR STATE #
- NBSTTP(PCNBADDR,PRUDTA,P<PWLHDR>) ;
- IF PARAMP2 EQ 2
- THEN
- BEGIN
- PARAMP4 = 0; # CLEAR NGIGO CALL FLAG - NGIGO #
- # OVERLAY HAS ALREADY BEEN CALLD#
- GOTO NPPWL1 ; # TO PROCESS ILLEGAL PRU DATA #
- END
- IF PARAMP2 EQ 1
- THEN
- DISCRDF = TRUE ; # WE ARE WAITING FOR PRU TERMINATION #
- GOTO PWLOPJT[CODE] ; # SWITCH ON OPCODE #
- #
- PROCESS PRU WORKLIST OPCODE FUNCTION
- #
- NPWLOP1:
- OVLNAME = NPPSMP; # PROCESS A PRU SM FROM PIP #
- IF DISCRDF
- THEN
- BEGIN
- GOTO NPPWL1 ;
- END
- GOTO CALLOVL;
- NPWLOP2:
- OVLNAME = NRPWLP; # RELEASE A PROCESSED PWL #
- GOTO CALLOVL;
- NPWLOP3:
- IF PWLRC[0] EQ 0
- THEN
- NCTRIGG = PIPR ;
- ELSE
- BEGIN
- IF PWLRC[0] LQ IFTRC
- AND PWLRC[0] GR 0
- THEN
- NCTRIGG = NXFTOFN ;
- ELSE
- # REASON CODE IS NOT WITHIN THE RANG#
- BEGIN
- PARAMP4 = DMCBTRC; # BAD TERMINATE PRU CON RC #
- END
- END
- IF PARAMP4 EQ 0
- THEN
- BEGIN # EVERYTHING O.K. #
- PARAMP1 = P<PWLHDR> ;
- PARAMP2 = P<PCNB> ;
- OVLNAME = NPPCTP ;
- OVLCALL ;
- IF PARAMP4 EQ 0 # NO ERROR IN SSTP CALL #
- AND PARAMP2 NQ 0 # NCNB RETURNED #
- THEN
- BEGIN # NO ERROR FOUND, GO AHEAD #
- P<NCNB> = PARAMP2 ; # CALL STATE PROCESSOR FOR #
- NCSTTP(P<LLCB>,NCNBCN[0],NCTRIGG,P<PWLHDR>);
- END # NCNB #
- PARAMP4 = 0; # CLEAR NGIGO CALL FLAG #
- END # EVERYTHING WENT O.K. #
- GOTO NPPWL1 ;
- NPWLOP4:
- OVLNAME = NPISMP; # PROCESS ILLOGICAL SUP MSG #
- GOTO CALLOVL;
- NPWLOP5:
- REASON = PWLRC[0]; # RC ASSOCIATED WITH DAY MSG #
- IF REASON EQ DFTX
- THEN # NIP IS TO DAYFILE PWL TEXT #
- BEGIN
- PARAMP4 = DMCPDM; # DMC FOR PIP DAYFILE MSG #
- END
- ELSE # NIP IS NOT TO DAYFILE MSG #
- BEGIN
- IF REASON EQ DFBPE
- THEN # PIP DETECTED BLOCK PROTOCOL ER#
- BEGIN # IN UPLINE MSG #
- PARAMP4 = DMCBNBD; # DMC FOR IVT BLK PROTOCOL ERR #
- END
- ELSE # CHECK FOR OTHER DAYFILE CODES #
- BEGIN
- IF REASON EQ DFME
- THEN # NIP IS TO DAYFILE MDI ERR STAT#
- BEGIN
- PARAMP4 = DMCMDS; # DMC FOR MDI DETAILED STATUS #
- END
- ELSE # NIP IS TO DAYFILE NO SUP MSG #
- BEGIN
- IF REASON EQ DFRDM
- THEN # PIP REJECTED DOWNLINE MSG #
- BEGIN
- PARAMP4 = DMCRDM; # DMC FOR REJECTING DOWNLINE MSG#
- END
- ELSE # NIP IS TO DAYFILE NO SUP MSG #
- BEGIN
- PARAMP4 = DMCNSV; # DMC FOR NONSUPPORT MDI MSG #
- END
- END
- END
- END
- GOTO NPPWL1 ;
- NPWLOP6:
- PARAMP4 = DMCPBPE; # PRU BLOCK PROTOCOL ERR WORKLST#
- #
- STATE TABLE CALL TO NCSTTP TO SEND TO PIP PWL WITH OP
- 9, PIP WILL RESPONSE PWL WITH OP = 3.
- #
- RCBRK = RCCB"NE" ; # RC = 20, NPU ERROR #
- NCSTTP(P<LLCB>,PRUCN,NCBRKPC,P<PWLHDR>);
- GOTO NPPWL1;
- CALLOVL:
- PARAMP1 = P<PWLHDR>; # PRU WORKLIST ADDRESS #
- PARAMP2 = PCNBADDR; # PCNB ADDRESS #
- OVLCALL; # CALL OVERLAY #
- END
- END
- END
- NPPWL1:
- IF PARAMP4 NQ 0
- THEN
- BEGIN
- PARAMP1 = P<PWLHDR>; # PRU WORKLIST ADDRESS #
- OVLNAME = NGIGOP; # DAYFILE GARBLED TEXT #
- OVLCALL; # CALL OVERLAY #
- END
- #
- CHECK IF AN APPLICATION NEEDS TO BE ABORTED
- #
- IF ABTAPPF NQ 0
- THEN
- BEGIN
- OVLNAME = XABTAPPP;
- OVLCALL;
- END
- #
- CHECK IF AN APPLICATION HAS FAILED
- #
- IF FAILADR NQ 0
- THEN
- BEGIN # PROCESS APPLICATION FAILURE #
- OVLNAME = HAPFAILP;
- OVLCALL;
- END
- RETURN;
- END
- TERM
cdc/nos2.source/nam5871/nppwl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator