我一直在为 MOS 6502 开发一个仿真器,此时我几乎已经完全完成了。不过它有一个小问题。它似乎通过了我通过的所有测试,但由于某种原因,它导致增强型基本以科学计数法输出所有内容,包括字符。
仅当数字 > 999999.4375 时,Enhanced Basic 才应该将数字放入科学记数法中。
我应该从哪里开始看?哪些仿真问题会导致 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 位整数。