*DECK     SSCRTR
USETEXT TEXTSS
PROC SSCRTR;
# TITLE SSCRTR - RETURN TIMER REQUEST. #
  
      BEGIN  # SSCRTR # 
# 
**    SSCRTR - RETURN TIMER REQUEST.
* 
*     F. HOU.                81/09/11.
* 
*     ALL TIMER REQUESTS THAT HAVE FIRED ARE REMOVED FROM 
*     TRQ1 TABLE AND PLACED IN THE REQUESTED QUEUE. 
* 
*     PROC SSCRTR 
* 
*     ENTRY      NONE.
* 
*     EXIT       ALL TIMER REQUESTS THAT HAVE FIRED ARE RETURNED
*                FOR PROCESSING VIA A Q ENTRY.
* 
*     NOTES      NONE.
* 
*     METHOD
* 
*     DO ALL TIMER REQUESTS:  
*     IF TRQ1 1ST ENTRY HAS FIRE-TIME GREATER THAN CURRENT TIME-OF-DAY, 
*     THEN SET CTM FIRE-TIME TO THE FIRE-TIME OF TRQ1 FIRST ENTRY.
*          AND RETURN TO CALLER.
*     ELSE CALL SSTRQE TO REMOVE QUEUE(TRQ1) ENTRY. 
*          CALL SSTAQE TO ACCEPT TRQ1 QUEUE ENTRY.
*     IF NO MORE TRQ1 ENTRIES, SET CTM FIRE-TIME TO 77777777. 
*     RETURN TO CALLER. 
* 
# 
  
# 
****
# 
  
      XREF
        BEGIN 
        PROC SSTAQE;         # ACCEPT QUEUE ENTRY                      #
        PROC SSTRQE;         # REMOVE QUEUE ENTRY                      #
        END 
  
# 
****
# 
  
      ITEM I       U;        # I IS A LOOP VARIABLE                    #
  
      BASED ARRAY DUMMY [0:0] S(1); 
        BEGIN 
        ITEM DUMMYY  U(00,00,60); 
        END 
  
CONTROL EJECT;
  
      P<TRQ1>=SSTRQ[0];      # SET BASED ARRAY-TRQ1 POINTER.           #
  
      FOR I=0 WHILE SSTRQL[0] NQ 0  # ALL TIMER REQUESTS               #
      DO
        BEGIN 
        IF(TRQ1$FTIME[0] GR CTM$RTSEC[0])  # FTIME > CURRENT TIME      #
        THEN
          BEGIN 
          CTM$FTIME[0]=TRQ1$FTIME[0];  # SET FTIME TO TRQ1 FIRE TIME   #
          RETURN; 
          END 
        ELSE
          BEGIN 
          P<DUMMY>=TRQ1$QNUM[0];
  
          SSTRQE(SSITRQ,WCBUF,ABHBUF,MSGBUF); # REMOVE QUEUE ENTRY     #
  
          SSTAQE(DUMMY,WCBUF,ABHBUF,MSGBUF); # ACCEPT QUEUE ENTRY      #
          P<TRQ1> = SSTRQ[0];          # ALIGN *TRQ1* W/PROG'S MGD TBL #
          END 
        END 
  
      IF (SSTRQL[0] EQ 0)    # NO MORE QUEUE ENTRY                     #
      THEN
        BEGIN 
        CTM$FTIME[0]=O"77777777";  # SET CTM FIRE-TIME TO 77777777     #
        END 
  
      END  # SSCRTR # 
  
      TERM
