*DECK HGETNWL
USETEXT NIPDEF
USETEXT NWLHEAD
USETEXT SYSCOMD
PROC HGETNWL(NEXTNWL); # UPDATE RA.SSC TO PROVIDE NEW NWL #
STARTIMS;
#
*1DC HGETNWL
*
* 1. PROC NAME AUTHOR DATE
* HGETNWL 82/12/13
*
* 2. FUNCTIONAL DESCRIPTION
* UPDATE RA.SSC TO PROVIDE NEW NWL
*
* 3. METHOD USED
* ALLOCATE A SECOND BUFFER TO SUPPORT DOUBLE
* BUFFERING OF INCOMING WORKLISTS.
*
* 4. ENTRY PARAMETERS
* NEXTNWL - FWA OF NEXT NWL BUFFER
*
* 5. EXIT PARAMETERS
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED
* NIPDEF NWLHEAD SYSCOMD
*
* 7. ROUTINES CALLED
* ABORT - ABORT NIP
* MGETS - ALLOCATE BUFFER
* XTRACE - TRACE PROCEDURE CALL
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* THIS PROCEDURE IS CALLED BY ITABS AND HHIR.
#
STOPIMS;
#
FORMAL PARAMETERS
#
ITEM NEXTNWL U; # FWA OF NEW NWL BUFFER #
#
EXTERNAL PARAMETERS
#
XREF
BEGIN
PROC MGETS; # ALLOCATE BUFFER FOR NWL #
PROC ABORT; # ABORT CONTROL POINT #
PROC XTRACE; # TRACE PROC CALLS #
END
#
LOCAL PARAMETERS
#
ITEM BUFFWA U; # FWA OF ASSIGNED BUFFER #
BASED ARRAY SCPBUF [0:0] P(1);
BEGIN # SCP BUFFER HEADER #
ITEM SCPB$ID U(00,00,06); # BUFFER IDENTIFIER #
ITEM SCPB$BS U(00,06,18); # BUFFER SIZE #
ITEM SCPB$NEXT U(00,42,18); # NEXT NWL BUFFER #
ITEM SCPB$HDR U(00,00,60); # NWL HEADER WORD #
END
CONTROL IFEQ DEBUG,1;
ARRAY MSG$HGNWL [0:0] S(3);
BEGIN
ITEM MSGTXT C(00,00,28) =
["NIP/HGETNWL-BAD NWL BUFFER."];
ITEM MSGEND U(02,48,12) = [0];
END
CONTROL FI;
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("HGNWL");
CONTROL FI;
P<SCPBUF> = NEXTNWL; # FWA OF NEXT NWL BUFFER #
CONTROL IFEQ DEBUG,1;
IF SCPB$ID[0] NQ NWLIDVALUE
THEN # NEXT PTR IS NOT A NWL BUFFER #
BEGIN # ABORT NIP #
ABORT(MSG$HGNWL,0); # ABORT NIP #
END
CONTROL FI;
SSCAP[0] = P<SCPBUF> + BLKHSIZE; # NEXT NWL ADDRESS #
SSCLK[0] = FALSE; # ALLOW INCOMING NWL #
MGETS(NWLSIZE,BUFFWA,FALSE); # BUFFER AHEAD FOR ANOTHER NWL #
SCPB$NEXT[0] = BUFFWA; # SET BUFFER ADDRESS FOR NWL #
P<SCPBUF> = BUFFWA ; # POINTING TO THE SECOND NWL #
SCPB$ID[0] = NWLIDVALUE; # SET NWL IDENTIFIER #
RETURN;
END
TERM