         SYSTEM   SIG7FDP
         SYSTEM   BPM
         DEF      C:BIS
C:BIS    LCI      9
         STM,0    SAVE9             SAVE REGISTERS
         LW,6     11                SET INDEXING
         LI,7     5
         EXU      *11               LOAD IN PARM
         AI,11    1
         BDR,7    %-2
         CI,2     0                   IS HIGH ENRTY 0                   C:BIS
         BLE      *11             YES RETURN AT END                     C:BIS
         STW,11   RETURN            SAVE AT END RETURN ADDR
         AI,11    1
         ANLZ,8   *11               ANLZ INDEX ADDR
         B        GO,4
GO       B        BISHSTUP          TO BINARY SEARCH SET UP
         B        BISHINDX          TO GET BINARY SEARCH INDEX
         B        SERINDX           TO GET SERIAL SEARCH INDEX
BISHSTUP AI,4     1                 SIGNAL GO TO BISHINDX NEXT ROUND
         ANLZ,7   3,6               UPDATE METHOD KEY
         STW,4    *7
         LW,7     1                 LOAD LOWER LIMIT
         AW,7     2                 + UPPER LIMIT
         SAS,7    -1                NEW INDEX
         LI,6     0
         DW,6     3
         MW,6     3
         STW,7    *8                STORE NEW INDEX
         LCI      9                 RELOAD REGISTER
         LM,0     SAVE9
         AI,11    1
         B        *11               RETURN
GTINDX   LW,7     1                 LOAD LOWER LIMIT
         AW,7     3                 + ONE SINGLE RECORD LENGTH
         CW,7     2                 END OF SEARCH?
         BNE      BISHSTUP+3
         LCI      9
         LM,0     SAVE9             RELOAD REGISTERS
         B        *RETURN           AT END RETURN
BISHINDX ANLZ,8   *11               GET INDEX ADDR
         AI,5     0                 TEST CUTTING DIRECTION
         BLEZ     CUTLOW
         LW,2     *8                LAST INDEX BECOME UPPER LIMIT
         ANLZ,7   1,6               GET UPPER LIMIT ADDR
         STW,2    *7                UPDATE UPPER LIMIT
         B        GTINDX            TO GET NEW INDEX
CUTLOW   LW,1     *8
         ANLZ,7   0,6               GET LOWER LIMIT ADDR
         STW,1    *7                UPDATE LOWER LIMIT
         B        GTINDX            TO GET NEW INDEX
SAVE9    RES      9
RETURN   RES      1
SERINDX  AW,1     3                 ADD ONE SINGLE RECORD LENGTH
         CW,1     2                 SEARCH ALL TABLE ?
         BG       REB               TO RETURN
         AI,11    1
         ANLZ,7   0,6               GET LOWER LIMIT ADDR
         STW,1    *7                STORE INDEX
         STW,1    *8                USE LOWER LIMIT AS AN INDEX
         LCI      9
         LM,0     SAVE9
         B        *11               RETURN
REB      LCI      9
         LM,0     SAVE9
         B        *RETURN           AT END RETURN
         END
