File: DATAN2.RA of Tape: Sources/Fortran/os8-f4-3
(Source file text) 

/D=DATAN2(D1,D2) DOUBLE PREC. ARC-TANGENT (2 ARGUMENTS)
/
/
/ VERSION 40A 28-MAY-80 WVDM
/
/
	SECT	DATAN2
	JA	#DATN2
	DPCHK
	TEXT	+DATAN2+
ATN2XR,	SETX	XRATN2
	SETB	BPATN2
BPATN2,	FNOP
	0
	0
XRATN2,	F 0.0
YCOR,	F 0.0
	F 0.0
XCOR,	F 0.0
	F 0.0
	ORG	10*3+BPATN2
	FNOP
	JA	ATN2XR
	0
AT2RTN,	JA	.
/
FPIAT2,	2
	3110		/PI
	3755
	2421
	0264
	3016
/
ATPI,	0001
	3110		/PI/2
	3755
	2421
	0264
	3016
/
	BASE	0
#DATN2,	STARTD
	FLDA	10*3
	FSTA	AT2RTN
	FLDA	0
	SETX	XRATN2
	SETB	BPATN2
	BASE	BPATN2
	LDX	1,1
	FSTA	BPATN2
	FLDA%	BPATN2,1	/ADDR OF Y
	FSTA	YCOR
	FLDA%	BPATN2,1+	/ADDR OF X
	FSTA	XCOR
	STARTE
	FLDA%	YCOR
	FSTA	YCOR		/SAVE FOR A SECOND
	LDX	1,2		/POSITIVE Y
	JEQ	ATN0
	JGT	ATN1
	LDX	0,2
ATN1,	FLDA%	XCOR		/GET X - THE QUADRAND
	FSTA	XCOR		/+MOVE IT TO A SAFE PLACE
	JEQ	ATASP
	FLDA	YCOR		/Y/X
	FDIV	XCOR
	FSTA	YCOR
	EXTERN	DATAN
	JSR	DATAN		/CALL ATAN
	JA	.+4		/TAKE ARCTAN OF Y/X
	JA	YCOR
	FSTA	YCOR		/SAVE IT AWAY
	JGE	A2		/SKIP IF 1ST OR 3RD QUADS
	FADD	FPIAT2		/ADD PI FOR 4TH QUAD
	FSTA	YCOR
A2,	JXN	AT2RTN,2	/DONE IF 1 OR 4 Q
	FLDA	YCOR
	FSUB	FPIAT2		/2ND OR 3RD Q
	JA	AT2RTN
/
ATASP,	FLDA	ATPI		/PI/2
	JXN	ATNG,2
	FNEG
ATNG,	JA	AT2RTN
/
ATN0,	FLDA%	XCOR
	JLT	POSX
	FCLA			/X POS, ANS =0
	JA	AT2RTN
/
POSX,	FLDA	FPIAT2		/X LT 0, ANS = PI
	JA	AT2RTN