X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Ff4%2FFRTSRC%2Fsin.ra;fp=sw%2Ff4%2FFRTSRC%2Fsin.ra;h=bf938a18eab977e27ebac3640edcf4cf485b8386;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/f4/FRTSRC/sin.ra b/sw/f4/FRTSRC/sin.ra new file mode 100644 index 0000000..bf938a1 --- /dev/null +++ b/sw/f4/FRTSRC/sin.ra @@ -0,0 +1,124 @@ +/ +/ +/ S I N +/ - - - +/ +/SUBROUTINE SIN(X) +/ +/ VERSION 5A 4-27-77 PT +/ + SECT SIN + JA #SIN + EXTERN #ARGER +SINER, TRAP4 #ARGER + TEXT +SIN + +SINXR, SETX XRSIN + SETB BPSIN +BPSIN, F 0.0 +XRSIN, F 0.0 +SIN1, F 0.0 +SIN2, F 0.0 +F1SIN, F 1. +FPI2SN, 1 /PI DIVIDED BY 2 + 3110 + 3755 +FPISIN, 2 /PI + 3110 + 3755 +F2PISN, 3 /TWO PI + 3110 + 3755 + ORG 10*3+BPSIN + FNOP + JA SINXR + 0 +SINRTN, JA . +/ +SINC9, 7764 + 2501 + 7015 +/ +SINC7, 7771 + 5464 + 5515 +/ +SINC5, 7775 + 2431 + 5362 +/ +SINC3, 0000 + 5325 + 0414 +/ +SINTST, 7770 + 2000 + 0000 + BASE 0 +#SIN, STARTD + FLDA 10*3 + FSTA SINRTN + FLDA 0 + SETX XRSIN + SETB BPSIN + BASE BPSIN + LDX 1,1 + FSTA BPSIN + FLDA% BPSIN,1 /ADDR OF X + FSTA BPSIN + STARTF + FLDA% BPSIN /GET X + LDX -1,0 /SET SIGN TO POSITIVE. + JGT SINMOD /IF POSITIVE BYPASS FUDGE. + JEQ SINRTN /IF ZERO EXIT. + FNEG /NEGATIVE. NEGATE AC. SIN(-X)=-SIN(X) + LDX 0,0 /SET SIGN TO MINUS. +SINMOD, JAL SINER /IF SIGN CAN T INT, THEN ERROR. + FDIV F2PISN /REDUCE TO BELOW TWO PI. + FSTA SIN1 /SAVE IN A TEMP. + ALN 0 + FNORM /INTERGIZE IT. + FNEG + FADD SIN1 /RECALL NUMBER. AC NOW <0 + FMUL F2PISN /NOW MULTIPLY BACK. + FSTA SIN2 /AND SAVE AWAY. + FSUB FPISIN /SUBTRACT OFF PI. + JLT SINP /LESS THEN PI. + FSTA SIN2 /RESTORE AS 2. + XTA 0 /INVERT THE SIGN. + FNEG + FSUB F1SIN /SIN(X-PI)=-SIN(X) + ATX 0 /AND PUT BACK. +/ +SINP, FLDA SIN2 /RECALL MAGIC GOODY. + FSUB FPI2SN /TEST TO SEE IF X