*DECK     SRM 
          IDENT  SRM
          TITLE  SRM - SEND AND RECEIVE MESSAGES. 
          SST 
          SYSCOM B1 
  
  
          ENTRY  SRM
  
          COMMENT  SEND AND RECEIVE MESSAGES. 
          COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 
          SPACE  4,10 
**        SRM - SEND AND RECEIVE MESSAGES.
* 
*         J. G. CLARK        79/12/17.
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL COMCMAC 
*CALL COMCAPR 
*CALL COMCPTF 
 SRM      SPACE  4,10 
**               SRM IS CALLED TO SEND A LEVEL 7 PROTOCOL MESSAGE 
*         BLOCK AND WAIT FOR A MESSAGE BLOCK TO BE RETURNED.
*         THIS ROUTINE WILL RESEND THE MESSAGE BLOCK IF A *NAK* 
*         IS RECEIVED FROM THE NETWORK.  ON EXIT AN INPUT 
*         BLOCK IS AVAILABLE OR AN ERROR MESSAGE RETURNED.
* 
*         ENTRY  (A1) IS THE ADDRESS OF THE PARAMETER LIST. 
* 
*         PARAMETER LIST FORMAT 
*         HA     - HEADER AREA FOR SEND MESSAGE BLOCK.
*         TA     - TEXT AREA TO BE PUT (TA-1 IS THE DEFINED TEXT HEADER)
*         NSUP   - SUPERVISORY/INPUT QUEUED, AS DEFINED BY NETON. 
*         STAT   - COMMUNICATIONS STATUS INDICATOR. 
*                - SET TO -0 IF A CONNECTION BROKEN IS RECEIVED.
*         ACKT   - NETWAIT TIME INTERVAL. 
*         FLAG   - NETWAIT DEFINED WAIT FLAG. 
*         HA     - HEADER AREA FOR NETGET.
*         TA     - TEXT AREA TO BE RETURNED FROM NETGET.
*         MAXTLC - MAXIMUM TEXT AREA AVAILABLE FOR NETGET.
* 
*         EXIT   (X1) IS AN ERROR MESSAGE ADDRESS IF AN ERROR IS
*                DETECTED.
* 
*         USES   A - 1,7. 
*                B - NONE.
*                X - 1,7. 
* 
*         CALLS  PMB, RML.
  
  
 SRM      SUBRL  (#NPUT,,#QBIT) 
          SX6    -NAKRTRY-2 
          SA6    SRMA        SET MAXIMUM NUMBER OF NAK RETRIES
 SRM1     SA2    SRMA 
          SX1    BNAM        SET DAYFILE MESSAGE
          SX6    X2+B1
          PL     X6,SRMX     IF NUMBER OF RETRIES EXAUSTED
          SA6    A2 
          SA1    "NPUT"      SET PARAMETER LIST ADDRESS 
          RJ     =XPMB       PUT MESSAGE BLOCK
          SA1    "QBIT" 
          RJ     =XWLB       WAIT FOR ACK 
          NZ     X1,SRMX     IF ERROR DETECTED
          MI     X6,SRM1     IF NAK RECEIVED, RETRY 
 SRM2     SA1    "QBIT" 
          RJ     =XRML       RECEIVE MESSAGE FROM LINK
          NZ     X1,SRMX     IF OTHER ERROR IN TRANSMISSION 
          NZ     X6,SRMX     IF INPUT RECEIVED
          EQ     SRM2        WAIT FOR INPUT 
  
 SRMA     BSS    1
  
  
          QUAL   *
          SPACE  4
          END 
