*DECK RMTSMB
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
USETEXT COMQRMB 
    PROC RMTSMB;
      BEGIN    # RMTSMB # 
# 
**    RMTSMB     SEND MESSAGES TO REMOTE PARTNER. 
* 
*     RMTSMB IS CALLED TO APPEND ALL ACCUMULATED REMOTE MESSAGES
*     TO THE LEVEL 7 COMMAND CURRENT BEING BUILT. 
* 
*     PROC RMTSMB 
* 
*     ENTRY      ACN = AFT INDEX
*                FILERMB = POINTER TO FIRST MESSAGE BLOCK, IF ANY 
*                NTA$B = CURRENT NETWORK BLOCK (INITIALIZED BY ACSTORE).
* 
*     EXIT       FILERMB = ZERO 
*                ALL MESSAGE BUFFERS HAVE BEEN RELEASED.
* 
*     PROCESS    FOR EACH BUFFER IN CHAIN:  
*                  CALL APSTOR TO APPEND MESSAGE TO COMMAND 
*                  CALL FREECMM TO RELEASE BUFFER.
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC APSTOR;               # STORE LEVEL 7 ATTRIBUTE #
        FUNC FREECMM    U;         # RELEASE CMM BLOCK #
        PROC NAME;                 # DEBUG CODE # 
        END 
  
  
      ITEM BUFADR     U;
  
        $BEGIN
        NAME("RMTSMB"); 
        $END
  
      BUFADR = FILERMB;            # START OF BUFFER CHAIN #
      FILERMB = 0;
      ASLONGAS BUFADR NE 0         # IF BUFFER EXISTS # 
      DO
        BEGIN 
        P<RMB> = BUFADR;
        P<FET> = LOC(RMB$TEXT); 
        APSTOR(NTA$B,AT$DM,ATQ$S,RMB$LENC,FET); 
        BUFADR = RMB$LINK;         # POINT TO NEXT BUFFER IN CHAIN #
        P<RMB> = FREECMM(P<RMB>);  # RELEASE BUFFER # 
        END 
  
      P<RMB> = 0; 
      END  # RMTSMB # 
    TERM
