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 ".TFXD" - FIX 4-WORD FLOATING TO DOUBLE INTEGER. NAM .TFXD,7 24998-1X186 REV.2001 780424 * ENT .TFXD EXT .FLUN,.CFER,.FIXD,.FXDE * A EQU 0 B EQU 1 * * .TFXD CONVERTS A 4-WORD FLOATING-POINT NUMBER * TO A TWO-WORD INTEGER. * * CALLING SEQUENCE: * * JSB .TFXD * 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" * .TFXD NOP STA .FXDE+1 SAVE A-REG. LDA .TFXD,I COPY ARG ADDR. ISZ .TFXD STA ARG LDA .FXDE+1 RESTORE A-REG. JSB .CFER COPY ARG INTO ".FIXD" DEF .FXDE+1 ARG DEF *-* LDB .FXDE+4 LAST WORD JSB .FLUN SEPARATE MANT, EXP IN LAST WD SWP IOR .FXDE+3 TRUNCATED BITS STA .FXDE+3 LDA B EXPONENT LDB .TFXD COPY ENTRY PT STB .FIXD JMP .FXDE,I USE COMMON CODE * END