*DECK SSTRQE
USETEXT TEXTSS
PROC SSTRQE (P$TABL$,WC,HEAD,ENTRYQ);
# TITLE SSTRQE - REMOVE QUEUE ENTRY. #
BEGIN # SSTRQE #
#
** SSTRQE - REMOVE QUEUE ENTRY.
*
* F. HOU. 81/09/09.
*
* THIS PROCEDURE REMOVES THE FIRST QUEUE ENTRY OF QUEUE TABL
* TO A SPECIFIED BUFFER.
*
* PROC SSTRQE (P$TABL$,WC,HEAD,ENTRYQ)
*
* ENTRY P$TABL$ = BASED ARRAY POINTER FOR QUEUE TABL.
* WC = FIRST WORD ADDRESS OF ARRAY TO RECEIVE
* THE WORD COUNT PORTION OF THE QUEUE ENTRY.
* HEAD = FIRST WORD ADDRESS TO RECEIVE THE HEADER
* PORTION OF THE QUEUE ENTRY.
* ENTRYQ = FIRST WORD ADDRESS OF ARRAY TO RECEIVE
* THE ENTRY PORTION OF THE QUEUE ENTRY.
*
* EXIT THE FIRST ENTRY OF QUEUE TABL HAS BEEN REMOVED.
*
* NOTES THE FIRST QUEUE ENTRY DELETED AFTER THE COPY IS DONE.
*
* METHOD
*
* MOVE THE FIRST ENTRY OF QUEUE TABL TO SPECIFIED BUFFER:WC,HEAD
* AND ENTRYQ.
* REMOVE TABLE SPACE FROM QUEUE TABL.
*
#
ITEM P$TABL$ I; # BASED ARRAY POINTER FOR QUEUE TABL. #
ITEM HEAD I; # HEAD WORD TO RECEIVE HEADER. #
ARRAY WC [0:0] S(1); # WORD TO RECEIVE WORD COUNT #
BEGIN
ITEM WC$WORD U(00,00,60); # OVERLAPPING WORD #
ITEM WC$CNT U(00,48,12); # 12 BIT WORD COUNT #
END
ARRAY ENTRYQ [0:0] S(1); # ARRAY OF WC-2 WORDS TO RECEIVE ENTRY #
BEGIN
ITEM ENTRYQQ U(00,00,60);
END
#
**** PROC SSTRQE - XREF LIST.
#
XREF
BEGIN
PROC MOVEI; # MOVE BLOCK OF CENTRAL MEMORY WORDS. #
PROC SSTRTS; # REMOVE TABLE SPACE #
END
#
****
#
ITEM COUNT I; # WORD COUNT OF ENTRY PORTION #
ITEM FROM I; # FIRST WORD ADDRESS OF FROM BLOCK #
ITEM TO I; # FIRST WORD ADDRESS OF TO BLOCK #
BASED ARRAY TEMP [0:0] S(2); # TEMP BASED ARRAY #
BEGIN
ITEM TEMP$F U(00,00,60); # FOR WC #
ITEM TEMP$S U(01,00,60); # FOR HEAD #
END
$BEGIN # INCREMENT COUNT FOR STATISTICS #
SVT$VAL[SVL"RQE"] = SVT$VAL[SVL"RQE"] + 1;
$END
P<TEMP>=P$TABL$; # SET BASED ARRAY TEMP POINTER #
WC$WORD[0]=TEMP$F[0]; # MOVE WC PORTION #
HEAD = TEMP$S[0]; # MOVE HEAD PORTION #
COUNT=WC$CNT[0]-2; # NUMBER OF WORD COUNT FOR ENTRYQ PORTION #
FROM =P$TABL$+2; # FIRST WORD ADDRESS OF FROM BLOCK #
TO =LOC(ENTRYQ); # FIRST WORD ADDRESS OF TO BLOCK #
MOVEI (COUNT,FROM,TO); # MOVE ENTRYQ PORTION #
SSTRTS (P$TABL$,0,WC$CNT[0]); # REMOVE TABLE SPACE #
END # SSTRQE #
TERM