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 * JSB .DCO * DEF * [RETURN IF ARG1=ARG2] * [RETURN IF ARG1ARG2] 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