*DECK NPBRK
USETEXT NIPDEF
USETEXT STATTAB
USETEXT PARAMS
USETEXT NCNB
USETEXT AHEADER
USETEXT DRHDR
USETEXT MSGIDX
PRGM NPBRK ;
STARTIMS;
#
*1DC NPBRK
*
* 1. PROC NAME AUTHOR DATE
* NPBRK L. T. NGUYEN 81/11/09
*
* 2. FUNCTIONAL DESCRIPTION
* DISCARD ALL MSG AND BLK IN NCNB UPON RECEIVING BREAK
*
* 3. METHOD USED
* SEARCH FOR MSG OR BLK DATA, THEN DELINK FOR RELEASING.
* UPDATE COUNTS AS NEEDED.
*
* 4. ENTRY PARAMETERS
* PARAMS1 - NCNB ADDRESS
*
* 5. EXIT PARAMETERS
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED
* NIPDEF PARAMS NCNB ACKHEAD
* DRHDR MSGIDX NHEADER OSSIZE
*
* 7. ROUTINES AND OVERLAYS CALLED
* ABORT - ABORT NIP
* OMSG - ISSUE DAYFILE MESSAGE
* XTRACE - TRACE PROCEDURE CALL
* MRELS - RELEASE BUFFER
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* "NIP RECEIVED BAD BSN."
*
* THIS IS A SECONDARY OVERLAY CALLED BY NBSTTP.
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
*CALL OSSIZE
*
*
#
STOPIMS;
XREF LABEL RJMAIN ;
XREF PROC ABORT ;
XREF PROC MRELS ; # RELEASE DATA RING #
XREF PROC OMSG ;
XREF PROC XTRACE ; # XTRACE ROUTINE #
ITEM I I ; # #
ITEM CURR; # CURRENT DATA TO BE RELEASED #
ITEM PREVIOUS U ; # PREVIOUS BLOCK #
ITEM NEXT U ; # NEXT DATA BLOCK #
BEGIN # NPBRK #
CONTROL IFEQ DEBUG,1;
XTRACE("NPBRK") ;
CONTROL FI ;
P<NCNB> = PARAMS1 ; # NCNB POINTER #
P<DRHDRWD> = 0;
CURR = NCNBDRFP[0]; # FIRST ENTRY IN DOWNLINE DATA RING #
FOR CURR = CURR WHILE CURR NQ 0 # DATA RING EXISTS #
AND CURR NQ LOC(NCNBDRFP[0]) # NOT END OF RING #
DO # RELEASE ALL QUEUED DOWNLINE BLOCKS #
BEGIN
NEXT = NEXTPTR[CURR]; # NEXT ENTRY IN DATA RING #
MRELS(CURR); # RELEASE CURRENT DATA RING ENTRY #
CURR = NEXT;
END
#
DISCARD THE ACKNOWLEDGE QUEUE IF EXISTS
#
NCNBNBO[0] = 0 ; # NO OUTSTANDING BLOCK COUNT #
NCNBWD2[0] = 0; # CLEAR DATA RING AND ACK-Q POINTERS #
NCNBDBSN[0] = 0 ;
GOTO RJMAIN ;
END # NPBRK #
TERM