--- /dev/null
+/
+/
+/ A S I N
+/ - - - -
+/
+/SUBROUTINE ASIN(X)
+/
+/ VERSION 5A 4-27-77 PT
+/
+ SECT ASIN
+ JA #ASIN
+ASINEQ, FLDA FPI2AS /RETURN PI OVER TWO.
+ FMUL ASIN8 /TIMES ARG.
+ JA ASNRTN
+ TEXT +ASIN +
+ASINXR, SETX XRASIN
+ SETB BPASIN
+BPASIN, FNOP
+ 0
+ 0
+XRASIN, F 0.0
+ASIN8, F 0.0
+ASIN7, F 0.0
+F1ASIN, F 1.
+FPI2AS, 1 /PI OVER 2
+ 3110
+ 3755
+ ORG 10*3+BPASIN
+ FNOP
+ JA ASINXR
+ 0
+ASNRTN, JA .
+ BASE 0
+#ASIN, STARTD
+ FLDA 10*3
+ FSTA ASNRTN
+ FLDA 0
+ SETX XRASIN
+ SETB BPASIN
+ BASE BPASIN
+ LDX 1,1
+ FSTA BPASIN
+ FLDA% BPASIN,1 /ADDR OF X
+ FSTA BPASIN
+ STARTF
+ FLDA% BPASIN /GET X
+ FSTA ASIN8 /STORE ARG AWAY.
+ JGE .+3 /TAKE ABSOLUTE VALUE.
+ FNEG
+ FSUB F1ASIN /SEE IF >1
+ JLE ASINOK /CONTINUE PROCESS.
+ EXTERN #ARGER
+ TRAP4 #ARGER /TRAP OUT.
+ JA ASNRTN /RETURN.
+ASINOK, FLDA ASIN8 /X USES STRAIGHT TRIG RELATION.
+ FNEG
+ FMUL ASIN8 /-X^2
+ FADD F1ASIN /1.-X^2
+ JEQ ASINEQ /IF 0,FAC=PI OVER 2
+ FSTA ASIN7
+ EXTERN SQRT
+ JSR SQRT
+ JA .+4
+ JA ASIN7
+ FSTA ASIN7 /SQRT(1.-X^2)
+ FLDA ASIN8
+ FDIV ASIN7 /X/SQRT(1.X^2)
+ FSTA ASIN7
+ EXTERN ATAN
+ JSR ATAN /TAKE THE ARCTANGENT.
+ JA ASNRTN
+ JA ASIN7
+\f