* COMPARE RECORD/KEY                                    HEADER  C:CMPREC0001.000
*                                                                       0002.000
*                  COMPARE RECORD/KEY                                   0003.000
*                                                                       0004.000
         M.PGM     C:CMPREC,MPX-32,3.6.1,00                             0005.000
         DEF       C:CMPREC                                             0006.000
* COMPARE TWO RECORDS OR TWO KEYS FOR A GIVEN                           0007.000
* LENGTH RETURNING INDICATION OF EQUAL,LESS                             0008.000
* OR GREATER FOR THE RELATION (FIRST,SECOND)                            0009.000
* A. IF COUNT=INDEX THEN RETURN EQUAL                                   0010.000
* B. COMPARE FIRST OPERAND OFFSET BY INDEX WITH                         0011.000
* SECOND OPERAND OFFSET BY INDEX;IF < THEN                              0012.000
* RETURN LESS; IF > THEN RETURN GREATER                                 0013.000
* C. INCREMENT INDEX                                                    0014.000
* D. LOOP TO A.                                                         0015.000
* 0 FOR <,1 FOR =,2 FOR >                                               0016.000
         M.REQS                                                         0017.000
C:CMPREC EQU       $                                                    0018.000
*                                  R0 -> RTNADD                         0019.000
*                                  R2 -> FIROP                          0020.000
*                                  R3 -> SECOP                          0021.000
         CI        R4,X'0'                                              0022.000
         BCT       LE,CMPXIT                                            0023.000
         TRN       R4,R7           R7 = -1 * COUNT                      0024.000
         LI        R4,1            R4 = RELVAL                          0025.000
         LI        R1,4*1          R1 = INDEX INCREMENT                 0026.000
CMPLP    EQU       $                                                    0027.000
         LW        R5,0W,X2        R5 = FIROP                           0028.000
         LW        R6,0W,X3        R6 = SECOP                           0029.000
         ABR       R5,0            EFFECT LOGICAL COMPARE               0030.000
         ABR       R6,0                                                 0031.000
         CAR       R6,R5                                                0032.000
         BCT       GT,CMPGT                                             0033.000
         BCT       LT,CMPLT                                             0034.000
         ADR       R1,R2                                                0035.000
         ADR       R1,R3                                                0036.000
         BIB       R7,CMPLP                                             0037.000
         BU        CMPXIT                                               0038.000
CMPGT    EQU       $                                                    0039.000
         LI        R4,3                                                 0040.000
CMPLT    EQU       $                                                    0041.000
         SUI       R4,1                                                 0042.000
CMPXIT   EQU       $                                                    0043.000
         TRSW      R0                                                   0044.000
         END                                                            0045.000
