微处理器只想要一样东西,而且是0xEA

2020-10-21 10:19:45

几周前,我有了一个想法,就是直接从Dazzler的FPGA的引脚上运行一台6502。Dazzler有27个完全未提交的IO,因此将8位微处理器作为一个大脑在大桶中运行应该是直截了当的--CPU是真实的,但系统的其余部分是由FPGA模拟的。连接非常简单--来自65C02的27个信号直接进入FPGA。大约一周后,木板又回来了。有一个适用于Dazzler的插座和一个适用于65C02的插座。通用异步收发器(UART)和电源连接在左边。所有东西都插上电源了:电源、SparkFun UART、Dazzler、HDMI线缆,最后是65C02。一切都准备好了!但是,作为第一个测试,应该运行什么呢?当然,我不需要编写6502程序,编写RAM模拟器,然后对其进行调试?当然不会--这篇文章解释说,如果你把0xEA放在6502的数据总线上,它会很方便地永远在内存中循环。这很简单。0xEA是NOP的操作码,因此CPU会看到所有内存都被NOP指令填满。因此,它会在执行NOP的所有64K字节地址空间中循环。当程序计数器到达地址0xFFFF时,它绕回到0x0000...。无限循环。这一切看起来像什么?这是几分钟的工作,修改了Dazzler本身的波形显示,显示了所有连接的6502信号:这是复位后的头几个时钟。首先,6502从地址0xFFFC和0xFFFD获取引导地址。当然,此16位地址是0xEAEA,因此它跳转到地址0xEAEA并查找...。操作码0xEA(NOP)。这需要两个时钟来执行,并且地址总线递增到0xEAEB。诸若此类。您可以看到地址总线在屏幕右下角开始递增,每两个时钟递增一次,因为NOP是6502上的2周期指令。这是一个很好的开始--看起来65C02正在愉快地执行代码。下一步是将一个小RAM与一个小程序连接起来。未来几周会有更多关于这方面的信息,请订阅以关注进展。谢谢你的阅读。Dazzler即将进入最后一周的人群供应。如果你已经支持了,非常感谢。