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 ".YINT" - TRIPLE PRECISION TRUNCATION. NAM .YINT,7 24998-1X133 REV.2001 780424 * ENT .YINT EXT .TENT,.TADD,.ENTR * * .YINT RETURNS THE TRIPLE PRECISION NUMBER OF INTEGER VALUE * WHICH HAS THE MAXIMUM MAGNITUDE LESS THAN OR EQUAL TO THE * ARGUMENT, I.E. * .YINT(X) = SIGN(FLOOR(ABS(X)),X) * * CALLING SEQUENCE: * * JSB .YINT * DEF *+3 * DEF * DEF * * * METHOD: RESULT = FLOOR(X) IS TAKEN USING .TENT . IF X<0 AND * BITS WERE TRUNCATED, 1.0 IS ADDED. * RESLT BSS 1 ARG BSS 1 .YINT NOP JSB .ENTR COPY ADDR DEF RESLT JSB .TENT TAKE FLOOR(X) DEF *+3 DEF RESLT,I DEF ARG,I LDA ARG,I SZB IF NO BITS WERE TRUNCATED, DONE. SSA,RSS IF X>= 0, DONE. JMP .YINT,I JSB .TADD ELSE ADD 1.0 DEF RESLT,I DEF RESLT,I DEF ONE JMP .YINT,I EXIT * ONE DEY 1.0 END