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 <ARG> 
*                   <RETURN>   (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 
                                                                                                                          