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 ".XFXD" - FIX 3-WORD FLOATING TO DOUBLE INTEGER. NAM .XFXD,7 24998-1X074 REV.2001 780424 * ENT .XFXD EXT .FLUN,.FIXD,.FXDE,.DFER * * .XFXD CONVERTS A 3-WORD FLOATING-POINT NUMBER * TO A TWO-WORD INTEGER. * * CALLING SEQUENCE: * * JSB .XFXD * DEF * (A,B) = RESULT * * OVERFLOW OCCURS IF THE ARGUMENT IS OUTSIDE THE RANGE * [-2**31,+2**31) . THE OVERFLOW BIT IS SET AND THE * VALUE RETURNED IS (77777,177777) . SPC 4 * CONVERT INTO ".FIXD" * .XFXD NOP STA .FXDE+1 SAVE A-REG. LDA .XFXD,I COPY ARG ADDR. ISZ .XFXD STA ARG LDA .FXDE+1 RESTORE A-REG. JSB .DFER COPY ARG INTO ".FIXD" DEF .FXDE+1 ARG DEF *-* LDB .FXDE+3 LAST WORD JSB .FLUN A=EXP, B=LAST 8 MANTISSA BITS STB .FXDE+3 TRUNCATED BITS LDB .XFXD COPY ENTRY PT STB .FIXD JMP .FXDE,I USE COMMON CODE * END