*DECK DLCKTI
USETEXT DLFPDEF 
PROC DLCKTI(TIMEF, ERRCODE); # CHECK CLOCK TIME IN DISPLAY CODE        #
*IF DEF,IMS 
 #
*1DC  DLCKTI
* 
*     1. PROC NAME           AUTHOR             DATE. 
*        DLCKTI              P.C.TAM            78/11/07
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CHECK TIME FIELD FOR ERROR.
* 
*     3. METHOD USED. 
*        CHECK EACH DIGIT TO BE NUMERIC 
*        CHECK HOUR WITHIN 0 AND 24,
*        CHECK MIMUNTE AND SECOND TO BE WITHIN 0 AND 60.
* 
*     4. ENTRY PARAMETERS.
*        TIMEF              CLOCK TIME INPUT
* 
*     5. EXIT PARAMETERS. 
*        ERRCODE            ERROR RETURN CODE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED.
*        DLFPDEF
* 
*     7. ROUTINES CALLED. 
*        NONE.
* 
*     8. DAYFILE MESSAGES.
*        NONE.
* 
 #
*ENDIF
# 
      LOCAL VARIABLES 
# 
      ITEM
      TIMEF      U,          # CLOCK TIME                              #
      ERRCODE    I,          # ERROR RETURN CODE                       #
      D1         I,          # DIGIT ONE                               #
      D2         I,          # DIGIT TWO                               #
      D3         I,          # DIGIT THREE                             #
      D4         I,          # DIGIT FOUR                              #
      D5         I,          # DIGIT FIVE                              #
      D6         I,          # DIGIT SIX                               #
      HH         I,          # HOUR                                    #
      MM         I,          # MINUTES                                 #
      SS         I;          # SECONDS                                 #
# ******************************************************************** #
      BEGIN 
      D1 = C<0,1>TIMEF - O"33"; 
      D2 = C<1,1>TIMEF - O"33"; 
      D3 = C<2,1>TIMEF - O"33"; 
      D4 = C<3,1>TIMEF - O"33"; 
      D5 = C<4,1>TIMEF - O"33"; 
      D6 = C<5,1>TIMEF - O"33"; 
      HH = D1 * 10 + D2;     # HOUR                                    #
      MM = D3 * 10 + D4;     # MINUTE                                  #
      SS = D5 * 10 + D6;     # SECONDS                                 #
      IF C<6,4>TIMEF EQ 0 AND     # CLOCK TIME MUST HAVE 6 DIGITS      #
         (0 LQ D1 AND D1 LQ 9) AND # CHAR IS NUMERIC                   #
         (0 LQ D2 AND D2 LQ 9) AND # CHAR IS NUMERIC                   #
         (0 LQ D3 AND D3 LQ 9) AND # CHAR IS NUMERIC                   #
         (0 LQ D4 AND D4 LQ 9) AND # CHAR IS NUMERIC                   #
         (0 LQ D5 AND D5 LQ 9) AND # CHAR IS NUMERIC                   #
         (0 LQ D6 AND D6 LQ 9) AND # CHAR IS NUMERIC                   #
         0 LQ HH AND HH LQ 24 AND # HOUR MUST BE BETWEEN 0 / 24        #
         0 LQ MM AND MM LQ 59 AND # MINUTE BETWEEN 0 / 59              #
         0 LQ SS AND SS LQ 59 AND # SECONDS BETWEEN 0 / 59             #
        ((HH EQ 24 AND MM EQ 0 AND# IF HOUR IS 24, MM, SS MUST BE 0    #
          SS EQ 0) OR HH NQ 24) 
      THEN
        ERRCODE = 0;
      ELSE
        ERRCODE = 1;
      END 
TERM
