X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fos8%2Fv3d%2Fsources%2Ffortran%2Fdectapes%2Fdectape2%2Fsin.ra;fp=sw%2Fos8%2Fv3d%2Fsources%2Ffortran%2Fdectapes%2Fdectape2%2Fsin.ra;h=bf938a18eab977e27ebac3640edcf4cf485b8386;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/os8/v3d/sources/fortran/dectapes/dectape2/sin.ra b/sw/os8/v3d/sources/fortran/dectapes/dectape2/sin.ra new file mode 100644 index 0000000..bf938a1 --- /dev/null +++ b/sw/os8/v3d/sources/fortran/dectapes/dectape2/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