MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第42回]
●SIN関数の近似式のネタがみつかりました
ZB3BASICは20年以上も前に作り上げたオリジナルBASICプログラムがもとになっております。
BASICに組み込んでありますSIN関数を含む各種関数のプログラムも基本的には当時のままのものです。
たまたまMYCPU80の修理依頼品の動作確認をする過程でSIN関数プログラムに異常が発生したために、その部分のみを取り出したものをもとにしてテストプログラムを作成して動作テストを行ないました([第33回])。
その結果異常動作の原因が判明して、その問題はクリアできました([第39回])。
MYCPU80の修理依頼品のお話は本来のテーマを離れて書いてきましたことですので、問題がクリアしたのですから、そこで本来のテーマに戻るべきところなのですけれど。
せっかくSIN関数のプログラムリストをお見せしたことでもありますから、どうやってSINの計算をしているのか、というあたりについても、備忘録を兼ねて簡単に説明をしておきましょう、ということで再び脱線してしまったのでありました。
が。
いざ説明を始めようとしましたら。
計算に使っております定数の根拠が全くわかりません。
なんとなくテイラー級数に近いかなあと思える値なのですが、微妙に異なっています。
いったいこの数値はどこから持ってきたものでしょう?
というところまでが前回までの内容でした。
なにしろ20年以上も前のことですから、思い出せというのがどだい無理というものであります。
が。
ただなんとなく、おぼろげながら、結局自力で計算するのは無理、という結論に至って、どうもどこかからいただいてきてしまったような気がいたします。
ええ。
こんな難しいものを私の頭で考え出せるわけがありません。
きっと、どこかからもらってきたに違いありませぬ。
で。
そのあたりの痕跡を求めて、もう一度徹底的に古いノートをしらみつぶしに調べてみましたら。
やっと。
みつかりました。
昭和63年(1988年)のノートです。
なんと26年も昔のノートです。
むむ。
文面を見ますとやっぱりかなり苦しんでおったようでありますなあ。
やっぱりテイラー級数ではだめ、と諦めて、それで既存のパソコンシステムの解析本などからヒントを得ようと必死の様子が見て取れます。
どうやらFM7やPC8801のシステムの解析本を参考にしようとしていたようです。
このノートによりますと、「数値計算」なる書物に「最良近似式」なるものについての説明があって、そこで求められた定数値が、FM7でそっくりそのまま使われている、と書いております。
PC8801については少し違うようですが。
ともかくFM7でもそのままの数値が使われているということならば、それは「最良近似式」なるものの一般的解法によって得られる、いわば普遍的なものと解釈してよいのではあるまいか?
それならば、その数値をそのままいただいてもよいのでは。
おそらくそのように考えまして、そのまま有難くいただいてしまったようであります。
では、その「数値計算」なる書物は果たしていかなる書物なのでありましょうか。
そはいずこに?
本棚を探したのですが。
みつかりません。
そういえば、FM7の解説本もPC8801の解説本もありませぬ。
多分、過去のどこかの時点で、「いくらなんでももういらんだろう」とまとめて処分してしまったものと思われます。
むむ。
惜しいことをいたしました。
とりわけ、その「数値計算」でありますが。
今更言うのも未練でありますけれど、もう一度読んでみたいものであります。
う?
ひょっとしたら。
今でも入手可能なのではあるまいか?
MYCPU80でCP/Mを![第42回]
2014.9.25upload
前へ
次へ
ホームページトップへ戻る