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 * *