COMKBST 
COMMON
          CTEXT  COMKBST - BINARY SEARCH TABLE. 
          SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMKBST
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4
***       BST - BINARY SEARCH TABLE.
*         G. W. PROPP.  76/05/01. 
 BST      SPACE  4,20 
**        BST - BINARY SEARCH TABLE.
* 
*         ENTRY  (X1) = CRITERION.
*                (X2) = MASK. 
*                (B4) = FWA OF TABLE. 
*                (B3) = LENGTH OF TABLE.
* 
*         EXIT   (X1) = CRITERION.
*                (X2) = MASK. 
*                (X3) = 0 IF ENTRY NOT FOUND. 
*                     = ENTRY IF FOUND. 
*                (A3) = ADDRESS OF FOUND ENTRY. 
* 
*         USES   A - 3. 
*                X - 3, 4, 6. 
*                B - 3, 4.
  
  
 BST3     SX3    0           RETURN *NOT FOUND* 
 BST      SUBR               ENTRY/EXIT 
          SB3    B3+B4       LWA+1 OF TABLE 
          SX3    B0 
          EQ     BST2        ENTER LOOP 
 BST1     SB4    A3+         SET NEW LOW LIMIT
 BST2     SX4    B3-B4       FIND MIDDLE
          AX4    1
          SA3    X4+B4       READ ENTRY 
          BX6    X2*X3       MASK ENTRY 
          IX6    X6-X1       ENTRY - CRITERION
          ZR     X6,BST      IF FOUND RETURN
          ZR     X4,BST3     IF TABLE EXHAUSTED 
          NG     X6,BST1     IF ENTRY .LT. CRITERION
          SB3    A3          SET UPPER LIMIT
          EQ     BST2        CONTINUE SEARCH
  
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 BST      EQU    /COMKBST/BST 
 QUAL$    ENDIF 
          ENDX
