*DECK HPNONVF
USETEXT NIPDEF
USETEXT ACB
USETEXT APPSTAT
USETEXT AT
USETEXT AWLNTRY
USETEXT DUMPFLG
USETEXT INPARUT
USETEXT KDIS
USETEXT KHDRX
USETEXT MSGIDX
USETEXT NWLNTRY
USETEXT OVERLAY
USETEXT PARAMS
USETEXT PT
USETEXT SUPMSG
PRGM HPNONVF; # PROCESS *NET ON* RESPONSE FROM NVF #
STARTIMS;
#
*1DC HPNONVF
*
* 1. PROC NAME AUTHOR DATE
* HPNONVF E. GEE 77/06/02
*
* 2. FUNCTIONAL DESCRIPTION.
* PROCESS NET/ON/N SUP MSG FROM NVF
*
* 3. METHOD USED.
* VALIDATE APPLICATION NUMBER IN NET/ON/R SUP MSG
* FILL IN FIELDS OF AWL NETON ENTRY
* CLEAR WAITING-FOR-NETON-RESPONSE FLAG IN AT ENTRY
* SCHEDULE APPLICATION NETTING ON
*
* 4. ENTRY PARAMETERS.
* WLADDR CURRENT NWL ENTRY (NETPUT) ADDRESS
*
* 5. EXIT PARAMETERS.
* AWLCB =1,THE COMPLETE BIT
* AWLRC RETURN CODE
* AN APPLICATION NUMBER
*
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* ACB APPSTAT AT
* NIPDEF KDIS NWLNTRY OPSIZE
PT SUPMSG
*
* 7. ROUTINES AND OVERLAYS CALLED.
* KPUT UPDATE K-DISPLAY INFORMATION
* OMSG ISSUE DAYFILE MESSAGES
* OSCHAPP SCHEDULE APPLICATION
* XTRACE TRACES CALLS
*
* 8. DAYFILE MESSAGES. NONE
*
* THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
* WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
* TO RETURN TO THE CALLING PROGRAM.
*
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
*CALL OPSIZE
*
* THIS OVERLAY IS CALLED BY HPPUT.
*
#
STOPIMS;
#
EXTERNAL VARIABLES
#
XREF BEGIN
PROC HSFAPPL; # I S S U E F A I L / A P P L #
PROC HSNOFF; # I S S U E N E T / O F F SUP/MSG #
PROC KPUT ;
PROC OSCHAPP; # SCHEDULER APPLICATION #
PROC OMSG; # ISSUE DAYFILE MSG #
PROC RDUMP; # DUMP NIP FL #
PROC ABORT ;
PROC XTRACE; # TRACE CALLS #
LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
END
#
INTERNAL VARIABLES
#
ITEM AN;
CONTROL IFEQ DEBUG,1;
ARRAY BADBUFWA P(4);
BEGIN
ITEM BADMSG C(0,0,34) = ["BAD AN NET/ON SM RESPONSE FROM NVF"];
ITEM EBADMSG U(3,36,24) = [0];
END
CONTROL FI;
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1 ;
XTRACE("HPNVF") ;
CONTROL FI;
P<NWLENTRY> = WLADDR; # WORKLIST ADDRESS #
P<SUPMSG> = LOC(NWLEABH[0]) + ABHSIZE; # SUP MSG ADDRESS #
P<SMNVF> = P<SUPMSG>; # BASE NET/ON TEMPLATE #
#
CHECK IF VALID AN IN NET/ON/R SUP MSG
#
AN = NETAN[0]; #APPLICATION NUMBER #
P<ACB> = ATACBA[AN]; # ACB ADDRESS #
CONTROL IFEQ DEBUG,1;
IF AN LQ NVFAN OR AN GR ATHAN OR NOT ATNVFR[AN]
OR ATACBA[AN] EQ 0
THEN # INVALID AN IN NET/ON/R SUP/MSG #
BEGIN
OMSG(BADBUFWA,0); # SEND NIP DAYFILE MSG #
ABORT(0,0) ;
END
CONTROL FI;
#
UPDATE APPLICATION NAME TO WHAT WAS RETURNED FROM NVF
#
ACBANAME[0] = NETANAM[0] ;
IF KDST[0]
AND ACBKNDX[0] NQ 0
AND ACBKNDX[0] GQ KDAPPST[0]
AND ACBKNDX[0] LQ KDAPPND[0]
THEN
KPUT(KHDRNP[0],ACBKNDX[0]-KDAPPST[0],KPAPNM,ACBANAME[0]) ;
# CLEAR WAITING-FOR-NETON-RESPONSE FLAG IN AT #
ATNVFR[AN] = FALSE;
IF NETK[0]
THEN
BEGIN
ATK[AN] = TRUE;
IF KDST[0]
AND ACBKNDX[0] NQ 0
AND ACBKNDX[0] GQ KDAPPST[0]
AND ACBKNDX[0] LQ KDAPPND[0]
THEN
KPUT(KHDRNP[0],ACBKNDX[0]-KDAPPST[0],KPAPI,"N") ;
END
ATXFR[AN] = NETXFER[0] ; # SAVE INFOR ABOUT XFR IN AT #
ATPRU[AN] = NETPRU[0] ; # FLAG FOR PRU APPLICATION IF ON #
IF NOT ATNVFB[AN] # IF NOT WAITING TO SEND OTHER SM TO NVF #
THEN # PROCESS NET/ON RESPONSE FROM NVF #
BEGIN
#
FILL IN FIELDS OF AWL NETON ENTRY
#
P<AWLENTRY> = LOC(ACBAWL0[0]); # AWL NETON ENTRY ADDR #
AWLCB[0] = 1;
AWLRC[0] = NETRC[0]; # NET ON RETURN CODE #
AWLNIN[0] = INPNIN[1] ;
AWLEWD1[0] = AN; # APPLICATION NUMBER OF APP NETTING ON #
#
SCHEDULE APPLICATION NETTING ON
#
OSCHAPP(P<ACB>);
END
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
TERM