SPL,L,O,"" ! ! NAME ATACH(7) "92425-16021 REV.1841 780827" ! !------------------------------------------------------------- ! ! ! 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. ! !------------------------------------------------------------- ! ! ! LET PUT BE SUBROUTINE,EXTERNAL,DIRECT ! PUT A CHAR LET GET BE FUNCTION,EXTERNAL,DIRECT ! GET A CHAR ! ! ! ATACH STRING CONCATENATE ROUTINE ATACH: SUBROUTINE (STRN, STRNB,LIMIT) GLOBAL LET STRNB(1) BE INTEGER ! STRING TO BE ATTACHED B_.B. ! SAVE @ LST PARM PASSED ASTRB _ @STRNB ! GET STRING ADDRESS LEN _ STRNB(1) ! GET STRING CCNT IF LEN<=0 THEN RETURN ! DON'T ATTACH NULL STRING APARM_B-(@ATACH-1) ! GET OPTIONAL LIMIT? IF APARM=0 THEN GOTO AT2 ! NO SKIP LIMIT CHECK IF (LEN+$(@STRN))> LIMIT THEN LEN_LIMIT-$(@STRN)! TRUNCATE AT2: FOR I _ 1 TO LEN DO THRU AAA ! FOR ALL CHARS .B. _ ASTRB ! SOURCE STRING FOR GET .A. _ I ! CHAR CNT ACHR _ GET ! GET THE CHAR .B. _ @STRN ! SETUP TARGET STRING .A. _ ACHR ! PASS CHAR AAA: PUT IF(STRN AND 1) THEN[\ ! IF ODD COUNT .B._@STRN;\ ! SETUP TO .A._ 40K;\ ! PAD WITH 1 BLANK PUT;\ ! DO IT STRN_STRN-1\ ! SUBTRACT OFF OF COUNT ] ! RETURN END ! END END$