*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=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