ASMB,L,C    ROUTINE TO CONVERT TIME 
      HED TMVAL 
*     NAME:   TMVAL 
*     SOURCE: 92067-18051 
*     RELOC:  PART OF 92067-16035 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
      NAM TMVAL,6 92067-16035 REV.1913 790124 
      ENT TMVAL 
      EXT .ENTP,$TIME,.ZPRV 
* 
* 
*     CALLING SEQUENCE (FORTRAN)
* 
*      CALL TMVAL(ITM,ITMAR)
* 
*      WHERE ITM IS THE TWO WORD NEGATIVE TIME IN TENS OF 
*      MS.  AND ITMAR IS A 5 WORD ARRAY TO RECIEVE THE
*      TIME.  THE ARRAY WILL BE SET UP AS:
* 
*      1.  TENS OF MS.
*      2.  SECONDS
*      3.  MINUTES
*      4.  HOURS
*      5.  CURRENT SYSTEM DAY OF YEAR (NOT RELATED TO CALL VALUES)
* 
ITM   NOP 
ITM1  NOP 
* 
TMVAL NOP 
      JSB .ZPRV     GO PRIVILEGED IF IN MEM RES LIB 
      DEF LIBX
      JSB .ENTP     GET PRAMS 
      DEF ITM 
* 
      LDA ITM1      SET ADDRESS 
      STA RQP2      FOR SYSTEM ROUTINE
      DLD ITM,I     GET THE TIME
      JSB $TIMV     CONVERT IT
LIBX  JMP TMVAL,I 
      DEF TMVAL 
* 
      HED $TIMV ROUTINE TO GET CURRENT SYSTEM TIME
*        THE $TIMV ROUTINE CONVERTS THE CURRENT REAL TIME VALUES    * 
*              AND STORES THE VALUES INTO A USER SPECIFIED BUFFER. *
*                                                                  *
*    ROUTINE TO PROVIDE CURRENT TIME
*         CALLING SEQUENCE
*              DLD TIME  PUT TIME IN A AND B REGS.
*              JSB $TIMV
*              RQP2 CONTAINS BEGIN ADDRESS OF 5 WORD BUFFER 
*         ON RETURN,
*              ARRAY(1) = TENS OF MILLISECOND 
*              ARRAY(2) = SECONDS 
*              ARRAY(3) = MINUTES 
*              ARRAY(4) = HOURS 
*              ARRAY(5) = DAYS
* 
*              E IS SET 
*              A IS THE YEAR
* 
$TIMV NOP           ENTRY/EXIT (END OF SET TIME MSS.) 
      CLE           CLE FOR ADDITION
      ADA PRS1      ADD POSITIVE 24 HRS.
      SEZ           TO GET A POSITIVE 
      INB           TIME
      ADB PRS2
      DIV TTAB3     DIVIDE BY 6000
      STA RQP4      SAVE MIN/HR 
      ASR 16        POSITION B (SEC/10MS) FOR DIVIDE
      DIV TTAB2     DIVIDE BY 100 TO GET SEC/10MS 
      STB RQP2,I    SET 10MS VALUE
      ISZ RQP2      STEP ADDRESS POINTER
      STA RQP2,I    SET SEC. VALUE
      ISZ RQP2      STEP TO MIN. ADDRESS. 
      CLB           SET UP FOR DIVIDE 
      LDA RQP4      FETCH MIN/HR
      DIV D60       SEPERATE
      STB RQP2,I    SET MINUTES 
      ISZ RQP2      STEP TO HR. ADDRESS 
      STA RQP2,I    SET HRS 
      ISZ RQP2      STEP ADDRESS
      CLB           SET B FOR DIVIDE
      OCT 101724    XLA $TIME+2  *******XLA + OFFSET IS NOT 
      DEF $TIME+2      HANDLED CORRECTLY BY ASSEMBLER************ 
      DIV D365      SEPERATE DAYS AND YEARS 
      CCE,INB       STEP DAYS TO 1-365 FROM 0-364 
      STB RQP2,I    SET DAYS
      JMP $TIMV,I   RETURN
      SPC 2 
D60   DEC 60
D365  DEC 365 
PRS1  OCT 153000
PRS2  OCT 203 
TTAB3 DEC 6000
TTAB2 DEC 100 
RQP2  NOP       
RQP4  NOP       
      END 
                                                                                                                                                  