📄 trig.u
字号:
; lam csla; reg; ; rcslsw ptr5; ; lal csla csuxm umsw; reg; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dsub csla woem; ; ; ; ptr5!c_dpio2b ; ; ; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ; lam csla csuxa umsw; ; ; ; call wait3; lal csla csuxa ulsw; ; ; ; ; csuxm umsw; ; ; ; ptr5!c_dSCRATCH_6 ; csuxm ulsw; ; ; ptr5;| *store q * pio2b ; lbm csla woem; dtor; ; ramwe rcsmsw ptr5; ; lblf dsub csla woem; dtor; ; ramwe rcslsw ptr5; call wait2; ; dtor; ; ramwe ptr5; ; lbm csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_0 ; lblf dsub csla csuxa ulsw;; ; ptr5;| *store x ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ; lam csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_6 ; lal csla csuxa ulsw; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dsub csla; reg; ; ; ; csuxa umsw; ; ; ; ptr5!c_dSCRATCH_1 ; csuxa ulsw; ; ; ptr5;| *store ex ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dSCRATCH_3 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5!sone ; lalf dcmp0 csla; reg; ; rcssp ptr5; ; lbs csla; reg; ; ; call wait1; ; ; ; ; ; lf dadd csla csuxa umsw;; ; ; ; csuxa ulsw; ; ; ; jlt dtrig.41; woea; ; ; ; jeq dtrig.a; woea; ; ; ; ; ; ; ; ;|* qrem > 0 call wait3; lf dsub csla; ; ; ; call wait1; csuxa umsw; ; ; ; jeq dtrig.c; woea; ; ; ; call dtrig.b; ; ; ; ;|* qrem < 0dtrig.41: call wait1; csuxa umsw; ; ; ; jeq dtrig.e; woea; ; ; ; call dtrig.d; ; ; ; ;dnegx: ; ; ; ; ; ; ; ; ; ; ; lam csla csuxa umsw; ; ; ; rtn; lalf dneg csla csuxa ulsw;; ; ;|* set "ex" to 0 for call to approx routinesdtrig.ex0:| *this takes advantage of the fact that dzero is szero ; ; ; ; ; ptr5!szero ; ; ; recclk; rcssp ptr5; ptr5!c_dSCRATCH_1 ; ; ; recclk; ptr5; ; ; ; recoe; ramwe rcsmsw ptr5; ; ; ; recoe; ramwe rcslsw ptr5; rtn; ; ; recoe; ramwe ptr5;|*|* Double Precision Cos Approximation|*|* enter with:|* x in c_dSCRATCH_0|* ex in c_dSCRATCH_1|* exit with:|* ALU starting|*dcosapprox: ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ptr5!c_dcos5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lam cslm csuxm umsw; ; ; ; ; lal cslm csuxm ulsw; ; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ptr5- ; lblf dmul cslm; reg; ; ; lpreg!5dcos.app.lp: ; ; ; ; ; lpreg- ; ; ; ; ; ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ptr5- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; jloop dcos.app.lp;lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lbm cslm csuxm umsw; ; ; ; ; lblf dmul cslm csuxm ulsw;; ; ; ptr5!shalf ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; rcssp ptr5;| *start z * .5 ; lbsf dmul cslm; reg; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lal csla woem; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_1 ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ; csuxm umsw; ; ; ; ptr5!c_dSCRATCH_2 ; csuxm ulsw; ; ; ptr5;| *hold z*HALF in c_dSCRATCH_2 for now ; woem; dtor; ; ramwe rcsmsw ptr5; ; woem; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start ca - ex*x ; lblf dsub csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_2 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5!c_dcosthresh ; lal csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ; lblf dcmp csla; reg; ; ; ; csuxa umsw; ; ; ; ptr5!c_dSCRATCH_3 ; csuxa ulsw; ; ; ptr5;| *hold ca in c_dSCRATCH_3 for now ; woea; dtor; ; ramwe rcsmsw ptr5; ; csuxa umsw woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!shalf jlt dcos.1; woea; ; ; ; ; ; ; ; rcssp ptr5; ptr5!c_dSCRATCH_3|* z >= dcosthresh ; lbs csla; reg; ; ; ; lf dsub csla; ; ; ; ptr5!c_dSCRATCH_3 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lam csla csuxa umsw; ; ; ; ; lal csla csuxa ulsw; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ; lblf dsub csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!shalf ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ; lbm csla csuxa umsw; ; ; ; rtn; lblf dsub csla csuxa ulsw;; ; ;dcos.1:|* z < dcosthresh ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ; lblf dsub csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!sone ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ; lbm csla csuxa umsw; ; ; ; rtn; lblf dsub csla csuxa ulsw;; ; ;|*|* Double Precision Sin Approximation|*|* enter with:|* x in c_dSCRATCH_0|* ex in c_dSCRATCH_1|* exit with:|* ALU starting|*dsinapprox: ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ptr5!c_dsin5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lam cslm csuxm umsw; ; ; ; ; lal cslm csuxm ulsw; ; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ptr5- ; lblf dmul cslm; reg; ; ; lpreg!5dsin.app.lp: ; ; ; ; ; lpreg- ; ; ; ; ; ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ptr5- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; jloop dsin.app.lp;lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; ; ; lbm cslm csuxm umsw; ; ; ; ; lblf dmul cslm csuxm ulsw;; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_1 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; lbm csla csuxa umsw; ; ; ; rtn; lblf dadd csla csuxa ulsw;; ; ;#ifdef DTAN|*|* Double Precision Tan Approximation|*|* enter with:|* x in c_dSCRATCH_0|* ex in c_dSCRATCH_1|* exit with:|* ALU starting|*dtanapprox: ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5;| *start x * x ; lblf dmul cslm; reg; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dtanq4 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; ; lam cslm csuxm umsw; ; ; ; ; lal cslm csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dsub csla woem; ; ; ; lpreg!3dtan.app.lp1: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; lpreg- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; jloop dtan.app.lp1;lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ptr5!c_dSCRATCH_2 ; csuxa ulsw; ; ; ptr5;| *store denominator in c_dSCRATCH_2 ; woea; dtor; ; ramwe rcsmsw ptr5; lpreg!3 jmp dtan.app.entry;woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dtanp3dtan.app.lp2: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ;dtan.app.entry: ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; lpreg- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; jloop dtan.app.lp2;lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; ; ; lbm cslm csuxm umsw; ; ; ; ; lblf dmul cslm csuxm ulsw;; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_1 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_2 ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ; lbl csla; reg; ; ; ; lam csla csuxa umsw; ; ; ; ; lalf ddiv csla csuxa ulsw;; ; ; lpreg!28dtan.div: jloop dtan.div; ; ; ; ; ; ; ; ; ; lpreg- ; lbm csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_0 ; lbl csla csuxa ulsw; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; rtn; lalf dadd csla; reg; ; ;|*|* Double Precision Negative Cot Approximation|*|* enter with:|* x in c_dSCRATCH_0|* ex in c_dSCRATCH_1|* exit with:|* ALU starting|*dcotnapprox: ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5;| *start x * x ; lblf dmul cslm; reg; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dtanq4 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; ; lam cslm csuxm umsw; ; ; ; ; lal cslm csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dsub csla woem; ; ; ; lpreg!3dcot.app.lp1: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; lpreg- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; jloop dcot.app.lp1;lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ptr5!c_dSCRATCH_2 ; csuxa ulsw; ; ; ptr5;| *store qq in c_dSCRATCH_2 ; woea; dtor; ; ramwe rcsmsw ptr5; lpreg!3 jmp dcot.app.entry;woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dtanp3dcot.app.lp2: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ;dcot.app.entry: ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5- ; lal csla; reg; ; ; lpreg- ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; jloop dcot.app.lp2;lbm csla woem; ; ; ; ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; ; ; lbm cslm csuxm umsw; ; ; ; ; lblf dmul cslm csuxm ulsw;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; rcsmsw ptr5; ; lam cslm; reg; ; rcslsw ptr5; ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5;| *start ex * qq ; lblf dmul cslm; reg; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lbl csla woem; ; ; ; ; ; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ;| *start ex*qq + x*z*(...) ; lalf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lbm csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_2 ; lbl csla csuxa ulsw; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lalf ddiv csla; reg; ; ; lpreg!28dcot.div: jloop dcot.div; ; ; ; ; ; ; ; ; ; lpreg- ; lam csla csuxa umsw; ; ; ; rtn; lalf dneg csla csuxa ulsw;; ; ;#endifdsinapprox1: call dsinapprox;; ; ; ; call dwrt1; ; ; ; ;dsinnapprox1: call dsinapprox;; ; ; ; call dnegx; ; ; ; ; call dwrt1; ; ; ; ;dcosapprox1: call dcosapprox;; ; ; ; call dwrt1; ; ; ; ;dcosnapprox1: call dcosapprox;; ; ; ; call dnegx; ; ; ; ; call dwrt1; ; ; ; ;#ifdef DTANdtanapprox1: call dtanapprox;; ; ; ; call dwrt1; ; ; ; ;dcotnapprox1: call dcotnapprox;; ; ; ; call dwrt1; ; ; ; ;#elsedtanapprox1:dcotnapprox1: call invalid; ; ; ; ;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -