*DECK RTPUTC
USETEXT COMCBEG 
USETEXT COMQDEF 
USETEXT COMQRTP 
    PROC RTPUTC( (KEYWORD), (VALUE) );
      BEGIN  # RTPUTC # 
# 
**    RTPUTC     PUT KEYWORD AND CHARACTER VALUE IN ROUTING TEXT. 
* 
*     PROC RTPUTC( (KEYWORD), (VALUE) ) 
* 
*     ENTRY      P<RTB> = ROUTING TEXT BUFFER.
*                RTP$BYTE = ORDINAL OF BYTE TO RECEIVE NEXT PARAMETER.
*                KEYWORD = 1 TO 10 CHAR PREFIX TO INSERT IN TEXT. 
*                VALUE = 0 TO 10 CHARACTER VALUE TEXT TO INSERT.
* 
*     EXIT       *KEYWORD_VALUE* INSERTED INTO BUFFER, IF VALUE NOT NIL.
*                RTP$BYTE UPDATED.
* 
*     PROCESS    DETERMINE LENGTH OF VALUE. 
*                IF LENGTH OF VALUE NON-ZERO: 
*                  DETERMINE LENGTH OF KEYWORD
*                  IF KEYWORD LENGTH NON-ZERO:  
*                    STORE KEYWORD
*                  STORE VALUE. 
# 
  
      ITEM KEYWORD    C(10);       # *KEYWORD=* # 
      ITEM VALUE      C(10);       # *VALUE* #
  
# 
****  XREF
# 
      XREF
        BEGIN 
        FUNC CCOUNT     U;         # CHARACTER COUNT #
        PROC NAME;                 # DEBUG CODE # 
        END 
  
# 
****  XREF END
# 
  
      ITEM KLENGTH    U;           # LENGTH OF KEYWORD #
      ITEM VLENGTH    U;           # LENGTH OF VALUE #
  
        $BEGIN
        NAME("RTPUTC"); 
        $END
  
      VLENGTH = CCOUNT(VALUE);     # DETERMINE LENGTH OF VALUE #
      IF VLENGTH GT 0              # IF NOT ALL SPACES OR ZEROS # 
      THEN
        BEGIN 
        KLENGTH = CCOUNT(KEYWORD); # DETERMINE LENGTH OF KEYWORD #
        IF KLENGTH GT 0            # IF KEYWORD NOT NIL # 
        THEN
          BEGIN 
          C<RTP$BYTE,KLENGTH>RTP$TEXT = C<0,KLENGTH>KEYWORD;
          RTP$BYTE = RTP$BYTE + KLENGTH;
          END 
  
        C<RTP$BYTE,VLENGTH>RTP$TEXT = C<0,VLENGTH>VALUE;
        RTP$BYTE = RTP$BYTE + VLENGTH;
        END 
  
      END  # RTPUTC # 
    TERM
