FTN4
      FUNCTION BITSR(IBUF,ISTBT,IENBT,NBIT),. 92080-1X051 REV.2026
     .800515
C 
C 
C  ******************************************************************** 
C  *                                                                  * 
C  *  NAME:   BITSR     BITS SEARCH, STOP WHEN END OF TABLE IS FOUND  * 
C  *  SOURCE: &BITSR    92080-18051                                   * 
C  *  BINARY: %BITSR    ----NONE---    PART OF  %GPLB4  92080-16001   * 
C  *                                                                  * 
C  *  PGMR:   FRANCOIS GAULLIER                                       * 
C  *                                                                  * 
C  ******************************************************************** 
C 
C 
C     **************************************************************
C     * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
C     * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C     * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C     * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
C     **************************************************************
C 
C 
C 
C     THIS FUNCTION SEARCH INTO A BITS STRING FOR A GIVEN NUMBER
C     OF SUCCESIVE BITS VALUE EQUAL TO ZERO.
C     BITS ARE NUMBERED FROM 1 TO N, BIT 1 BEING THE BIT15 OF THE 
C     FIRST WORD OF THE BUFFER, BIT 2 THE BIT14 OF 1ST WORD, BIT 16 
C     THE BIT0 OF 1ST WORD, BIT17 THE BIT15 OF 2ND WORD .. AND SO ON. 
C 
C          ABREG = BITSR ( IBUF, ISTBIT, LSTBIT, NBIT ) 
C     WHERE:
C                   IBUF   IS THE BUFFER
C                   ISTBIT STARTING BIT BEING CHECKED 
C                   LSTBIT LAST BIT BEING CHECKED 
C                   NBIT   NUMBER OF CONSECUTIVE BIT THAT 
C                          HAS TO BE CLEARED. 
C     RETURN: 
C                 OK             NOT NOW                    NEVER 
C 
C    A REG.      BIT #              -1                        -1
C    B REG.       0                  0                        -1
C 
C 
C     NOTE: 
C    -------
C        THIS SUBROUTINE USES THE SUBROUTINE: BITSH 
C 
C 
      DIMENSION IBUF(1),IREG(2) 
      INTEGER AREG,BREG 
      EQUIVALENCE (ABREG,IREG(1),AREG),(IREG(2),BREG) 
C-----PRESET ERROR RETURN VALUE 
      AREG=-1 
      BREG=-1 
C-----CHECK IF ARGUMENT ARE OK
      IF ( NBIT .LE. 0 )  GOTO 900
      IF ( ISTBT+NBIT-1 .GT. IENBT )  GOTO 900
C-----SEARCH IN THE TABLE 
      ISTBIT=ISTBT
  100 ABREG=BITSH(IBUF,ISTBIT,IENBT,NBIT) 
      IF ( BREG .EQ. -1 )  GOTO 200 
      IF ( AREG .EQ. -1 )  GOTO 100 
  200 BREG=0
C-----RETURN THE VALUE
  900 BITSR=ABREG 
      RETURN
      END 
      END$
                                                                              