software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / dexp3.ra
diff --git a/sw/f4/FRTSRC/dexp3.ra b/sw/f4/FRTSRC/dexp3.ra
new file mode 100644 (file)
index 0000000..7038be8
--- /dev/null
@@ -0,0 +1,70 @@
+/
+/
+/
+/      D  E  X  P  3
+/      -  -  -  -  -
+/
+/SUBROUTINE    DEXP3(B,E) FOR DOUBLE TO DOUBLE
+/
+/ VERSION 5A 4-26-77 MH
+/
+       SECT    DEXP3
+       JA      #DEXP3
+       DPCHK
+       EXTERN  #ARGER
+EXP3ER,        TRAP4   #ARGER
+       TEXT    +DEXP3 +
+EXP3XR,        SETX    XREXP3
+       SETB    BPEXP3
+       JA      .+3
+BPEXP3,        FNOP
+       0
+       0
+XREXP3,        F 0.0
+EXP31, F 0.0
+       F 0.0
+EXP32, F 0.0
+       F 0.0
+       ORG     10*3+BPEXP3
+       FNOP
+       JA      EXP3XR
+       0
+XP3RTN,        JA      .
+FP1XP3,        F 1.
+       F 0.0
+       BASE            0
+#DEXP3,        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
+       STARTE
+       FLDA%   EXP31   /GET B
+       JEQ     XP3RTN  /0 ^ X = 0
+       FSTA    EXP31   /SAVE BASE
+       FLDA%   EXP32   /GET E
+       JEQ     EXP3ON  /X ^ 0 = 1
+       FSTA    EXP32   /SAVE EXPONENT
+       FLDA    EXP31
+       JLT     EXP3ER  /ALL IS NOT WELL
+       EXTERN  DLOG
+       JSR     DLOG    /CALL LOG
+       JA      .+4     /TAKE LOG (B)
+       JA      EXP31
+       FMUL    EXP32   /MULT BY EXPONENT-E
+       FSTA    EXP31
+       EXTERN  DEXP
+       JSR     DEXP    /CALL EXP.
+       JA      XP3RTN
+       JA      EXP31
+EXP3ON,        FLDA    FP1XP3
+       JA      XP3RTN
+\f