ASMB,R,Q,C * NAME: .FIX * SOURCE: 92070-18222 * RELOC: 92070-1X222 * PGMR: HLC * * * **************************************************************** * * (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. * * **************************************************************** * * NAM .FIX,6 92070-1X222 REV.1941 790228 ENT .FIX,IFIX EXT .ZPRV * * * CALL WITH FLOATING POINT NUMBER IN A&B. RETURN WITH * INTEGER EQUIVALENT IN A. IF OVERFLOW, SET OVFF AND * RETURN 77777. IFIX EQU * .FIX NOP JSB .ZPRV DEF LIBX STA HIMAN SAVE MANTISSA. LDA B GET LO-MAN+EXP AND OM400 MASK TO GET LO-MAN CLE,SZA SET E-REG AS FLAG FOR CCE BITS IN LOW MAN XOR B GET EXPONENT CLO SLA,RAR FORM EXPONENT JMP UNFLO RETURN ZERO. ADA M16 COMPUTE SHIFT COUNT. SSA,RSS IF EXP 16 OR MORE, JMP OVFLO OVERFLOW. STA B SAVE SHIFT COUNT IN B. LDA HIMAN JMP CONT LOOP SLA,ARS SHIFT RITHT & TEST BIT LOST? CCE SET E-REG IF BIT LOST CONT ISZ B ANY MORE SHIFTS? JMP LOOP YES SEZ,SSA NO,BITS LOST? INA YES,BUMP IF ALSO NEG. JMP LIBX RETURN A= ANS UNFLO CLA JMP LIBX OVFLO LDA INFIN STO LIBX JMP .FIX,I DEF .FIX OM400 OCT -400 HIMAN NOP M16 DEC -16 INFIN OCT 77777 B EQU 1 END *