File: DINT.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/D=DINT(D) TRUNCATE DOUBLE PRECISION / / / VERSION 40A 31-MAY-80 WVDM / / SECT DINT JA #DINT DPCHK TEXT +DINT + DINTXR, SETX XRDINT SETB BPDINT BPDINT, F 0.0 F 0.0 XRDINT, F 0.0 F 0.0 DINTMX, E 9007199254740991. /2^53-1 M&S MAX / E 576460752303423487. /2^59-1 FPP MAX ORG 10*3+BPDINT FNOP JA DINTXR 0 #GOBAK, JA . / BASE 0 #DINT, STARTD SETX XRDINT FLDA 10*3 FSTA #GOBAK,0 LDX 1,1 FLDA% 0,1 SETB BPDINT BASE BPDINT FSTA BPDINT LDX 73,2 /SET SHIFT COUNT STARTE FLDA% BPDINT JGE DINTPO LDX 0,1 /REMEMBER SIGN FNEG /NEGATIVE ARG DINTPO, FSTA BPDINT /SAVE A WHILE FSUB DINTMX /TOO BIG ? JGT #DINTR /YES,SORRY FLDA BPDINT /GET AFRESH ALN 2 /FIX POSITIVE ARG JXN DINTNN,1 /WAS NEG ? FNEG DINTNN, FNORM JA #GOBAK /RETURN IN STRTE EXTERN #ARGER #DINTR, TRAP4 #ARGER END