          EJECT
*         CTEXT  CTP$DFT_OS_REQUESTS_NON_PACKETS
*
*         THIS DECK CONTAINS O.S. REQUESTS WHICH ARE PACKET
*         SENSITIVE AND WHICH WILL BE USED IN AN ENVIRONMENT
*         WHICH DOES NOT SUPPORT PACKETS
 UCD      SPACE  4,10
**        UCD - UPDATE CLOCK DATA.
*
*         ENTRY  (TINB) - SHOULD HAVE THE CLOCK DATA IN THE WALL CLOCK
*                         CHIP DESCRIPTOR FORMAT.
*                UWCC - UPDATE WALL CLOCK CHIP FLAG, = 0 IMPLIES WALL CLOCK
*                       CHIP UPDATED, .NE. 0 IMPLIES WALL CLOCK CHIP NOT
*                       UPDATED.
*
*         EXIT   HDT, CDA, AND THE CHIP IF PRESENT WILL ALL BE UPDATED.
*
*         CALLS  FHE, PFC, *ERR*.


          ROUTINE UCD

          LDC    132         FUNCTION TO WRITE THE HDT
          STM    CALB

*         SET CLOCK DESCRIPTOR LENGTH.

          LDN    WCCID
          RJM    FHE         FETCH WALL CLOCK CHIP ID DESCRIPTOR
          MJP    ERR         IF WALL CLOCK CHIP DESCRIPTOR NOT FOUND
          LDM    HBUF        SET CLOCK DESCRIPTOR LENGTH
          SHN    -6
          STM    CALB+2
          LDN    1
          STM    UMEM        SET FLAG TO WRITE *2AP* TO MEMORY
          CALL   PFC         CALL *2AP* TO WRITE HDT TO ITS DATA AREA AND CM
          LDN    0
          STM    UMEM        CLEAR UPDATE MEMORY FLAG
          LDM    UWCC        GET UPDATE WALL CLOCK CHIP FLAG
          NJP    UCD2        IF NO UPDATE NECESSARY

*         AFTER THE CALL DATA WILL BE IN *TOIP*.  MOVE DATE AND TIME DATA
*         TO THE BEGINNING OF THE BUFFER IN PREPARATION FOR THE CALL TO
*         *2AP* TO UPDATE THE WALL CLOCK CHIP.

          LDN    1
          STD    T1          INDEX
          LDML   TINB
          STML   UCDB
          SBN    1
          STML   UCDC        BUFFER ADDRESS - 1
 UCD1     LDM    **,T1
 UCDB     EQU    *-1
          STM    **,T1       STORE IN PREVIOUS ENTRY
 UCDC     EQU    *-1
          AOD    T1
          SBN    7
          MJN    UCD1        IF NOT DONE MOVING
          LDM    IOUM        IOU MODEL
          SHN    -4
          LMN    2
          ZJN    UCD2        IF NO WALL CLOCK CHIP IN IOU
          LDC    131         FUNCTION TO WRITE THE WALL CLOCK CHIP
          STM    CALB
          CALL   PFC         CALL THE *2AP* OVERLAY

*         FINALLY WRITE THE DISK WITH THE UPDATED HDT.

 UCD2     LDN    33          FUNCTION TO WRITE THE HDT TO DISK
          STM    CALB
          STML   RTP1        SAVE FUNCTION CODE
          CALL   PFC         CALL *2AP* WITH FUNCTION
          LDM    CALB
          ADM    CALB+1
          ADM    CALB+2
          ZJP    UCDX        IF NO ERRORS TRYING TO WRITE THE DISK
          LDN    0           NO RETURN / DO NO SET STATUS / NO OFFSET
          STML   RTP2
          CALL   PDE         PROCESS DISK ERROR

*         END    CTP$DFT_OS_REQUESTS_NON_PACKETS
