我想运行Klaus Dormann 的完整 6502 测试套件来测试我的 Kansas Lava 6502 实现。然而,代码使用了自我修改(参见 的所有用法range_adr
),虽然在仿真器中实现微不足道,但对于硬件实现来说并不是一个好兆头:程序映像需要存储在 ROM 上,因此回写将被基于寻址 ROM 或 RAM 支持的部分写入的任何路由写入黑洞。
当然,同样的问题既适用于将它合成到真正的 FPGA 中,也适用于在模拟器中运行它(低级 VHDL 或高级堪萨斯熔岩)。
有没有一种方法可以运行测试套件,而不需要长时间(就周期而言)暂停 CPU,将程序从一些不可寻址的 ROM 逐字节复制到全 RAM 内存中,然后初始化 CPU 和让它运行?我不想这样做,因为在启动时模拟这些额外的周期会大大减慢运行测试的速度。