************************************************************
*        SUBROUTINE-ID: CBS
*        STOLEN BY: RUTH DROZIN & JON ESCHINGER
*                   FEBRUARY, 1979 FOR FILESCAN.
*        PURPOSE: FORTRAN 4 SUBROUTINE WHICH ALLOWS
*                 THE CALLING PROGRAM TO COMPARE 2 BYTE
*                 STRINGS OF UP TO 255 BYTES IN LENGTH.
*
*                 THE RESULT OF THE OPERATION WILL BE:
*                 0 - THE TWO BYTE STRINGS ARE EQUAL
*                 1 - THE 1ST BYTE STRING IS LESS THAN THE
*                     2ND BYTE STRING.
*                 2 - THE 1ST BYTE STRING IS GREATER THAN
*                     THE 2ND BYTE STRING.
************************************************************
*        CALLING SEQUENCE:
*
*        CALL CBS   (FIELD1, DISP1, FIELD2, DISP2, LENGTH, RESULT)
*
*        WHERE:
*        FIELD1 IS AN INTEGER ARRAY OR WORD
*        FIELD2 IS AN INTEGER ARRAY OR WORD
*        LENGTH IS AN INTEGER WORD WHICH CONTAINS THE
*               NUMBER OF BYTES TO BE COMPARED
*        RESULT IS AN INTEGER WORD WHICH WILL CONATIN 1 OF
*               THE FOLLOWING:
*               0 FIELD1 = FIELD 2
*               1 FIELD1 < FIELD2
*               2 FIELD1 > FIELD2
*
*
*        DISP1 IS AN INTEGER WORD WHICH CONTAINS THE DISPLACEMENT IN
*                 BYTES IN FIELD1 FOR THE START OF THE COMPARE
*        DISP2 IS AN INTEGER WORD WHICH CONTAINS THE DISPLACEMENT IN
*                 BYTES IN FIELD2 FOR THE START OF THE COMPARE
************************************************************
         PAGE
         SYSTEM   SIG7FDP
         SYSTEM   BPM
         DEF      CBS
         REF      9SETUPN
CBS      EQU      $
         CI,14    6
         BNE      $+10
         LI,5     6
         BAL,6    9SETUPN
         DATA     FIELD1
         DATA     DISP1
         DATA     FIELD2
         DATA     DISP2
         DATA     LENGTH
         DATA     RESULT
         B        $+7
         LI,5     4
         BAL,6    9SETUPN
         DATA     FIELD1
         DATA     FIELD2
         DATA     LENGTH
         DATA     RESULT
         LW,10    FIELD1          GET FIELD1 ADDRESS
         SLS,10   2               SHIFT TO BYTE
         LW,11    FIELD2          GET FIELD2 ADDRESS
         SLS,11   2
         LW,8     *LENGTH         GET THE LENGTH
         STB,8    11
         CI,5     4
         BE       $+7
         AI,10    -1
         LW,8     *DISP1
         AW,10    8
         AI,11    -1
         LW,8     *DISP2
         AW,11    8
         CBS,10   0               DO COMPARE
         STCF     9
         SLS,9    2               GET RID OF CC1 & CC2
         SLS,9    -30             GET RID OF FLOATING
         STW,9    *RESULT         STORE RESULT
         B        *15
FIELD1   DATA     0
FIELD2   DATA     0
DISP1    DATA     0
DISP2    DATA     0
LENGTH   DATA     0
RESULT   DATA     0
         END
