ASMB,L,R,C
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
*   NAME: PART OF MATH LIBRARY
*   SOURCE:  24998-18XXX  SEE NAM FOR LAST THREE DIGITS 
*   RELOC: PART OF 24998-12001
*   PGMR: BG & JTS
* 
      HED ".DCO" - DOUBLE INTEGER COMPARE.
      NAM .DCO,7 24998-1X037 REV.2001 790417
* 
      ENT .DCO
* 
A     EQU 0 
B     EQU 1 
* 
*     .DCO COMPARES TWO DOUBLE INTEGERS.  A,B,E & O ARE PRESERVED.
* 
*     CALLING SEQUENCE: 
* 
*                   DLD <ARG1>
*                   JSB .DCO
*                   DEF <ARG2>
*                   [RETURN IF ARG1=ARG2] 
*                   [RETURN IF ARG1<ARG2] 
*                   [RETURN IF ARG1>ARG2] 
      SPC 2 
.DCO  NOP 
      STA SAVEA     SAVE A & B. 
      STB SAVEB 
      ERA,ALS       SAVE E & O. 
      SOC 
      INA 
      STA E&O 
      LDA .DCO,I    GET ARG2. 
      STA ARGP      MAY BE IN (A,B) ! 
      LDA SAVEA 
      DLD ARGP,I
      XOR SAVEA     SIGNS SAME ?
      SSA 
      JMP DCO1      NO, ALREADY HAVE ANSWER.
      XOR SAVEA     YES, SUBTRACT.
      CMA           -ARG2-1 
      ADA SAVEA     ARG1-ARG2-1 
      CMA,SZA       ARG2-ARG1.  UPPER WORDS EQUAL ? 
      JMP DCO2      NO, HAVE ANSWER.  (+ IS <)
      CMB,CLE       (1-E,B) = -ARG2L-1, 17-BIT. 
      ADB SAVEB     (1-E,B) = ARG1L-ARG2L-1 
      CMB,SZB,RSS   (E,B) = ARG2L-ARG1L.  EQUAL ? 
      JMP DCO3      YES.
      ALS,SLA,ERA   COPY SIGN TO A, SKIP. 
DCO1  XOR SAVEA     RESTORE ARG2
DCO2  ISZ .DCO      SKIP "=" RETURN 
      SSA           ARG2-ARG1>0 ? 
      ISZ .DCO      NO, ARG1>ARG2, SKIP "<" RETURN
DCO3  ISZ .DCO      SKIP ARG ADDR 
      LDA E&O       RESTORE E & O.
      CLO 
      SLA,ELA 
      STO 
      LDA SAVEA     RESTORE A & B.
      LDB SAVEB 
      JMP .DCO,I    EXIT
* 
SAVEA BSS 1 
SAVEB BSS 1 
ARGP  BSS 1         ADDR ARG
E&O   BSS 1         E & O.
      END 
                  