*DECK,DIFFER
      FUNC DIFFER (OLD,NEW) U;
      BEGIN # DIFFER #
*IF DEF,IMS 
 #
*1DC  DIFFER
* 
*     1. FUNC NAME           AUTHOR              DATE 
*        DIFFER              B. M. WEST          2 MARCH 1977 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CALCULATES INTERVAL IN SECONDS BETWEEN OLD AND NEW 
* 
*     3. METHOD USED. 
*        TIMES ARE EXPECTED TO BE IN THE SAME UNITS (SECONDS). THE
*        COMPLETE CLOCK CYCLE IS 4096 SECONDS IN RBF. 
* 
*        THE INTERVAL IS CALCULATED USING THE FOLLOWING ALGORITHM:  
* 
*          IF OLD IS LESS THAN NEW THEN THE INTERVAL IS NEW MINUS OLD 
            ELSE THE INTERVAL IS 4096 MINUS OLD PLUS NEW. 
* 
*     4. ENTRY PARAMETERS.
* 
*          OLD - EARLIEST TIME MODULO 4096. 
*          NEW - LATEST TIME MODULO 4096. 
* 
*     5. EXIT PARAMETERS. 
* 
*          FUNCTION RETURNS CALCULATED INTERVAL AS AN UNSIGNED INTEGER. 
* 
*     6. COMDECKS USED. NONE. 
* 
*     7. ROUTINES CALLED. NONE. 
* 
*     8. DAYFILE MESSAGES. NONE.
* 
 #
*ENDIF
# 
      LOCAL PARAMETERS
# 
      DEF MAXIMUMTIME # 4096 #;  # MAXIMUM TIME + 1                    #
      ITEM OLD U;                # EARLIEST TIME                       #
      ITEM NEW U;                # LATEST TIME                         #
# 
      CALCULATE INTERVAL
# 
      IF OLD LQ NEW 
      THEN DIFFER = NEW - OLD;
      ELSE DIFFER = MAXIMUMTIME - OLD + NEW;
      RETURN; 
      END # DIFFER #
      TERM; 
