在我年少时,Commodore PET 上的《太空侵略者》(由 @ProfMatsuoka 编写)在我眼中一直是最酷的东西。我非常喜爱 Commodore 的 CBM-II 系列计算机,因此我觉得如果能把《太空侵略者》移植到 CBM-II 上,那将会是一件很棒的事。几年前,我对 PET 版的《太空侵略者》进行了完整的反汇编(https://github.com/commodoreihs/PET_Invaders_Disassembly),并尝试将其移植到 CBM-II 上。然而,MOS 6509 芯片的存储体切换(banking)机制极其复杂棘手,那次尝试最终以失败告终。最近,我又重新尝试了一次,这一次我离成功已经非常近了!我从 Christian Krenner 编写的《Space Chase》游戏中“借用”了 Bank-1/Bank-15 的 BLOAD 技巧,又从 Commodore 官方的《应付账款》(Accounts Payable)代码中“借鉴”了 IRQ 中断链机制。正是凭借这些“借来”的代码,大家可以看到,《太空侵略者》如今已成功运行在一台真实的 CBM 256-80 机器上。虽然目前还有几个 Bug 尚待修复,但距离最终完成已仅有一步之遥!
https://www.bilibili.com/video/BV1vXVG6aEAz/?vd_source=358f51d9e4d62e516f42e06d259e7de1