ASMB,R,L,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
* 
      NAM ENTIE,7 24998-1X098 REV.2001 750701 
      ENT ENTIE,.RND
* THE ENTIER AND ROUND ROUTINES ARE USED FOR CONVERTING 
* FLOATING POINT NUMBERS TO INTEGERS.  THEY ARE DEFINED AS
*  FOLLOWS: 
* 
*     ENTIER(X) = MAX (N ! N<= X) 
*     .RND(X) = ENTIER (+.5)
* 
*     IF THE RESULT OVERFLOWS, 77777 OR 100000 IS RETURNED. 
ENTIE NOP 
      STA T         SAVE HIGH PART OF REAL #
      STB 0         MOVE LOW PART TO A. 
      AND .377      ISOLATE EXPONENT
      SLA,RAR        EXTEND 
      IOR XSEXP     EXPONENT. 
      ADA MIN16     COMPUTE -SHIFT-1
      SSA,RSS       IF NOT NEGATIVE, THE
      JMP OVER       CONVERSION OVERFLOWS.
      ELB           FORCE E TO EQUAL THE FIRST BIT
      STA 1         SHIFTED OUT.
      LDA T         GET FRACTION BACK IN A. 
      ISZ 1         TEST FOR END OF COUNT (ISZ IS 
      RSS           USED TO PRESERVE E REGISTER)
      JMP ENTIE,I   RETURN---ALL DONE 
      CLE,SLA,ARS   RIGHT SHIFT&
      CME             RESET E REGISTER. 
      JMP *-5 
* 
OVER  LDA MAX       RETURN LARGEST INTEGER
      LDB T            WITH CORRECT SIGN
      CLE,SSB       FOR OVERFLOW
      CMA 
      JMP ENTIE,I 
.RND  NOP 
      JSB ENTIE     DO ENTIE FIRST
      SEZ    IF E IS SET, WE ROUND BY 
      INA           ADDING ONE TO THE ENTIER RESULT.
      JMP .RND,I
* 
* 
T     NOP           TEMP STORAGE
.377  OCT 377       USED TO MASK OFF EXPONENT 
XSEXP OCT 77600     USED TO FILL IN NEGABITS FOR - EX 
MIN16 DEC -16 
MAX   OCT 77777 
      END 
* 
* 
                                                                                                                                                                              