*DECK HPNONAP
USETEXT NIPDEF
USETEXT ACB
USETEXT AHEADER
USETEXT APPSTAT
USETEXT AT
USETEXT AWLNTRY
USETEXT DRHDR
USETEXT DUMPFLG
USETEXT FLIST
USETEXT MSGIDX
USETEXT NWLHEAD
USETEXT PARAMS
USETEXT PT
USETEXT SUPABH
USETEXT SUPMSG
PRGM HPNONAP; # PROCESS NETON OF (NON-SUP) APPLICATION #
STARTIMS;
#
*1DC HPNONAP
*
* 1. PROC NAME AUTHOR DATE
* HPNONAP E. GEE 77/07/27
*
* 2. FUNCTIONAL DESCRIPTION.
* PROCESS NETON OF (NON-SUP) APPLICATION.
*
* 3. METHOD USED.
* CREATE NET/ON SUPERVISOR MESSAGE TO SEND TO NVF
* CREATE FUNCTION LIST TO SWAPOUT APPLICATION
* ISSUE SYSTEM CONTROL POINT FUNCTION
* PROCESS SCP RETURN CODE
* IF RETURN CODE EQ 0 OR RCSWAPPEDOUT, THEN QUEUE NET/ON SUP
* MSG TO NVF-S DATA RING,SCHEDULE NVF,CREATE AWL NETON ENTRY,
* AND UPDATE ACB FIELDS
* IF RETURN CODE EQUALS ANYTHING ELSE, THEN RELEASE NWL AND
* SET DELETE ACB FLAG
*
* 4. ENTRY PARAMETERS.
* PARAMS1 MAXIMUM NUMBER OF CONNECTIONS
* PARAMS2 APPLICATION NAME FROM FROM NETON NWL ENTRY
* PARAMS3 DATA AVAILABLE ADDRESS
* PARAMS4 APPLICATION NUMBER
* PARAMS5 PRIVILEGE USER BIT
* PARAMS7 PRIVILEGE PROGRAM BIT
* NWLADDR NWL ADDRESS
* SIZENWL SIZE OF NWL BUFFER
* JOBID APPLICATION JOB ID WORD
* AWLA UCP AWL ADDRESS
* CBA UCP COMPLETION BIT ADDRESS
*
* 5. EXIT PARAMETERS.
* PARAMS5 DELETE-ACB FLAG
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* ACB AHEADER APPSTAT AT AWLNTRY
* DRHDR FLIST
* NET NIPDEF NWLHEAD OSSIZE
* PARAMS PT SUPABH SUPMSG
*
* 7. ROUTINES AND OVERLAYS CALLED.
* BLINK LINK DATA BLOCK TO DATA RING
* MRELS RELEASE BUFFER SPACE
* OMSG ISSUE DAYFILE MESSAGE
* OSCCALL ISSUE SCP CALL
* OSCHAPP SCHEDULE APPLICATION
* RDUMP DUMP NIP-S FIELD LENGTH
* XTRACE RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
*
* THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE
* OVLCALL. WHEN EXECUTION IS 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;
#
ENTERNAL VARIABLES
#
XREF
BEGIN
PROC BLINK;
PROC MRELS;
PROC OMSG; # DAYFILE MESSAGE #
PROC OSCCALL;
PROC OSCHAPP;
PROC RDUMP;
PROC XTRACE;
LABEL RJMAIN;
END
#
INTERNAL VARIABLES
#
ITEM BUFADDR;
ITEM BUFSIZE;
ITEM NVFADDR;
ITEM AN;
#*********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("HONAP") ;
CONTROL FI;
AN = PARAMS4;
#
CREATE NET/ON SUPERVISOR MESSAGE TO SEND TO NVF
#
P<DRHDRWD> = NWLADDR; # ADDR OF BUF TO HOLD NET/ON SUP MSG #
BLKID[0] = DRIDVALUE; # DATA RING BLOCK ID VALUE #
BLKBS[0] = LNETON + ABHSIZE + DBHSIZE; # SIZE OF SM DATA BLK #
BUFADDR = NWLADDR + BLKBS[0];
BUFSIZE = SIZENWL - BLKBS[0];
# CREATE APPLICATION BLOCK HEADER #
P<AHEADER> = NWLADDR + DBHSIZE; # ADDR TO HOLD ABH #
ABHWORD[0] = SMABHW[0]; # SUP MSG APP BLK HEADER #
ABHTLC[0] = LNETON; # LENGTH OF NET/ON SUP MSG (IN WORDS) #
# CREATE SUPERVISOR MESSAGE #
P<SUPMSG> = P<AHEADER> + ABHSIZE; # ADDR TO HOLD NET/ON SM #
P<SMNVF> = P<SUPMSG>; # BASE NET/ON TEMPLATE #
NETWD0[0] = 0;
PFCSFC[0] = NETONR; # PFC/SFC CODE FOR NET/ON/R SUP MSG #
NETANAM[0] = C<0,7> PARAMS2; # APPLICATION NAME #
NETMCN[0] = PARAMS1; # MAXIMUN NUMBER OF CONNECTIONS #
NETNRCN[0] = PARAMS0 ; # NUMBER OF RESERVED OUTGOING CONNS. #
NETAN[0] = AN; # APPLICATION NUMBER #
NETWD2[0] = 0;
NETJSN[0] = C<0,4>JOBID ; # JOB SEQUENCE NUMBER #
NETPU[0] = PARAMS5 ; # PRIVILEGED USER BIT #
NETPP[0] = PARAMS8 ; # PRIVILEGED PROGRAM BIT #
NETACCL[0] = PARAMS7; # APPLICATION ACCESS LEVEL #
NVFADDR = ATACBA[NVFAN]; # NVF ACB ADDRESS #
#
CREATE FUNCTION LIST TO SWAPOUT APPLICATION
#
P<FLHEAD> = BUFADDR; # ADDR OF BUF TO HOLD FUNCTION LIST #
FLWD0[0] = 0;
FLID[0] = FLIDVALUE; # FUNCTION LIST BLOCK ID VALUE #
FLBS[0] = FLSIZE; # FUNCTION LIST SIZE #
FLAN[0] = AN; # APPLICATION NUMBER #
FLFW[0] = 0;
FLJOBID[0] = JOBID; # APPLICATION JOB ID WORD #
#
ISSUE SYSTEM CONTROL POINT FUNCTION
#
P<FLE> = LOC(FLFW[0]);
FLFC[0] = SFSWPO; # SCP SF.SWPO FUNCTION CODE #
OSCCALL(FLE);
#
PROCESS SYS CON PT CALL RETURN CODE
#
IF FLRC[0] EQ 0 OR FLRC[0] EQ RCSWAPPEDOUT
THEN # APPLICATION IS NOW SWAPPED OUT #
BEGIN
BLINK(NWLADDR,NVFADDR); # LINK DATA BLK TO NVF ACB DATA RING #
OSCHAPP(NVFADDR); # SCHEDULE NVF #
# CREATE AWL NETON ENTRY #
P<ACB> = ATACBA[AN]; # ACB ADDRESS OD APPLICATION NETTING ON #
ACBAWLADDR[0] = AWLA; # UCP AWL ADDRESS #
ACBAN[0] = AN; # PROCESS NUMBER OF APP NETTING ON #
P<AWLENTRY> = LOC(ACBAWL0[0]); # ADDRESS OF AWL NETON ENTRY #
AWLEAIPH[0] = 0;
AWLOP[0] = WLOPNON; # AIP OPCODE FOR NETON #
#
U P D A T E A P P L I C A T I O N A C B
#
ACBUCPADR[0] = CBA; # UCP COMPLETION BIT ADDRESS #
ACBWLFWA[0] = BUFADDR;
P<DRHDRWD> = ACBWLFWA[0];# ADDR OF NEXT NWL ENTRY #
BLKID[0] = NWLEIDVALUE; # NWL ENTRY ID VALUE #
ATNVFR[AN] = TRUE; # WAITING-FOR-NET/ON /R-FROM-NVF FLAG #
ACBWLLWA[0] = BUFADDR + BUFSIZE - 1; # STORE NWL LWA IN ACB #
BLKBS[0] = ACBWLLWA[0] - ACBWLFWA[0] + 1;
ATASBO[AN] = TRUE; # SET APP-SWAPPED-OUT-BY-NETON FLAG #
ACBIASCPA[0] = LOC(ACBAAVAL[0]);
ACBIAUCPA[0] = PARAMS3; # DATA AVAILABLE WORD ADDR #
ACBIAFC[0] = SFWRITE; # FUNCTION CODE #
ACBIAFP[0] = 1; # FUNCTION PARAMETER #
PARAMS5 = FALSE; # CLEAR DELETE-ACB FLAG #
END
ELSE # GOT ABNORMAL SCP FUNCTION RETURN CODE #
BEGIN
IF FLRC[0] NQ RCUCPGONE
THEN # GOT BAD SCP FUNCTION RETURN CODE #
BEGIN
RDUMP; # DUMP NIP-S FIELD LENGTH #
D25M2[0] = "HPNONAP";
OMSG(DFMSG25,0); # NIP DUMP TAKEN #
END
# RELEASE NWL #
P<DRHDRWD> = NWLADDR; # NWL ADDRESS #
BLKBS[0] = SIZENWL; # SIZE OF NWL BUFFER #
MRELS(P<DRHDRWD>);
PARAMS5 = TRUE; # SET DELETE-ACB FLAG #
END
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
TERM