*DECK     SNP 
          IDENT  SNP
          TITLE  SNP - STORE NEXT PARAMETER.
          SST 
          SYSCOM B1 
  
  
          ENTRY  SNP
  
          COMMENT  STORE NEXT PARAMETER.
          COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 
          SPACE  4,10 
**        SNP - STORE NEXT PARAMETER. 
* 
*         J. G. CLARK        80/06/06.
          SPACE  4,10 
**        COMMON DECKS. 
  
  
  
*CALL COMCMAC 
*CALL COMCAPR 
*CALL COMCPTF 
 SNP      SPACE  4,10 
**               SNP ATTEMPS TO STORE THE NEXT PARAMETER IN 
*         THE SPECIFIED COMMAND BUFFER.  IF THE PARAMETER WILL
*         NOT FIT (CONTINUATION SET) THE BLOCK IS SENT TO THE 
*         LINKED MAINFRAME AND A NEW COMMAND BLOCK IS STARTED.
*         ERRORS IN COMMUNICATION ARE ISSUED TO THE DAYFILE 
*         WITH AN ABORT.
* 
*         ENTRY  (A1) IS THE PARAMETER LIST ADDRESS.
* 
*         PARAMETER LIST FORMAT 
*         HMAP   - HEADER AND MESSAGE BUFFER PARAMETER LIST ADDRESS 
*                FOR ROUTINES *GMB*, *PMB*, *WMB*.
*         MB     - MESSAGE BUFFER ADDRESS FOR *APSTORE*.
*         ATTR   - PARAMETER ATTRIBUTE. 
*         QUAL   - PARAMETER QUALIFIER. 
*         TEXTL  - LENGTH OF PARAMETER TEXT.
*         TEXT   - PARAMETER TEXT.
* 
*         EXIT   (X6) IS NEGATIVE IF THE BUFFER WAS SENT. 
* 
*         USES   A - 1,2,6. 
*                B - NONE.
*                X - 1,2,6. 
* 
*         CALLS  GMB, PMB, WMB, APSTORE.
  
  
 SNP      SUBRL  (#HMAP,MB) 
          SX6    -NAKRTRY-1 
          SA6    SNPA        SET MAXIMUM *NAK* RETRY COUNT
          SA1    "MB" 
          RJ     =XAPSTORE   STORE THE PARAMETER
          SX1    B0+
          PL     X6,SNPX     IF PARAMETER FITS
 SNP1     SA2    A0          GET PARAMETER LIST ADDRESS 
          SA1    X2 
          RJ     =XPMB       PUT THE MESSAGE BLOCK
          SA2    "HMAP" 
          SA1    X2+2        SET PARAMETER LIST ADDRESS 
          RJ     =XWMB       WAIT FOR SOME RESPONSE 
          SA2    "HMAP" 
          PL     X6,SNP2     IF ONLY INPUT AVAILABLE
          SA1    X2+3        SET PARAMETER LIST ADDRESS 
          RJ     =XGMB       GET THE SUPERVISORY MESSAGE
          SA2    SNPA 
          PL     X6,SNP2     IF NOT *NAK* RECEIVED
          SX1    BNAM        SET *BLOCK NOT ACKNOWLEDGED* 
          SX6    X2+B1
          SA6    A2          RESET NEW COUNT
          MI     X6,SNP1     IF RETRY STILL POSSIBLE
          EQ     SNP3        ABORT WITH ERROR MESSAGE 
  
 SNP2     SA2    MB 
          NZ     X1,SNP3     IF ERROR MESSAGE PRESENT 
          SA1    SNPB        RESET TEXT AREA HEADER 
          MX6    12 
          LX6    -12
          BX6    X6*X2
          BX6    X1+X6
          SA1    "MB" 
          SA6    X1          SET NEW HEADER 
          RJ     =XAPSTORE   SET NEXT PARAMETER 
          MX6    -1          INDICATE BUFFER SENT 
          BX1    X1-X1       SET NO ERROR MESSAGE 
          EQ     SNPX        RETURN 
  
 SNP3     MX6    0
          EQ     SNPX        RETURN WITH (X1) NON-ZERO
  
 SNPA     BSS    1           RETRY COUNTER
 SNPB     VFD    12/2000B,12/0,12/2040B,12/1,12/4 
  
  
          QUAL   *
          SPACE  4
          END 
