いまさらベーシックマスターの開発環境を作ってみる(7) NAKAMOZU Tiny BASICを移植してみる(3)
いまさらベーシックマスターの開発環境を作ってみる(6) NAKAMOZU Tiny BASICを移植してみる(2) | ず@沖縄の続き。
NAKAMOZU Tiny BASICのASCII誌の掲載記事・ソースコードは作者のサイトで公開されている。
一通り動くようになった
バグバグだったLOAD/SAVEが一応動くようになりました。
LOAD/SAVE機能は、リスト出力(LIST)とキーボード入力・編集をフックして実装しています。デバッグしやすいように、LOAD/SAVE実行中のリスト表示もそのままにしてあります。
移植したソースは BASICMASTER/NTB at main · zu2/BASICMASTER に置きました。
私の移植ではBASICMASTERのL2 BASIC ROMの代わりにNTBを$B000以降に置くようになっていますが、他の番地へのリロケートは簡単に行えます。
大きなバグがなければ、これでNAKAMOZU Tiny BASIC移植は終わりかなあ。次は何かゲームでも入力するか、別のを移植してみるか。
追記: BUG FIXして PIが動くようになりました。
余談:
PIの計算ですが、 D=2 (200桁)までは正しく動くのですが、D=3からは計算結果がおかしくなります。GAME68でも同様。
これは170行目の多倍長除算を行う際、除数Nが大きくなると、K*MOD>32767となってオーバーフローするためです。これはN=333で発生します。
Cで同じアルゴリズムを書いて(ただし配列はuint16_t)計算すると、1000桁でも正しく計算できるんですよね。NTBでもプログラムいじったらなんとかなるのかな。
続く
ディスカッション
コメント一覧
まだ、コメントがありません