Downtown Doug Brown
a day ago
- Macintosh Classic II 的 ROM 存在一个缺陷:越界的跳转表访问会导致执行一条非预期的指令。
- 这条非预期的指令是 Motorola MC68030 上一种未公开的 CAS 变体,它意外地将 A1 寄存器修改为一个有效地址,从而防止了启动过程中的崩溃。
- MAME 的 68030 模拟器未复现这一未公开的行为,导致在启用 32 位寻址时出现“Sad Mac”错误,而真实硬件却能正常工作。
- 作者通过为物理 Classic II 制作自定义 ROM 并观察寄存器值,验证了该缺陷及修复方法。
- 这一发现表明,没有一款 68030 模拟器能完美复现该 CPU,而该缺陷很可能在数十年间未被 Apple 的开发者发现。