*DECK C$BITCM 
          IDENT  C$BITCM
          TITLE  C$BITCM - COMPARE BOOLEAN BIT ITEMS
**        C$BITCM - COMPARE BOOLEAN BIT ITEMS 
* 
*         INPUT 
*                X1 - BYTE OFFSET A 
*                X2 - BYTE OFFSET B 
*                B3 - ADDRESS A 
*                B4 - ADDRESS B 
*                B5 - BIT LENGTH A
*                B6 - BIT LENGTH B
*         OUTPUT
*                B3 - 0 IF OPERANDS EQUAL, NON-ZERO IF UNEQUAL
          ENTRY  C.BITCM
 C.BITCM  DATA   0
*     CONVERT BYTE OFFSETS TO BEGINNING BIT POSITIONS 
          SX4    314632B
          IX4    X4*X1
          AX4    20 
          SB3    B3+X4       NEW ADDRESS A
          IX5    X4+X4
          LX4    3
          IX5    X4+X5
          IX1    X1-X5       NEW BCP A
          SX5    6
          IX6    X1*X5       NEW BBP A
          SA6    OFFSETA
          SX7    B3 
          SA7    ADDRA
          SX6    B5 
          SA6    LENGTHA
          SX4    314632B
          IX4    X2*X4
          AX4    20 
          SB4    B4+X4       NEW ADDRESS B
          IX5    X4+X4
          LX4    3
          IX5    X5+X4
          IX2    X2-X5       NEW BCP B
          SX5    6
          IX6    X2*X5       NEW BBP B
          SA6    OFFSETB
          SX7    B4 
          SA7    ADDRB
          SX6    B6 
          SA6    LENGTHB
 BITCM1   SA1    OFFSETA
          SA2    ADDRA
          SB3    X2 
          SA2    LENGTHA
          SB4    X2 
          RJ     GETWORD     GET NEXT WORD A
          SA6    AWORD
          SX7    B3 
          SA7    ADDRA
          SX7    B4 
          SA7    LENGTHA
          SA1    OFFSETB
          SA2    LENGTHB
          SB4    X2 
          SA2    ADDRB
          SB3    X2 
          RJ     GETWORD     GET NEXT WORD B
          SA2    AWORD
          IX6    X2-X6
          NZ     X6,UNEQUAL 
          SX7    B3 
          SA7    ADDRB
          SX7    B4 
          SA7    LENGTHB
          SA2    LENGTHA
          ZR     X2,BITCM3   END OF A 
          SA3    LENGTHB
          NZ     X3,BITCM1   NOT END OF A OR B
          SA1    OFFSETA
          SB4    X2 
          SA3    ADDRA
          SB3    X3 
 BITCM2   RJ     GETWORD     GET NEXT WORD A
          NZ     X6,UNEQUAL 
          NE     B4,B0,BITCM2      NOT END OF A 
          EQ     EQUAL             END OF A 
          SPACE  3
 BITCM3   SA2    LENGTHB
          ZR     X2,EQUAL    END OF A AND B 
          SA1    OFFSETB
          SB4    X2 
          SA3    ADDRB
          SB3    X3 
 BITCM4   RJ     GETWORD     GETNEXT WORD B 
          NZ     X6,UNEQUAL 
          NE     B4,B0,BITCM4      NOT END OF B 
          EQ     EQUAL
          SPACE  3
 EQUAL    SB3    B0 
          EQ     C.BITCM
          SPACE  3
 UNEQUAL  SB3    B1 
          EQ     C.BITCM
          SPACE  3
 ADDRA    BSS    1
 ADDRB    BSS    1
 AWORD    BSS    1
 LENGTHA  BSS    1
 LENGTHB  BSS    1
 OFFSETA  BSS    1
 OFFSETB  BSS    1
*CALL CBGETWRD
          END 
