File TANGENT

Directory of image this file is from
This file as a plain text file

*20
///PROGRAM TANGENT.
	 
/CALCULATES AND TYPES OUT RADIANS, COSINE
/TANGENT, AND DEGREES.
	 
	LMODE
	SEGMNT 5
	*20
	 
BEG,	STARTF
	SETWRD
	0742
D1,	LIF 4
	INTRACT
	CJ1
	M1		/CALC COS
	  		/ANGLE(DEG):
CJ1,	T1
	J1
T1,	0
J1,	JMP D1		/CR
	JMP .+1		/NUM
	JMP RADIAN	/DEG TO RAD
	JMP TYPRAD
	JMP COSINE
	JMP TYPCOS
	 
D2,	LIF 4
	INTRACT
	CJ2
	M2		/CALC ARCTAN
	   		/TANGENT:
CJ2,	T1
	J2
J2,	JMP D2		/CR
	JMP .+1		/NUM
	JMP ARCTAN
	JMP TYPRAD
	JMP DEGREE	/RAD TO DEG
	JMP TYPDEG
	JMP BEG
	 
//SUBROUTINE RADIAN.
/CALLS:  JMP RADIAN
/        ENTER WITH DEGREES IN FAC.
/        EXIT WITH RADIANS IN FAC.
/        RAD=DEG X 2PI/360
/        RAD=DEG / 57.2958
	 
/        JMP DEGREE
/        ENTER WITH RADIANS IN FAC.
/        EXIT WITH DEGREES IN FAC.
/        DEG=RAD X 360/2PI
/        DEG=RAD X 57.2958
	 
/SIGN IS CARRIED THROUGH.
	 
RADIAN,	FDIV
	FCON
	JMP 0
	 
DEGREE,	FMUL
	FCON
	JMP 0
	 
FCON,	6		/57.2958
	3451
	3563
	 
//END SUBROUTINE RADIAN.
// SUBROUTINE COSINE.
	 
/ENTER WITH ANGLE IN RADIANS IN FAC.
/LEAVE WITH COSINE IN FAC.
	 
	 
/FORMULA: COSX= 1 + A2*X^2 + A4*X^4
/         A2= -.49670
/         A4= +.03705
	 
/WHERE, 0<X<PI\2
	 
COSINE,	STORE
	XFAC
	ADD 0
	STC .+11
	LOAD
	A4
	JMP MULT
	FADD
	A2
	JMP MULT
	FADD
	FP1
	0		/LEAVE
	 
A2,	7776		/-.4967
	4015
	4105
	 
A4,	7773		/+.03705
	2276
	0337
	 
FP1,	1
	2000
	0
	 
MULT,	FMUL
	XFAC
	FMUL
	XFAC
	JMP 0
	 
XFAC,	0
	0
	0
//END SUBROUTINE COSINE.
// SUBROUTINE ARCTAN.
	 
/ENTER WITH TANGENT IN FAC.
/EXIT WITH ANGLE IN RADIANS IN FAC.
	 
/FORMULA:
/ARCTANX=PI\4 + C1(XFAC) + C3(XFAC)^3
/             + C5(XFAC)^5
	 
/WHERE XFAC= (X-1)\(X+1)
/      0<X,<INFINITY
/      C1=+.995354
/      C3=-.288679
/      C5=+.079331
/    PI\4=+.7854
	 
	 
ARCTAN,	FADD
	FP1
	ADD 0
	STC ARCTX
	STORE
	XFAC		/X+1
	LOAD
	XFAC
	FSUB
	FP2		/X-1
	FDIV
	XFAC
	STORE
	XFAC		/X-1\X+1
	 
	LOAD
	C5
	JMP MULT
	FADD
	C3
	JMP MULT
	FADD
	C1
	JMP MULT+2
	FADD
	PID4
ARCTX,	0		/LEAVE
	 
C1,	0000		/+.995354
	3766
	3703
	 
C3,	7776		/-.288679
	5541
	4442
	 
C5,	7774		/+.079331
	2423
	6045
	 
PID4,	0000		/PI\4 OR .7854
	3110
	3776
	 
FP2,	2
	2000
	0
	 
//END SUBROUTINE ARCTAN.
	 
/ROUTINE TO TYPOUT RADIANS, COSINE,
/AND DEGREES.
TYPRAD,	LDA
	0
	STC TYPX
	OUTPUT
	BUFRAD+4
	LIF 4
	MESOUT
	BUFRAD
	JMP TYPX
	 
