Mac Classic II 的意外之喜:一个未定义的 68030 指令拯救了开机
2025-01-25
作者在使用 MAME 模拟器调试 Macintosh Classic II 时发现,在 32 位寻址模式下,系统会因一个总线错误而崩溃,显示“Sad Mac”。通过反向工程和调试,他发现 ROM 中存在一个越界跳转错误,导致 CPU 执行了一条未定义的 68030 指令。令人惊讶的是,这条指令意外地修正了寄存器 A1 的值,避免了系统崩溃,从而使 Classic II 能够成功启动。作者通过实际修复一台老旧的 Classic II 并修改 ROM 进行了验证,证实了这一发现。这个案例揭示了模拟器在发现硬件漏洞方面的潜力,也展现了软件错误如何被硬件意外“修复”的奇特现象。
硬件
68030