N88-DISK BASIC の中間コードファイルをアスキーファイルに変換するのは、一応できた
単精度実数、倍精度実数の数字がおかしくなる原因は、16 進数から 2 進数へ変換したときに先頭のビットが 0 だとカットされてしまうためだった。
表す数字としてはどちらでも変わりはないものの、桁落ちしているビットも含めて情報なので、これでは正しく変換できるはずもない。
ということで補完するように修正。
そうこうして良さそうなので M88 へもっていって実行させようとするとロードエラーがでる。
が、ふと別の資料本を眺めていたら原因がわかった。ただしいファイルに変換できていなかった。行末のコードが正しくない。行の終わりには「0D0AH」がはいる必要がある。ファイルの終わりには、さらに「1AH」も必要。
修正して実行できることを確認した。
実数方面の丸目誤差がどう影響するかは、まだ未確認。0.0001 が 0.000099 とかになるのでごくわずかではあるのだが。
しかし、この時代に PC-8800 シリーズ用のツールなど(まして、アスキーセーブすれば事足りる)需要があるはずもないので、どこかに置くこともないかな。手元のバイナリー保存された BASIC プログラムをアスキーに変換するだけしたら、もう必要はないしなあ。
とはいえ、なかなか楽しい時間ではあった。案外あっさりできてしまった。
| 固定リンク
コメント