X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Ff4%2FFRTSRC%2Fdsin.ra;fp=sw%2Ff4%2FFRTSRC%2Fdsin.ra;h=4e705503ba06009560bc654189508b1fde6220ae;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/f4/FRTSRC/dsin.ra b/sw/f4/FRTSRC/dsin.ra new file mode 100644 index 0000000..4e70550 --- /dev/null +++ b/sw/f4/FRTSRC/dsin.ra @@ -0,0 +1,214 @@ +/ +/ +/ D S I N +/ - - - +/ +/SUBROUTINE DSIN(X) +/ +/ VERSION 5A 4-27-77 PT +/ + SECT DSIN + JA #DSIN + DPCHK + TEXT +DSIN + +SINXR, SETX XRSIN + SETB BPSIN +FPI2SN, 1 /PI DIVIDED BY 2 + 3110 + 3755 + 2421 + 0264 + 3016 +FPISIN, 2 /PI + 3110 + 3755 + 2421 + 0264 + 3016 +F2PISN, 3 /TWO PI + 3110 + 3755 + 2421 + 0264 + 3016 +BPSIN, F 0.0 +XRSIN, F 0.0 +X, F 0.0 + F 0.0 + ORG 10*3+BPSIN + FNOP + JA SINXR + 0 +SINRTN, JA . +SIN1, F 0.0 + F 0.0 +F3PIB2, 0003 /4.71238898038468986 + 2266 + 2761 + 7714 + 6207 + 2212 +F1SIN, F 1.0 + F 0.0 +/ +SINC17, 7720 /1/17! + 3124 + 5435 + 6014 + 1265 + 1236 +SINC15, 7730 /-1/15! + 4506 + 0060 + 3063 + 0437 + 4133 +SINC13, 7740 /1/13! + 2604 + 4430 + 2352 + 0664 + 1151 +SINC11, 7747 /-1/11! + 4506 + 3352 + 3002 + 5354 + 3710 +SINC9, 7756 /1/9! + 2707 + 3616 + 4525 + 5434 + 6350 +/ +SINC7, 7764 /-1/7! + 4577 + 4577 + 4577 + 4577 + 4636 +/ +SINC5, 7772 /1/5! + 2104 + 2104 + 2104 + 2104 + 2104 +/ +SINC3, 7776 /-1/3! + 5252 + 5252 + 5252 + 5252 + 5244 +/ +SINTST, 7770 + 2000 + 0000 + 0000 + 0000 + 0000 +SEVTHR, 0007 + 2217 + 7777 + 7777 + 7777 + 7777 + BASE 0 +#DSIN, STARTD + FLDA 10*3 + FSTA SINRTN + FLDA 0 + SETX XRSIN + SETB BPSIN + BASE BPSIN + LDX 1,1 + LDX 73,2 + FSTA BPSIN + FLDA% BPSIN,1 /ADDR OF X + FSTA BPSIN + STARTE + 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, FSTA X + FDIV F2PISN /X/2PI + ALN 2 + FNORM + FMUL F2PISN /*2PI + FSTA SIN1 + FLDA X + FSUB SIN1 + FSTA SIN1 + FSTA X +/CHECK FOR QUADRANT +/1 0-PI/2 SIN(PI/2)=1 +/2 PI/2-PI SIN(PI)=0 +/3 PI-3PI/2 SIN(3PI/2)=-1 +/4 3PI/2-2PI SIN(2PI)=0 +/ + FLDA FPI2SN /PI/2 + FSUB SIN1 + JGT TAYLOR + JEQ SPIB2 /=PI/2 + FLDA FPISIN /PI + FSUB SIN1 + JLT S1 + JEQ SPI /=PI + FLDA FPISIN + FSUB SIN1 /SIN(X)=SIN(PI-X) + FSTA X + JA TAYLOR +S1, FLDA F3PIB2 /3PI/2 + FSUB SIN1 + JLT S2 + JEQ S3PIB2 /=3PI/2 + FLDA SIN1 + FSUB FPISIN + FNEG + FSTA X /SIN(X)=-SIN(X-PI) + JA TAYLOR +S2, FLDA F2PISN /2PI + FSUB SIN1 + JLT DSNER /ERROR + JEQ SPI + FNEG + FSTA X +/CALCULATE SIN VIA TAYLOR SERIES +TAYLOR, FLDA X /RECALL NUMBER TO BE WORKED ON. + FMUL X /MULTIPLY OUT. + FSTA SIN1 + FMUL SINC17 /NOW DO THE STANDARD ITERATION. + FADD SINC15 + FMUL SIN1 + FADD SINC13 + FMUL SIN1 + FADD SINC11 + FMUL SIN1 + FADD SINC9 + FMUL SIN1 + FADD SINC7 + FMUL SIN1 + FADD SINC5 + FMUL SIN1 + FADD SINC3 + FMUL SIN1 + FADD F1SIN /ADD IN 1 FOR SERIES + FMUL X /DO THE FINAL MULTIPLY. +SING, JXN SINRTN,0 /SHALL WE NEGATE + FNEG /YEP + JA SINRTN /AND RETURN. +SPIB2, FLDA F1SIN + JA SING +SPI, FCLA + JA SINRTN +S3PIB2, FLDA F1SIN + FNEG + JA SING + EXTERN #ARGER +DSNER, TRAP4 #ARGER +