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 ".MOD" - TRIPLE PRECISION REMAINDERING. NAM .MOD,7 24998-1X058 REV.2001 781016 * ENT .MOD EXT .CFER,.TSUB,.TMPY,.TDIV,.YINT,.ENTR,.4ZRO * * .MOD TAKES THE TRIPLE-PRECISION REMAINDER FROM THE DIVISION * OF TWO TRIPLE-PRECISION ARGUMENTS, I.E. * .MOD(X,Y) = X - [X/Y]*Y * WHERE [Z] DENOTES TRUNCATION, AS IN .YINT . * * CALLING SEQUENCE: * * JSB .MOD * DEF *+4 * DEF * DEF * DEF * * * METHOD: AS ABOVE, UNLESS X/Y OVERFLOWS OR Y=0, IN WHICH CASE * X IS RETURNED. SKP RESLT BSS 1 X BSS 1 Y BSS 1 .MOD NOP JSB .ENTR COPY ADDRESSES DEF RESLT JSB .TDIV X/Y DEF TEMP DEF X,I DEF Y,I SOC OFL ? JMP OFL YES, RESULT = X JSB .YINT [X/Y] DEF *+3 DEF TEMP DEF TEMP JSB .TMPY [X/Y]*Y DEF TEMP DEF TEMP DEF Y,I JSB .TSUB X-[X/Y]*Y DEF RESLT,I DEF X,I DEF TEMP JMP .MOD,I EXIT * * X/Y OVERFLOWS OR Y=0, RESULT=X * OFL JSB .CFER SET RESULT = X DEF RESLT,I DEF X,I JMP .MOD,I EXIT * * LOCALS. * TEMP BSS 4 TEMP * END