*DECK HCNONFL
USETEXT NIPDEF
USETEXT APPSTAT
USETEXT AWLNTRY
USETEXT DRHDR
USETEXT FLIST
USETEXT INPARUT
USETEXT NWLHEAD
USETEXT NWLNTRY
USETEXT PARAMS
USETEXT SCPCOM
PRGM HCNONFL; # CREATE NETON FUNCTION LIST #
STARTIMS;
#
*1DC HCNONFL
*
* 1. PROC NAME AUTHOR DATE
* HCNONFL E. GEE 77/09/14
* N. NICHOLAS 80/09/12
*
* 2. FUNCTIONAL DESCRIPTION.
* CREATE NETON FUNCTION LIST
*
* HCNONFL IS CALLED HERE IN TWO CASES.
*
* 1. NVF NETS ON,IN THIS CASE AN ACB
* FOR NVF EXISTS AND NETS ON
* IS ACCEPTED.
*
* 2. A REGULAR APPLICATION TRIES TO NETON
* AND REJECTED. IN THIS CASE NO ACB EXISTS.
*
* 3. METHOD USED.
* CREATE AWL NETON ENTRY OUTSIDE OF ACB.
* CREATE SCP FUNCTION LIST FOR WRITING BACK NETON AWL
* IF NVF NETTING ON, ALSO SET SCP LONG TERM CONNECTION
*
* 4. ENTRY PARAMETERS.
* AWLA UCP AWL ADDRESS
* CBA UCP COMPLETION BIT ADDRESS
* JOBID UCP JOB ID WORD
* NWLADDR ADDR OF BUF TO HOLD NETON AWL ENTRY
* PARAMS1 NONZERO VALUE (AN) IF NVF NETTING ON
* PARAMS4 NETON REJECT RETURN CODE FROM NVF
*
* 5. EXIT PARAMETERS.
* PARAMS7 ADDR OF SCP FUNCTION LIST
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* APPSTAT AWLNTRY DRHDR FLIST
* NIPDEF NWLHEAD NWLNTRY OSSIZE
* PARAMS SCPCOM
*
* 7. ROUTINES AND OVERLAYS CALLED.
* XTRACE RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
*
* THIS PROGRAM IS A SECONDARY 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 SECONDARY
*CALL OSSIZE
*
* THIS OVERLAY IS CALLED BY HPNON.
*
#
STOPIMS;
#
EXTERNAL REFERENCES
#
XREF
BEGIN
PROC XTRACE;
LABEL RJMAIN;
END
#
INTERNAL REFERENCES
N O N E
#
#**************** E X E C U T A B L E C O D E *********************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("HCNON") ;
CONTROL FI;
#
CREATE NETON AWL ENTRY
#
P<DRHDRWD> = NWLADDR; # ADDR OF BUF TO HOLD NETON AWL ENTRY #
CMWORD[0] = 0;
BLKID[0] = MOUTIDVALUE; # BLK ID FOR MSG TO BE WRITTEN TO APP #
BLKBS[0] = AWLNSIZE; # SIZE OF AWL NETON ENTRY #
#
CREATE AWL NETON ENTRY
#
P<AWLENTRY> = NWLADDR + BLKHSIZE;
AWLEAIPH[0] = 0;
AWLRC[0] = PARAMS4; # SYSTEM CONTROL POINT RETURN CODE (RC) #
AWLOP[0] = WLOPNON; # NETON OPCODE #
AWLCB[0] = 1; # SET OPCODE COMPLETION BIT #
AWLNIN[0] = INPNIN[1]; # CURRENT INVOCATION NUMBER #
AWLEWD1[0] = PARAMS1; # APPLICATION NUMBER IN THE ( AT ) TABLE #
#
CREATE SCP FUNCTION LIST FOR NETON RESPONSE
#
P<FLHEAD> = NWLADDR + AWLNSIZE; # ADDR OF BUF TO HOLD FUNC LIST #
FLWD0[0] = 0;
FLSCPA[0] = NWLADDR + AWLNSIZE + FLSIZE; # ADDR OF SF.LIST ENTRYS#
FLJOBID[0] = JOBID; # JOB ID WORD #
FLFP[0] = 2;
P<FLE> = P<FLHEAD> + FLSIZE; # ADDR OF FIRST SF.LIST ENTRY #
FLEWD0[0] = 0;
FLEFP[0] = AWLNSIZE - BLKHSIZE; # NO OF WDS TO WRITE TO APP #
FLEUCPA[0] = AWLA; # UCP ADDR TO WRITE NETON RESPONSE #
FLESCPA = NWLADDR + BLKHSIZE; # ADDR OF AWL NETON ENTRY #
FLEFC[0] = SFWRITE; # SF.WRITE SCP FUNCTION #
#
CHECK IF APPLICATION NUMBER (PARAMS1) = NON ZER0
#
IF PARAMS1 NQ 0
THEN # THIS IS NVF NETING ON #
BEGIN # MUST SET LONG TERM CONNECTION WITH SUP #
P<FLE> = P<FLE> + FLESIZE;
FLEWD0[0] = 0;
FLEFC[0] = SFSLTC; # SF.SLTC SCP FUNCTION #
FLID[0] = FLIDVALUE; # FUNCTION LIST BLOCK ID VALUE #
FLBS[0] = FLSIZE + 2*FLESIZE; # SIZE OF FUNCTION LIST #
FLAN[0] = PARAMS1; # APPLICATION NUMBER (AN) IN (AT ENTRY) #
END
ELSE # REJECTED NETON OF NON-SUP APP #
BEGIN
FLBS[0] = SCPSIZE + 2*FLESIZE; # SIZE OF (NO ACB) FUCN LIST #
FLID[0] = NAFLIDVALUE; # (NO ACB) FUNCTION LIST ID VALUE #
P<FLE> = P<FLE> + FLESIZE;
FLEWD0[0] = 0;
FLEUCPA[0] = CBA; # UCP COMPLETION BIT ADDR #
FLEFC[0] = SFENDT;
END
PARAMS7 = NWLADDR + AWLNSIZE; # ADDR OF FUNC LIST #
GOTO RJMAIN;
END
TERM