/ / / 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