*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=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=TRQ1$QNUM[0]; SSTRQE(SSITRQ,WCBUF,ABHBUF,MSGBUF); # REMOVE QUEUE ENTRY # SSTAQE(DUMMY,WCBUF,ABHBUF,MSGBUF); # ACCEPT QUEUE ENTRY # P = 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