いまさらベーシックマスターの開発環境を作ってみる(7) NAKAMOZU Tiny BASICを移植してみる(3)

2024/06/03BASICMASTER, 昔のパソコン

いまさらベーシックマスターの開発環境を作ってみる(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でもプログラムいじったらなんとかなるのかな。


続く