*COMDECK    COMSQUEZ - MOVE CHARACTERS FROM STRING BUFFER TO WORD BUFFER
          B1=1
          LIST   F,X
          TITLE  SQUEEZE - MOVE CHARACTERS FROM STRING BUFFER TO WORD BU
,FFER.
          COMMENT   MOVE CHARACTERS FROM STRING BUFFER TO WORD BUFFER.
 SQUEEZE  SPACE  4,8
**        SQUEEZE - MOVE CHARACTERS FROM STRING BUFFER TO WORD BUFFER.
* 
*         R. H. GOODELL.     76/06/23.
* 
*         SYMPL-CALLABLE ROUTINE TO MOVE AND PACK CHARACTERS
*         FROM A STRING BUFFER (ONE CHARACTER PER WORD, RIGHT 
*         JUSTIFIED WITH BINARY ZERO FILL) TO A WORD BUFFER 
*         (TEN CHARACTERS PER WORD).  LAST WORD IS FILLED ON
*         THE RIGHT WITH SPACES.
* 
*         CALL SQUEEZE (N, S, C, W, I). 
* 
*         ENTRY  N = NUMBER OF CHARACTERS TO MOVE.
*                S = STRING BUFFER ARRAY NAME.
*                C = STARTING WORD INDEX IN S.
*                W = WORD BUFFER ARRAY NAME.
*                I = STARTING WORD INDEX IN W.
* 
*         EXIT   CHARACTERS MOVED.
* 
*         CALLS  NONE.
  
  
 SQUEEZE  SUBR   =           ENTRY/EXIT 
          SB1    1           (B1) = CONSTANT 1
          SA2    X1          FETCH N
          SA1    A1+B1       FETCH LOC (S)
          SB7    X2          (B7) = N 
          SA3    A1+B1       FETCH LOC (C)
          SB6    X1 
          SA2    A3+B1       FETCH LOC (W)
          SA3    X3          FETCH C
          SA4    A2+B1       FETCH LOC (I)
          SA1    B6+X3       (A1) = LOC (S) + C 
          SB6    X2 
          SA2    X4          FETCH I
          SB6    B6+X2       LOC (W) + I
          SA3    B6-B1
          BX6    X3          (A6) = LOC (W) + I - 1 
          SA6    A3 
          SB5    54          (B5) = SHIFT COUNT 
          SB6    6           (B6) = 6 BITS PER CHARACTER
          MX6    0
          PX7    X6,B5       (X7) = REFRESH FOR X6 AND B5 
  
 SQU1     LX1    B5          POSITION CHARACTER 
          SB5    B5-B6       COUNT CHARACTERS IN WORD 
          BX6    X6+X1       ASSEMBLE WORD
          SB7    B7-B1       COUNT TOTAL CHARACTERS 
          PL,B5  SQU2        IF WORD NOT FULL 
          SA6    A6+B1       STORE WORD 
          UX6,B5  X7         START NEW WORD 
 SQU2     SA1    A1+B1       FETCH NEXT CHARACTER 
          NZ,B7  SQU1        LOOP UNTIL N CHARACTERS MOVED
  
          SB5    -B5         PREPARE TO FILL WITH SPACES
          SA1    =9R
          SB7    48+B5       SHIFT OFF UNWANTED SPACES
          AX7    X1,B7
          MI,B7  EXIT.       IF LAST WORD WAS FULL, RETURN
          BX6    X6+X7       INSERT SPACES
          SA6    A6+B1       STORE LAST WORD
          JP     EXIT.       RETURN 
  
  
          END 
