*DECK SSCCTR USETEXT TEXTSS PROC SSCCTR (CNUM,SUCCESS); # TITLE SSCCTR - CANCEL TIMER REQUEST. # BEGIN # SSCCTR # # ** SSCCTR - CANCEL TIMER REQUEST. * * F. HOU. 81/09/10. * * THIS PROCEDURE USES THE TIMER-CANCELLATION-NUMBER TO FIND * THE CORRESPONDING TIMER ENTRY AND REMOVES IT. * * PROC SSCCTR (CNUM,SUCCESS) * * ENTRY CNUM = THE TIMER-CANCELLATION-NUMBER. * SUCCESS= BOOLEAN FLAG TO INDICATE ENTRY WAS CANCELLED? * * EXIT THE TIMER REQUEST IS CANCELLED. * * NOTES NONE. * * METHOD * * SEARCH TRQ1 FOR ENTRY WITH MATCHING TIMER-CANCELLATION-NUMBER. * IF NO MATCH FOUND,SET FLAG TO INDICATE FAIL. * IF MATCH FOUND, REMOVE ENTRY, SET FLAG TO INDICATE SUCCESS. * IF MORE ENTRY IN TRQ1, SET CTM FIRE-TIME TO TRQ1[0] FIRE-TIME. * ELSE, SET CTM FIRE-TIME TO 77777777. * RETURN WITH FLAG INDICATING FAIL/SUCESS. * # ITEM CNUM U; # TIMER CANCELLATION NUMBER # ITEM SUCCESS B; # FLAG TO INDICATE ENTRY WAS CANCELLED? # # **** # XREF BEGIN PROC SSTRTS; # REMOVE TABLE SPACE # END # **** # ITEM I U; # I IS A LOOP VARIABLE # ITEM II I; # II=I # CONTROL EJECT; P=SSTRQ[0]; # SET BASED ARRAY-TRQ1 POINTER. # IF (SSTRQL[0] EQ 0) THEN BEGIN SUCCESS=FALSE; # RESET SUCCESS FLAG TO INDICATE FAIL # RETURN; END II=0; # INITIAL VALUE OF II # FOR I=0 STEP 1 WHILE I LS (SSTRQL[0]/4) AND (CNUM NQ TRQ1$CNUM[I]) DO BEGIN II=I; END IF (II EQ (SSTRQL[0]/4-1)) AND (CNUM NQ TRQ1$CNUM[II]) THEN BEGIN SUCCESS=FALSE; # RESET SUCCESS FLAG TO INDICATE FAIL # RETURN; END # I=0 CASE # IF (II EQ 0) AND ((SSTRQL[0] EQ 0) OR (CNUM EQ TRQ1$CNUM[0])) THEN BEGIN II=II-1; END SUCCESS=TRUE; # SET SUCESS FLAG TO INDICATE SUCCESS # SSTRTS (SSITRQ,(II+1)*4,TRQ1$ENTRY[II+1]); #REMOVE TABLE SPACE # IF(SSTRQL[0] NQ 0) THEN BEGIN CTM$FTIME[0]=TRQ1$FTIME[0]; # SET CTM FTIME TO TRQ1[0] FTIME # END ELSE BEGIN CTM$FTIME[0]=O"77777777"; END END # SSCCTR # TERM