*COMDECK CBPUTWRD 
 PUTWORD  EJECT 
**        PUTWORD - STORE ONE WORD OF BOOLEAN BIT ITEM
*         INPUT 
*                X1 - BEGINNING BIT POSITION (UNCHANGED ON OUTPUT)
*                B3 - ADDRESS 
*                B4 - BIT LENGTH ITEM 
*                X6 - WORD TO STORE 
*         OUTPUT
*                B3 - NEW ADDRESS 
*                B4 - NEW BIT LENGTH
 PUTWORD  DATA   0
          SX7    60 
          IX3    X7-X1
          SB2    X3 
          LX6    B2,X6       ALIGN WORD 
          SX3    X1+B4       ENDING BIT POSITION
          IX2    X7-X3
          NG     X2,PW1      ITEM SPANS WORDS 
          MX0    1
          SB4    B4-B1
          AX0    B4          FORM MASK
          LX0    B2,X0
          SA2    B3 
          BX7    -X0*X2 
          BX6    X0*X6
          BX6    X6+X7
          SA6    A2 
          SB4    B0 
          EQ     PUTWORD
          SPACE  3
 PW1      IX2    X7-X1       60 - BBP 
          SB5    X2-1 
          MX0    1
          AX0    B5,X0       FORM MASK
          LX0    B2,X0       POSITION MASK
          SA4    B3 
          BX7    -X0*X4 
          BX3    X0*X6
          BX7    X7+X3
          SA7    A4 
          SB5    60 
          GE     B4,B5,PW2   60 OR MORE BITS
          SB6    X2 
          SB5    B4-B6       LENGTH -(60-BBP) 
          SB5    B5-B1
          MX0    1
          AX0    B5,X0       FORM MASK
          BX6    X0*X6
          SA3    B3+B1
          BX3    -X0*X3 
          BX6    X6+X3
          SA6    A3 
          SB4    B0          END OF ITEM
          EQ     PUTWORD
          SPACE  3
 PW2      ZR     X1,PW3 
          SB5    X1-1 
          MX0    1
          AX0    B5,X0
          SA4    B3+B1
          BX6    X0*X6
          BX4    -X0*X4 
          BX6    X6+X4
          SA6    A4 
 PW3      SB3    B3+B1       INCREMENT ADDRESS
          SB4    B4-60       DECREMENT LENGTH 
          EQ     PUTWORD
