一个(非常)基础的Abacuc 6502反汇编器
正如我在上一篇文章中所写,我目前正花时间组装一台6502面包板计算机。我已经让系统以非常基础的配置运行起来了。
我的Python代码提供了一些调试输出。每次时钟从高电平跳变到低电平时,我都会输出一行包含以下信息的调试数据:
- 复位(RESB)、同步(SYNC)、读写(RWB)、总线使能(BE)、设置溢出(SOB)、中断请求(IRQB)、就绪(RDY)、向量拉低(VPB)和非屏蔽中断(NMIB)等微处理器引脚的状态。
- 地址总线地址的二进制和十六进制转储。
- 数据总线的二进制和十六进制转储。
- 根据RWB引脚状态,指示微处理器是试图读取还是写入。(这与我之前做的工作有些冗余,但我想要一个清晰的视觉指示)
这能很好地展示代码执行时发生的情况。由于我可以将操作频率降低到任意值并进行单步执行,因此我可以仔细观察微处理器的行为。(再次感谢W65C02的完全静态设计。)
如果你阅读W65C02的数据手册,你会了解到: (SYNC) 微处理器指令的操作码获取周期由SYNC引脚为高电平来指示。提供SYNC输出是为了识别微处理器正在获取操作码的那些周期。SYNC线会变高…… CSD0tFqvECLokhw9aBeRqkEN9KpD1Mu90S1mehBFMDlfhupUtFb198HwUm+gJm1/aBFyEC3h4P9935ltByFG25zltAhaxUvHblHGaNAf2i812DAFSqrAlsc/VIrA4cAe