私は MOS 6502 用のエミュレーターに取り組んでおり、この時点でほぼ完全に完成しています。ただし、小さな問題が 1 つあります。私が行ったすべてのテストに合格したように見えますが、何らかの理由で Enhanced Basic が文字を含むすべてを指数表記で出力してしまいます。
Enhanced Basic は、数値が 999999.4375 を超える場合にのみ、数値を指数表記に入れることになっています。
どこから見始めるべきですか?EhBasic からこのような応答を引き起こす可能性のあるエミュレーションの問題は何ですか? このような大規模なプログラムをどこから始めればよいかさえわかりません。また、エミュレーターが供給したすべてのテストに合格したことを考えると、テストの問題を正確に見つけることができません。
拡張基本からの出力例を次に示します。
6502 EhBASIC [C]old/[W]arm ?
Memory size ? $C000
4.8383E+04 Bytes free
Enhanced BASIC 2.22
Ready
4.8383 は、実際には 48383 のはずです。
私は自由にコードを書き直し、この問題を確認するために必要のないものはすべてコメントアウトしました。今では誰にとってもはるかに読みやすいはずです。
これを再現するには、C キーを押して EhBASIC Cold を実行し、メモリ サイズとして $C000 を入力します。
編集:明確にする
アキュムレータはメモリ[memory_size]です
一部の変数の後に [0] が付いているのは、javaScript Uint8 配列を利用して符号なし 8 ビット整数と符号なし 16 ビット整数を使用したためです。