          EJECT
*         CTEXT CTP$DFT MANAGE PACKET TRAFFIC
*
*         THIS DECK DEFINES CODE WHICH PROCESSES THE VARIOUS
*         PHASES OF PACKET COMMUNICATION.
 CPS      SPACE  4,10
**        CPS - CHECK PACKET STATUS.
*
*         ENTRY  (PKTCW) = PACKET CONTROL WORD.
*                (CELCW) = CONSOLE LOGGING CONTROL WORD.
*                (DI4CW) = DUAL I4 CONTROL WORD.
*
*         EXIT   *LTC* CALLED IF CONSOLE LOGGING REQUIRED/IN PROGRESS.
*                MRT LOGGING INITIATED IF REQUIRED AND NO LOGGING ACTIVE.
*                GENERAL RESPONSE PACKET RECEIVED IF AVAILABLE.
*                GENERAL PACKET SENT IF REQUESTED AND NO LOGGING ACTIVITY.
*                *CHECK-IN* PACKET SENT IF NO OTHER ACTIVITY AND FLAG SET.
*                *LDS* CALLED IF IN MIDST OF DUAL I4 PACKET PROCESSING.
*                IF LOGGING EPM DATA CONTROL WILL RETURN FROM THIS ROUTINE
*                TO THE EPM OVERLAY FOR FURTHER PROCESSING.
*
*         CALLS  CRS, LNO, *LPT*, *RRP*, *SPD*.
*
*         NOTE   THE ORDER IN WHICH THE DIFFERENT SECTIONS OF CODE ARE
*                EXECUTED IS IMPORTANT.  IT HELPS PREVENT THERE BEING
*                MORE THAN ONE PACKET INTERCHANGE ACTIVE AT A TIME.


          ROUTINE  CPS

          LDM    PKFLG       CHECK FOR PACKET SUPPORT ON MAINFRAME
          ZJP    CPSX        IF PACKETS NOT SUPPORTED ON MAINFRAME
          LDML   PKTCW       CHECK GENERAL PACKET STATUS
          SHN    21-17
          PJN    CPS1        IF NO RESPONSE PENDING
          SHN    21-16-21+17
          PJP    CPS2        IF NOT TIMED OUT
          CALL   LPT         LOG PACKET TIMEOUT
          LDML   PKTCW
          LPC    0#100       CHECK IF PHASED MODE
          ZJN    CPS0        IF NON PHASED PACKET
          LDM    PKTCW1
          SHN    14
          LMML   PKTCW2
          RJM    LNO         PERFORM CALL OPERATION
 CPS0     LDM    PKTCW       CLEAR TIME OUT FLAG
          STM    PKTCW
 CPS1     LDML   DI4CW       CHECK FOR DUAL IOU PACKETS
          ADML   CELCW       CHECK GENERAL PACKETS
          ADML   MRTU        CHECK MRT UPDATE
          ADML   PKTCW       CHECK GENERAL PACKETS
          ZJP    CPSX        IF NOTHING TO INITIATE
          CALL   SPD         SEND PACKET DATA
          UJN    CPS3        RETURN

 CPS2     RJM    CRS         CHECK RESPONSE STATUS
          ZJP    CPSX        IF RESPONSE PACKET NOT AVAILABLE
          CALL   RRP         RECEIVE RESPONSE PACKET
          LDML   PKTCW
          LPC    0#100       CHECK IF PHASED MODE
          ZJN    CPS3        IF NON PHASED PACKET
          LDM    PKTCW1
          SHN    14
          LMML   PKTCW2
          RJM    LNO         PERFORM CALL OPERATION
 CPS3     LJM    CPSX        RETURN


*         END    CTP$DFT CHECK PACKET STATUS
