SPL,L,O,"<PUT>" 
! 
      NAME PUT (7)"92425-16038 REV.1841 780927" 
! 
!-------------------------------------------------------------
! 
! 
!     F. WARREN         17MAY76    REV. A 
! 
!     "C" COPYRIGHT HEWLETT-PACKARD COMPANY 1976. 
!     ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM 
!     MAY BE PHOTOCOPIED, REPRODUCED OR TRANSLATED
!     TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR 
!     WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. 
! 
!-------------------------------------------------------------
! 
! 
!     PUT: PURPOSE: TO CONCATENATE A SINGLE CHARACTER TO THE END OF A 
!               GIVEN STRING.  UPON ENTRY, THE A-REGISTER CONTAINS
!               THE RIGHT-JUSTIFIED CHARACTER AND THE B-REGISTER
!               CONTAINS THE ADDRESS.  UPON EXIT, THE REGISTERS 
!               ARE RESTORED TO THEIR ORIGINAL VALUE. 
! 
!     PUT (A=CHAR, B=STRING ADDR) 
! 
PUT:  SUBROUTINE GLOBAL,DIRECT
      SADDR _ .B.                      ! SAVE THE REGISTERS 
      PCHR _ .A.                       !
      RIGHT_ $SADDR AND 1              ! RIGHT OR LEFT CHR? 
      $SADDR _ $SADDR + 1              ! INCREMENT STRING LENGTH
      PADDR _ SADDR + (($SADDR + 1) >- 1) ! CONPUTE PUT ADDRESS 
      TEMPA _ 177400K                  !
      IF RIGHT THEN GO TO PUT2         ! SHIFT CHAR & MASK IF NECESSARY 
      TEMPA _ 377K                     !
      PCHR _ PCHR -< 8                 !
PUT2: TEMPB _ ($PADDR AND TEMPA) OR PCHR  ! MERGE AND STORE CHAR
      $PADDR _ TEMPB                   !
      .B. _ SADDR                      ! RESTORE STRING ADDRESS 
      .A. _ PCHR                       !
      RETURN                           !
      END                              !
      END 
END$
                                