TYPCOS,	LDA
	0
	STC TYPX
	OUTPUT
	BUFCOS+4
	LIF 4
	MESOUT
	BUFCOS
	JMP TYPX
	 
TYPDEG,	LDA
	0
	STC TYPX
	OUTPUT
	BUFDEG+4
	LIF 4
	MESOUT
	BUFDEG
	JMP TYPX
	 
TYPX,	0
	 
/TYPOUT BUFFER FOLLOWS.
BUFRAD,	2201		/RA
	0411		/DI
	0116		/AN
	2375		/S=
	4040
	4040
	4040
	4040
	4543
BUFCOS,	0317		/CO
	2311		/SI
	1605		/NE
	7540		/=
	4040
	4040
	4040
	4040
	4543
BUFDEG,	0405		/DE
	0722		/GR
	0505		/EE
	2375		/S=
	4040
	4040
	4040
	4040
	4543
	 
/END TYPOUT BUFFER.
	 
/MESSAGES.
M1,	TEXT $CALCULATE COSINE$
	4543
	TEXT $ANGLE(DEG): $
M2,	TEXT $CALCULATE ARCTAN$
	4543
	TEXT $TANGENT:$
//PBLOCK
/COMMAND DECODER ASSIGNMENTS
	STOP=JMP 20
	SCAN=JMP 21
	STRSCN=JMP 21
	INUNIT=JMP 22
	STORIT=JMP 23
	GETFIL=JMP 24
	GETFST=JMP 24
	GETNAM=JMP 25
	GETNXT=JMP 25
	DIRINI=JMP 26
	DIRLST=JMP 27
	ASSIGN=JMP 30
	DEASS=JMP 31
	OUTUNIT=JMP 32
	LODBLK=JMP 33
	RUNBLK=JMP 34
	FIND=JMP 35
	CALL=JMP 37
	UNCALL=JMP 40
	RUNPRG=JMP 41
	INTRACT=JMP 42
	MESOUT=JMP 43
	DISK=JMP 44
	TABSET=JMP 45
	INTABLE=JMP 45
	MISSNG=JMP 47
	TABGET=JMP 50
	TABPUT=JMP 51
	TABZER=JMP 52
	MAKDIL=JMP 53
	TABINI=JMP 54
	MGETNAM=JMP 55
	MGETFIL=JMP 56
	MSTORIT=JMP 57
/
/COMMAND LOCATIONS.
/
	FILNAM=2320
	WORD1=2323
	WORD2=2324
	INBUF=2325
/COMMAND NUMBERS.
	YES=17
	NO=20
	SAMPL=21
	TABLE=22
	GO=23
	NEXT=24
	CU=25
	CONT=26
	ALL=27
	AVG=30
	A=31
	B=32
	C=33
	D=34
	E=35
	F=36
	G=37
	H=40
	II=41
	J=42
	PLOT=43
	PRINT=44
	T=45
/
/EXEC3 ASSIGNMENTS
/
	OPR=500
	IOF=6002
	ION=6001
	EXC=1710
	REXC=540
	RLSW=514
	RRSW=515
	IOCALL=511
	AWAKE=501
	QUIT=505
	PAUSE=507
	IOCLR=502
	SETCON=510
	SETCLK=503
	PLINE=524
	READ=512
	WRITE=532
	SETDSK=513
	 
/DEVICE ASSIGNMENTS
/
	KBD=13
	TLP=4
	LPT=24
	BPLT=30
	PLT=25
	CLK=2
	SCOPE=26
/FLOATING POINT DEFINITIONS.
/
	FAC=0
	STARTE=740
	FSUB=741
	FMUL=742
	FDIV=743
	LOAD=744
	STORE=745
	SETWRD=746
	INPUT=747
	OUTPUT=750
	ISTOR1=751
	SQRT=752
	DFLOAT=753
	SFLOAT=754
	FIX=755
	FADD=756
	ISTOR2=757
	STARTF=760
	FCOMP=761
	FZER=762
	FAPO=763
	FAZE=764
	RECIP=765
	NEXTIN=766
	SETIN=767
	SETOUT=770
	OUTBUF=771
	PACFAC=772
	SACFAC=773
	FACAC=774
	UNFIX=775
/
/END PBLOCK.
/END PROG TANGENT
/DEC 73
/JLC,FHD.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search