
/DEC-08-FMGB-PA
/DOUBLE PRECISION COSINE SUBROUTINE
/CALLS DEC-08-FMFA
/POINTERS TO DEC-08-FMFA FOLLOW
ARG=741
DSIN=400

*1000
DCOS,	0
	TAD I DCOS	/FETCH ADDRESS OF
	DCA ADDRSS	/ARGUMENT
	TAD I ADDRSS	/FETCH HIGH ORDER
	DCA EX		/ARGUMENT
	ISZ ADDRSS	/INCREMENT ADDRESS POINTER
	TAD I ADDRSS	/FETCH LOW ORDER
	DCA EX+1	/ARGUMENT
	TAD EX		/IS ARGUMENT EQUAL
	SZA CLA		/TO ZERO
	JMP TSIGNN	/NO: TEST THE SIGN
	TAD EX+1	/TEST LOW ORDER BITS
	SZA CLA		/FOR ZERO
	JMP TSIGNN	/NOT EQUAL TO ZERO
	CMA
	RAR
	DCA I ARGPNT
	CMA
	DCA I ARGPNT+1	/SET ANSWER TO 1
	JMP EXIT
TSIGNN,	TAD EX		/SEE IF X>0
	SMA CLA
	JMP ARGPOS	/ARGUMENT IS >0
	TAD EX+1	/ARGUMENT IS <0
	CLL CMA IAC	/NEGATE IT
	DCA EX+1
	TAD EX
	CMA
	SZL
	IAC
	DCA EX


/PAGE 2

ARGPOS,	CLL CLA
	TAD EX+1
	CMA IAC
	TAD PIOT+1	/SUBTRACT X FROM
	DCA EX+1	/PI/2
	TAD EX
	CMA
	SZL
	IAC
	TAD PIOT
	DCA EX
	JMS I DSINPT	/CALL SINE SUBROUTINE
	EX		/ARGUMENT ADDRESS
EXIT,	ISZ DCOS	/RETURN TO CALL+1
	JMP I DCOS	/ANSWER IN ARG,ARG+1
EX,	0
	0
ARGPNT,	ARG
	ARG+1
ADDRSS,	0
DSINPT,	DSIN
PIOT,	1444
	1767



PAUSE





/