         SYSTEM   TRIGO
         CSECT    1
*
*        DAY
*                 GIVES THE DATE AND TIME IN A SANE FORMAT.
*        THE ENTRY POINT DAY IS USED BY THE INITIAL PROCESS,
*        STIME IS USED BY TRAC TO RETURN THE DATE AS A STRING.
*
         DEF      DAY
         REF      OBUF              THE BUFFER WE USE.
         REF      BLANKS            A WORD OF BLANKS.
         SREF     BA:STRING,ENDPT,TAIL SREF SO AS NOT TO MESS UP OTHERS..
*
TBUF     EQU      OBUF+12           DOWN NEAR THE END FOR THE TIME.
*
         PDEF     STIME             TIME FUNCTION FOR TRAC
         BAL,L    DAY               GET DATE INTO OBUF.
         LI,R     BA(OBUF)+1
         LW,RU1   BA:STRING
         AW,RU1   ENDPT             WHERE TO PUT IT
         LB,T     OBUF              PICK UP BYTE COUNT
         STB,T    RU1
         MBS,R    0                 MOVE IT IN.
         AW,T     ENDPT
         STW,T    TAIL              UPDATE END POINT.
         PULL     L
         B        0,L               AND RETURN.
*
DAY      M:TIME   TBUF
         LW,RU1   BLANKS            WE NEED TO PRESET THE BUFFER
         LI,R     12                FOR THIS STUFF.
         STW,RU1  OBUF-1,R
         BDR,R    %-1
         LI,R     39                MAX BYTE COUNT AS FAR AS I KNOW...
         STB,R    OBUF
         LI,RU1   X'F00'
         AND,RU1  TBUF+2
         SLS,RU1  -8
         MI,RU1   10
         LI,R     X'F'
         AND,R    TBUF+2
         AW,RU1   R
         LW,D2    RU1
         LI,RU1   X'F00'
         AND,RU1  TBUF+3
         SLS,RU1  -8
         MI,RU1   10
         LI,R     X'F'
         AND,R    TBUF+3
         AW,RU1   R
         AI,RU1   1900
         LW,D1    RU1
         LCI      2
         LM,R     TBUF+1
         SLD,R    -24
         OR,RU1   =X'FFFF0000'
         LI,R     12
         CH,RU1   MLT,R
         BE       %+2
         BDR,R    %-2
         LW,D3    R
         TITLE    'TIME AND DATE GENERATOR'
*
DAY1     CI,R     3
         BGE      DAY2
         AI,D1    -1
         AI,D3    12
DAY2     LW,R     D1
         SLS,R    -2
         AW,R     D2
         AW,R     D3
         AW,R     D1
         AI,R     2
         AW,R     D3
         LW,RU1   D3
         AI,RU1   1
         MI,RU1   3
         DW,RU1   =5
         AW,R     RU1
         LW,T     D1
         SLD,T    -32
         DW,T     =100
         SW,R     TU1
         SLD,TU1  -2
         AW,TU1   R
         LI,T     0
         DW,T     =7
*
         LI,RU1   BA(OBUF)+1        COPY TO ADDRESS FOR WHOLE THING
         LI,R     BA(TBUF)
         LI,TU1   6
         STB,TU1  RU1
         MBS,R    0                 'HH:MM '
         LW,R     DT,T              DAY INDEX WORD
         LB,TU1   *R                COUNT BYTE
         SLS,R    2
         AI,R     1
         STB,TU1  RU1
         MBS,R    0                 DAY OF WEEK
         AI,RU1   1
         LW,T     D3
         LW,R     MT-1,T
         LB,T     *R
         SLS,R    2
         AI,R     1
         STB,T    RU1
         MBS,R    0                 MONTH
         AI,RU1   1
         LI,R     BA(TBUF+2)+2
         LI,T     3
         STB,T    RU1
         MBS,R    0                 DAY TEXT AND COMMA
         AI,RU1   1
         LI,T     '1'
         STB,T    0,RU1
         AI,RU1   1
         LI,T     '9'
         STB,T    0,RU1
         AI,RU1   1
         LI,R     BA(TBUF+3)+2
         LI,T     2
         STB,T    RU1
         MBS,R    0                 YEAR
         AI,RU1   -BA(OBUF)         HOW LONG IS THIS THING????
         STB,RU1  OBUF              REMEMBER THAT.
         B        0,L
*
DT       DATA     T0,T1,T2,T3,T4,T5,T6
MT       DATA     M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M1,M2
MLT      TXT      'OBANEBARPRAYUNULUGEPCTOVECANILE'
T0       TXTC     'SATURDAY'
T1       TXTC     'SUNDAY'
T2       TXTC     'MONDAY'
T3       TXTC     'TUESDAY'
T4       TXTC     'WEDNESDAY'
T5       TXTC     'THURSDAY'
T6       TXTC     'FRIDAY'
M1       TXTC     'JANUARY'
M2       TXTC     'FEBRUARY'
M3       TXTC     'MARCH'
M4       TXTC     'APRIL'
M5       TXTC     'MAY'
M6       TXTC     'JUNE'
M7       TXTC     'JULY'
M8       TXTC     'AUGUST'
M9       TXTC     'SEPTEMBER'
M10      TXTC     'OCTOBER'
M11      TXTC     'NOVEMBER'
M12      TXTC     'DECEMBER'
         END
