MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第71回]
●倍精度実数演算プログラムの組込み(4)
前回はTANはまだだめですと書きましたが、本日も引き続いて努力しました結果、倍精度のTAN関数もMYCPU80に組み込むことができました。
10 FOR A#=0 TO 85 STEP 5 20 PRINT A#,TAN(A#*PI#/180) 30 NEXT A# 40 PRINT "end" >r. 0 0 5 0.8748866352592399D-1 10 0.176326980708465 15 0.2679491924311227 20 0.3639702342662023 25 0.4663076581549985 30 0.5773502691896257 35 0.7002075382097097 40 0.8390996311772799 45 0.9999999999999998 50 1.19175359259421 55 1.428148006742114 60 1.732050807568877 65 2.144506920509558 70 2.747477419454622 75 3.732050807568877 80 5.671281819617709 85 11.43005230276134 end |
前回のSID()、COD()と同様に末尾の1桁に誤差が出ています。
おや、TAN45°はちょっと気持ち悪いですね。
いくらなんでもTAN45°がこれでは目立ちますので、このままにしておくはずはないのですが…。
ひょっとするとここかも知れません。
20行を直してみました。
>. 10 FOR A#=0 TO 85 STEP 5 20 PRINT A#,TAN(A#*PI#/180) 30 NEXT A# 40 PRINT "end" > 20 PRINT A#,TAN(A#*PI#/180#) >r. 0 0 5 0.8748866352592399D-1 10 0.176326980708465 15 0.2679491924311227 20 0.3639702342662023 25 0.4663076581549985 30 0.5773502691896257 35 0.7002075382097097 40 0.8390996311772799 45 1 50 1.19175359259421 55 1.428148006742114 60 1.732050807568877 65 2.144506920509558 70 2.747477419454622 75 3.732050807568877 80 5.671281819617709 85 11.43005230276134 end |
10 PRINT "TAN & ATN TEST" 20 FOR A#=0 TO 85 STEP 5 30 R#=A#*PI#/180# 40 T#=TAN(R#) 50 AA#=ATN(T#)/PI#*180# 60 PRINT "A#=";A#,"TAN(A#)=";T#," ATN(#)=";AA# 70 NEXT A# 80 PRINT "END" >r. TAN & ATN TEST A#=0 TAN(A#)=0 ATN(#)=0 A#=5 TAN(A#)=0.8748866352592399D-1 ATN(#)=5 A#=10 TAN(A#)=0.176326980708465 ATN(#)=10 A#=15 TAN(A#)=0.2679491924311227 ATN(#)=15 A#=20 TAN(A#)=0.3639702342662023 ATN(#)=20 A#=25 TAN(A#)=0.4663076581549985 ATN(#)=25 A#=30 TAN(A#)=0.5773502691896257 ATN(#)=30 A#=35 TAN(A#)=0.7002075382097097 ATN(#)=35 A#=40 TAN(A#)=0.8390996311772799 ATN(#)=40 A#=45 TAN(A#)=1 ATN(#)=45 A#=50 TAN(A#)=1.19175359259421 ATN(#)=50 A#=55 TAN(A#)=1.428148006742114 ATN(#)=55 A#=60 TAN(A#)=1.732050807568877 ATN(#)=60 A#=65 TAN(A#)=2.144506920509558 ATN(#)=65 A#=70 TAN(A#)=2.747477419454622 ATN(#)=70 A#=75 TAN(A#)=3.732050807568877 ATN(#)=75 A#=80 TAN(A#)=5.671281819617709 ATN(#)=80 A#=85 TAN(A#)=11.43005230276134 ATN(#)=85 END |