*DECK     ECL 
          IDENT  ECL
          TITLE  ECL - ESTABLISH COMMUNICATIONS LINK. 
          SST 
          SYSCOM B1 
  
  
          ENTRY  ECL
  
          COMMENT  ESTABLISH COMMUNICATIONS LINK. 
          COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 
          SPACE  4,10 
**        ECL - ESTABLISH COMMUNICATIONS LINK.
* 
*         J. G. CLARK        79/12/17.
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL COMCMAC 
*CALL CMACROS 
*CALL COMCAPR 
*CALL COMCCAE 
*CALL COMCPTF 
 ECL      SPACE  4,10 
**               ECL IS CALLED BY THE PTF APPLICATIONS TO LINK THE
*         APPLICATION TO THE REMOTE APPLICATION.  THE LINK IS 
*         COMPLETED BY RESPONDING TO NETWORK SUPERVISORY MESSAGES 
*         CON/REQ/R AND FC/INIT/R.
* 
*         ENTRY  THE APPLICATION HAS COMPLETED A SUCCESSFULL NETON. 
*                (A1) CONTAINS THE ADDRESS OF THE PARAMETER LIST. 
* 
*         PARAMETER LIST
*         NSUP   - SUPERVISORY/INPUT QUEUED AS DEFINED BY NETON.
*         STAT   - COMMUNICATIONS STATUS INDICATOR
*                - SET TO -1 IF CONNECTION IS COMPLETE, 
*                - SET TO -0 IF THE CONNECTION IS BROKEN DURING PROCESS.
*         ACKT   - APPLICATION CONNECTION WAIT TIME.
*         WAITF  - NETWAIT FLAG AS DEFINED BY NETWAIT.
*         HA     - SUPERVISORY MESSAGE HEADER AREA. 
*         TA     - SUPERVISORY MESSAGE TEXT AREA. 
*         MAXTLC - MAXIMUM TEXT AREA AVAILABLE AS DEFINED BY NETGET.
* 
*         EXIT   (X1) CONTAINS THE ADDRESS OF AN ERROR MESSAGE IF 
*                A NETWORK ERROR IS ENCOUNTERED.  ZERO IF NO ERROR. 
* 
*         USES   A - 1,2,3,4,5,6,7. 
*                B - 1. 
*                X - 1,2,3,4,5,6,7. 
* 
*         CALLS  RML, STT, NETPUT.
  
  
 ECL      SUBRL  (,#STAT,,,#NPUT,#MB) 
 ECL1     RJ     =XRML       RECEIVE MESSAGE FROM LINK
          NZ     X1,ECL2     IF SUPERVISORY MESSAGE AVAILABLE 
          SX1    NSEM 
          NZ     X6,ECLX     IF NOT SUPERVISORY MESSAGE 
          EQ     ECL1        IGNORE NULL AND SHUTDOWNS
  
 ECL2     SX3    ISMM        *INVALID SUPERVISORY MESSAGE*
          SX4    ATOM        *CONNECTION TIMED OUT* 
          BX4    X4-X1
          ZR     X4,ECL5     IF CONNECTION TIMED OUT
          BX3    X3-X1
          NZ     X3,ECLX     IF NOT POSSIBLE CON/REQ, RETURN MESSAGE
          NFETCH 0,CON,X1 
          SA3    "MB" 
          NFETCH X3,PFC,X4
          BX2    X1-X4
          SX1    ISMM 
          NZ     X2,ECLX     IF NOT *CON/REQ/R* 
          NFETCH 0,REQ,X1 
          NFETCH X3,SFC,X4
          BX2    X1-X4
          SX1    ACRM 
          NZ     X2,ECLX     IF NOT *CON/REQ/R* 
          NFETCH X3,CONABL,X6 
          SA6    ABL         APPLICATION BLOCK LIMIT
          NFETCH X3,CONBSZ,X6 
          SA6    DBZ         DOWNLINE BLOCK SIZE
          NSTORE X3,RB=B1 
          NSTORE X3,CONACT=2 ASCII CODE 
          SA1    "NPUT" 
          NSTORE X1,ABHTLC=B1 
          NSTORE X1,ABHADR=B0 
          NSTORE X1,ABHABT=3
          NSTORE X1,ABHACT=B1 
          RJ     =XFTUPUT    PUT THE CON/REQ/N
          RJ     =XSTT       SET TIMEOUT TIME 
          SA2    "STAT" 
          MX7    -1 
          SA7    X2          SET CONNECTION COMPLETE
 ECL3     SA1    A0 
          RJ     =XRML       RECEIVE MESSAGE FROM LINK
          NZ     X1,ECL4     IF SUPERVISORY MESSAGE 
          SX1    NSEM 
          NZ     X6,ECLX     IF NOT SUPERVISORY MESSAGE 
          EQ     ECL3        IGNORE NULL AND SHUTDOWNS
  
 ECL4     SX3    ISMM        *INVALID SUPERVISORY MESSAGE*
          BX3    X3-X1
          NZ     X3,ECLX     IF NOT POSSIBLE FC/INIT, RETURN MESSAGE
          NFETCH 0,FCINIT,X1
          SA3    "MB" 
          NFETCH X3,PFCSFC,X2 
          BX6    X1-X2
          SX1    ISMM 
          NZ     X6,ECLX     IF NOT FC/INIT/R RECEIVED
          NSTORE X3,RB=B1 
          SA1    "NPUT" 
          NSTORE X1,ABHADR=B0 
          NSTORE X1,ABHABT=3
          NSTORE X1,ABHACT=B1 
          RJ     =XFTUPUT    PUT THE FC/INIT/N
          SB1    1
          SX1    B0+
          EQ     ECLX        RETURN 
  
 ECL5     SX1    NCRM        *NO CONNECTION RECEIVED* 
          EQ     ECLX        RETURN 
  
  
          QUAL   *
          SPACE  4,10 
          END 
