File: EXPID2.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text)
/INTERNAL ROUTINE D=EXPID2(I,D) (USED BY EXPID D=I**D) / / / VERSION 40A 28-MAY-80 WVDM / / SECT EXPID2 JA #EXID2 EXTERN #ARGER EXP3ER, TRAP4 #ARGER TEXT +EXPID2+ EXP3XR, SETX XREXP3 SETB BPEXP3 BPEXP3, FNOP 0 0 XREXP3, F 0.0 EXP31, F 0.0 F 0.0 EXP32, F 0.0 FP1XP3, F 1. F 0.0 ORG 10*3+BPEXP3 FNOP JA EXP3XR 0 XP3RTN, JA . / BASE 0 #EXID2, STARTD FLDA 10*3 FSTA XP3RTN FLDA 0 SETX XREXP3 SETB BPEXP3 BASE BPEXP3 LDX 1,1 FSTA BPEXP3 FLDA% BPEXP3,1 /ADDR OF B FSTA EXP31 FLDA% BPEXP3,1+ /ADDR OF E FSTA EXP32 STARTF FLDA% EXP31 /GET B JEQ XP3RTN /0 ^ X = 0 JLT EXP3ER FSTA EXP31 /SAVE BASE FCLA FSTA EXP31+3 STARTE LDX 73,1 EXTERN DLOG JSR DLOG /CALL LOG JA .+4 /TAKE LOG (B) JA EXP31 FSTA EXP31 FLDA% EXP32 /GET EXPONENT JEQ EXP3ON /X^0=1 FMUL EXP31 FSTA EXP31 EXTERN DEXP JSR DEXP /CALL EXP. JA .+4 JA EXP31 JA XP3RTN / EXP3ON, STARTE FLDA FP1XP3 JA XP3RTN