*DECK DLUPTM USETEXT DLFPDEF PROC DLUPTM(CLOCK$TIME,ELAPSED, RETRN);# CALCULATE CLOCK TIME FROM OFFS# *IF DEF,IMS # *1DC DLUPTM * * 1. PROC NAME AUTHOR DATE * DLUPTM P.C.TAM 78/10/05 * * 2. FUNCTIONAL DESCRIPTION. * CALCULATE CLOCK TIME. * * 3. METHOD USED. * CONVERT DISPLAY CLOCK TIME TO BINARY, * ADD IN ELAPSED TIME, * CONVERT BACK TO DISPLAY. * * 4. ENTRY PARAMETERS. * CLOCK$TIME CLOCK TIME IN DISPLAY CODE * ELAPSED OFFSET ADDED * * 5. EXIT PARAMETERS. * RETRN CALCULATED CLOCK TIME * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * DLFPDEF * * 7. ROUTINES CALLED. * NONE. * # *ENDIF # EXTERNAL VARIABLES # # INTERNAL VARIABLES # ARRAY CLOCK$TIME S(1); BEGIN ITEM HOUR U(0,6,12); # HOUR FIELD # ITEM HOUR1 U(0,6,CL); # 1ST DIGIT OF HOUR FIELD # ITEM HOUR2 U(0,12,CL); # 2ND DIGIT OF HOUR FIELD # ITEM MINUTE U(0,24,12); # MINUTE FIELD # ITEM MIN1 U(0,24,CL); # 1ST DIGIT OF MINUTE FIELD # ITEM MIN2 U(0,30,CL); # 2ND DIGIT OF MINUTE FILED # ITEM SECS U(0,42,12); # SECONDS FIELD # ITEM SEC1 U(0,42,CL); # 1ST DIGIT OF SECOND FIELD # ITEM SEC2 U(0,48,CL); # 2ND DIGIT OF SECOND FIELD # END ITEM ELAPSED I, # OFFSET TO ADD # RETRN C(WC), # RETURN RESULT # HH I, # TEMP VARIABLE TO HOLD HOUR FIELD # MM I, # TEMP VARIABLE TO HOLD MINUTE FIELD # SS I, # TEMP VARIABLE TO HOLD SECOND FIELD # TEMP1 I, # TEMPORARY VARIABLE # TEMP2 I; # TEMPORARY VARIABLE # # ******************************************************************** # BEGIN # CALCULATE BINARY HOUR, MINUTE, SECOND. # HH = 10 * (HOUR1[0] - O"33") + (HOUR2[0] - O"33"); MM = 10 * (MIN1[0] - O"33") + (MIN2[0] - O"33"); SS = 10 * (SEC1[0] - O"33") + (SEC2[0] - O"33"); # ADD IN OFFSET # TEMP1 = SS + ELAPSED; TEMP2 = TEMP1 / 60; SS = TEMP1 - TEMP2 * 60; TEMP1 = MM + TEMP2; TEMP2 = TEMP1 / 60; MM = TEMP1 - TEMP2 * 60; TEMP1 = HH + TEMP2; TEMP2 = TEMP1 / 24; HH = TEMP1 - TEMP2 * 24; # CONVERT TO DISPLAY CODE # RETRN = " . . ."; TEMP1 = HH / 10; B<0, CL> RETRN = TEMP1 + O"33"; B<6, CL> RETRN = (HH - TEMP1 * 10) + O"33"; TEMP1 = MM / 10; B<18, CL> RETRN = TEMP1 + O"33"; B<24, CL> RETRN = (MM - TEMP1 * 10) + O"33"; TEMP1 = SS / 10; B<36, CL> RETRN = TEMP1 + O"33"; B<42, CL> RETRN = (SS - TEMP1 * 10) + O"33"; END TERM