*DECK NNPIIN
USETEXT NIPDEF
USETEXT AHEADER
USETEXT LLCB
USETEXT NHEADER
USETEXT PARAMS
USETEXT SUPMSG
PRGM NNPIIN; # SEND NPI/IN TO CCP #
STARTIMS;
#
*1DC NNPIIN
*
* 1. PROC NAME AUTHOR DATE
* NNPIIN C. BITTNER 81/07/24
*
* 2. FUNCTIONAL DESCRIPTION
* SEND NPI/IN TO CCP
*
* 3. METHOD USED
* ALLOCATE BUFFER FOR MESSAGE
* SET UP APPLICATION BLOCK HEADER
* SET UP TEXT FOR NPI/IN MESSAGE
* LINK MESSAGE TO PIP OUTBOUND CHAIN
*
* 4. ENTRY PARAMETERS
* PARAMS1 - LLCB ADDRESS
* PARAMS2 - BAD TRIGGER FROM NETWORK
* PARAMS3 - CURRENT STATE OF CONNECTION
* PARAMS4 - NETWORK CONNECTION NUMBER
* PARAMS7 - STATE TABLE PROCESSOR
*
* 5. EXIT PARAMETERS
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED
* NIPDEF AHEADER
* LLCB OSSIZE
* PARAMS SUPMSG
*
* 7. ROUTINES CALLED
* MGETS - ALLOCATE EMPTY BUFFER
* NFOB - LINK BUFFER TO PIP OUTBOUND CHAIN
* XTRACE - TRACE PROCEDURE CALL
* ABORT - ABORT NIP
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY
* SUBROUTINE OVLCALL.
* THIS PROGRAM IS CALLED BY NBSTTP AND NCSTTP.
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
*CALL OSSIZE
*
#
STOPIMS;
#
EXTERNAL VARIABLES
#
XREF
BEGIN
PROC ABORT; # ABORT NIP #
PROC MGETS; # ALLOCATE EMPTY BUFFER #
PROC NFOB; # LINK BUFFER TO PIP OUTBOUND CHAIN #
PROC OMSG; # DAYFILE MESSAGE #
PROC XDUMPFL; # DUMP NIP FL #
PROC XTRACE; # TRACE PROCEDURE CALL #
LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
END
#
INTERNAL VARIABLES
#
ITEM BUFADDR; # SM BUFFER #
ARRAY NMSG [0:0] S(5);
BEGIN
ITEM NMSG$TEXT C(00,00,48) =
["PROTOCOL VIOLATION, NPU DUMP REQUEST SENT."];
ITEM NMSG$END U(04,48,12) = [0];
END
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("NPIIN") ;
CONTROL FI;
P<LLCB> = PARAMS1;
CONTROL IFEQ DEBUG,1;
IF LLCBHN[0] EQ 0
OR LLCBTN[0] EQ 0
THEN # NIP INTERNAL ERROR #
ABORT(0,0);
CONTROL FI;
# GET BUFFER TO HOLD NPI/IN MESSAGE #
MGETS(LNPIIN + BLKHSIZE + ABHSIZE,BUFADDR,TRUE);
# SET UP APPLICATION BLOCK HEADER #
P<AHEADER> = BUFADDR + BLKHSIZE; # ADDRESS TO HOLD ABH #
ABHABT[0] = APPCMD; # BLOCK TYPE #
ABHACT[0] = CT8ASCII; # CHARACTER TYPE #
ABHTLC[0] = LNPIINC; # TEXT LENGTH #
# SET UP NPI/IN MESSAGE #
P<SUPMSG> = BUFADDR + BLKHSIZE + ABHSIZE;
P<SMNIP> = P<SUPMSG>;
PFCSFC[0] = NPIDD; # SET HALT NPU FUNCTION CODE #
NPIDPP[0] = X"59"; # DP = "Y" (ASCII) DUMP ON #
NPITRIG[0] = PARAMS2; # BAD TRIGGER FROM NETWORK #
NPICST[0] = PARAMS3; # CURRENT STATE OF CONNECTION #
NPICN[0] = PARAMS4; # NETWORK CONNECTION NUMBER #
NPISTP[0] = PARAMS7; # STATE TABLE PROCESSOR #
# LINK MESSAGE TO PIP OUTBOUND CHAIN #
NFOB(BUFADDR,P<LLCB>);
OMSG(NMSG,0); # DAYFILE *PROTOCOL VIOLATION* #
XDUMPFL; # DUMP NIP FL TO DUMP #
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
TERM
*ENDIF