.TITLE CHKDATES .IDENT \ISUQUOTA 2.9\ ARG_COUNT= 0 ARG_QMASK= 4 ARG_CURTIME= 8 ARG_QUAX= 12 ARG_FAILSTS= 16 ARG_WARNSTS= 20 ; THIS ROUTINE COMPARES THE CURRENT TIME TO THE ATHORIZATION AND EXPIRATION ; DATES. IF CURRENT TIME LIES OUTSIDE THIS INTERVAL THE AUTHEXP STATUS BIT ; IS SET IN THE FAILSTS MASK. ; IF THE CURRENT TIME IS WITHIN THE WARNING INTERVAL OF THE EXPIRATION DATE ; THE AUTHEXP BIT IS SET IN THE WARNSTS MASK. ; ; CALL CHKDATES(QMASK, CURTIME, QUAX, FAILSTS, WARNSTS) ; ; WHERE ; ; QMASK - LONG WORD MASK OF ENABLED QUOTAS ; CURTIME - CURRENT TIME (QUAD WORD) ; QUAX - QUAX RECORD ; FAILSTS - FAIL STATUS MASK ; WARNSTS - WARNING STATUS MASK ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ANTHONY E. BIBLE ; 104 COMPUTER SCIENCE ; ISU COMPUTATION CENTER ; IOWA STATE UNIVERSITY ; AMES, IA 50011 ; ; 515-294-5659 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .PAGE .SBTTL MACROS ; USER MACROS QUAXDEF .PAGE .SBTTL LOCAL READ-WRITE DATA .PSECT LCLRWDATA,RD,WRT,NOEXE,LONG CURTIME: .BLKQ 1 WARN_TIME: .BLKQ 1 .PAGE .SBTTL CODE .PSECT CODE,RD,NOWRT,EXE,LONG .ENTRY CHKDATES,^M MOVL ARG_QUAX(AP),R10 ; ADR QUAX RECORD MOVQ @ARG_CURTIME(AP),CURTIME ; STORE CURRENT TIME BITL #QMSK_M_AUTHEXP,@ARG_QMASK(AP) ; AUTHORIZE/EXPIRE ENABLED? BNEQ 10$ ; YES JMP RET_CHKDATES 10$: CMPQ CURTIME,QXR_AUTHOR_T(R10) ; AUTHORIZED? BGEQ CHK_EXPIRE ; YES BISL #QMSK_M_AUTHEXP,@ARG_FAILSTS(AP) ; MARK FAILED DATES BRW RET_CHKDATES CHK_EXPIRE: CMPQ CURTIME,QXR_EXPIRE_T(R10) ; EXPIRED? BLSS 10$ ; NOT YET BISL #QMSK_M_AUTHEXP,@ARG_FAILSTS(AP) ; MARK FAILED DATES BRW RET_CHKDATES 10$: MULQ3 #48*3600,#10*1000*1000,WARN_TIME ; WARN INTVL= 2 DAYS ADDQ CURTIME,WARN_TIME CMPQ WARN_TIME,QXR_EXPIRE_T(R10) ; NEAR EXPIRATION DATE? BLEQ RET_CHKDATES ; NO BISL #QMSK_M_AUTHEXP,@ARG_WARNSTS(AP) ; MARK NEAR EXPIRATION RET_CHKDATES: RET .END